[Fwd: [gfarm-discuss:03663] Re: 32bit application segmentation fault on 64bit]
Somsak Sriprayoonsakul
somsak_sr at thaigrid.or.th
Thu Aug 24 08:30:55 UTC 2006
No, LD_PRELOAD is not specified by default. It'll be specified manually
in the job script. Also, if I specify both, the 32bit application will
refuse to load the 64bit lib (a error message "can not preload libxxx.so
will appearred").
Jay Scherrer wrote:
> 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
>
--
-----------------------------------------------------------------------------------
Somsak Sriprayoonsakul
Thai National Grid Center
Software Industry Promotion Agency
Ministry of ICT, Thailand
somsak_sr at thaigrid.or.th
-----------------------------------------------------------------------------------
More information about the amd64-list
mailing list