Bug 3474 - Joining a Domain fails with segfault on Solaris 9 with 64 Bit binaries
Summary: Joining a Domain fails with segfault on Solaris 9 with 64 Bit binaries
Status: CLOSED WORKSFORME
Alias: None
Product: Samba 3.0
Classification: Unclassified
Component: net utility (show other bugs)
Version: 3.0.21b
Hardware: Sparc Solaris
: P3 normal
Target Milestone: none
Assignee: Jim McDonough
QA Contact: Samba QA Contact
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-02-01 08:39 UTC by Christian Walther
Modified: 2010-03-04 19:44 UTC (History)
0 users

See Also:


Attachments
Output of a net join-command with -d10 (114.32 KB, text/plain)
2006-03-02 07:43 UTC, Christian Walther
no flags Details
Output of the truss command while running net join... (26.68 KB, text/plain)
2006-03-02 07:45 UTC, Christian Walther
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Christian Walther 2006-02-01 08:39:52 UTC
I recently tried to get Samba 3.0.21a and 3.0.21b running on Solaris 9 several
times, using different build environments. The compilers in use where
Sun Forte Version 11 and gcc 3.4.2. The binaries where compiled for 64
bit, using CFLAGS="-m64" for gcc for example. I just used

configure --prefix=<path>

The core file analysis of the latest build shows that strlen() is called:

# mdb core
Loading modules: [ libthread.so.1 libc.so.1 ld.so.1 ]

> ::status
debugging core file of net (64-bit) from vmwsol
executable file: /opt/samba-3.0.21a_sol9_64bit-2/bin/net
initial argv: ./net join -S glpls01 -P -U joindomain
threading model: multi-threaded
status: process terminated by SIGSEGV (Segmentation Fault)
> $C
ffffffff7fffe271 libc.so.1`strlen+0x7c(0, ffffffff7fffedc8, 100321970,
1003218f0, 0, 1001aa0f0)
ffffffff7fffe351 connect_to_service+0xd4(0, ffffffff7fffeddc,
100321990, 1001aa0f0, 1001aa0f8, 0)
ffffffff7fffe451 connect_to_ipc+0x3c(ffffffff7fffedc8,
ffffffff7fffeddc, 100321990, 0, 0, 0)
ffffffff7fffe511 net_make_ipc_connection+0x44(8, 0, 0, 0, 0, 0)
ffffffff7fffe5f1 net_rpc_join_newstyle+0x4c(1, 10031c300, 100320e10,
1000317a4, 81010100, ff00)
ffffffff7fffebe1 net_run_function+0x90(1, 10031c2f8, 150, 1000320c8,
10030f400, 10030f400)
ffffffff7fffeca1 main+0x340(7, ffffffff7ffffb88, 0, 1001aac00, 7, 1)
ffffffff7ffff2d1 _start+0x7c(0, 0, 0, 0, 0, 0)
> $?
no process
SIGSEGV: Segmentation Fault
%g0 = 0x0000000000000000                 %l0 = 0x0000000000000000
%g1 = 0xffffffff7e03d210 libc.so.1`strlen %l1 = 0x0000000000000000
%g2 = 0x000000010031c2f0                 %l2 = 0xffffffff7d400000
%g3 = 0x000000010031c2f0                 %l3 = 0x00000000b02f2d35
%g4 = 0x0000000000000000                 %l4 = 0x0000000000000031
%g5 = 0x0000000081fc2c00                 %l5 = 0x0000000000000030
%g6 = 0x0000000000000000                 %l6 = 0x000000007efefeff
%g7 = 0xffffffff7d400000                 %l7 = 0x0000000081010100
%o0 = 0x0000000000000000                 %i0 = 0x0000000000000000
%o1 = 0x0000000000000000                 %i1 = 0xffffffff7fffedc8
%o2 = 0x0000000100321990                 %i2 = 0x0000000100321970
%o3 = 0x000000007efefeff                 %i3 = 0x00000001003218f0
%o4 = 0x0000000081010100                 %i4 = 0x0000000000000000
%o5 = 0xffffffffffffffff                 %i5 = 0x00000001001aa0f0
%o6 = 0xffffffff7fffe271                 %i6 = 0xffffffff7fffe351
%o7 = 0x000000010006daf4 cli_full_connection+0x58 %i7 =
0x000000010002fe64 connect_to_service+0xd4

 %ccr = 0x44 xcc=nZvc icc=nZvc
  %y = 0x0000000000000000
 %pc = 0xffffffff7e03d28c libc.so.1`strlen+0x7c
 %npc = 0xffffffff7e03d290 libc.so.1`strlen+0x80
 %sp = 0xffffffff7fffe271
 %fp = 0xffffffff7fffe351

 %asi = 0x82
%fprs = 0x04
Comment 1 Jim McDonough 2006-03-01 14:21:28 UTC
tried with latest SVN (rev 13772) on SLES9 x86_64, built as 64-bit, no problems.  I don't have access to a sparc box.  Any chance you can attach a level 10 debug log?
Comment 2 Christian Walther 2006-03-02 07:43:53 UTC
Created attachment 1767 [details]
Output of a net join-command with -d10
Comment 3 Christian Walther 2006-03-02 07:45:22 UTC
Created attachment 1768 [details]
Output of the truss command while running net join...

truss is a command being used for debugging programs. It traces system calls and sends its' output to STDOUT.
Comment 4 Christian Walther 2006-03-02 07:53:38 UTC
After I received the bug update today, I compiled Samba again, this time using 3.0.21c. It didn't make any difference.

To make sure that my built environment is sane I removed gcc, and installed gcc 4.0.2 again. Compiler details (gcc -v):

Reading specs from /opt/csw/gcc4/lib/gcc/sparc-sun-solaris2.8/4.0.2/specs
Target: sparc-sun-solaris2.8
Configured with: ../sources/gcc-4.0.2/configure --prefix=/opt/csw/gcc4 --with-local-prefix=/opt/csw --without-gnu-as --with-as=/usr/ccs/bin/as --without-gnu-ld --with-ld=/usr/ccs/bin/ld --enable-threads=posix --enable-shared --enable-multilib --enable-nls --with-included-gettext --with-libiconv-prefix=/opt/csw --with-x --enable-java-awt=xlib --with-system-zlib --enable-languages=c,c++,f95,java,objc,ada
Thread model: posix
gcc version 4.0.2

I used the following set of environment variables:

export CFLAGS="-mcpu=v9 -m64 -D_LARGEFILE64_SOURCE=1"
export CXXFLAGS=$CFLAGS
export CPPFLAGS=$CFLAGS
export LDFLAGS="-mcpu=v9 -m64"
export LDDFLAGS="${LDFLAGS} -G"
export PATH=/opt/csw/gcc4/bin:/opt/csw/bin:/usr/sbin:/usr/bin:/usr/ccs/bin
export LD_LIBRARY_PATH=
export LD_LIBRARY_PATH_32=
export LD_LIBRARY_PATH_64=

I found information on the net that gcc 4.0.2 contains a bug related to Solaris 64 binaries. So I added -pthreads to CFLAGS and LDFLAGS, as was advised. 
Didn't help either. :-(
Comment 5 Jim McDonough 2008-06-26 07:48:06 UTC
Any chance you've tried this lately?  I still don't have a sun system..
Comment 6 Karolin Seeger 2009-12-02 04:18:08 UTC
Is that still an issue in Samba 3.4?
Comment 7 Jim McDonough 2010-03-04 19:44:38 UTC
no response in years..