Re: Re: Delivered app. dependencies.
On Wed, 2004-04-28 at 16:49, davef@xanalys.com wrote:
> I have a problem delivering an application.
> I've searched this list's achive and Lispworks's web site and I
> have not found an answer. So here it is.
>
> See
>
> Title: Error: FIND-NAMED-WIN32-PROC-INDIRECT "errno" (unicode switch :NO)
> ID: 17026
>
> in the Lisp Knowledgebase at http://www.lispworks.com/support/
>
> I get the following error when I run a delivered application:
>
> $ bioreactor-demo
> LISP Failure:
> Cannot open W32 file (null)
> Error 14: Bad address
>
> We last saw that message 5 years ago from a user running LWL4.1 on Red
> Hat 6. We suspected a problem with that OS but didn't manage to get
> any more diagnostics. You could run it under strace to see if that
> shows anything useful:
>
> $ strace bioreactor-demo
Here it is:
$ strace bioreactor-demo
execve("/home/aluno/bioreactor-demo", ["bioreactor-demo"], [/* 53 vars
*/]) = 0
uname({sys="Linux", node="lab1221-20", ...}) = 0
brk(0) = 0x804cd7c
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS,
-1, 0) =
0x40014000
open("/etc/ld.so.preload", O_RDONLY) = -1 ENOENT (No such file or
directory)
open("/etc/ld.so.cache", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=16730, ...}) = 0
old_mmap(NULL, 16730, PROT_READ, MAP_PRIVATE, 3, 0) = 0x40015000
close(3) = 0
open("/lib/libdl.so.2", 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\360\31"...,
512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=9160, ...}) = 0
old_mmap(NULL, 12008, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) =
0x4001a000
old_mmap(0x4001c000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED,
3,
0x1000) = 0x4001c000
close(3) = 0
open("/lib/i686/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\20]\1\000"...,
512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=1237568, ...}) = 0
old_mmap(NULL, 1242756, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) =
0x4001d000
old_mmap(0x40147000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED,
3,
0x12a000) = 0x40147000
old_mmap(0x4014a000, 9860, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x4014a000
close(3) = 0
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS,
-1, 0) =
0x4014d000
munmap(0x40015000, 16730) = 0
access("/", F_OK) = 0
stat64("/", {st_mode=S_IFDIR|0755, st_size=1024, ...}) = 0
access("/bioreactor-demo", F_OK) = -1 ENOENT (No such file or
directory)
access("/bin/bioreactor-demo", F_OK) = -1 ENOENT (No such file or
directory)
access("/usr/bin/bioreactor-demo", F_OK) = -1 ENOENT (No such file or
directory)
access("/usr/X11R6/bin/bioreactor-demo", F_OK) = -1 ENOENT (No such file
or
directory)
access("/usr/ucb/bioreactor-demo", F_OK) = -1 ENOENT (No such file or
directory)
access("/usr/local/bin/bioreactor-demo", F_OK) = -1 ENOENT (No such file
or
directory)
access("/usr/games/bioreactor-demo", F_OK) = -1 ENOENT (No such file or
directory)
access("/usr/share/java/j2sdk1.4.2/bin/bioreactor-demo", F_OK) = -1
ENOENT (No
such file or directory)
access("/home/aluno/bin/bioreactor-demo", F_OK) = -1 ENOENT (No such
file or
directory)
brk(0) = 0x804cd7c
brk(0x806dd7c) = 0x806dd7c
brk(0) = 0x806dd7c
brk(0x806e000) = 0x806e000
open(umovestr: Input/output error
0, O_RDONLY) = -1 EFAULT (Bad address)
write(2, "LISP Failure:\n Cannot open W32 f"..., 65LISP Failure:
Cannot open W32 file (null)
Error 14: Bad address
) = 65
exit_group(0) = ?
It is strange. It seems related to the value of the PATH variable:
$ bioreactor-demo
LISP Failure:
Cannot open W32 file (null)
Error 14: Bad address
$ echo $PATH
:/bin:/usr/bin:/usr/X11R6/bin:/usr/ucb:/usr/local/bin:/usr/games:/usr/share/java/j2sdk1.4.2/bin:/home/aluno/bin
$ ./bioreactor-demo
Error: FIND-NAMED-WIN32-PROC-INDIRECT "errno" (unicode switch :NO)
Type :b for backtrace, :c <option number> to proceed, or :? for other
options
CL-USER 1 : 1 > Segmentation fault
Some explanations: the computer where the program fails is situated in
laboratories for students. These machines download a Linux image a boot
time. There is only one guest user account with very little
configuration. I didn't noticed that the PATH variable did not include
the current directory (.). When the name of the executable is not
preceded with ./ I get that "LISP failure" error.
>
> When it si run as root the message error is different:
> # ./bioreactor-demo
>
> Error: FIND-NAMED-WIN32-PROC-INDIRECT "errno" (unicode switch :NO)
>
> Type :b for backtrace, :c <option number> to proceed, or :? for other
> options
>
> CL-USER 1 : 1 > Segmentation fault
>
> The application works fine on my computer (where LW is installed). The
> error is obtained on another computer.
>
> What OS is on your computer?
RedHat 9.0, glibc-2.3.2-27.9.7
> What OS is on that other computer?
Mandrake Linux release 9.2 (FiveStar) for i586
glibc-2.3.2-14mdk
So, it seems that LW 4.2.x do work with glibc >= 2.3.2-27
but do not work with glibc in [2.3.2 - 2.3.2-14]
Thanks for your help.
> I am using LW 4.2.6 for linux. The application is delivered with the
> following switches:
> (deliver 'run-bioreactor "bioreactor-demo" 0 :interface :capi)
> severity level 4 is fine I used 0 for testing. just in case.
>
> The computer has openmotif installed:
> # rpm -q openmotif
> openmotif-2.1.30-1_ICS
>
> Is there other dependencies that may have failed ?
> I am missing something obvious ?
> The "WIN32" in error message sounds strange since I am using Linux.
>
> It's just from some code that is shared with the LispWorks for Windows
> implementation.
>
> --
> Dave Fox
>
> Xanalys http://www.lispworks.com
> Compass House
> Vision Park, Chivers Way
> Histon
> Cambridge, CB4 9AD
> England
--
Thibault Langlois <tl@di.fc.ul.pt>
FCUL / DI