strace hangs waiting for lock
Jens Schweikhardt
schweikh at schweikhardt.net
Tue Jan 6 12:43:22 PST 2004
hello, world\n
it appears the devel/strace port's strace utility does not work anymore
(haven't tried for a long time, so this could be long standing issue).
To reproduce:
schweikh at hal9000:~ 1 $ strace -V
strace -- version 4.5.1
schweikh at hal9000:~ $ uname -a
FreeBSD hal9000.schweikhardt.net 5.2-CURRENT FreeBSD 5.2-CURRENT #0: Mon Dec 22 15:03:45 CET 2003 toor at hal9000.schweikhardt.net:/usr/obj/usr/src/sys/HAL9000 i386
schweikh at hal9000:~ $ strace ls # does nothing, just waits.
^C
During this, ps ax shows:
schweikh at hal9000:~ $ psg strace
UID PID PPID CPU PRI NI VSZ RSS MWCHAN STAT TT TIME COMMAND
1001 2630 866 0 8 0 1356 828 pioctl I+ p1 0:00.00 strace ls
1001 2631 2630 0 96 0 1356 784 - TL+ p1 0:00.00 strace ls
ps(1) says "L Marks a process that is waiting to acquire a lock."
For some reason, the lock is never acquired.
If however, I use ktrace *in addition*, everything works:
schweikh at hal9000:~ 130 $ ktrace strace ls
execve(0xbfbfe1fc, [0xbfbfe6c0], [/* 0 vars */]) = 0
mmap(0, 3568, PROT_READ|PROT_WRITE, MAP_ANON, -1, 0) = 0x2806f000
munmap(0x2806f000, 3568) = 0
__sysctl([...], 0x2806d46c, 0xbfbfe4a4, NULL, 0) = 0
mmap(0, 32768, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANON, -1, 0) = 0x2806f000
issetugid(0x2804d000) = 0
open("/etc/libmap.conf", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/var/run/ld-elf.so.hints", O_RDONLY) = 3
read(3, " file version\0%s: unsupported fi"..., 128) = 128
lseek(3, 128, SEEK_SET) = 128
[...]
Regards,
Jens
--
Jens Schweikhardt http://www.schweikhardt.net/
SIGSIG -- signature too long (core dumped)
More information about the freebsd-current
mailing list