Marius Strumyla
2002-Jul-17 15:25 UTC
[Samba] smbclient 2.2.5 segfaults on Solaris 7 x86 (long article)
i'm running samba on solaris x86 only for accessing NT shares. samba is not running as a domain master or anything. the problem is that when i try to upload 18mb file to NT share, smbclient crashes. $ smbclient //<box 1>/<share A> added interface ip=x.x.1.30 bcast=x.x.255.255 nmask=255.255.0.0 Domain=[ACCORD] OS=[Windows NT 4.0] Server=[NT LAN Manager 4.0] smb: \> put backup.tar putting file backup.tar as \backup.tar Error writing file: SUCCESS - 0 SUCCESS - 0 closing remote file \backup.tar smb: \> Segmentation Fault - core dumped it starts uploading the file, the upload progress goes _very_ slowly and then it crashes. sometimes it manages to upload 3mb, sometimes even less. it takes about two minutes to upload the 3mb. i need you to help me locate where the problem is. i suspect the problem is within my solaris x86 box, because using another solaris 7 sparc and samba 2.2.5 with the identical configuration (i checked with *testparm*), i can upload the same file just fine. my configuration: share A on box 1 (nt 4.0) share B on box 2 (nt 4.0) solaris 7 sparc running samba 2.2.5 solaris 7 x86 running samba 2.2.5 x86 --uploads 18 mb file--> share A [upload is very slow. segfaults] x86 --uploads 18 mb file--> share B [OK] sparc --uploads 18mb file--> share A [OK] sparc --uploads 18mb file--> share B [OK] here's a stack trace from the core dump: (gdb) bt #0 0x08063fed in readline_callback () #1 0x080a4d47 in smb_readline () #2 0x080640bc in process_stdin () #3 0x0806476d in process () #4 0x08065e37 in main () #5 0x0805f76f in _start () *testparm* output on solaris 7 x86 (it's identical to solaris 7 sparc): Load smb config files from /opt/samba/lib/smb.conf Processing section "[tmp]" Processing section "[vartmp]" Loaded services file OK. Press enter to see a dump of your service definitions # Global parameters [global] coding system client code page = 850 code page directory = /opt/samba/lib/codepages workgroup = ACCORD netbios name = AHSWEBDEV netbios aliases netbios scope server string = CVS Repository (SunOS 5.7) interfaces bind interfaces only = No security = SERVER encrypt passwords = Yes update encrypted = No allow trusted domains = Yes hosts equiv min passwd length = 5 map to guest = Never null passwords = No obey pam restrictions = No password server = AHSHOME smb passwd file = /opt/samba/private/smbpasswd root directory pam password change = No passwd program = /usr/bin/passwd passwd chat = *new*password* %n\n *new*password* %n\n *changed* passwd chat debug = No username map password level = 0 username level = 0 unix password sync = No restrict anonymous = No lanman auth = Yes use rhosts = No admin log = No log level = 0 syslog = 1 syslog only = No log file = /var/log/samba/log.%m max log size = 50 timestamp logs = Yes debug hires timestamp = No debug pid = No debug uid = No protocol = NT1 large readwrite = No max protocol = NT1 min protocol = CORE read bmpx = No read raw = Yes write raw = Yes nt smb support = Yes nt pipe support = Yes nt status support = Yes announce version = 4.5 announce as = NT Workstation max mux = 50 max xmit = 65535 name resolve order = lmhosts host wins bcast max packet = 65535 max ttl = 259200 max wins ttl = 518400 min wins ttl = 21600 time server = No unix extensions = No change notify timeout = 60 deadtime = 0 getwd cache = Yes keepalive = 300 lpq cache time = 10 max smbd processes = 0 max disk size = 0 max open files = 10000 read size = 16384 socket options = TCP_NODELAY stat cache size = 50 use mmap = Yes total print jobs = 0 load printers = Yes printcap name = lpstat disable spoolss = No enumports command addprinter command deleteprinter command show add printer wizard = Yes os2 driver map strip dot = No mangling method = hash character set mangled stack = 50 stat cache = Yes domain admin group domain guest group machine password timeout = 604800 add user script delete user script logon script logon path = \\%N\%U\profile logon drive logon home = \\%N\%U domain logons = No os level = 20 lm announce = Auto lm interval = 60 preferred master = False local master = No domain master = False browse list = Yes enhanced browsing = Yes dns proxy = No wins proxy = No wins server = x.x.1.23 wins support = No wins hook kernel oplocks = Yes lock spin count = 3 lock spin time = 10 oplock break wait time = 0 add share command change share command delete share command config file preload lock dir = /opt/samba/var/locks pid directory = /opt/samba/var/locks default service message command dfree command valid chars remote announce remote browse sync socket address = 0.0.0.0 homedir map time offset = 0 NIS homedir = No source environment panic action hide local users = No winbind uid winbind gid template homedir = /home/%D/%U template shell = /bin/false winbind separator = \ winbind cache time = 15 winbind enum users = Yes winbind enum groups = Yes winbind use default domain = No comment path alternate permissions = No username guest account = guest invalid users valid users admin users read list write list printer admin force user force group read only = Yes create mask = 0744 force create mode = 00 security mask = 0777 force security mode = 00 directory mask = 0755 force directory mode = 00 directory security mask = 0777 force directory security mode = 00 force unknown acl user = 00 inherit permissions = No inherit acls = No guest only = No guest ok = No only user = No hosts allow hosts deny status = Yes nt acl support = Yes block size = 1024 max connections = 0 min print space = 0 strict allocate = No strict sync = No sync always = No write cache size = 0 max print jobs = 1000 printable = No postscript = No printing = sysv print command = lp -c -d%p %s; rm %s lpq command = lpstat -o%p lprm command = cancel %p-%j lppause command = lp -i %p-%j -H hold lpresume command = lp -i %p-%j -H resume queuepause command = disable %p queueresume command = enable %p printer name use client driver = No default devmode = No printer driver printer driver file = /opt/samba/lib/printers.def printer driver location default case = lower case sensitive = No preserve case = Yes short preserve case = Yes mangle case = No mangling char = ~ hide dot files = Yes hide unreadable = No delete veto files = No veto files hide files veto oplock files map system = No map hidden = No map archive = Yes mangled names = Yes mangled map browseable = Yes blocking locks = Yes csc policy = manual fake oplocks = No locking = Yes oplocks = Yes level2 oplocks = Yes oplock contention limit = 2 posix locking = Yes strict locking = No share modes = Yes copy include exec preexec close = No postexec root preexec root preexec close = No root postexec available = Yes volume fstype = NTFS set directory = No wide links = Yes follow symlinks = Yes dont descend magic script magic output delete readonly = No dos filemode = No dos filetimes = No dos filetime resolution = No fake directory create times = No vfs object vfs options [tmp] comment = temporary file space path = /tmp read only = No guest ok = Yes [vartmp] comment = persistent file space path = /var/tmp guest ok = Yes
Marius Strumyla
2002-Jul-19 11:12 UTC
[Samba] smbclient 2.2.5 segfaults on Solaris 7 x86 (continued)
well, as of today my smbclient started segfaulting consistlently. configuration: share A on box 1 (nt 4.0 sp6a) share B on box 2 (nt 4.0 sp6a) solaris 7 x86 running samba 2.2.5 x86 --uploads 18 mb file--> share A [upload is very slow. almost always segfaults] x86 --uploads 18 mb file--> share B [upload is very slow. almost always segfaults] i could have sworn that two days ago, i was able to successfully upload to share B :( _however_, if i enable debugging and set level to 10, i get no segfaults and the upload is extremely fast! the following works ok (uploads file in less than 10 secs): marius@ahswebdev$ ./smbclient //<box 1>/<share A> -d 10 -U \ mstrumyla%passwd > /dev/null lcd /tmp put backup.tar quit marius@ahswebdev$ the following almost always segfaults and the upload always is very slow: marius@ahswebdev$ ./smbclient //<box 1>/<share A> -U \ mstrumyla%passwd > /dev/null lcd /tmp put backup.tar Segmentation Fault - core dumped i've got no clue how would i trace down this problem :( any help would be highly appreciated -- i5mast Marius Strumyla wrote:> i'm running samba on solaris x86 only for accessing NT shares. samba is > not running as a domain master or anything. > > the problem is that when i try to upload 18mb file to NT share, > smbclient crashes. > > $ smbclient //<box 1>/<share A> > added interface ip=x.x.1.30 bcast=x.x.255.255 nmask=255.255.0.0 > Domain=[ACCORD] OS=[Windows NT 4.0] Server=[NT LAN Manager 4.0] > smb: \> put backup.tar > putting file backup.tar as \backup.tar Error writing file: SUCCESS - 0 > SUCCESS - 0 closing remote file \backup.tar > smb: \> Segmentation Fault - core dumped > > > it starts uploading the file, the upload progress goes _very_ slowly and > then it crashes. > > sometimes it manages to upload 3mb, sometimes even less. it takes about > two minutes to upload the 3mb. > > i need you to help me locate where the problem is. i suspect the problem > is within my solaris x86 box, because using another solaris 7 sparc and > samba 2.2.5 with the identical configuration (i checked with > *testparm*), i can upload the same file just fine. > > > my configuration: > share A on box 1 (nt 4.0) > share B on box 2 (nt 4.0) > > solaris 7 sparc running samba 2.2.5 > solaris 7 x86 running samba 2.2.5 > > > x86 --uploads 18 mb file--> share A [upload is very slow. segfaults] > x86 --uploads 18 mb file--> share B [OK] > > sparc --uploads 18mb file--> share A [OK] > sparc --uploads 18mb file--> share B [OK] > > > here's a stack trace from the core dump: > > (gdb) bt > #0 0x08063fed in readline_callback () > #1 0x080a4d47 in smb_readline () > #2 0x080640bc in process_stdin () > #3 0x0806476d in process () > #4 0x08065e37 in main () > #5 0x0805f76f in _start ()