master segfaults on Solaris 9

Markus Wernig listener at wernig.net
Wed Feb 4 03:47:31 EST 2004


Hi

I have cyrus-imapd 2.2.3 with SASL 2.1.17 on Solaris 9 sparc.

After installing the latest Solaris patches cyrus master will not start
any longer, but segfaults without dumping core.

I have recompiled every lib that cyrus is linked with (ssl, berkdb,
sasl), and I have of course recompiled cyrus-imap -  to no avail.
None of the other self-compiled programs show the problem (mysql,
sendmail, apache, sshd, openssl ...)

Below are the last lines of "truss -f /usr/cyrus/bin/master". This ends
in the segfault. The complete output can be found at
http://markus.wernig.net/en/cyrstart.truss.txt.

BUT: If I start master with "sotruss /usr/cyrus/bin/master", it does not
segfault, and I can even connect to all ports and sockets !!! I am a bit
at a loss with this. What does sotruss do? To my understanding it's a
shell script that sets some environment variables for LD and then runs
the program, relying on ld producing the output.

BTW ldd shows that master is not linked against sasl dynamically. Is
this what you'd expect?
ldd /usr/cyrus/bin/master
        libdl.so.1 =>    /usr/lib/libdl.so.1
        libresolv.so.2 =>        /usr/lib/libresolv.so.2
        libsocket.so.1 =>        /usr/lib/libsocket.so.1
        libnsl.so.1 =>   /usr/lib/libnsl.so.1
        libdb-4.1.so =>  /usr/local/BerkeleyDB.4.1/lib/libdb-4.1.so
        libssl.so.0.9.7 =>       /usr/local/lib/libssl.so.0.9.7
        libcrypto.so.0.9.7 =>    /usr/local/lib/libcrypto.so.0.9.7
        libc.so.1 =>     /usr/lib/libc.so.1
        libmp.so.2 =>    /usr/lib/libmp.so.2
        libgcc_s.so.1 =>         /usr/local/lib/libgcc_s.so.1
        /usr/platform/SUNW,UltraSPARC-IIi-cEngine/lib/libc_psr.so.1


I'm grateful for every hint on this.
TIA /markus

3451:   sysconfig(_CONFIG_NGROUPS)                      = 16
3451:   open("/etc/default/nss", O_RDONLY|O_LARGEFILE)  = 40
3451:   fcntl(40, F_DUPFD, 0x00000100)                  = 256
3451:   close(40)                                       = 0
3451:   read(256, " #   i d e n t\t " @ ( #".., 1024)   = 749
3451:   read(256, 0x0003DE08, 1024)                     = 0
3451:   close(256)                                      = 0
3451:   stat("/usr/local/lib/nss_files.so.1", 0xFFBFECD4) Err#2 ENOENT
3451:   stat("/usr/local/BerkeleyDB.4.1/lib/nss_files.so.1", 0xFFBFECD4)
Err#2 ENOENT
3451:   stat("/usr/lib/sasl2/nss_files.so.1", 0xFFBFECD4) Err#2 ENOENT
3451:   stat("/usr/lib/nss_files.so.1", 0xFFBFECD4)     = 0
3451:   open("/etc/group", O_RDONLY)                    = 40
3451:   fstat64(40, 0xFFBFF278)                         = 0
3451:   brk(0x00040DE0)                                 = 0
3451:   brk(0x00042DE0)                                 = 0
3451:   fstat64(40, 0xFFBFF120)                         = 0
3451:   ioctl(40, TCGETA, 0xFFBFF204)                   Err#25 ENOTTY
3451:   read(40, " r o o t : : 0 : r o o t".., 8192)    = 387
3451:   read(40, 0x0003EE74, 8192)                      = 0
3451:   llseek(40, 0, SEEK_CUR)                         = 387
3451:   close(40)                                       = 0
3451:   setgroups(1, 0x0003DDC0)                        = 0
3451:   setgid(25)                                      = 0
3451:   setuid(5002)                                    = 0
3451:   time()                                          = 1075823457
3451:   fstat(6, 0xFFBFF7A0)                            = 0
3451:   time()                                          = 1075823457
3451:       Incurred fault #6, FLTBOUNDS  %pc = 0xFEEC45A8
3451:         siginfo: SIGSEGV SEGV_MAPERR addr=0xFFC00460
3451:       Received signal #11, SIGSEGV [default]
3451:         siginfo: SIGSEGV SEGV_MAPERR addr=0xFFC00460






More information about the Info-cyrus mailing list