strace-4.5.12-0.EL3.1 for x86_64 writex is a 32-bit binary. $ strace -v ./writevx 1.1.1.1 23 execve("./writevx", ["./writevx", "1.1.1.1", "23"], ["HOSTNAME=test.surrey.redhat."..., "TERM=xterm-color", "SHELL=/bin/bash", "HISTSIZE=1000", "SSH_CLIENT=172.16.10.53 45832 22"..., "QTDIR=/usr/lib64/qt-3.1", "SSH_TTY=/dev/pts/0", "USER=bnocera", "LS_COLORS=no=00:fi=00:di=01;34:l"..., "MAIL=/var/spool/mail/bnocera", "PATH=/usr/kerberos/bin:/usr/loca"..., "INPUTRC=/etc/inputrc", "PWD=/home/bnocera", "LANG=en_GB.UTF-8", "SSH_ASKPASS=/usr/libexec/openssh"..., "SHLVL=1", "HOME=/home/bnocera", "LOGNAME=bnocera", "SSH_CONNECTION=172.16.10.53 4583"..., "LESSOPEN=|/usr/bin/lesspipe.sh %"..., "G_BROKEN_FILENAMES=1", "_=/usr/bin/strace"]) = 0 [ Process PID=16777 runs in 32 bit mode. ] uname({sysname="Linux", nodename="test.surrey.redhat.com", release="2.4.21-37.EL", version="#1 SMP Wed Sep 7 13:32:18 EDT 2005", machine="x86_64"}) = 0 brk(0) = 0x804a000 open("/etc/ld.so.preload", O_RDONLY) = -1 ENOENT (No such file or directory) open("/etc/ld.so.cache", O_RDONLY) = 3 fstat64(0x3, 0xffff9458) = 0 old_mmap(NULL, 117825, PROT_READ, MAP_PRIVATE, 3, 0) = 0x40016000 close(3) = 0 open("/lib/tls/libc.so.6", O_RDONLY) = 3 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\200X\1"..., 512) = 512 fstat64(0x3, 0xffff94d0) = 0 old_mmap(NULL, 1280524, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x40033000 old_mmap(0x40166000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x132000) = 0x40166000 old_mmap(0x40169000, 10764, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x40169000 close(3) = 0 old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x4016c000 set_thread_area(0xffff9af0) = 0 munmap(0x40016000, 117825) = 0 socket(PF_INET, 0 /* SOCK_??? */, 134513437) = 3 connect(-108508053766141, ptrace: umoven: Input/output error {...}, 134513437 <unfinished ...>
Created attachment 121540 [details] writevx.c
The bug is in the biarch decoding the "subcall" type syscalls like the i386 socket syscalls when strace is 64 bit. I've put in a fix upstream.
This issue is on Red Hat Engineering's list of planned work items for the upcoming Red Hat Enterprise Linux 3.8 release. Engineering resources have been assigned and barring unforeseen circumstances, Red Hat intends to include this item in the 3.8 release.
An advisory has been issued which should help the problem described in this bug report. This report is therefore being closed with a resolution of ERRATA. For more information on the solution and/or where to find the updated files, please follow the link below. You may reopen this bug report if the solution does not work for you. http://rhn.redhat.com/errata/RHBA-2006-0408.html