[Date Prev][Date Next]
[Chronological]
[Thread]
[Top]
need help diagnosing seg fault on solaris 2.6
I'm running Solaris 2.6 w/ gcc 2.9.5, openldap 2.0.27, openssl 0.9.6g...
I've tried many other versions of gcc/openldap/openssl in many different
combinations and get the same result...
I run this command to test:
truss -f /opt/openldap/bin/ldapsearch -ZZ -h ldap.domain.com -x -W -D
"cn=readonly,dc=domain,dc=com" -b 'dc=domain,dc=com'
'(objectClass=posixAccount)'
FYI - It works fine with non-ssl/tls connections.
I get this (on client):
10145: open("/etc/hosts", O_RDONLY) = 3
10145: fstat64(3, 0xEFFFCD60) = 0
10145: ioctl(3, TCGETA, 0xEFFFCCEC) Err#25 ENOTTY
10145: read(3, " #\n # I n t e r n e t".., 8192) = 152
10145: read(3, 0x0004354C, 8192) = 0
10145: llseek(3, 0, SEEK_CUR) = 152
10145: close(3) = 0
10145: so_socket(2, 2, 0, "", 1) = 3
10145: fcntl(3, F_GETFL, 0xEFFFF298) = 2
10145: fstat64(3, 0xEFFFF030) = 0
10145: getsockopt(3, 65535, 8192, 0xEFFFF134, 0xEFFFF12C) = 0
10145: fstat64(3, 0xEFFFF030) = 0
10145: getsockopt(3, 65535, 8192, 0xEFFFF134, 0xEFFFF130) = 0
10145: setsockopt(3, 65535, 8192, 0xEFFFF134, 4) = 0
10145: fcntl(3, F_SETFL, 0x00000082) = 0
10145: connect(3, 0xEFFFF3A0, 16) Err#150
EINPROGRESS
10145: poll(0xEFFFD218, 1, -1) = 1
10145: getpeername(3, 0xEFFFF1F8, 0xEFFFF1F4) = 0
10145: fcntl(3, F_GETFL, 0x00000000) = 130
10145: fstat64(3, 0xEFFFF030) = 0
10145: getsockopt(3, 65535, 8192, 0xEFFFF134, 0xEFFFF12C) = 0
10145: fstat64(3, 0xEFFFF030) = 0
10145: getsockopt(3, 65535, 8192, 0xEFFFF134, 0xEFFFF130) = 0
10145: setsockopt(3, 65535, 8192, 0xEFFFF134, 4) = 0
10145: fcntl(3, F_SETFL, 0x00000002) = 0
10145: brk(0x00047320) = 0
10145: brk(0x00049320) = 0
10145: time() = 1047503920
10145: write(3, " 01D020101 w188016 1 . 3".., 31) = 31
10145: poll(0xEFFFD4B0, 1, -1) = 1
10145: read(3, " 0\f020101 x07\n01\004\0".., 16384) = 14
10145: time() = 1047503920
10145: Incurred fault #6, FLTBOUNDS %pc = 0x00625D60
10145: siginfo: SIGSEGV SEGV_MAPERR addr=0x00625D60
10145: Received signal #11, SIGSEGV [default]
10145: siginfo: SIGSEGV SEGV_MAPERR addr=0x00625D60
10145: *** process killed ***
On openldap server:
aemon: added 6r
daemon: added 7r
daemon: select: listen=6 active_threads=0 tvp=NULL
daemon: select: listen=7 active_threads=0 tvp=NULL
daemon: activity on 1 descriptors
daemon: new connection on 8
daemon: added 8r
daemon: activity on:
daemon: select: listen=6 active_threads=0 tvp=NULL
daemon: select: listen=7 active_threads=0 tvp=NULL
daemon: activity on 1 descriptors
daemon: activity on: 8r
daemon: read activity on 8
connection_get(8)
connection_get(8): got connid=0
connection_read(8): checking for input on id=0
ber_get_next
ldap_read: want=1, got=1
0000: 30 0
ldap_read: want=1, got=1
0000: 1d .
ldap_read: want=29, got=29
0000: 02 01 01 77 18 80 16 31 2e 33 2e 36 2e 31 2e 34
...w...1.3.6.1.4
0010: 2e 31 2e 31 34 36 36 2e 32 30 30 33 37 .1.1466.20037
ber_get_next: tag 0x30 len 29 contents:
ber_dump: buf=0x000b4410 ptr=0x000b4410 end=0x000b442d len=29
0000: 02 01 01 77 18 80 16 31 2e 33 2e 36 2e 31 2e 34
...w...1.3.6.1.4
0010: 2e 31 2e 31 34 36 36 2e 32 30 30 33 37 .1.1466.20037
ber_get_next
ldap_read: want=1 error=Resource temporarily unavailable
ber_get_next on fd 8 failed errno=11 (Resource temporarily unavailable)
do_extended
ber_scanf fmt ({a) ber:
ber_dump: buf=0x000b4410 ptr=0x000b4413 end=0x000b442d len=26
0000: 77 18 80 16 31 2e 33 2e 36 2e 31 2e 34 2e 31 2e
w...1.3.6.1.4.1.
0010: 31 34 36 36 2e 32 30 30 33 37 1466.20037
do_extended: oid=1.3.6.1.4.1.1466.20037
send_ldap_extended 0: (0)
send_ldap_response: msgid=1 tag=120 err=0
ber_flush: 14 bytes to sd 8
0000: 30 0c 02 01 01 78 07 0a 01 00 04 00 04 00 0....x........
ldap_write: want=14, written=14
0000: 30 0c 02 01 01 78 07 0a 01 00 04 00 04 00 0....x........
daemon: select: listen=6 active_threads=1 tvp=NULL
daemon: select: listen=7 active_threads=1 tvp=NULL
daemon: activity on 1 descriptors
daemon: activity on: 8r
daemon: read activity on 8
connection_get(8)
connection_get(8): got connid=0
connection_read(8): checking for input on id=0
TLS trace: SSL_accept:before/accept initialization
tls_read: want=11, got=0
TLS: can't accept.
connection_read(8): TLS accept error error=-1 id=0, closing
connection_closing: readying conn=0 sd=8 for close
connection_close: conn=0 sd=8
daemon: removing 8
daemon: select: listen=6 active_threads=0 tvp=NULL
daemon: select: listen=7 active_threads=0 tvp=NULL
daemon: activity on 1 descriptors
daemon: select: listen=6 active_threads=0 tvp=NULL
daemon: select: listen=7 active_threads=0 tvp=NULL
I don't even know where to start... I've built many times on many
platforms and all work, the server is serving out data to many clients
fine over TLS..