[Samba] Python UCS2 vs UCS4 issue on latest git: ImportError: ....undefined symbol: PyUnicodeUCS2_Decode (NOT SOLVED)

Phil Quesinberry philq at qsystemsengineering.com
Sun Apr 7 13:08:45 MDT 2013


Hi Andrew,

Thanks for getting back.  Attempts to join the domain as an additional DC
failed for me but the Samba server was assigned a static IP and added to a
network where the Windows server presently hands out DHCP addresses, so I'm
going to guess that it's a DNS issue.  I tried adding a record to DNS on the
Windows Server for the Samba server but it still wouldn't join, so at that
point I just assumed it was a provisioning issue based on the Wiki info
which tells you not to provision before joining.  Any confirmation on the
DNS theory would be great but I don't have the exact error message that was
generated, so I'll deal with that later.

Forgive the long post, I'm trying to include as much potentially relevant
info as possible.

After checking and trying to clean up the Python installation with yum, I
seem to have accomplished two things:

1.  Samba now throws an error during compilation and fails, unless I
configure and pass LDFLAGS in like so:
LDFLAGS="-lm -ldl -lutil" ./configure --enable-debug --enable-selftest
The compile then succeeds, but I still can't run samba-tool.

2.  I'm no longer getting a Python-related segfault recorded in Messages
every 10 minutes.  I had been getting this message for quite some time and
assume that it was due to a ClamAV related issue with Python since ClamAV
does a database check at that interval.

Moving on - the build was started as follows:
sh install_with_python.sh /usr/local/samba --enable-debug --enable-selftest

Here's some hopefully relevant Python-related output when compiling
v4-0-test:

Checking for program python                                                      
: /usr/local/samba/python/bin/python
Checking for program perl                                                        
: /usr/local/bin/perl
Checking for program xsltproc                                                    
: /usr/bin/xsltproc
Checking for program python                                                      
: /usr/local/samba/python/bin/python
Checking for Python version >= 2.4.2                                             
: ok 2.6.8
Checking for library python2.6                                                   
: yes
Checking for program python2.6-config                                            
: /usr/local/samba/python/bin/python2.6-config
Checking for custom code                                                         
: yes
Dynconfig[STATEDIR]:                                                             
: '/usr/local/samba/var/locks'
Dynconfig[SCRIPTSBINDIR]:                                                        
: '/usr/local/samba/sbin'
Dynconfig[PAMMODULESDIR]:                                                        
: '/usr/local/samba/lib/security'
Dynconfig[WINBINDD_SOCKET_DIR]:                                                  
: '/usr/local/samba/var/run/winbindd'
Dynconfig[PRIVATE_DIR]:                                                          
: '/usr/local/samba/private'
Dynconfig[SETUPDIR]:                                                             
: '/usr/local/samba/share/setup'
Dynconfig[PIDDIR]:                                                               
: '/usr/local/samba/var/run'
Dynconfig[PKGCONFIGDIR]:                                                         
: '/usr/local/samba/lib/pkgconfig'
Dynconfig[DATADIR]:                                                              
: '/usr/local/samba/share'
Dynconfig[CACHEDIR]:                                                             
: '/usr/local/samba/var/cache'
Dynconfig[SBINDIR]:                                                              
: '/usr/local/samba/sbin'
Dynconfig[NCALRPCDIR]:                                                           
: '/usr/local/samba/var/run/ncalrpc'
Dynconfig[LMHOSTSFILE]:                                                          
: '/usr/local/samba/etc/lmhosts'
Dynconfig[LOCKDIR]:                                                              
: '/usr/local/samba/var/lock'
Dynconfig[SWATDIR]:                                                              
: '/usr/local/samba/share/swat'
Dynconfig[PYTHONARCHDIR]:                                                        
: '/usr/local/samba/lib64/python2.6/site-packages'
Dynconfig[LOGFILEBASE]:                                                          
: '/usr/local/samba/var'
Dynconfig[PYTHONDIR]:                                                            
: '/usr/local/samba/lib/python2.6/site-packages'
Dynconfig[NTP_SIGND_SOCKET_DIR]:                                                 
: '/usr/local/samba/var/lib/ntp_signd'
Dynconfig[CONFIGFILE]:                                                           
: '/usr/local/samba/etc/smb.conf'
Dynconfig[SOCKET_DIR]:                                                           
: '/usr/local/samba/var/run'
Dynconfig[MODULESDIR]:                                                           
: '/usr/local/samba/lib'
Dynconfig[WINBINDD_PRIVILEGED_SOCKET_DIR]:                                       
: '/usr/local/samba/var/lib/winbindd_privileged'
Dynconfig[LIBDIR]:                                                               
: '/usr/local/samba/lib'
Dynconfig[LOCALEDIR]:                                                            
: '/usr/local/samba/share/locale'
Dynconfig[NMBDSOCKETDIR]:                                                        
: '/usr/local/samba/var/run/nmbd'
Dynconfig[INCLUDEDIR]:                                                           
: '/usr/local/samba/include'
Dynconfig[CODEPAGEDIR]:                                                          
: '/usr/local/samba/share/codepages'
Dynconfig[PRIVATELIBDIR]:                                                        
: '/usr/local/samba/lib/private'
Dynconfig[PRIVILEGED_SOCKET_DIR]:                                                
: '/usr/local/samba/var/lib'
Dynconfig[LIBEXECDIR]:                                                           
: '/usr/local/samba/libexec'
Dynconfig[SMB_PASSWD_FILE]:                                                      
: '/usr/local/samba/private/smbpasswd'
Dynconfig[BINDIR]:                                                               
: '/usr/local/samba/bin'
Dynconfig[CONFIGDIR]:                                                            
: '/usr/local/samba/etc'
Checking for system tdb >= 1.2.11                                                
: not found
Checking for stylesheet
http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl :
not found
Checking for program python                                                                    
: /usr/local/samba/python/bin/python
Checking for Python version >= 2.4.2                                                           
: ok 2.6.8
Checking for python headers                                                                    
: using cache
Checking linker accepts -Wl,-no-undefined                                                      
: yes
Checking linker accepts ['-undefined', 'dynamic_lookup']                                       
: no
Checking for system talloc >= 2.0.7                                                            
: not found
Checking for system pytalloc-util >= 2.0.7                                                     
: not found
Checking for stylesheet
http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl :
not found
Checking for program python                                                                    
: /usr/local/samba/python/bin/python
Checking for Python version >= 2.4.2                                                           
: ok 2.6.8
Checking for python headers                                                                    
: using cache
Checking linker accepts -Wl,-no-undefined                                                      
: yes
Checking linker accepts ['-undefined', 'dynamic_lookup']                                       
: no
Checking for system tevent >= 0.9.17                                                           
: not found
Checking for epoll_create                                                                      
: ok
Checking for program python                                                                    
: /usr/local/samba/python/bin/python
Checking for Python version >= 2.4.2                                                           
: ok 2.6.8
Checking for python headers                                                                    
: using cache
Checking linker accepts -Wl,-no-undefined                                                      
: yes
Checking linker accepts ['-undefined', 'dynamic_lookup']                                       
: no
Checking for system popt                                                                       
: not found
Checking for header popt.h                                                                     
: yes
Checking for library popt                                                                      
: yes
Checking for poptGetContext                                                                    
: ok
Checking for program python                                                                    
: /usr/local/samba/python/bin/python
Checking for program xsltproc                                                                  
: /usr/bin/xsltproc
Checking for Python version >= 2.4.2                                                           
: ok 2.6.8
Checking for python headers                                                                    
: using cache
Checking for system ldb >= 1.1.15                                                              
: not found
Checking for system pyldb-util >= 1.1.15                                                       
: not found



During the compile, I see errors like:
[3028/3795] Compiling source3/torture/test_smbsock_any_connect.c
[3029/3795] Compiling source3/torture/test_cleanup.c
In file included from ../source3/torture/test_authinfo_structs.c:24:
../libcli/lsarpc/util_lsarpc.h:32: warning: âstruct trustAuthInOutBlobâ
declared inside parameter list
../libcli/lsarpc/util_lsarpc.h:32: warning: its scope is only this
definition or declaration, which is probably not what you want
[3030/3795] Compiling source3/torture/test_ctdbconn.c
[3031/3795] Compiling source3/torture/test_msg.c


I'm not sure just how significant that one is, if the code was written that
way intentionally but it appears to be in a library-related header so I'm
including it here.


Finally, the punchline(s):
[3329/3795] Linking default/nsswitch/libwbclient/libwbclient.so
[3330/3795] Linking default/nsswitch/libnss-wrapper-winbind.so
[3331/3795] Linking default/nsswitch/libnss-winbind.so
/usr/local/lib/libpython2.6.a(longobject.o): In function
`PyLong_FromString':
/root/samba/sambagit/samba4/python_install/Python-2.6.5/Objects/longobject.c:1610:
undefined reference to `log'
/root/samba/sambagit/samba4/python_install/Python-2.6.5/Objects/longobject.c:1610:
undefined reference to `log'
/usr/local/lib/libpython2.6.a(dynload_shlib.o): In function
`_PyImport_GetDynLoadFunc':
/root/samba/sambagit/samba4/python_install/Python-2.6.5/Python/dynload_shlib.c:94:
undefined reference to `dlsym'
/root/samba/sambagit/[3332/3795] Linking default/lib/tdb/pytdb.so
samba4/python_install/Python-2.6.5/Python/dynload_shlib.c:130: undefined
reference to `dlopen'
/root/samba/sambagit/samba4/python_install/Python-2.6.5/Python/dynload_shlib.c:141:
undefined reference to `dlsym'
/root/samba/sambagit/samba4/python_install/Python-2.6.5/Python/dynload_shlib.c:133:
undefined reference to `dlerror'
/usr/local/lib/libpython2.6.a(signalmodule.o): In function
`timeval_from_double':
/root/samba/sambagit/samba4/python_install/Python-2.6.5/./Modules/signalmodule.c:106:
undefined reference to `floor'
/root/samba/sambagit/samba4/python_install/Python-2.6.5/./Modules/signalmodule.c:107:
undefined reference to `fmod'
/root/samba/sambagit/samba4/python_install/Python-2.6.5/./Modules/signalmodule.c:106:
undefined reference to `floor'
/root/samba/sambagit/samba4/python_install/Python-2.6.5/./Modules/signalmodule.c:107:
undefined reference to `fmod'
/usr/local/lib/libpython2.6.a(posixmodule.o): In function `posix_forkpty':
/root/samba/sambagit/samba4/python_install/Python-2.6.5/./Modules/posixmodule.c:3792:
undefined reference to `forkpty'
/usr/local/lib/libpython2.6.a(posixmodule.o): In function `posix_openpty':
/root/samba/sambagit/samba4/python_install/Python-2.6.5/./Modules/posixmodule.c:3732:
undefined reference to `openpty'
/usr/local/lib/libpython2.6.a(complexobject.o): In function
`complex_divmod':
/root/samba/sambagit/samba4/python_install/Python-2.6.5/Objects/complexobject.c:598:
undefined reference to `floor'
/usr/local/lib/libpython2.6.a(complexobject.o): In function
`complex_remainder':
/root/samba/sambagit/samba4/python_install/Python-2.6.5/Objects/complexobject.c:574:
undefined reference to `floor'
/usr/local/lib/libpython2.6.a(complexobject.o): In function `_Py_c_abs':
/root/samba/sambagit/samba4/python_install/Python-2.6.5/Objects/complexobject.c:214:
undefined reference to `hypot'
/usr/local/lib/libpython2.6.a(complexobject.o): In function `_Py_c_pow':
/root/samba/sambagit/samba4/python_install/Python-2.6.5/Objects/complexobject.c:143:
undefined reference to `hypot'
/root/samba/sambagit/samba4/python_install/Python-2.6.5/Objects/complexobject.c:144:
undefined reference to `pow'
/root/samba/sambagit/samba4/python_install/Python-2.6.5/Objects/complexobject.c:145:
undefined reference to `atan2'
/root/samba/sambagit/samba4/python_install/Python-2.6.5/Objects/complexobject.c:151:
undefined reference to `cos'
/root/samba/sambagit/samba4/python_install/Python-2.6.5/Objects/complexobject.c:152:
undefined reference to `sin'
/root/samba/sambagit/samba4/python_install/Python-2.6.5/Objects/complexobject.c:148:
undefined reference to `exp'
/root/samba/sambagit/samba4/python_install/Python-2.6.5/Objects/complexobject.c:149:
undefined reference to `log'
/usr/local/lib/libpython2.6.a(floatobject.o): In function
`float_is_integer':
/root/samba/sambagit/samba4/python_install/Python-2.6.5/Objects/floatobject.c:1041:
undefined reference to `floor'
/usr/local/lib/libpython2.6.a(floatobject.o): In function
`float_as_integer_ratio':
/root/samba/sambagit/samba4/python_install/Python-2.6.5/Objects/floatobject.c:1580:
undefined reference to `floor'
/usr/local/lib/libpython2.6.a(floatobject.o): In function `float_pow':
/root/samba/sambagit/samba4/python_install/Python-2.6.5/Objects/floatobject.c:972:
undefined reference to `pow'
/root/samba/sambagit/samba4/python_install/Python-2.6.5/Objects/floatobject.c:943:
undefined reference to `floor'
/root/samba/sambagit/samba4/python_install/Python-2.6.5/Objects/floatobject.c:962:
undefined reference to `floor'
/usr/local/lib/libpython2.6.a(floatobject.o): In function `float_divmod':
/root/samba/sambagit/samba4/python_install/Python-2.6.5/Objects/floatobject.c:856:
undefined reference to `fmod'
/root/samba/sambagit/samba4/python_install/Python-2.6.5/Objects/floatobject.c:882:
undefined reference to `floor'
/usr/local/lib/libpython2.6.a(floatobject.o): In function `float_rem':
/root/samba/sambagit/samba4/python_install/Python-2.6.5/Objects/floatobject.c:834:
undefined reference to `fmod'
/usr/local/lib/libpython2.6.a(bltinmodule.o): In function `builtin_round':
/root/samba/sambagit/samba4/python_install/Python-2.6.5/Python/bltinmodule.c:2147:
undefined reference to `floor'
collect2: ld returned 1 exit status
[3333/3795] Linking default/lib/tdb_compat/libtdb_compat.so
Waf: Leaving directory `/root/samba/sambagit/samba4/bin'
Build failed:  -> task failed (err #1):
        {task: cc_link pytalloc_util_5.o -> libpytalloc-util.so}
make: *** [all] Error 1


After uninstalling/reinstalling Python 2.6.8 and it's dependencies with Yum,
v4-0-test now sees Python 2.6.5 during the configure but fails with the same
error.

All of this is on v4-0-test.  Just as an FYI, when I checked out Master and
compiled it instead, I got:
Checking for Python version >= 2.4.2                                                           
: ok 2.6.5	(instead of 2.6.8 - and this was before the reinstall of 2.6.8)

in the Python config section, so it appears to be referencing the included
private build of Python instead of 2.6.8 but the compile of Master still
fails but in a different way as follows:
'configure' finished successfully (1m37.119s)
WAF_MAKE=1 /usr/local/samba/python/bin/python ./buildtools/bin/waf build
./buildtools/wafsamba/samba_utils.py:397: DeprecationWarning: the md5 module
is deprecated; use hashlib instead
  import md5
Waf: Entering directory `/root/samba/sambagit/samba4/bin'
symlink: samba/__init__.py -> python/samba/__init__.py
/root/samba/sambagit/samba4/wscript: error: Traceback (most recent call
last):
  File "/root/samba/sambagit/samba4/buildtools/wafadmin/Utils.py", line 647,
in recurse
    exec(compile(txt, file_path, 'exec'), dc)
  File "/root/samba/sambagit/samba4/wscript_build", line 43, in <module>
    bld.RECURSE('python')
  File "./buildtools/wafsamba/samba_utils.py", line 471, in RECURSE
    return ctx.add_subdirs(relpath)
  File "/root/samba/sambagit/samba4/buildtools/wafadmin/Build.py", line 993,
in add_subdirs
    self.recurse(dirs, 'build')
  File "/root/samba/sambagit/samba4/buildtools/wafadmin/Utils.py", line 650,
in recurse
    raise WscriptError("".join(traceback.format_exception(exc_type,
exc_value, tb)), base)
WscriptError: /root/samba/sambagit/samba4/python/wscript: error: Traceback
(most recent call last):
  File "/root/samba/sambagit/samba4/buildtools/wafadmin/Utils.py", line 647,
in recurse
    exec(compile(txt, file_path, 'exec'), dc)
  File "/root/samba/sambagit/samba4/python/wscript_build", line 37, in
<module>
    installdir='python')
  File "./buildtools/wafsamba/wafsamba.py", line 685, in SAMBA_SCRIPT
    os.symlink(link_src, link_dst)
OSError: [Errno 17] File exists


make: *** [all] Error 1


So while everything else seems to be working on this box it seems to me that
there's some issue with the Python environment that Samba doesn't like,
although I'm not quite sure what it is.  I just don't know enough (anything,
really) about Waf to intelligently track down the problem.

On the initial installation attempt of Samba 4 I was having problems getting
the install_with_python script to download the file... I don't remember the
details of what was wrong now but I had to download the file manually to do
the install and I was manually compiling Python and other stuff to try to
get it to work so I may very well have messed things up during that process.

I was still having some strange issues with the same script later too so I
finally did a make uninstall and wiped out and re-cloned the source tree. 
After doing that, the install script seems to be working as expected now, at
least.

Let me know if you need any additional info and I'll try to get it to you as
soon as possible.

Thanks again,

- Phil




--
View this message in context: http://samba.2283325.n4.nabble.com/Re-Python-UCS2-vs-UCS4-issue-on-latest-git-ImportError-undefined-symbol-PyUnicodeUCS2-Decode-NOT-SOL-tp4646314p4646395.html
Sent from the Samba - General mailing list archive at Nabble.com.


More information about the samba mailing list