[Fwd: [gfarm-discuss:03663] Re: 32bit application segmentation fault on 64bit]
Jay Scherrer
jay at scherrer.com
Thu Aug 24 05:54:08 UTC 2006
Somsak Sriprayoonsakul wrote:
> Hello,
>
> I'm trying to LD_PRELOAD an user-level file system library for
> 32bit application on x86_64 machine (CentOS 4.3/RHEL4). Somehow the
> application segfault everytime. I've install both 32bit and 64bit
> libraries, and the test application is just a simple "ls" command (the
> real one will be an proprietary animation rendering program so I can't
> recompile it to 64bit). Below and attach file are all logs.
>
> My question is, is it possible to do this on x86_64? LD_PRELOAD
> either 32bit or 64bit application, while providing all necessary
> library for the applicaion. The answer from google seems to be yes,
> but what've I done wrong?
>
> -------- Original Message --------
> Subject: [gfarm-discuss:03663] Re: 32bit application segmentation
> fault on 64bit
> Date: Fri, 18 Aug 2006 16:33:44 +0700
> From: Somsak Sriprayoonsakul <somsak_sr at thaigrid.or.th>
> Reply-To: gfarm-discuss at apgrid.org
> Organization: Thai National Grid Center
> To: gfarm-discuss at apgrid.org
> References: <452F37AE49199D49B1702D7D45038C4D6B0E13 at et.ad.sdsc.edu>
> <44E2A2A1.3030804 at thaigrid.or.th>
> <17635.2643.47481.577333 at srapc2586.sra.co.jp>
>
>
>
> The problem is less serious now since we successfully using gfarm-fuse
> with the application. Anyways I've done strace log and here it is
>
> 1. Normal case
>
> [somsak_sr at anatta ~]$ LD_PRELOAD="/usr/lib64/gfarm/libc-not-hidden.so"
> /bin/ls
> bash clusterscores-1.0b0 globus-4.0.2-1.src.rpm
> magi src
> benchmark clusterscores-1.0b0.tar.gz globus_povray_stub
> rocksmountdirty.sh tmp
> bin clusterscores_result log
> rpm usr
> clusterscores gfarm-1.3.1-0.src.rpm ls
> software work
> [somsak_sr at anatta ~]$ LD_PRELOAD="/usr/lib/gfarm/libc-not-hidden.so"
> $PWD/ls
> Segmentation fault
> [somsak_sr at anatta ~]$ file $PWD/ls
> /home/somsak_sr/ls: ELF 32-bit LSB executable, Intel 80386, version 1
> (SYSV), for GNU/Linux 2.2.5, dynamically linked (uses shared libs), stripped
> [somsak_sr at anatta ~]$
>
> 2. Invoke through 32bit bash
>
> [somsak_sr at anatta ~]$ file ./bash
> ./bash: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for
> GNU/Linux 2.2.5, dynamically linked (uses shared libs), stripped
> [somsak_sr at anatta ~]$ file ./ls
> ./ls: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for
> GNU/Linux 2.2.5, dynamically linked (uses shared libs), stripped
> [somsak_sr at anatta ~]$ export LD_PRELOAD=""
> [somsak_sr at anatta ~]$ /bin/bash -c
> "LD_PRELOAD='/usr/lib64/gfarm/libc-not-hidden.so' /bin/ls"
> bash clusterscores-1.0b0 globus-4.0.2-1.src.rpm
> magi src
> benchmark clusterscores-1.0b0.tar.gz globus_povray_stub
> rocksmountdirty.sh tmp
> bin clusterscores_result log
> rpm usr
> clusterscores gfarm-1.3.1-0.src.rpm ls
> software work
> [somsak_sr at anatta ~]$ /bin/bash -c
> "LD_PRELOAD='/usr/lib/gfarm/libc-not-hidden.so' $PWD/ls"
> Segmentation fault
> [somsak_sr at anatta ~]$
>
> 3. strace log - strace log is attached wit this e-mail (it's too long).
> Note that, I'm using 32bit strace.
>
> You'll see that I only set single file, libc-not-hidden, no gfarm-libs,
> and it still segfault. I think this is not problem regarding gfarm anymore.
>
>
> SODA Noriyuki wrote:
> >>>>>> On Wed, 16 Aug 2006 11:44:17 +0700,
> >>>>>>
> > Somsak Sriprayoonsakul <somsak_sr at thaigrid.or.th> said:
> >
> >
> >>> Maybe it's worthwhile to check out Gfarm-Fuse system. In our experience,
> >>> the Gfarm-Fuse is much more stable in supporting preexisting
> >>> applications.
> >>>
> >
> >
> >> Yes. Actually we already tested that and gfarm-fuse work great in term
> >> of performance. Somehow gfarm-fuse only accept single user per mounted
> >> file system, also it does not support lseek system call, which is
> >> required by some application. That's why we're trying to use user-level
> >> instead.
> >>
> >
> > Hmm? What is the problem about lseek?
> > As far as I know, lseek just does work with GfarmFS-FUSE.
> > Thus, if you could allow your users to mount gfarm filesystem via
> > GfarmFS-FUSE, certainly it could be an option as Wilfred said.
> >
> > If your problem with lseek was a data coherency problem, please try
> > "-unbuf" option of GfarmFS-FUSE.
> >
>
>
> --
> -----------------------------------------------------------------------------------
> Somsak Sriprayoonsakul
>
> Thai National Grid Center
> Software Industry Promotion Agency
> Ministry of ICT, Thailand
> somsak_sr at thaigrid.or.th
> -----------------------------------------------------------------------------------
The real question is: are you calling both libraries at the same time.
This used to be a problem with apt-get also. It would load both
libraries X_32 and X_64 to cause a clash.
Have you tried specifying either the X_32 or the X_64 only while compiling?
Jay Scherrer
More information about the amd64-list
mailing list