Bug 218043

Summary: umovestr I/O errors on 32-bit binaries
Product: Red Hat Enterprise Linux 4 Reporter: Bastien Nocera <bnocera>
Component: straceAssignee: Roland McGrath <roland>
Status: CLOSED ERRATA QA Contact: Brian Brock <bbrock>
Severity: medium Docs Contact:
Priority: medium    
Version: 4.0CC: jan.kratochvil, tao
Target Milestone: ---   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: RHBA-2007-0820 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2007-11-15 16:05:42 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 218433    
Attachments:
Description Flags
writevx.c
none
strace-biarch-iovec.patch none

Description Bastien Nocera 2006-12-01 15:07:23 UTC
strace-4.5.14-0.EL4.1.x86_64

On x86-64, with a 32-bit binary.

1. gcc -m32 -o writex writex.c
2. sudo strace -o foo -v ./writevx 127.0.0.1 22
[ Process PID=4407 runs in 32 bit mode. ]
umovestr: Input/output error
umovestr: Input/output error

Comment 1 Bastien Nocera 2006-12-01 15:07:25 UTC
Created attachment 142573 [details]
writevx.c

Comment 2 Jakub Jelinek 2006-12-05 09:11:57 UTC
Even:
#include <sys/uio.h>

int
main (void)
{
  struct iovec v[2];
  v[0].iov_base = "abc";
  v[0].iov_len = 3;
  v[1].iov_base = "\n";
  v[1].iov_len = 1;
  writev (1, v, 2);
  return 0;
}
is enough to reproduce it.  64-bit strace just doesn't handle 32-bit
{read,write}v.

Comment 3 Jakub Jelinek 2006-12-05 10:57:16 UTC
Created attachment 142820 [details]
strace-biarch-iovec.patch

Patch to fix it.  biarch support in current strace is clearly a hack, but until
if ever that is rewritten into a framework that can naturally cope with this,
I wrote a hack solution just for struct iovec.

Comment 4 Dmitry V. Levin 2006-12-13 21:51:41 UTC
Fixed upstream.

Comment 5 Roland McGrath 2007-01-11 11:16:00 UTC
these bugs are fixed upstream in the coming 4.5.15 release

Comment 6 Roland McGrath 2007-01-30 07:45:55 UTC
This bug should be fixed in strace-4.5.15-1.el4 rpms.

Comment 8 RHEL Program Management 2007-05-09 08:42:36 UTC
This request was evaluated by Red Hat Product Management for inclusion in a Red
Hat Enterprise Linux maintenance release.  Product Management has requested
further review of this request by Red Hat Engineering, for potential
inclusion in a Red Hat Enterprise Linux Update release for currently deployed
products.  This request is not yet committed for inclusion in an Update
release.

Comment 10 Roland McGrath 2007-07-05 19:04:29 UTC
This should already be fixed in the RHEL4.5 strace version (4.5.15-1.el4.1).
Please verify and close.

Comment 12 Jan Kratochvil 2007-08-03 14:08:53 UTC
Fixed already some time ago in Rawhide:
* Tue Jan 16 2007 Roland McGrath <roland> - 4.5.15-1
- biarch fixes ([...], #218043)

therefore it is present in RHEL-4.5 strace-4.5.15-1.el4.1.

upstream:

2006-12-10  Dmitry V. Levin <ldv>

        Add biarch support for "struct iovec".
        * defs.h (personality_wordsize): Add.
        * io.c [HAVE_SYS_UIO_H] (tprint_iov): [LINUX && 
        SUPPORTED_PERSONALITIES > 1] Handle 32-bit personality.
        * util.c [HAVE_SYS_UIO_H] (dumpiov): [LINUX &&
        SUPPORTED_PERSONALITIES > 1] Likewise.
        Patch from Jakub Jelinek.
        Fixes RH#218433.


Comment 18 errata-xmlrpc 2007-11-15 16:05:42 UTC
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-2007-0820.html