Preparing for the next release: call for testing

Mike Frysinger vapier at gentoo.org
Fri Feb 27 06:40:56 UTC 2015


On 27 Feb 2015 01:06, Mike Frysinger wrote:
> i'll look into the ppc/sparc ipc_sem failures.  i suspect it's a kernel/system 
> config thing we need to test for and SKIP.

in both cases it's a 32bit prog running under a 64bit kernel.  i suspect the 
kernel is broken but no one noticed because who cares about ipc :).  the same 
ppc system passes tests with a 64bit userland.  i don't have sparc 64bit 
userland to check.

i tried messing with setarch and passing in -XBIST3LZR, and now running ipc_sem 
has created an unkillable process :D.  which makes me think even more that 
there's a kernel mismatch here.

maybe we should use errno==EFAULT as a marker ?  a non-fatal ERROR would be 
nice, but the test framework doesn't support such a thing.  you can't do 
XFAIL/PASS dynamically with the automake framework.  maybe something like the
attached patch ?


here is the ppc one:
$ strace ./ipc_sem
execve("./ipc_sem", ["./ipc_sem"], [/* 27 vars */]) = 0
brk(0)                                  = 0x10012000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xf7f4d000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=15865, ...}) = 0
mmap(NULL, 15865, PROT_READ, MAP_PRIVATE, 3, 0) = 0xf7f49000
close(3)                                = 0
open("/lib/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\1\2\1\3\0\0\0\0\0\0\0\0\0\3\0\24\0\0\0\1\0\2\35\254\0\0\0004"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=1471360, ...}) = 0
mmap(0xfe77000, 1541424, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xfe77000
mprotect(0xffd8000, 65536, PROT_NONE)   = 0
mmap(0xffe8000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x161000) = 0xffe8000
mmap(0xffed000, 9520, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xffed000
close(3)                                = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xf7f48000
mprotect(0xffe8000, 16384, PROT_READ)   = 0
mprotect(0x10010000, 4096, PROT_READ)   = 0
mprotect(0xf7f4e000, 4096, PROT_READ)   = 0
munmap(0xf7f49000, 15865)               = 0
semget(IPC_PRIVATE, 1, 0600)            = 2752514
fstat64(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 2), ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xf7f4c000
write(1, "semget\\(IPC_PRIVATE, 1, 0600\\) +"..., 42semget\(IPC_PRIVATE, 1, 0600\) += 2752514
) = 42
semctl(2752514, 0, IPC_64|IPC_STAT, 0xffce4e3c) = 0
write(1, "semctl\\(2752514, 0, IPC_STAT, 0x"..., 48semctl\(2752514, 0, IPC_STAT, 0xffce4ec0\) += 0
) = 48
semctl(0, 0, SEM_INFO, 0xffce4e3c)      = -1 EFAULT (Bad address)
semctl(2752514, 0, IPC_RMID, 0xffce4e3c) = 0
write(1, "semctl\\(2752514, 0, IPC_RMID, 0\\"..., 39semctl\(2752514, 0, IPC_RMID, 0\) += 0
) = 39
exit_group(1)                           = ?
+++ exited with 1 +++


sparc one looks largely the same:
$ strace ./ipc_sem
execve("./ipc_sem", ["./ipc_sem"], [/* 45 vars */]) = 0
brk(0)                                  = 0x24000
uname({sys="Linux", node="bender", ...}) = 0
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=21673, ...}) = 0
mmap(NULL, 21673, PROT_READ, MAP_PRIVATE, 3, 0) = 0xf798c000
close(3)                                = 0
open("/lib/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\1\2\1\0\0\0\0\0\0\0\0\0\0\3\0\22\0\0\0\1\0\2\2@\0\0\0004"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=1481056, ...}) = 0
mmap(NULL, 1555224, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xf77e8000
mprotect(0xf7950000, 57344, PROT_NONE)  = 0
mmap(0xf795e000, 16384, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x166000) = 0xf795e000
mmap(0xf7962000, 6936, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xf7962000
close(3)                                = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xf798a000
mprotect(0xf795e000, 8192, PROT_READ)   = 0
mprotect(0x20000, 8192, PROT_READ)      = 0
mprotect(0xf7992000, 8192, PROT_READ)   = 0
munmap(0xf798c000, 21673)               = 0
semget(IPC_PRIVATE, 1, 0600)            = 294912
fstat64(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 2), ...}) = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xf7990000
write(1, "semget\\(IPC_PRIVATE, 1, 0600\\) +"..., 41semget\(IPC_PRIVATE, 1, 0600\) += 294912
) = 41
semctl(294912, 0, IPC_64|IPC_STAT, 0xffdb7138) = -1 EFAULT (Bad address)
semctl(294912, 0, IPC_64|IPC_RMID, 0xffdb7138) = 0
write(1, "semctl\\(294912, 0, IPC_RMID, 0\\)"..., 38semctl\(294912, 0, IPC_RMID, 0\) += 0
) = 38
exit_group(1)                           = ?
+++ exited with 1 +++
-mike
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-ipc_sem-detect-broken-kernels.patch
Type: text/x-diff
Size: 1447 bytes
Desc: not available
URL: <http://lists.strace.io/pipermail/strace-devel/attachments/20150227/c7fbedff/attachment.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://lists.strace.io/pipermail/strace-devel/attachments/20150227/c7fbedff/attachment-0001.bin>


More information about the Strace-devel mailing list