Re: [Fwd: [gfarm-discuss:03663] Re: 32bit application segmentation fault on 64bit]
Jay Scherrer <[email protected]> Wed, 23 Aug 2006 22:54:08 -0700
| Newsgroups | gmane.linux.redhat.amd64 |
|---|---|
| Message-ID | <[email protected]> |
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 <[email protected]> > Reply-To: [email protected] > Organization: Thai National Grid Center > To: [email protected] > References: <[email protected]> > <[email protected]> > <[email protected]> > > > > 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@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@anatta ~]$ LD_PRELOAD="/usr/lib/gfarm/libc-not-hidden.so" > $PWD/ls > Segmentation fault > [somsak_sr@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@anatta ~]$ > > 2. Invoke through 32bit bash > > [somsak_sr@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@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@anatta ~]$ export LD_PRELOAD="" > [somsak_sr@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@anatta ~]$ /bin/bash -c > "LD_PRELOAD='/usr/lib/gfarm/libc-not-hidden.so' $PWD/ls" > Segmentation fault > [somsak_sr@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 <[email protected]> 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 > [email protected] > ----------------------------------------------------------------------------------- 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