On Thu, Jul 29, 1999 at 04:57:25PM -0400, Roland McGrath wrote:
> > I tried the exec gzip'ed and bzip2'ed binaries on the fly feature, but it
> > didn't work quite right.
> 
> I will look into this when I get a chance.  But this feature is not a high
> priority and we will probably drop it later on; I'm not even sure it's
> worth fixing it now.

No problem. It can be left for a newcomer as an exercise. I throwed gdb at
the failing exec process in a subhurd, and got an infinite loop somewhere,
which doesn't seem to make progress. Maybe it is even a libc problem, as it
hangs in a memcpy in fwrite().

For some very strange reason, the output in the transcript is NOT what I saw
on the screen (I can't explain this). On screen I saw some more levels in
the backtrace, below inflate_codes. They were (from my incomplete and
probably not 100% accurate logs):

memcpy()
realloc()
vscanf()
__flshp()
fflush_unlocked()
fwrite_unlocked()
zipwrite(buf=..., nwrite=32768) exec.c:1121
flush_window()                  util.c:210

After that the below trace followed.

When left running, the exec process was sucking up as much memory as it could,
and after reattaching a while later the backtrace looked exactly the same.

Something bogus going on, but maybe it is a problem that goes away with
libio?

Thanks,
Marcus

Script started on Tue Jul 18 23:20:06 2000
gdb hurd:/# gdb /d/debug/build/exec/exec 59
GNU gdb 19990928
Copyright 1998 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i386-unknown-gnu0.2"...

//59: No such file or directory.
Attaching to program `/d/debug/build/exec/exec', pid 59

warning: Can't modify tracing state for pid 59: No signal thread
Reading symbols from /lib/libhurdbugaddr.so.0.2...done.
Reading symbols from /lib/libtrivfs.so.0.2...done.
Reading symbols from /lib/libfshelp.so.0.2...done.
Reading symbols from /lib/libiohelp.so.0.2...done.
Reading symbols from /lib/libports.so.0.2...done.
Reading symbols from /lib/libihash.so.0.2...done.
Reading symbols from /lib/libthreads.so.0.2...done.
Reading symbols from /lib/libshouldbeinlibc.so.0.2...done.
Reading symbols from /lib/libc.so.0.2...done.
Reading symbols from /lib/ld.so.1...done.
Reading symbols from /lib/libmachuser.so.1...done.
Reading symbols from /lib/libhurduser.so.0.0...done.
(gdb) bt
#0  0x8050612 in inflate_codes (tl=0x8084a68, td=0x80860b8, bl=9, bd=6)
    at ../../exec/inflate.c:543
#1  0x8051222 in inflate_dynamic () at ../../exec/inflate.c:855
#2  0x8051355 in inflate_block (e=0x1bb930) at ../../exec/inflate.c:900
#3  0x80513ba in inflate () at ../../exec/inflate.c:931
#4  0x804f3b4 in unzip (in=17, out=23) at ../../exec/unzip.c:120
#5  0x804be97 in check_gzip (earg=0x1bbbf8) at ../../exec/exec.c:1171
#6  0x804c200 in prepare_and_check (file=43, e=0x1bbbf8)
    at ../../exec/exec.c:1350
#7  0x804c446 in do_exec (file=43, oldtask=46, flags=0, 
    argv=0x1bde58 "/bin/vmstat.gz", argvlen=15, argv_copy=1, 
    envp=0x1bde74 "PWD=/", envplen=131, envp_copy=1, dtable=0x1bdf04, 
    dtablesize=256, dtable_copy=1, portarray=0x1be310, nports=6, 
    portarray_copy=1, intarray=0x1be334, nints=5, intarray_copy=1, 
    deallocnames=0x1be354, ndeallocnames=263, destroynames=0x1be77c, 
    ndestroynames=1) at ../../exec/exec.c:1397
#8  0x804d98a in S_exec_exec (protid=0x8084340, file=43, oldtask=46, flags=0, 
    argv=0x1bde58 "/bin/vmstat.gz", argvlen=15, argv_copy=1, 
    envp=0x1bde74 "PWD=/", envplen=131, envp_copy=1, dtable=0x1bdf04, 
    dtablesize=256, dtable_copy=1, portarray=0x1be310, nports=6, 
    portarray_copy=1, intarray=0x1be334, nints=5, intarray_copy=1, 
    deallocnames=0x1be354, ndeallocnames=263, destroynames=0x1be77c, 
    ndestroynames=1) at ../../exec/exec.c:2091
#9  0x804eb01 in _Xexec_exec (InHeadP=0x1bde1c, OutHeadP=0x1bbe1c)
---Type <return> to continue, or q <return> to quit---
    at execServer.c:255
#10 0x804ed4b in exec_server (InHeadP=0x1bde1c, OutHeadP=0x1bbe1c)
    at execServer.c:439
#11 0x804ace4 in exec_demuxer (inp=0x1bde1c, outp=0x1bbe1c)
    at ../../exec/main.c:61
#12 0x33e13 in ports_manage_port_operations_one_thread ()
   from /lib/libports.so.0.2
#13 0x68d3a in mach_msg_server_timeout () from /lib/libc.so.0.2
#14 0x33ef6 in ports_manage_port_operations_one_thread ()
   from /lib/libports.so.0.2
#15 0x33fe6 in ports_manage_port_operations_multithread ()
   from /lib/libports.so.0.2
#16 0x804a81f in main (argc=1, argv=0x1bffa8) at ../../exec/main.c:150
(gdb) quit
The program is running.  Quit anyway (and detach it)? (y or n) y
Detaching from program `/d/debug/build/exec/exec' pid 59
hurd:/# exit

Script done on Tue Jul 18 23:20:26 2000

-- 
`Rhubarb is no Egyptian god.' Debian http://www.debian.org Check Key server 
Marcus Brinkmann              GNU    http://www.gnu.org    for public PGP Key 
[EMAIL PROTECTED],     [EMAIL PROTECTED]    PGP Key ID 36E7CD09
http://homepage.ruhr-uni-bochum.de/Marcus.Brinkmann/       [EMAIL PROTECTED]

Reply via email to