kern/53847: software hang

kai.mosebach at komadev.de kai.mosebach at komadev.de
Fri Jun 27 10:00:29 PDT 2003


>Number:         53847
>Category:       kern
>Synopsis:       software hang
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Fri Jun 27 10:00:26 PDT 2003
>Closed-Date:
>Last-Modified:
>Originator:     Charlie &
>Release:        FreeBSD 5.1-CURRENT i386
>Organization:
komadev.de	
>Environment:
System: FreeBSD devil 5.1-CURRENT FreeBSD 5.1-CURRENT #1: Mon Jun 23 16:05:33 CEST 2003 root at devil:/usr/src/sys/i386/compile/NUDEVIL i386
AMD Duron 1300
i386
>Description:
i am currently porting the OpenSource Database SAPDB (www.sapdb.org) to FreeBSD 5.

On FreeBSD5.0 most of the stuff runs fine now (see www.komadev.de/sapdb), But as i wanted to try it out on FreeBSD 5.1-Release,first of all most Of the programs a not working as expected. (lock ups etc)

A truss against these programms creates this syslogd entries:

Jun 16 23:49:04 devil kernel: Sleeping on "stopevent" with the following non-sleepablelocks held: Jun 16 23:49:04 devil kernel: exclusive sleep mutex sigacts r = 0 (0xc69a6aa8) locked @ kern/kern_synch.c:296 Jun 16 23:49:04 devil kernel: Sleeping on "stopevent" with the following non-sleepablelocks held: Jun 16 23:49:04 devil kernel: exclusive sleep mutex sigacts r = 0 (0xc69a6aa8) locked @ kern/subr_trap.c:248

A simple run of the programs does not create a log entry.

When i am using the libc.so.5 from FreeBSD5.0 within FreeBSD 5.1 all the Stuff is running fine again, all but python which is used within the DB, Then leading to an "__fpclassifyd" missing .so linker entry.

The progs are using the linuxthreads libs

Any help is greatly apreciated.

Thanx Kai

PS : The strace looks like this :

[root at devil:/projects/sapdb] # strace dbmcli
execve(0xbfbff098, [0xbfbff57c], [/* 0 vars */]) = 0
mmap(0, 3016, PROT_READ|PROT_WRITE, MAP_ANON, -1, 0) = 0x2819e000
munmap(0x2819e000, 3016)                = 0
__sysctl([...], 0x2819c748, 0xbfbff34c, NULL, 0) = 0
mmap(0, 32768, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANON, -1, 0) = 0x2819e000
geteuid(0x28184000)                     = 0
getuid()                                = 0 (euid 0)
getegid(0x28184000)                     = 0
getgid()                                = 0 (egid 0)
open("/var/run/ld-elf.so.hints", O_RDONLY) = 3
read(3, "o large\0%s: mmap of data failed:"..., 128) = 128
lseek(3, 549755813888, SEEK_SET)        = 128
read(3, "/usr/lib:/usr/local/lib:/usr/X11"..., 55) = 55
close(3)                                = 0
access("/usr/lib/libcrypt.so.2", F_OK)  = 0 open("/usr/lib/libcrypt.so.2", O_RDONLY) = 3
fstat(3, {st_mode=0, st_size=0, ...})   = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 mmap(0, 102400, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_NOCORE, 3, 0) = 0x281a6000 mprotect(0x281ac000, 4096, PROT_READ|PROT_WRITE|PROT_EXEC) = 0 mprotect(0x281ac000, 4096, PROT_READ|PROT_EXEC) = 0 mmap(0x281ad000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x700000000000) = 0x281ad000 mmap(0x281ae000, 69632, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANON, -1, 0) = 0x281ae000
close(3)                                = 0
access("/usr/lib/liblthread.so.3", F_OK) = -1 ENOENT (No such file or directory) access("/usr/local/lib/liblthread.so.3", F_OK) = 0 open("/usr/local/lib/liblthread.so.3", O_RDONLY) = 3
fstat(3, {st_mode=0, st_size=0, ...})   = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 mmap(0, 151552, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_NOCORE, 3, 0) = 0x281bf000 mprotect(0x281d7000, 4096, PROT_READ|PROT_WRITE|PROT_EXEC) = 0 mprotect(0x281d7000, 4096, PROT_READ|PROT_EXEC) = 0 mmap(0x281d8000, 32768, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x1900000000000) = 0x281d8000 mmap(0x281e0000, 16384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANON, -1, 0) = 0x281e0000
close(3)                                = 0
access("/usr/lib/libstdc++.so.4", F_OK) = 0 open("/usr/lib/libstdc++.so.4", O_RDONLY) = 3
fstat(3, {st_mode=0, st_size=0, ...})   = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 mmap(0, 741376, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_NOCORE, 3, 0) = 0x281e4000 mprotect(0x2827e000, 4096, PROT_READ|PROT_WRITE|PROT_EXEC) = 0 mprotect(0x2827e000, 4096, PROT_READ|PROT_EXEC) = 0 mmap(0x2827f000, 86016, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x9b00000000000) = 0x2827f000 mmap(0x28294000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANON, -1, 0) = 0x28294000
close(3)                                = 0
access("/usr/lib/libm.so.2", F_OK)      = 0
open("/usr/lib/libm.so.2", O_RDONLY)    = 3
fstat(3, {st_mode=0, st_size=0, ...})   = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 mmap(0, 118784, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_NOCORE, 3, 0) = 0x28299000 mprotect(0x282b0000, 4096, PROT_READ|PROT_WRITE|PROT_EXEC) = 0 mprotect(0x282b0000, 4096, PROT_READ|PROT_EXEC) = 0 mmap(0x282b1000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x1800000000000) = 0x282b1000
close(3)                                = 0
access("/usr/lib/libc.so.5", F_OK)      = 0
open("/usr/lib/libc.so.5", O_RDONLY)    = 3
fstat(3, {st_mode=0, st_size=0, ...})   = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 mmap(0, 884736, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_NOCORE, 3, 0) = 0x282b6000 mprotect(0x28376000, 4096, PROT_READ|PROT_WRITE|PROT_EXEC) = 0 mprotect(0x28376000, 4096, PROT_READ|PROT_EXEC) = 0 mmap(0x28377000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0xc000000000000) = 0x28377000 mmap(0x2837c000, 73728, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANON, -1, 0) = 0x2837c000
close(3)                                = 0
access("/usr/lib/libm.so.2", F_OK)      = 0
mmap(0, 1832, PROT_READ|PROT_WRITE, MAP_ANON, -1, 0) = 0x2838e000
munmap(0x2838e000, 1832)                = 0
mmap(0, 640, PROT_READ|PROT_WRITE, MAP_ANON, -1, 0) = 0x2838e000
munmap(0x2838e000, 640)                 = 0
mprotect(0x281bf000, 102400, PROT_READ|PROT_WRITE|PROT_EXEC) = 0 mmap(0, 4528, PROT_READ|PROT_WRITE, MAP_ANON, -1, 0) = 0x2838e000
munmap(0x2838e000, 4528)                = 0
mprotect(0x281bf000, 102400, PROT_READ|PROT_EXEC) = 0 mprotect(0x281e4000, 634880, PROT_READ|PROT_WRITE|PROT_EXEC) = 0 mmap(0, 26976, PROT_READ|PROT_WRITE, MAP_ANON, -1, 0) = 0x2838e000
munmap(0x2838e000, 26976)               = 0
mprotect(0x281e4000, 634880, PROT_READ|PROT_EXEC) = 0
mmap(0, 2272, PROT_READ|PROT_WRITE, MAP_ANON, -1, 0) = 0x2838e000
munmap(0x2838e000, 2272)                = 0
mprotect(0x282b6000, 790528, PROT_READ|PROT_WRITE|PROT_EXEC) = 0 mmap(0, 21016, PROT_READ|PROT_WRITE, MAP_ANON, -1, 0) = 0x2838e000
munmap(0x2838e000, 21016)               = 0
mprotect(0x282b6000, 790528, PROT_READ|PROT_EXEC) = 0 syscall_416(0x4, 0xbfbff478, 0xbfbff458) = 0
sigprocmask(SIG_BLOCK, NULL, [])        = 0
syscall_416(0x4, 0xbfbff458, 0)         = 0
getpid()                                = 30605 (ppid 30604)
syscall_416(0x1f, 0xbfbff464, 0)        = 0
syscall_416(0x1e, 0xbfbff464, 0)        = 0
sigprocmask(SIG_BLOCK, [], NULL)        = 0
__sysctl([hw.ncpu], 2, "\225j\377\377\334j\377\377qk\377\377\354j\377\377\24k\377"..., [1024], NULL, 0) = 0 __sysctl([114630717.192014751], 2, "\1\0\0\0\0\0\0\0\0\0\0\0\0\0`\277\0\0\0\0\0\0\0\0\0\0\0"..., [1768697699], NULL, 0) = 0 sigprocmask(SIG_BLOCK, ~[ILL TRAP ABRT EMT FPE BUS SEGV SYS], []) = 0 sigprocmask(SIG_SETMASK, [USR2], NULL)  = 0 readlink("/etc/malloc.conf", 0xbfbff460, 63) = -1 ENOENT (No such file or directory)
issetugid(0x28376030)                   = 0
getuid()                                = 0 (euid 0)
mmap(0, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANON, -1, 0) = 0x2838e000
break(0x81cf000)                        = 0
break(0x81d0000)                        = 0
break(0x81d1000)                        = 0
open("/dev/null", O_RDWR)               = 3
close(3)                                = 0
geteuid(0x8162159)                      = 0
break(0x81d2000)                        = 0
sigprocmask(SIG_SETMASK, NULL, [TRAP ABRT BUS SYS ALRM CHLD TTIN TTOU IO]) = 0 sigsuspend([ABRT PIPE ALRM TERM STOP CHLD TTOU IO INFO USR1 USR2]^C <unfinished ...> 

>How-To-Repeat:
 - Download sapdb build-421 and the config-421 from www.komadev.de/sapdb follow the installation instructions
 - After installation source the file /usr/local/sapdb/sapdb.env
 - Remove /usr/local/sapdb/depend/lib/bsd50 from LD_LIBRARY_PATH (this is the current workaround)
 - now execute dbmcli or any other tool from /usr/local/sapdb/depend/bin
>Fix:
 - Using FreeBSD5.0 libraries in LD_LIBRARY_PATH (bad hack!)

>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the freebsd-bugs mailing list