Re: Solaris fcntl CPU/Lock update

2003-02-27 Thread Jeff Mandel


trace from 12327:
(gdb) bt
#0  0xfecd9794 in __sigprocmask () from /usr/lib/libthread.so.1
#1  0xfecce1e8 in _deliversigs () from /usr/lib/libthread.so.1
#2  0xfecd05c4 in thr_sigsetmask () from /usr/lib/libthread.so.1
#3  signal handler called
#4  0xb in ?? ()
#5  0xfecdb1f0 in usleep () from /usr/lib/libthread.so.1
#6  0xf7d1c in do_lock_spin (fsp=0x26da48, conn=0x257c68, lock_pid=0,
   count=20, offset=2147483559, lock_type=WRITE_LOCK) at 
locking/locking.c:175
#7  0x58bb4 in reply_lockingX (conn=0x257c68, inbuf=0x2173c9 ,
   outbuf=0x237819 , length=75, bufsize=16644) at smbd/reply.c:4714
#8  0x739bc in switch_message (type=36, inbuf=0x2173c9 , 
outbuf=0x237819 ,
   size=75, bufsize=16644) at smbd/process.c:774
#9  0x73a48 in construct_reply (inbuf=0x2173c9 , outbuf=0x237819 ,
   size=75, bufsize=16644) at smbd/process.c:803
#10 0x73cf4 in process_smb (inbuf=0x2173c9 , outbuf=0x237819 )
   at smbd/process.c:897
#11 0x74814 in smbd_process () at smbd/process.c:1294
#12 0x314b4 in main (argc=0, argv=0xffbefeac) at smbd/server.c:832
(gdb) The program is running.  Quit anyway (and detach it)? (y or n) y
   

This is a much more interesting backtrace than the
other. Why is smbd linking in pthread libraries ?
smbd is *NOT* a threaded program.
The backtrace you have here shows smbd trying to get
a fcntl lock on behalf of a client and failing to get it
instantaneously, so going into the lock spin code. It
will try 3 times, sleeping for 10 usec between each attempt,
and then return a fail to the client. This is not in itself
a spinning bug or problem, smbd is meant to do this.
I'm worried about the interaction between the Solaris lwp
libc code and smbd smbd should be a simple program
with only one thread of execution.
Jeremy.

 

Since it seems that libthread shows up because nss_ldap (padl's) is 
used, does anyone have suggestions for dealing with this at the nss_ldap 
level?

Jeff



Re: Solaris fcntl CPU/Lock update

2003-02-27 Thread Pierre Belanger
Did you try to compile using OpenLDAP? I think that can
be a quick fix.
Otherwise, open a ticket with Sun?

Pierre B.

Jeff Mandel wrote:


trace from 12327:
(gdb) bt
#0  0xfecd9794 in __sigprocmask () from /usr/lib/libthread.so.1
#1  0xfecce1e8 in _deliversigs () from /usr/lib/libthread.so.1
#2  0xfecd05c4 in thr_sigsetmask () from /usr/lib/libthread.so.1
#3  signal handler called
#4  0xb in ?? ()
#5  0xfecdb1f0 in usleep () from /usr/lib/libthread.so.1
#6  0xf7d1c in do_lock_spin (fsp=0x26da48, conn=0x257c68, lock_pid=0,
   count=20, offset=2147483559, lock_type=WRITE_LOCK) at 
locking/locking.c:175
#7  0x58bb4 in reply_lockingX (conn=0x257c68, inbuf=0x2173c9 ,
   outbuf=0x237819 , length=75, bufsize=16644) at smbd/reply.c:4714
#8  0x739bc in switch_message (type=36, inbuf=0x2173c9 , 
outbuf=0x237819 ,
   size=75, bufsize=16644) at smbd/process.c:774
#9  0x73a48 in construct_reply (inbuf=0x2173c9 , outbuf=0x237819 ,
   size=75, bufsize=16644) at smbd/process.c:803
#10 0x73cf4 in process_smb (inbuf=0x2173c9 , outbuf=0x237819 )
   at smbd/process.c:897
#11 0x74814 in smbd_process () at smbd/process.c:1294
#12 0x314b4 in main (argc=0, argv=0xffbefeac) at smbd/server.c:832
(gdb) The program is running.  Quit anyway (and detach it)? (y or n) y
  


This is a much more interesting backtrace than the
other. Why is smbd linking in pthread libraries ?
smbd is *NOT* a threaded program.
The backtrace you have here shows smbd trying to get
a fcntl lock on behalf of a client and failing to get it
instantaneously, so going into the lock spin code. It
will try 3 times, sleeping for 10 usec between each attempt,
and then return a fail to the client. This is not in itself
a spinning bug or problem, smbd is meant to do this.
I'm worried about the interaction between the Solaris lwp
libc code and smbd smbd should be a simple program
with only one thread of execution.
Jeremy.

 

Since it seems that libthread shows up because nss_ldap (padl's) is 
used, does anyone have suggestions for dealing with this at the nss_ldap 
level?

Jeff





Re: Solaris fcntl CPU/Lock update

2003-02-06 Thread Jeff Mandel
Esh, Andrew wrote:


Also, try loading a few other non-Samba programs into gdb, to see what they
require. Maybe threading is a common library to load.

 

I have tried this against sshd, httpd, radiusd and lpsched. None are 
showing libthread anywhere in the list of symbols.

After latest libthread patch, I still have runaways. Results were the 
same for each process. bt gives a greatly shortened output which 
highlights libthread quite prominently:
[Switching to Thread 1 (LWP 1)]
0xfecd9764 in __sigprocmask () from /usr/lib/libthread.so.1
(gdb) bt
#0  0xfecd9764 in __sigprocmask () from /usr/lib/libthread.so.1
#1  0xfecce1b8 in _deliversigs () from /usr/lib/libthread.so.1
#2  0xfecd0594 in thr_sigsetmask () from /usr/lib/libthread.so.1
#3  signal handler called
(gdb) The program is running.  Quit anyway (and detach it)? (y or n) y

Any other suggestions for gathering more info, or compile options for samba?

Full list again below:

root@reiger# gdb /usr/local/samba/bin/smbd 1812
GNU gdb 5.0
Copyright 2000 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain 
conditions.
Type show copying to see the conditions.
There is absolutely no warranty for GDB.  Type show warranty for details.
This GDB was configured as sparc-sun-solaris2.8...
/tmp/1812: No such file or directory.
Attaching to program `/usr/local/samba/bin/smbd', process 1812
Reading symbols from /usr/lib/libsec.so.1...done.
Loaded symbols for /usr/lib/libsec.so.1
Reading symbols from /usr/lib/libgen.so.1...done.
Loaded symbols for /usr/lib/libgen.so.1
Reading symbols from /usr/lib/libsocket.so.1...done.
Loaded symbols for /usr/lib/libsocket.so.1
Reading symbols from /usr/lib/libnsl.so.1...done.
Loaded symbols for /usr/lib/libnsl.so.1
Reading symbols from /usr/lib/libdl.so.1...done.
Loaded symbols for /usr/lib/libdl.so.1
Reading symbols from /usr/lib/libpopt.so.0...done.
Loaded symbols for /usr/lib/libpopt.so.0
Reading symbols from /usr/lib/libc.so.1...done.
Loaded symbols for /usr/lib/libc.so.1
Reading symbols from /usr/lib/libmp.so.2...done.
Loaded symbols for /usr/lib/libmp.so.2
Reading symbols from 
/usr/platform/SUNW,Sun-Fire-280R/lib/libc_psr.so.1...done.
Loaded symbols for /usr/platform/SUNW,Sun-Fire-280R/lib/libc_psr.so.1
Reading symbols from /usr/lib/nss_files.so.1...done.
Loaded symbols for /usr/lib/nss_files.so.1
Reading symbols from /usr/lib/nss_ldap.so.1...done.
Loaded symbols for /usr/lib/nss_ldap.so.1
Reading symbols from /usr/lib/libpthread.so.1...done.
Loaded symbols for /usr/lib/libpthread.so.1
Reading symbols from /usr/local/ldapsdk5/lib/libldap50.so...done.
Loaded symbols for /usr/local/ldapsdk5/lib/libldap50.so
Reading symbols from /usr/local/ldapsdk5/lib/libssldap50.so...done.
Loaded symbols for /usr/local/ldapsdk5/lib/libssldap50.so
Reading symbols from /usr/local/ldapsdk5/lib/libssl3.so...done.
Loaded symbols for /usr/local/ldapsdk5/lib/libssl3.so
---Type return to continue, or q return to quit---
Reading symbols from /usr/local/ldapsdk5/lib/libnss3.so...done.
Loaded symbols for /usr/local/ldapsdk5/lib/libnss3.so
Reading symbols from /usr/local/ldapsdk5/lib/libnspr4.so...done.
Loaded symbols for /usr/local/ldapsdk5/lib/libnspr4.so
Reading symbols from /usr/local/ldapsdk5/lib/libprldap50.so...done.
Loaded symbols for /usr/local/ldapsdk5/lib/libprldap50.so
Reading symbols from /usr/local/ldapsdk5/lib/libplc4.so...done.
Loaded symbols for /usr/local/ldapsdk5/lib/libplc4.so
Reading symbols from /usr/local/ldapsdk5/lib/libplds4.so...done.
Loaded symbols for /usr/local/ldapsdk5/lib/libplds4.so
Reading symbols from /usr/lib/libdb-3.3.so...done.
Loaded symbols for /usr/lib/libdb-3.3.so
Reading symbols from /usr/lib/libresolv.so.2...done.
Loaded symbols for /usr/lib/libresolv.so.2
Reading symbols from /usr/lib/libthread.so.1...done.
Loaded symbols for /usr/lib/libthread.so.1
Reading symbols from /usr/lib/librt.so.1...done.
Loaded symbols for /usr/lib/librt.so.1
Reading symbols from /usr/lib/libaio.so.1...done.
Loaded symbols for /usr/lib/libaio.so.1
sol-thread active.
Retry #1:
Retry #2:
Retry #3:
Retry #4:
[New LWP1]
[New Thread 1 (LWP 1)]
Symbols already loaded for /usr/lib/libsec.so.1
Symbols already loaded for /usr/lib/libgen.so.1
Symbols already loaded for /usr/lib/libsocket.so.1
Symbols already loaded for /usr/lib/libnsl.so.1
Symbols already loaded for /usr/lib/libdl.so.1
Symbols already loaded for /usr/lib/libpopt.so.0
Symbols already loaded for /usr/lib/libc.so.1
Symbols already loaded for /usr/lib/libmp.so.2
Symbols already loaded for 
/usr/platform/SUNW,Sun-Fire-280R/lib/libc_psr.so.1
Symbols already loaded for /usr/lib/nss_files.so.1
Symbols already loaded for /usr/lib/nss_ldap.so.1
Symbols already loaded for /usr/lib/libpthread.so.1
Symbols already loaded for /usr/local/ldapsdk5/lib/libldap50.so
Symbols already loaded for /usr/local/ldapsdk5/lib/libssldap50.so
Symbols already loaded for 

Re: Solaris fcntl CPU/Lock update

2003-02-04 Thread jra
On Mon, Feb 03, 2003 at 07:38:31AM -0800, Jeff Mandel wrote:
 Here's gdb with bt from two processes 12279 and 12327
 
 root@reiger# gdb /usr/local/samba/bin/smbd 12279
 GNU gdb 5.0
 Copyright 2000 Free Software Foundation, Inc.
 GDB is free software, covered by the GNU General Public License, and you are
 welcome to change it and/or distribute copies of it under certain 
 conditions.
 Type show copying to see the conditions.
 There is absolutely no warranty for GDB.  Type show warranty for details.
 This GDB was configured as sparc-sun-solaris2.8...
 /tmp/12279 is not a core dump: File truncated
 Attaching to program `/usr/local/samba/bin/smbd', process 12279
 Reading symbols from /usr/lib/libsec.so.1...done.
 Loaded symbols for /usr/lib/libsec.so.1
 Reading symbols from /usr/lib/libgen.so.1...done.
 Loaded symbols for /usr/lib/libgen.so.1
 Reading symbols from /usr/lib/libsocket.so.1...done.
 Loaded symbols for /usr/lib/libsocket.so.1
 Reading symbols from /usr/lib/libnsl.so.1...done.
 Loaded symbols for /usr/lib/libnsl.so.1
 Reading symbols from /usr/lib/libdl.so.1...done.
 Loaded symbols for /usr/lib/libdl.so.1
 Reading symbols from /usr/lib/libpopt.so.0...done.
 Loaded symbols for /usr/lib/libpopt.so.0
 Reading symbols from /usr/lib/libc.so.1...done.
 Loaded symbols for /usr/lib/libc.so.1
 Reading symbols from /usr/lib/libmp.so.2...done.
 Loaded symbols for /usr/lib/libmp.so.2
 Reading symbols from 
 /usr/platform/SUNW,Sun-Fire-280R/lib/libc_psr.so.1...done.
 Loaded symbols for /usr/platform/SUNW,Sun-Fire-280R/lib/libc_psr.so.1
 Reading symbols from /usr/lib/nss_files.so.1...done.
 Loaded symbols for /usr/lib/nss_files.so.1
 Reading symbols from /usr/lib/nss_ldap.so.1...done.
 Loaded symbols for /usr/lib/nss_ldap.so.1
 Reading symbols from /usr/lib/libpthread.so.1...done.
 Loaded symbols for /usr/lib/libpthread.so.1
 Reading symbols from /usr/local/ldapsdk5/lib/libldap50.so...done.
 Loaded symbols for /usr/local/ldapsdk5/lib/libldap50.so
 Reading symbols from /usr/local/ldapsdk5/lib/libssldap50.so...done.
 Loaded symbols for /usr/local/ldapsdk5/lib/libssldap50.so
 Reading symbols from /usr/local/ldapsdk5/lib/libssl3.so...done.
 Loaded symbols for /usr/local/ldapsdk5/lib/libssl3.so
 ---Type return to continue, or q return to quit---
 Reading symbols from /usr/local/ldapsdk5/lib/libnss3.so...done.
 Loaded symbols for /usr/local/ldapsdk5/lib/libnss3.so
 Reading symbols from /usr/local/ldapsdk5/lib/libnspr4.so...done.
 Loaded symbols for /usr/local/ldapsdk5/lib/libnspr4.so
 Reading symbols from /usr/local/ldapsdk5/lib/libprldap50.so...done.
 Loaded symbols for /usr/local/ldapsdk5/lib/libprldap50.so
 Reading symbols from /usr/local/ldapsdk5/lib/libplc4.so...done.
 Loaded symbols for /usr/local/ldapsdk5/lib/libplc4.so
 Reading symbols from /usr/local/ldapsdk5/lib/libplds4.so...done.
 Loaded symbols for /usr/local/ldapsdk5/lib/libplds4.so
 Reading symbols from /usr/lib/libdb-3.3.so...done.
 Loaded symbols for /usr/lib/libdb-3.3.so
 Reading symbols from /usr/lib/libresolv.so.2...done.
 Loaded symbols for /usr/lib/libresolv.so.2
 Reading symbols from /usr/lib/libthread.so.1...done.
 Loaded symbols for /usr/lib/libthread.so.1
 Reading symbols from /usr/lib/librt.so.1...done.
 Loaded symbols for /usr/lib/librt.so.1
 Reading symbols from /usr/lib/libaio.so.1...done.
 Loaded symbols for /usr/lib/libaio.so.1
 sol-thread active.
 Retry #1:
 Retry #2:
 Retry #3:
 Retry #4:
 [New LWP1]
 [New Thread 1 (LWP 1)]
 Symbols already loaded for /usr/lib/libsec.so.1
 Symbols already loaded for /usr/lib/libgen.so.1
 Symbols already loaded for /usr/lib/libsocket.so.1
 Symbols already loaded for /usr/lib/libnsl.so.1
 Symbols already loaded for /usr/lib/libdl.so.1
 Symbols already loaded for /usr/lib/libpopt.so.0
 Symbols already loaded for /usr/lib/libc.so.1
 Symbols already loaded for /usr/lib/libmp.so.2
 Symbols already loaded for 
 /usr/platform/SUNW,Sun-Fire-280R/lib/libc_psr.so.1
 Symbols already loaded for /usr/lib/nss_files.so.1
 Symbols already loaded for /usr/lib/nss_ldap.so.1
 Symbols already loaded for /usr/lib/libpthread.so.1
 Symbols already loaded for /usr/local/ldapsdk5/lib/libldap50.so
 Symbols already loaded for /usr/local/ldapsdk5/lib/libssldap50.so
 Symbols already loaded for /usr/local/ldapsdk5/lib/libssl3.so
 Symbols already loaded for /usr/local/ldapsdk5/lib/libnss3.so
 Symbols already loaded for /usr/local/ldapsdk5/lib/libnspr4.so
 Symbols already loaded for /usr/local/ldapsdk5/lib/libprldap50.so
 Symbols already loaded for /usr/local/ldapsdk5/lib/libplc4.so
 Symbols already loaded for /usr/local/ldapsdk5/lib/libplds4.so
 Symbols already loaded for /usr/lib/libdb-3.3.so
 Symbols already loaded for /usr/lib/libresolv.so.2
 Symbols already loaded for /usr/lib/libthread.so.1
 Symbols already loaded for /usr/lib/librt.so.1
 Symbols already loaded for /usr/lib/libaio.so.1
 [Switching to Thread 1 (LWP 1)]
 signal handler called
 (gdb) bt
 #0  signal handler called
 #1  0xfecd9794 in __sigprocmask () 

Re: Solaris fcntl CPU/Lock update

2003-02-04 Thread David Collier-Brown -- Customer Engineering
On Mon, Feb 03, 2003 at 07:38:31AM -0800, Jeff Mandel wrote:
  Reading symbols from /usr/lib/libpthread.so.1...done.
  Loaded symbols for /usr/lib/libpthread.so.1 


jra wrote: 
 This is a much more interesting backtrace than the
 other. Why is smbd linking in pthread libraries ?
 smbd is *NOT* a threaded program.

The library lsit on my Solaris 8 workstation is
much shorter:

$ pvs smbd
libsocket.so.1 (SISCD_2.3);
libnsl.so.1 (SUNW_0.7, SUNWprivate_1.1);
libdl.so.1 (SISCD_2.3);
libc.so.1 (SUNW_1.1);

No pthread at all!

--dave
-- 
David Collier-Brown,   | Always do right. This will gratify 
Sun Microsystems DCMO  | some people and astonish the rest.
Toronto, Ontario   |
(905) 415-2849 or x52849   | [EMAIL PROTECTED]



Re: Solaris fcntl CPU/Lock update

2003-02-04 Thread Pierre Belanger
Hello all,

Andrew, true GDB is thread aware but I think last time I used
it (back in ~ 1998) I was writing a multi-threaded application
and I really remember like if it was yesterday: GDB was not
thread aware at that time. I'm glad to hear it's now thread
aware!

I found the following if it can help us debug this thing
with Jeff Mandel (the original poster).

Debugging multi-threaded applications with GDB...

http://www-es.fernuni-hagen.de/cgi-bin/info2html?(gdb)Threads

Like Andrew suggested -- I ran nm on libthread.so. I almost
felt off my chair!

From libthread.so
[905]   |111016|  84|FUNC |GLOB |0|9  |usleep

There exists under Solaris a usleep in libthread.so !!!

Of course, as well in libc.so.

From libc.so :
usleep [3265]  |635736|  40|FUNC |WEAK |0|9  |usleep

This here :

#0  signal handler called
#1  0xfecd9794 in __sigprocmask () from /usr/lib/libthread.so.1
#2  0xfecce148 in _sigon () from /usr/lib/libthread.so.1
#3  0xfecd05bc in thr_sigsetmask () from /usr/lib/libthread.so.1
#3  0xfecd05bc in thr_sigsetmask () from /usr/lib/libthread.so.1
#4  signal handler called
#5  0x65646974 in ?? ()
#6  0xfecdb1f0 in usleep () from /usr/lib/libthread.so.1

The called signal handler of usleep *in* libpthread.so.1
uses thr_sigsetmask and the above funtions, for the only
reason that some LDAP library needs libthread.so???

I can't go any further now, ho yes I can just before I was
going to hit send ;-)  Here's what I did:

After Hello World ...

int main (int argc, char **argv){usleep(1);}

Compiled using gcc sleeping.c and after I compiled using
gcc sleeping.c -lthread. HAHA!!! Here's the results.


1) Without linking with libhread:


/1: execve(a.out, 0xFFBEFB0C, 0xFFBEFB14)  argc = 1
/1: mmap(0x, 8192, PROT_READ|PROT_WRITE|PROT_EXEC, 
MAP_PRIVATE|MAP_ANON, -1, 0) = 0xFF3A
/1: resolvepath(/usr/lib/ld.so.1, /usr/lib/ld.so.1, 1023) = 16
/1: open(/var/ld/ld.config, O_RDONLY) Err#2 ENOENT
/1: stat(/usr/lib/libc.so.1, 0xFFBEF234)  = 0
/1: open(/usr/lib/libc.so.1, O_RDONLY)= 3
/1: fstat(3, 0xFFBEF234)= 0
/1: mmap(0x, 8192, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 
0xFF39
/1: mmap(0x, 802816, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) 
= 0xFF28
/1: mmap(0xFF33C000, 24748, PROT_READ|PROT_WRITE|PROT_EXEC, 
MAP_PRIVATE|MAP_FIXED, 3, 704512) = 0xFF33C000
/1: munmap(0xFF32C000, 65536)   = 0
/1: memcntl(0xFF28, 113448, MC_ADVISE, MADV_WILLNEED, 0, 0) = 0
/1: close(3)= 0
/1: stat(/usr/lib/libdl.so.1, 0xFFBEF234) = 0
/1: open(/usr/lib/libdl.so.1, O_RDONLY)   = 3
/1: fstat(3, 0xFFBEF234)= 0
/1: mmap(0xFF39, 8192, PROT_READ|PROT_EXEC, 
MAP_PRIVATE|MAP_FIXED, 3, 0) = 0xFF39
/1: close(3)= 0
/1: stat(/usr/platform/SUNW,Ultra-2/lib/libc_psr.so.1, 0xFFBEF0C4) = 0
/1: open(/usr/platform/SUNW,Ultra-2/lib/libc_psr.so.1, O_RDONLY) = 3
/1: fstat(3, 0xFFBEF0C4)= 0
/1: mmap(0x, 8192, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 
0xFF38
/1: mmap(0x, 16384, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) 
= 0xFF37
/1: close(3)= 0
/1: munmap(0xFF38, 8192)= 0
/1: alarm(0)= 0
/1: setitimer(ITIMER_REAL, 0xFFBEFA28, 0xFFBEFA18)  = 0
/1: sigaction(SIGALRM, 0xFFBEF928, 0xFFBEF9D8)  = 0
/1: sigfillset(0xFF3428B8)  = 0
/1: sigprocmask(SIG_BLOCK, 0xFFBEF9C8, 0xFFBEF9B8)  = 0
/1: setitimer(ITIMER_REAL, 0xFFBEFA28, 0x)  = 0
/1: Received signal #14, SIGALRM, in sigsuspend() [caught]
/1: sigsuspend(0xFFBEF9A8)  Err#4 EINTR
/1: setcontext(0xFFBEF690)
/1: sigaction(SIGALRM, 0xFFBEF928, 0x)  = 0
/1: sigprocmask(SIG_UNBLOCK, 0xFFBEF9C8, 0x) = 0
/1: setitimer(ITIMER_REAL, 0xFFBEFA18, 0x)  = 0
/1: llseek(0, 0, SEEK_CUR)  = 38123
/1: _exit(0)



2) Compiled with -lthread ... hard to beleive, 5 threads
   to make a simple usleep(1) system call!!!

/1: execve(ta.out, 0xFFBEFB0C, 0xFFBEFB14)  argc = 1
/1: mmap(0x, 8192, PROT_READ|PROT_WRITE|PROT_EXEC, 
MAP_PRIVATE|MAP_ANON, -1, 0) = 0xFF3A
/1: resolvepath(/usr/lib/ld.so.1, /usr/lib/ld.so.1, 1023) = 16
/1: open(/var/ld/ld.config, O_RDONLY) Err#2 ENOENT
/1: stat(/usr/lib/libthread.so.1, 0xFFBEF234) = 0
/1: open(/usr/lib/libthread.so.1, O_RDONLY)   = 3
/1: fstat(3, 0xFFBEF234)= 0
/1: mmap(0x, 8192, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 
0xFF39
/1: mmap(0x, 245760, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) 

Re: Solaris fcntl CPU/Lock update

2003-02-04 Thread Pierre Belanger
Jeff,

Ok, you're using nss_ldap from PDAL to use /etc/nsswitch.conf
like

passwd: ldap files (or reverse)
group: ldap files
etc

Right? (From what I recall that's what nss_ldap is used for).

If you did not compile with Samba, it means that if you do ldd
on smbd it should not print libthread or libpthread. Is this
the result you get? If this is the result you get -- than I REALLY
don't understand how smbd process opens libthread and libpthread!

I get this @ home from 2.2.pre-8 (I CVS sync everyday every once
and a while).

libsec.so.1 =   /usr/lib/libsec.so.1
libgen.so.1 =   /usr/lib/libgen.so.1
libsocket.so.1 =/usr/lib/libsocket.so.1
libnsl.so.1 =   /usr/lib/libnsl.so.1
libdl.so.1 =/usr/lib/libdl.so.1
libpam.so.1 =   /usr/lib/libpam.so.1
libsendfile.so.1 =  /usr/lib/libsendfile.so.1
libc.so.1 = /usr/lib/libc.so.1
libmp.so.2 =/usr/lib/libmp.so.2
/usr/platform/SUNW,Ultra-2/lib/libc_psr.so.1

If you don't have this problem on the other box, it can be
a Solaris bug introduced lately. The binaries you run on both
boxes don't differ, right? They are the same exact copy?

Pierre B.





Re: Solaris fcntl CPU/Lock update

2003-02-03 Thread Jeff Mandel
Here's gdb with bt from two processes 12279 and 12327

root@reiger# gdb /usr/local/samba/bin/smbd 12279
GNU gdb 5.0
Copyright 2000 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain 
conditions.
Type show copying to see the conditions.
There is absolutely no warranty for GDB.  Type show warranty for details.
This GDB was configured as sparc-sun-solaris2.8...
/tmp/12279 is not a core dump: File truncated
Attaching to program `/usr/local/samba/bin/smbd', process 12279
Reading symbols from /usr/lib/libsec.so.1...done.
Loaded symbols for /usr/lib/libsec.so.1
Reading symbols from /usr/lib/libgen.so.1...done.
Loaded symbols for /usr/lib/libgen.so.1
Reading symbols from /usr/lib/libsocket.so.1...done.
Loaded symbols for /usr/lib/libsocket.so.1
Reading symbols from /usr/lib/libnsl.so.1...done.
Loaded symbols for /usr/lib/libnsl.so.1
Reading symbols from /usr/lib/libdl.so.1...done.
Loaded symbols for /usr/lib/libdl.so.1
Reading symbols from /usr/lib/libpopt.so.0...done.
Loaded symbols for /usr/lib/libpopt.so.0
Reading symbols from /usr/lib/libc.so.1...done.
Loaded symbols for /usr/lib/libc.so.1
Reading symbols from /usr/lib/libmp.so.2...done.
Loaded symbols for /usr/lib/libmp.so.2
Reading symbols from 
/usr/platform/SUNW,Sun-Fire-280R/lib/libc_psr.so.1...done.
Loaded symbols for /usr/platform/SUNW,Sun-Fire-280R/lib/libc_psr.so.1
Reading symbols from /usr/lib/nss_files.so.1...done.
Loaded symbols for /usr/lib/nss_files.so.1
Reading symbols from /usr/lib/nss_ldap.so.1...done.
Loaded symbols for /usr/lib/nss_ldap.so.1
Reading symbols from /usr/lib/libpthread.so.1...done.
Loaded symbols for /usr/lib/libpthread.so.1
Reading symbols from /usr/local/ldapsdk5/lib/libldap50.so...done.
Loaded symbols for /usr/local/ldapsdk5/lib/libldap50.so
Reading symbols from /usr/local/ldapsdk5/lib/libssldap50.so...done.
Loaded symbols for /usr/local/ldapsdk5/lib/libssldap50.so
Reading symbols from /usr/local/ldapsdk5/lib/libssl3.so...done.
Loaded symbols for /usr/local/ldapsdk5/lib/libssl3.so
---Type return to continue, or q return to quit---
Reading symbols from /usr/local/ldapsdk5/lib/libnss3.so...done.
Loaded symbols for /usr/local/ldapsdk5/lib/libnss3.so
Reading symbols from /usr/local/ldapsdk5/lib/libnspr4.so...done.
Loaded symbols for /usr/local/ldapsdk5/lib/libnspr4.so
Reading symbols from /usr/local/ldapsdk5/lib/libprldap50.so...done.
Loaded symbols for /usr/local/ldapsdk5/lib/libprldap50.so
Reading symbols from /usr/local/ldapsdk5/lib/libplc4.so...done.
Loaded symbols for /usr/local/ldapsdk5/lib/libplc4.so
Reading symbols from /usr/local/ldapsdk5/lib/libplds4.so...done.
Loaded symbols for /usr/local/ldapsdk5/lib/libplds4.so
Reading symbols from /usr/lib/libdb-3.3.so...done.
Loaded symbols for /usr/lib/libdb-3.3.so
Reading symbols from /usr/lib/libresolv.so.2...done.
Loaded symbols for /usr/lib/libresolv.so.2
Reading symbols from /usr/lib/libthread.so.1...done.
Loaded symbols for /usr/lib/libthread.so.1
Reading symbols from /usr/lib/librt.so.1...done.
Loaded symbols for /usr/lib/librt.so.1
Reading symbols from /usr/lib/libaio.so.1...done.
Loaded symbols for /usr/lib/libaio.so.1
sol-thread active.
Retry #1:
Retry #2:
Retry #3:
Retry #4:
[New LWP1]
[New Thread 1 (LWP 1)]
Symbols already loaded for /usr/lib/libsec.so.1
Symbols already loaded for /usr/lib/libgen.so.1
Symbols already loaded for /usr/lib/libsocket.so.1
Symbols already loaded for /usr/lib/libnsl.so.1
Symbols already loaded for /usr/lib/libdl.so.1
Symbols already loaded for /usr/lib/libpopt.so.0
Symbols already loaded for /usr/lib/libc.so.1
Symbols already loaded for /usr/lib/libmp.so.2
Symbols already loaded for 
/usr/platform/SUNW,Sun-Fire-280R/lib/libc_psr.so.1
Symbols already loaded for /usr/lib/nss_files.so.1
Symbols already loaded for /usr/lib/nss_ldap.so.1
Symbols already loaded for /usr/lib/libpthread.so.1
Symbols already loaded for /usr/local/ldapsdk5/lib/libldap50.so
Symbols already loaded for /usr/local/ldapsdk5/lib/libssldap50.so
Symbols already loaded for /usr/local/ldapsdk5/lib/libssl3.so
Symbols already loaded for /usr/local/ldapsdk5/lib/libnss3.so
Symbols already loaded for /usr/local/ldapsdk5/lib/libnspr4.so
Symbols already loaded for /usr/local/ldapsdk5/lib/libprldap50.so
Symbols already loaded for /usr/local/ldapsdk5/lib/libplc4.so
Symbols already loaded for /usr/local/ldapsdk5/lib/libplds4.so
Symbols already loaded for /usr/lib/libdb-3.3.so
Symbols already loaded for /usr/lib/libresolv.so.2
Symbols already loaded for /usr/lib/libthread.so.1
Symbols already loaded for /usr/lib/librt.so.1
Symbols already loaded for /usr/lib/libaio.so.1
[Switching to Thread 1 (LWP 1)]
signal handler called
(gdb) bt
#0  signal handler called
#1  0xfecd9794 in __sigprocmask () from /usr/lib/libthread.so.1
#2  0xfecce148 in _sigon () from /usr/lib/libthread.so.1
#3  0xfecd05bc in thr_sigsetmask () from /usr/lib/libthread.so.1
#4  signal 

Re: Solaris fcntl CPU/Lock update

2003-01-31 Thread jra
On Fri, Jan 31, 2003 at 09:07:23AM -0800, Jeff Mandel wrote:
 I have followed this fcntl bug closely, and I just applied a T-patch for 
 solaris 8 which brought the kernel 108528-19. This includes the fix for 
 4735093. This has not fixed the problem of smbd growing to consume all 
 available CPU.
 Environment is SunOS reiger 5.8 Generic_108528-19 sun4u sparc 
 SUNW,Sun-Fire-280R
 nss_ldap-203
 pam_ldap-137
 
 Here's an excerpt of the truss I've used to diagnose this with sun.
 
 24495/1:*** SUID: ruid/euid/suid = 0 / 3007 / 3007  ***
 24495/1:*** SGID: rgid/egid/sgid = 0 / 125 / 125  ***
 Base time stamp:  1041263328.3198  [ Mon Dec 30 16:48:48 CET 2002 ]
 24495/1:psargs: /usr/local/samba/bin/smbd -D 
 -s/usr/local/samba/lib/smb.
 conf
 24495/1: 0.0012 sigprocmask(SIG_SETMASK, 0xFED2AD70, 0xFFBEDF10) = 0
 24495/1: set = 0xFFBFFEFF 0x1FFF 0 0
 24495/1:oset = 0 0 0 0
 24495/1: 0.0016 lwp_kill(1, SIGUSR1)= 0
 24495/1: 0.0018 sigprocmask(SIG_SETMASK, 0xFFBEDF10, 0x) = 0
 24495/1: set = 0 0 0 0
 24495/1: 0.0019 Received signal #16, SIGUSR1 [caught]
 24495/1:  siginfo: SIGUSR1 pid=24495 uid=0 code=-1
 24495/1: 0.0021 setcontext(0xFFBED9C8)
 24495/1: 0.0022 sigprocmask(SIG_SETMASK, 0xFED2AD70, 0xFFBEDEB0) = 0
 24495/1: set = 0xFFBFFEFF 0x1FFF 0 0
 24495/1:oset = 0 0 0 0
 24495/1: 0.0025 lwp_kill(1, SIGUSR1)= 0

Please ensure the smbd process is compiled with debug symbols (-g)
and then attach to it with gdb and please send in a stack backtrace
(bt command in gdb).

Thanks,

Jeremy.

 *** Repeats continuously ***
 
 Any suggestions?