All of lore.kernel.org
 help / color / mirror / Atom feed
* [uml-devel] [PATCH] nptl/sys_clone fix for i386/ppc
@ 2004-08-26  2:06 David Jeffery
  2004-09-05 15:35 ` BlaisorBlade
                   ` (2 more replies)
  0 siblings, 3 replies; 14+ messages in thread
From: David Jeffery @ 2004-08-26  2:06 UTC (permalink / raw)
  To: user-mode-linux-devel

This is a patch against 2.6.8.1-mm4 to fix a skas UML problem with a 
nptl glibc.

UML with an nptl enabled glibc causes process creation to fail with 
this assertion failure in nptl:

bash: ../nptl/sysdeps/unix/sysv/linux/fork.c:132: __libc_fork: Assertion `({ 
__typeof (self->tid) __value; if (sizeof (__value) == 1) asm volatile 
("movb %%gs:%P2,%b0" : "=q" (__value) : "0" (0), "i" (((size_t) 
&((struct pthread *)0)->tid))); else if (sizeof (__value) == 4) asm 
volatile ("movl %%gs:%P1,%0" : "=r" (__value) : "i" (((size_t) &((struct 
pthread *)0)->tid))); else { if (sizeof (__value) != 8) abort (); asm 
volatile ("movl %%gs:%P1,%%eax\n\t" "movl %%gs:%P2,%%edx" : "=A" 
(__value) : "i" (((size_t) &((struct pthread *)0)->tid)), "i" (((size_t) 
&((struct pthread *)0)->tid) + 4)); } __value; }) != ppid' failed.

The problem is caused by the incorrect implementation of sys_clone().  
sys_clone() is an ugly beast that has different arguements depending on 
the architecture.  For i386 and ppc, the child tid is passed as the 
5th arguement instead of as the 4th arguement as as some other 
architectures (like x86-64) do.  The 4th arguement on i386 and ppc 
doesn't look to be used by the kernel.

With this patch I've been running several UML skas images with a Debian 
Sarge based systems for several days without problem.  The patch adds a 
sys_clone_5arg() on i386 and ppc which just raps around the current 
sys_clone() so the child tid pointer in the 5th arguement will be passed 
down correctly.  I don't get any style points for this patch so feel 
free to pretty it up.

David Jeffery

diff -urN linux-2.6.8.1-mm4.orig/arch/um/Makefile linux-2.6.8.1-mm4/arch/um/Makefile
--- linux-2.6.8.1-mm4.orig/arch/um/Makefile	2004-08-25 20:52:56.000000000 -0400
+++ linux-2.6.8.1-mm4/arch/um/Makefile	2004-08-22 16:55:52.000000000 -0400
@@ -59,7 +59,8 @@
 
 CFLAGS += $(CFLAGS-y) -D__arch_um__ -DSUBARCH=\"$(SUBARCH)\" \
 	-D_LARGEFILE64_SOURCE $(ARCH_INCLUDE) -Derrno=kernel_errno \
-	-Dsigprocmask=kernel_sigprocmask $(MODE_INCLUDE)
+	-Dsigprocmask=kernel_sigprocmask $(MODE_INCLUDE) \
+	-D__subarch_$(SUBARCH)__
 
 CFLAGS += $(call check_gcc,-fno-unit-at-a-time,)
 
diff -urN linux-2.6.8.1-mm4.orig/arch/um/kernel/sys_call_table.c linux-2.6.8.1-mm4/arch/um/kernel/sys_call_table.c
--- linux-2.6.8.1-mm4.orig/arch/um/kernel/sys_call_table.c	2004-08-25 20:52:56.000000000 -0400
+++ linux-2.6.8.1-mm4/arch/um/kernel/sys_call_table.c	2004-08-22 16:55:52.000000000 -0400
@@ -19,6 +19,12 @@
 #define NFSSERVCTL sys_ni_syscall
 #endif
 
+#if defined(__subarch_i386__) || defined(__subarch_ppc__)
+#define SYS_CLONE sys_clone_5arg
+#else
+#define SYS_CLONE sys_clone
+#endif
+
 #define LAST_GENERIC_SYSCALL __NR_vserver
 
 #if LAST_GENERIC_SYSCALL > LAST_ARCH_SYSCALL
@@ -41,6 +47,7 @@
 extern syscall_handler_t sys_uname;
 extern syscall_handler_t sys_ipc;
 extern syscall_handler_t sys_sigreturn;
+extern syscall_handler_t sys_clone_5arg;
 extern syscall_handler_t sys_clone;
 extern syscall_handler_t sys_rt_sigreturn;
 extern syscall_handler_t sys_rt_sigaction;
@@ -177,7 +184,7 @@
 	[ __NR_ipc ] (syscall_handler_t *) sys_ipc,
 	[ __NR_fsync ] (syscall_handler_t *) sys_fsync,
 	[ __NR_sigreturn ] (syscall_handler_t *) sys_sigreturn,
-	[ __NR_clone ] (syscall_handler_t *) sys_clone,
+	[ __NR_clone ] (syscall_handler_t *) SYS_CLONE,
 	[ __NR_setdomainname ] (syscall_handler_t *) sys_setdomainname,
 	[ __NR_uname ] (syscall_handler_t *) sys_newuname,
 	[ __NR_adjtimex ] (syscall_handler_t *) sys_adjtimex,
diff -urN linux-2.6.8.1-mm4.orig/arch/um/kernel/syscall_kern.c linux-2.6.8.1-mm4/arch/um/kernel/syscall_kern.c
--- linux-2.6.8.1-mm4.orig/arch/um/kernel/syscall_kern.c	2004-08-25 20:52:56.000000000 -0400
+++ linux-2.6.8.1-mm4/arch/um/kernel/syscall_kern.c	2004-08-22 16:55:52.000000000 -0400
@@ -55,6 +55,14 @@
 	return(ret);
 }
 
+#if defined(__subarch_i386__) || defined(__subarch_ppc__)
+long sys_clone_5arg(unsigned long clone_flags, unsigned long newsp,
+               int *parent_tid, unsigned long unused, int *child_tid)
+{
+        return sys_clone(clone_flags, newsp, parent_tid, child_tid);
+}
+#endif
+
 long sys_vfork(void)
 {
 	long ret;


-------------------------------------------------------
SF.Net email is sponsored by Shop4tech.com-Lowest price on Blank Media
100pk Sonic DVD-R 4x for only $29 -100pk Sonic DVD+R for only $33
Save 50% off Retail on Ink & Toner - Free Shipping and Free Gift.
http://www.shop4tech.com/z/Inkjet_Cartridges/9_108_r285
_______________________________________________
User-mode-linux-devel mailing list
User-mode-linux-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [uml-devel] [PATCH] nptl/sys_clone fix for i386/ppc
  2004-08-26  2:06 David Jeffery
@ 2004-09-05 15:35 ` BlaisorBlade
  2004-09-07 23:12 ` Michael Ralston
  2004-09-10 23:52 ` Jeff Dike
  2 siblings, 0 replies; 14+ messages in thread
From: BlaisorBlade @ 2004-09-05 15:35 UTC (permalink / raw)
  To: user-mode-linux-devel; +Cc: David Jeffery

Alle 04:06, giovedì 26 agosto 2004, David Jeffery ha scritto:
> This is a patch against 2.6.8.1-mm4 to fix a skas UML problem with a
> nptl glibc.

> UML with an nptl enabled glibc causes process creation to fail with
> this assertion failure in nptl:

I have just one problem in understanding you: are you talking about:
- linking the Uml binary against a NPTL glibc,
or
- using NPTL inside the Uml virtual machine?
From the actual patch, it seems that you are doing the second thing, but 
nobody has been able, so far, to use NPTL *inside* UML, and we all thought 
that since UML misses the new NPTL syscalls, that was the reason. If this 
patch, instead, was enough for you, I'm very happy.

> The problem is caused by the incorrect implementation of sys_clone().
> sys_clone() is an ugly beast that has different arguements depending on
> the architecture.  For i386 and ppc, the child tid is passed as the
> 5th arguement instead of as the 4th arguement as as some other
> architectures (like x86-64) do.  The 4th arguement on i386 and ppc
> doesn't look to be used by the kernel.
Ok, it seems reasonable.
> With this patch I've been running several UML skas images with a Debian
> Sarge based systems for several days without problem.  The patch adds a
> sys_clone_5arg() on i386 and ppc which just raps around the current
> sys_clone() so the child tid pointer in the 5th arguement will be passed
> down correctly.  I don't get any style points for this patch so feel
> free to pretty it up.


> diff -urN linux-2.6.8.1-mm4.orig/arch/um/Makefile
> linux-2.6.8.1-mm4/arch/um/Makefile ---
> linux-2.6.8.1-mm4.orig/arch/um/Makefile	2004-08-25 20:52:56.000000000 -0400
> +++ linux-2.6.8.1-mm4/arch/um/Makefile	2004-08-22 16:55:52.000000000 -0400
> @@ -59,7 +59,8 @@
>
>  CFLAGS += $(CFLAGS-y) -D__arch_um__ -DSUBARCH=\"$(SUBARCH)\" \
>  	-D_LARGEFILE64_SOURCE $(ARCH_INCLUDE) -Derrno=kernel_errno \
> -	-Dsigprocmask=kernel_sigprocmask $(MODE_INCLUDE)
> +	-Dsigprocmask=kernel_sigprocmask $(MODE_INCLUDE) \
> +	-D__subarch_$(SUBARCH)__

Isn't enough the -DSUBARCH= ?
-- 
Paolo Giarrusso, aka Blaisorblade
Linux registered user n. 292729



-------------------------------------------------------
This SF.Net email is sponsored by BEA Weblogic Workshop
FREE Java Enterprise J2EE developer tools!
Get your free copy of BEA WebLogic Workshop 8.1 today.
http://ads.osdn.com/?ad_idP47&alloc_id\x10808&opÌk
_______________________________________________
User-mode-linux-devel mailing list
User-mode-linux-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel

^ permalink raw reply	[flat|nested] 14+ messages in thread

* RE: [uml-devel] [PATCH] nptl/sys_clone fix for i386/ppc
  2004-08-26  2:06 David Jeffery
  2004-09-05 15:35 ` BlaisorBlade
@ 2004-09-07 23:12 ` Michael Ralston
  2004-09-10 23:52 ` Jeff Dike
  2 siblings, 0 replies; 14+ messages in thread
From: Michael Ralston @ 2004-09-07 23:12 UTC (permalink / raw)
  To: user-mode-linux-devel; +Cc: 'David Jeffery', 'BlaisorBlade'

[-- Attachment #1: Type: text/plain, Size: 6156 bytes --]

I've been testing out this patch...

It seems it allows me to start a uml-2.6.8.1 with SKAS using libc6-2.3.2.
I'm not sure if programs that make use of NPTL are running correctly though.

Services which I have noticed make good use of NPTL when running on a normal
linux kernel are things such as Bind9 and Java. These both still segfault
when run with this patch.

I have attached strace from bind9 and from trying to start tomcat4 using
blackdown java.

I also reported some problems back in march trying to run bind9 with uml
2.6.4, I'd moved /lib/tls to /lib/notls and Bind9 got stuck in an infinite
loop.

Is there any other information I can provide that may help?

Michael Ralston
Stral.net

> -----Original Message-----
> From: user-mode-linux-devel-admin@lists.sourceforge.net 
> [mailto:user-mode-linux-devel-admin@lists.sourceforge.net] On 
> Behalf Of David Jeffery
> Sent: Thursday, 26 August 2004 12:06 PM
> To: user-mode-linux-devel@lists.sourceforge.net
> Subject: [uml-devel] [PATCH] nptl/sys_clone fix for i386/ppc
> 
> This is a patch against 2.6.8.1-mm4 to fix a skas UML problem 
> with a nptl glibc.
> 
> UML with an nptl enabled glibc causes process creation to 
> fail with this assertion failure in nptl:
> 
> bash: ../nptl/sysdeps/unix/sysv/linux/fork.c:132: 
> __libc_fork: Assertion `({ __typeof (self->tid) __value; if 
> (sizeof (__value) == 1) asm volatile ("movb %%gs:%P2,%b0" : 
> "=q" (__value) : "0" (0), "i" (((size_t) &((struct pthread 
> *)0)->tid))); else if (sizeof (__value) == 4) asm volatile 
> ("movl %%gs:%P1,%0" : "=r" (__value) : "i" (((size_t) 
> &((struct pthread *)0)->tid))); else { if (sizeof (__value) 
> != 8) abort (); asm volatile ("movl %%gs:%P1,%%eax\n\t" "movl 
> %%gs:%P2,%%edx" : "=A" 
> (__value) : "i" (((size_t) &((struct pthread *)0)->tid)), "i" 
> (((size_t) &((struct pthread *)0)->tid) + 4)); } __value; }) 
> != ppid' failed.
> 
> The problem is caused by the incorrect implementation of 
> sys_clone().  
> sys_clone() is an ugly beast that has different arguements 
> depending on the architecture.  For i386 and ppc, the child 
> tid is passed as the 5th arguement instead of as the 4th 
> arguement as as some other architectures (like x86-64) do.  
> The 4th arguement on i386 and ppc doesn't look to be used by 
> the kernel.
> 
> With this patch I've been running several UML skas images 
> with a Debian Sarge based systems for several days without 
> problem.  The patch adds a
> sys_clone_5arg() on i386 and ppc which just raps around the current
> sys_clone() so the child tid pointer in the 5th arguement 
> will be passed down correctly.  I don't get any style points 
> for this patch so feel free to pretty it up.
> 
> David Jeffery
> 
> diff -urN linux-2.6.8.1-mm4.orig/arch/um/Makefile 
> linux-2.6.8.1-mm4/arch/um/Makefile
> --- linux-2.6.8.1-mm4.orig/arch/um/Makefile	2004-08-25 
> 20:52:56.000000000 -0400
> +++ linux-2.6.8.1-mm4/arch/um/Makefile	2004-08-22 
> 16:55:52.000000000 -0400
> @@ -59,7 +59,8 @@
>  
>  CFLAGS += $(CFLAGS-y) -D__arch_um__ -DSUBARCH=\"$(SUBARCH)\" \
>  	-D_LARGEFILE64_SOURCE $(ARCH_INCLUDE) -Derrno=kernel_errno \
> -	-Dsigprocmask=kernel_sigprocmask $(MODE_INCLUDE)
> +	-Dsigprocmask=kernel_sigprocmask $(MODE_INCLUDE) \
> +	-D__subarch_$(SUBARCH)__
>  
>  CFLAGS += $(call check_gcc,-fno-unit-at-a-time,)
>  
> diff -urN 
> linux-2.6.8.1-mm4.orig/arch/um/kernel/sys_call_table.c 
> linux-2.6.8.1-mm4/arch/um/kernel/sys_call_table.c
> --- linux-2.6.8.1-mm4.orig/arch/um/kernel/sys_call_table.c	
> 2004-08-25 20:52:56.000000000 -0400
> +++ linux-2.6.8.1-mm4/arch/um/kernel/sys_call_table.c	
> 2004-08-22 16:55:52.000000000 -0400
> @@ -19,6 +19,12 @@
>  #define NFSSERVCTL sys_ni_syscall
>  #endif
>  
> +#if defined(__subarch_i386__) || defined(__subarch_ppc__) #define 
> +SYS_CLONE sys_clone_5arg #else #define SYS_CLONE sys_clone #endif
> +
>  #define LAST_GENERIC_SYSCALL __NR_vserver
>  
>  #if LAST_GENERIC_SYSCALL > LAST_ARCH_SYSCALL @@ -41,6 +47,7 
> @@  extern syscall_handler_t sys_uname;  extern 
> syscall_handler_t sys_ipc;  extern syscall_handler_t sys_sigreturn;
> +extern syscall_handler_t sys_clone_5arg;
>  extern syscall_handler_t sys_clone;
>  extern syscall_handler_t sys_rt_sigreturn;  extern 
> syscall_handler_t sys_rt_sigaction; @@ -177,7 +184,7 @@
>  	[ __NR_ipc ] (syscall_handler_t *) sys_ipc,
>  	[ __NR_fsync ] (syscall_handler_t *) sys_fsync,
>  	[ __NR_sigreturn ] (syscall_handler_t *) sys_sigreturn,
> -	[ __NR_clone ] (syscall_handler_t *) sys_clone,
> +	[ __NR_clone ] (syscall_handler_t *) SYS_CLONE,
>  	[ __NR_setdomainname ] (syscall_handler_t *) sys_setdomainname,
>  	[ __NR_uname ] (syscall_handler_t *) sys_newuname,
>  	[ __NR_adjtimex ] (syscall_handler_t *) sys_adjtimex, 
> diff -urN 
> linux-2.6.8.1-mm4.orig/arch/um/kernel/syscall_kern.c 
> linux-2.6.8.1-mm4/arch/um/kernel/syscall_kern.c
> --- linux-2.6.8.1-mm4.orig/arch/um/kernel/syscall_kern.c	
> 2004-08-25 20:52:56.000000000 -0400
> +++ linux-2.6.8.1-mm4/arch/um/kernel/syscall_kern.c	
> 2004-08-22 16:55:52.000000000 -0400
> @@ -55,6 +55,14 @@
>  	return(ret);
>  }
>  
> +#if defined(__subarch_i386__) || defined(__subarch_ppc__) long 
> +sys_clone_5arg(unsigned long clone_flags, unsigned long newsp,
> +               int *parent_tid, unsigned long unused, int 
> *child_tid) {
> +        return sys_clone(clone_flags, newsp, parent_tid, 
> child_tid); } 
> +#endif
> +
>  long sys_vfork(void)
>  {
>  	long ret;
> 
> 
> -------------------------------------------------------
> SF.Net email is sponsored by Shop4tech.com-Lowest price on 
> Blank Media 100pk Sonic DVD-R 4x for only $29 -100pk Sonic 
> DVD+R for only $33 Save 50% off Retail on Ink & Toner - Free 
> Shipping and Free Gift.
> http://www.shop4tech.com/z/Inkjet_Cartridges/9_108_r285
> _______________________________________________
> User-mode-linux-devel mailing list
> User-mode-linux-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel
> 

---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.752 / Virus Database: 503 - Release Date: 3/09/2004
 
    

[-- Attachment #2: blackdown-tomcat-strace.txt --]
[-- Type: text/plain, Size: 59485 bytes --]

template:/usr/share/tomcat4/bin# strace -v -F /usr/lib/j2se/1.4//bin/java -Djava.endorsed.dirs=/usr/share/tomcat4/common/endorsed -classpath /usr/lib/j2se/1.4//lib/tools.jar:/usr/share/tomcat4/bin/bootstrap.jar -Dcatalina.base=/usr/share/tomcat4 -Dcatalina.home=/usr/share/tomcat4 -Djava.io.tmpdir=/usr/share/tomcat4/temp org.apache.catalina.startup.Bootstrap start
execve("/usr/lib/j2se/1.4//bin/java", ["/usr/lib/j2se/1.4//bin/java", "-Djava.endorsed.dirs=/usr/share/tomcat4/common/endorsed", "-classpath", "/usr/lib/j2se/1.4//lib/tools.jar:/usr/share/tomcat4/bin/bootstrap.jar", "-Dcatalina.base=/usr/share/tomcat4", "-Dcatalina.home=/usr/share/tomcat4", "-Djava.io.tmpdir=/usr/share/tomcat4/temp", "org.apache.catalina.startup.Bootstrap", "start"], [/* 17 vars */]) = 0
uname({sysname="Linux", nodename="template", release="2.6.8.1-1um", version="#1 Wed Sep 8 07:58:38 EST 2004", machine="i686"}) = 0
brk(0)                                  = 0x804e000
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40017000
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
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_dev=makedev(98, 0), st_ino=29113, st_mode=S_IFREG|0644, st_nlink=1, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=40, st_size=17718, st_atime=2004/09/07-23:34:40, st_mtime=2004/09/07-23:21:36, st_ctime=2004/09/07-23:21:36}) = 0
old_mmap(NULL, 17718, PROT_READ, MAP_PRIVATE, 3, 0) = 0x40018000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/tls/libpthread.so.0", 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\320D\0"..., 512) = 512
fstat64(3, {st_dev=makedev(98, 0), st_ino=16316, st_mode=S_IFREG|0644, st_nlink=1, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=160, st_size=78167, st_atime=2004/09/07-23:34:40, st_mtime=2004/08/09-19:30:38, st_ctime=2004/09/07-22:06:21}) = 0
old_mmap(NULL, 60768, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x4001d000
old_mmap(0x40029000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0xc000) = 0x40029000
old_mmap(0x4002a000, 7520, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x4002a000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/tls/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\220\32"..., 512) = 512
fstat64(3, {st_dev=makedev(98, 0), st_ino=16305, st_mode=S_IFREG|0644, st_nlink=1, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=24, st_size=9432, st_atime=2004/09/07-23:34:40, st_mtime=2004/08/09-19:30:20, st_ctime=2004/09/07-22:06:21}) = 0
old_mmap(NULL, 12288, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x4002c000
old_mmap(0x4002e000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x1000) = 0x4002e000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/tls/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\340X\1"..., 512) = 512
fstat64(3, {st_dev=makedev(98, 0), st_ino=16303, st_mode=S_IFREG|0644, st_nlink=1, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=2506, st_size=1279076, st_atime=2004/09/07-23:34:40, st_mtime=2004/08/09-19:30:20, st_ctime=2004/09/07-22:06:21}) = 0
old_mmap(NULL, 1289388, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x4002f000
old_mmap(0x4015f000, 36864, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x12f000) = 0x4015f000
old_mmap(0x40168000, 7340, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x40168000
close(3)                                = 0
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x4016a000
set_thread_area({entry_number:-1 -> -1, base_addr:0x4016a2a0, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}) = -1 ENOSYS (Function not implemented)
modify_ldt(1, {entry_number:0, base_addr:0x4016a2a0, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}, 16) = 0
munmap(0x40018000, 17718)               = 0
set_tid_address(0x4016a2e8)             = 1081
rt_sigaction(SIGRTMIN, {0x40021430, [], SA_RESTORER|SA_SIGINFO, 0x40027a10}, NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [RTMIN], NULL, 8) = 0
getrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, rlim_max=RLIM_INFINITY}) = 0
stat64("/usr/lib/j2se/1.4//bin/java", {st_dev=makedev(98, 0), st_ino=29190, st_mode=S_IFREG|0755, st_nlink=2, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=48, st_size=20820, st_atime=2004/09/07-23:34:40, st_mtime=2002/11/01-16:56:13, st_ctime=2004/09/07-23:33:11}) = 0
brk(0)                                  = 0x804e000
brk(0x8070000)                          = 0x8070000
brk(0)                                  = 0x8070000
lstat64("/usr", {st_dev=makedev(98, 0), st_ino=113, st_mode=S_IFDIR|0755, st_nlink=12, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=0, st_size=312, st_atime=2004/09/07-23:33:55, st_mtime=2004/09/07-22:53:02, st_ctime=2004/09/07-22:53:02}) = 0
lstat64("/usr/lib", {st_dev=makedev(98, 0), st_ino=143, st_mode=S_IFDIR|0755, st_nlink=41, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=22, st_size=11424, st_atime=2004/09/07-23:33:56, st_mtime=2004/09/07-23:33:23, st_ctime=2004/09/07-23:33:23}) = 0
lstat64("/usr/lib/j2se", {st_dev=makedev(98, 0), st_ino=29181, st_mode=S_IFDIR|0755, st_nlink=4, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=0, st_size=96, st_atime=2004/09/07-23:33:57, st_mtime=2004/09/07-23:33:11, st_ctime=2004/09/07-23:33:11}) = 0
lstat64("/usr/lib/j2se/1.4", {st_dev=makedev(98, 0), st_ino=29183, st_mode=S_IFDIR|0755, st_nlink=6, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=0, st_size=144, st_atime=2004/09/07-23:33:07, st_mtime=2004/09/07-23:33:29, st_ctime=2004/09/07-23:33:29}) = 0
lstat64("/usr/lib/j2se/1.4/bin", {st_dev=makedev(98, 0), st_ino=29184, st_mode=S_IFDIR|0755, st_nlink=3, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=1, st_size=816, st_atime=2004/09/07-23:33:07, st_mtime=2004/09/07-23:33:28, st_ctime=2004/09/07-23:33:28}) = 0
lstat64("/usr/lib/j2se/1.4/bin/java", {st_dev=makedev(98, 0), st_ino=29190, st_mode=S_IFREG|0755, st_nlink=2, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=48, st_size=20820, st_atime=2004/09/07-23:34:40, st_mtime=2002/11/01-16:56:13, st_ctime=2004/09/07-23:33:11}) = 0
lstat64("/proc", {st_dev=makedev(0, 3), st_ino=1, st_mode=S_IFDIR|0555, st_nlink=41, st_uid=0, st_gid=0, st_blksize=1024, st_blocks=0, st_size=0, st_atime=0, st_mtime=0, st_ctime=0}) = 0
lstat64("/proc/self", {st_dev=makedev(0, 3), st_ino=2, st_mode=S_IFLNK|0777, st_nlink=1, st_uid=0, st_gid=0, st_blksize=1024, st_blocks=2, st_size=64, st_atime=2004/09/07-23:34:09, st_mtime=2004/09/07-23:33:35, st_ctime=2004/09/07-23:33:35}) = 0
readlink("/proc/self", "1081", 4096)    = 4
lstat64("/proc/1081", {st_dev=makedev(0, 3), st_ino=70844418, st_mode=S_IFDIR|0555, st_nlink=3, st_uid=0, st_gid=0, st_blksize=1024, st_blocks=0, st_size=0, st_atime=2004/09/07-23:34:40, st_mtime=2004/09/07-23:34:40, st_ctime=2004/09/07-23:34:40}) = 0
lstat64("/proc/1081/exe", {st_dev=makedev(0, 3), st_ino=70844424, st_mode=S_IFLNK|0777, st_nlink=1, st_uid=0, st_gid=0, st_blksize=1024, st_blocks=0, st_size=0, st_atime=2004/09/07-23:34:40, st_mtime=2004/09/07-23:34:40, st_ctime=2004/09/07-23:34:40}) = 0
readlink("/proc/1081/exe", "/usr/lib/j2se/1.4/bin/java", 4096) = 26
lstat64("/usr", {st_dev=makedev(98, 0), st_ino=113, st_mode=S_IFDIR|0755, st_nlink=12, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=0, st_size=312, st_atime=2004/09/07-23:33:55, st_mtime=2004/09/07-22:53:02, st_ctime=2004/09/07-22:53:02}) = 0
lstat64("/usr/lib", {st_dev=makedev(98, 0), st_ino=143, st_mode=S_IFDIR|0755, st_nlink=41, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=22, st_size=11424, st_atime=2004/09/07-23:33:56, st_mtime=2004/09/07-23:33:23, st_ctime=2004/09/07-23:33:23}) = 0
lstat64("/usr/lib/j2se", {st_dev=makedev(98, 0), st_ino=29181, st_mode=S_IFDIR|0755, st_nlink=4, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=0, st_size=96, st_atime=2004/09/07-23:33:57, st_mtime=2004/09/07-23:33:11, st_ctime=2004/09/07-23:33:11}) = 0
lstat64("/usr/lib/j2se/1.4", {st_dev=makedev(98, 0), st_ino=29183, st_mode=S_IFDIR|0755, st_nlink=6, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=0, st_size=144, st_atime=2004/09/07-23:33:07, st_mtime=2004/09/07-23:33:29, st_ctime=2004/09/07-23:33:29}) = 0
lstat64("/usr/lib/j2se/1.4/bin", {st_dev=makedev(98, 0), st_ino=29184, st_mode=S_IFDIR|0755, st_nlink=3, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=1, st_size=816, st_atime=2004/09/07-23:33:07, st_mtime=2004/09/07-23:33:28, st_ctime=2004/09/07-23:33:28}) = 0
lstat64("/usr/lib/j2se/1.4/bin/java", {st_dev=makedev(98, 0), st_ino=29190, st_mode=S_IFREG|0755, st_nlink=2, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=48, st_size=20820, st_atime=2004/09/07-23:34:40, st_mtime=2002/11/01-16:56:13, st_ctime=2004/09/07-23:33:11}) = 0
access("/usr/lib/j2se/1.4/lib/i386/libjava.so", F_OK) = -1 ENOENT (No such file or directory)
access("/usr/lib/j2se/1.4/jre/lib/i386/libjava.so", F_OK) = 0
open("/usr/lib/j2se/1.4/jre/lib/i386/jvm.cfg", O_RDONLY) = 3
fstat64(3, {st_dev=makedev(98, 0), st_ino=29218, st_mode=S_IFREG|0644, st_nlink=1, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=8, st_size=671, st_atime=2004/09/07-23:34:09, st_mtime=2002/07/24-00:34:35, st_ctime=2004/09/07-23:33:13}) = 0
mmap2(NULL, 131072, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x4016b000
read(3, "#\n# @(#)jvm.cfg\t1.6 01/12/03\n# \n"..., 131072) = 671
read(3, "", 131072)                     = 0
close(3)                                = 0
munmap(0x4016b000, 131072)              = 0
stat64("/usr/lib/j2se/1.4/jre/lib/i386/client/libjvm.so", {st_dev=makedev(98, 0), st_ino=29213, st_mode=S_IFREG|0644, st_nlink=1, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=9225, st_size=4716004, st_atime=2004/09/07-23:34:09, st_mtime=2002/11/01-16:56:12, st_ctime=2004/09/07-23:33:13}) = 0
execve("/usr/lib/j2se/1.4/bin/java", ["/usr/lib/j2se/1.4//bin/java", "-Djava.endorsed.dirs=/usr/share/"..., "-classpath", "/usr/lib/j2se/1.4//lib/tools.jar"..., "-Dcatalina.base=/usr/share/tomca"..., "-Dcatalina.home=/usr/share/tomca"..., "-Djava.io.tmpdir=/usr/share/tomc"..., "org.apache.catalina.startup.Boot"..., "start"], ["TERM=xterm", "SHELL=/bin/bash", "SSH_CLIENT=192.168.0.1 32774 22", "OLDPWD=/root", "SSH_TTY=/dev/pts/0", "USER=root", "MAIL=/var/mail/root", "PATH=/usr/local/sbin:/usr/local/"..., "PWD=/usr/share/tomcat4/bin", "JAVA_HOME=/usr/lib/j2se/1.4/", "LANG=en_AU", "PS1=\\h:\\w\\$ ", "SHLVL=1", "HOME=/root", "LOGNAME=root", "SSH_CONNECTION=192.168.0.1 32774"..., "_=/usr/bin/strace", "LD_LIBRARY_PATH=/usr/lib/j2se/1."...]) = 0
uname({sysname="Linux", nodename="template", release="2.6.8.1-1um", version="#1 Wed Sep 8 07:58:38 EST 2004", machine="i686"}) = 0
brk(0)                                  = 0x804e000
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40017000
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/etc/ld.so.preload", O_RDONLY)    = -1 ENOENT (No such file or directory)
open("/usr/lib/j2se/1.4/jre/lib/i386/client/tls/i586/libpthread.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/usr/lib/j2se/1.4/jre/lib/i386/client/tls/i586", 0xbffff2e8) = -1 ENOENT (No such file or directory)
open("/usr/lib/j2se/1.4/jre/lib/i386/client/tls/libpthread.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/usr/lib/j2se/1.4/jre/lib/i386/client/tls", 0xbffff2e8) = -1 ENOENT (No such file or directory)
open("/usr/lib/j2se/1.4/jre/lib/i386/client/i586/libpthread.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/usr/lib/j2se/1.4/jre/lib/i386/client/i586", 0xbffff2e8) = -1 ENOENT (No such file or directory)
open("/usr/lib/j2se/1.4/jre/lib/i386/client/libpthread.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/usr/lib/j2se/1.4/jre/lib/i386/client", {st_dev=makedev(98, 0), st_ino=29212, st_mode=S_IFDIR|0755, st_nlink=2, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=0, st_size=144, st_atime=2004/09/07-23:33:07, st_mtime=2004/09/07-23:33:23, st_ctime=2004/09/07-23:33:23}) = 0
open("/usr/lib/j2se/1.4/jre/lib/i386/tls/i586/libpthread.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/usr/lib/j2se/1.4/jre/lib/i386/tls/i586", 0xbffff2e8) = -1 ENOENT (No such file or directory)
open("/usr/lib/j2se/1.4/jre/lib/i386/tls/libpthread.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/usr/lib/j2se/1.4/jre/lib/i386/tls", 0xbffff2e8) = -1 ENOENT (No such file or directory)
open("/usr/lib/j2se/1.4/jre/lib/i386/i586/libpthread.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/usr/lib/j2se/1.4/jre/lib/i386/i586", 0xbffff2e8) = -1 ENOENT (No such file or directory)
open("/usr/lib/j2se/1.4/jre/lib/i386/libpthread.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/usr/lib/j2se/1.4/jre/lib/i386", {st_dev=makedev(98, 0), st_ino=29206, st_mode=S_IFDIR|0755, st_nlink=5, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=1, st_size=936, st_atime=2004/09/07-23:33:07, st_mtime=2004/09/07-23:33:14, st_ctime=2004/09/07-23:33:14}) = 0
open("/usr/lib/j2se/1.4/jre/../lib/i386/tls/i586/libpthread.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/usr/lib/j2se/1.4/jre/../lib/i386/tls/i586", 0xbffff2e8) = -1 ENOENT (No such file or directory)
open("/usr/lib/j2se/1.4/jre/../lib/i386/tls/libpthread.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/usr/lib/j2se/1.4/jre/../lib/i386/tls", 0xbffff2e8) = -1 ENOENT (No such file or directory)
open("/usr/lib/j2se/1.4/jre/../lib/i386/i586/libpthread.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/usr/lib/j2se/1.4/jre/../lib/i386/i586", 0xbffff2e8) = -1 ENOENT (No such file or directory)
open("/usr/lib/j2se/1.4/jre/../lib/i386/libpthread.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/usr/lib/j2se/1.4/jre/../lib/i386", 0xbffff2e8) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY)      = 3
fstat64(3, {st_dev=makedev(98, 0), st_ino=29113, st_mode=S_IFREG|0644, st_nlink=1, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=40, st_size=17718, st_atime=2004/09/07-23:34:40, st_mtime=2004/09/07-23:21:36, st_ctime=2004/09/07-23:21:36}) = 0
old_mmap(NULL, 17718, PROT_READ, MAP_PRIVATE, 3, 0) = 0x40018000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/tls/libpthread.so.0", 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\320D\0"..., 512) = 512
fstat64(3, {st_dev=makedev(98, 0), st_ino=16316, st_mode=S_IFREG|0644, st_nlink=1, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=160, st_size=78167, st_atime=2004/09/07-23:34:40, st_mtime=2004/08/09-19:30:38, st_ctime=2004/09/07-22:06:21}) = 0
old_mmap(NULL, 60768, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x4001d000
old_mmap(0x40029000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0xc000) = 0x40029000
old_mmap(0x4002a000, 7520, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x4002a000
close(3)                                = 0
open("/usr/lib/j2se/1.4/jre/lib/i386/client/libdl.so.2", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/lib/j2se/1.4/jre/lib/i386/libdl.so.2", O_RDONLY) = -1 ENOENT (No such file or directory)
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/tls/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\220\32"..., 512) = 512
fstat64(3, {st_dev=makedev(98, 0), st_ino=16305, st_mode=S_IFREG|0644, st_nlink=1, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=24, st_size=9432, st_atime=2004/09/07-23:34:40, st_mtime=2004/08/09-19:30:20, st_ctime=2004/09/07-22:06:21}) = 0
old_mmap(NULL, 12288, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x4002c000
old_mmap(0x4002e000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x1000) = 0x4002e000
close(3)                                = 0
open("/usr/lib/j2se/1.4/jre/lib/i386/client/libc.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/lib/j2se/1.4/jre/lib/i386/libc.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/tls/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\340X\1"..., 512) = 512
fstat64(3, {st_dev=makedev(98, 0), st_ino=16303, st_mode=S_IFREG|0644, st_nlink=1, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=2506, st_size=1279076, st_atime=2004/09/07-23:34:40, st_mtime=2004/08/09-19:30:20, st_ctime=2004/09/07-22:06:21}) = 0
old_mmap(NULL, 1289388, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x4002f000
old_mmap(0x4015f000, 36864, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x12f000) = 0x4015f000
old_mmap(0x40168000, 7340, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x40168000
close(3)                                = 0
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x4016a000
set_thread_area({entry_number:-1 -> -1, base_addr:0x4016a460, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}) = -1 ENOSYS (Function not implemented)
modify_ldt(1, {entry_number:0, base_addr:0x4016a460, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}, 16) = 0
munmap(0x40018000, 17718)               = 0
set_tid_address(0x4016a4a8)             = 1081
rt_sigaction(SIGRTMIN, {0x40021430, [], SA_RESTORER|SA_SIGINFO, 0x40027a10}, NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [RTMIN], NULL, 8) = 0
getrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, rlim_max=RLIM_INFINITY}) = 0
stat64("/usr/lib/j2se/1.4//bin/java", {st_dev=makedev(98, 0), st_ino=29190, st_mode=S_IFREG|0755, st_nlink=2, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=48, st_size=20820, st_atime=2004/09/07-23:34:40, st_mtime=2002/11/01-16:56:13, st_ctime=2004/09/07-23:33:11}) = 0
brk(0)                                  = 0x804e000
brk(0x8070000)                          = 0x8070000
brk(0)                                  = 0x8070000
lstat64("/usr", {st_dev=makedev(98, 0), st_ino=113, st_mode=S_IFDIR|0755, st_nlink=12, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=0, st_size=312, st_atime=2004/09/07-23:33:55, st_mtime=2004/09/07-22:53:02, st_ctime=2004/09/07-22:53:02}) = 0
lstat64("/usr/lib", {st_dev=makedev(98, 0), st_ino=143, st_mode=S_IFDIR|0755, st_nlink=41, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=22, st_size=11424, st_atime=2004/09/07-23:33:56, st_mtime=2004/09/07-23:33:23, st_ctime=2004/09/07-23:33:23}) = 0
lstat64("/usr/lib/j2se", {st_dev=makedev(98, 0), st_ino=29181, st_mode=S_IFDIR|0755, st_nlink=4, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=0, st_size=96, st_atime=2004/09/07-23:33:57, st_mtime=2004/09/07-23:33:11, st_ctime=2004/09/07-23:33:11}) = 0
lstat64("/usr/lib/j2se/1.4", {st_dev=makedev(98, 0), st_ino=29183, st_mode=S_IFDIR|0755, st_nlink=6, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=0, st_size=144, st_atime=2004/09/07-23:33:07, st_mtime=2004/09/07-23:33:29, st_ctime=2004/09/07-23:33:29}) = 0
lstat64("/usr/lib/j2se/1.4/bin", {st_dev=makedev(98, 0), st_ino=29184, st_mode=S_IFDIR|0755, st_nlink=3, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=1, st_size=816, st_atime=2004/09/07-23:33:07, st_mtime=2004/09/07-23:33:28, st_ctime=2004/09/07-23:33:28}) = 0
lstat64("/usr/lib/j2se/1.4/bin/java", {st_dev=makedev(98, 0), st_ino=29190, st_mode=S_IFREG|0755, st_nlink=2, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=48, st_size=20820, st_atime=2004/09/07-23:34:40, st_mtime=2002/11/01-16:56:13, st_ctime=2004/09/07-23:33:11}) = 0
lstat64("/proc", {st_dev=makedev(0, 3), st_ino=1, st_mode=S_IFDIR|0555, st_nlink=42, st_uid=0, st_gid=0, st_blksize=1024, st_blocks=0, st_size=0, st_atime=0, st_mtime=0, st_ctime=0}) = 0
lstat64("/proc/self", {st_dev=makedev(0, 3), st_ino=2, st_mode=S_IFLNK|0777, st_nlink=1, st_uid=0, st_gid=0, st_blksize=1024, st_blocks=2, st_size=64, st_atime=2004/09/07-23:34:40, st_mtime=2004/09/07-23:33:35, st_ctime=2004/09/07-23:33:35}) = 0
readlink("/proc/self", "1081", 4096)    = 4
lstat64("/proc/1081", {st_dev=makedev(0, 3), st_ino=70844418, st_mode=S_IFDIR|0555, st_nlink=3, st_uid=0, st_gid=0, st_blksize=1024, st_blocks=0, st_size=0, st_atime=2004/09/07-23:34:40, st_mtime=2004/09/07-23:34:40, st_ctime=2004/09/07-23:34:40}) = 0
lstat64("/proc/1081/exe", {st_dev=makedev(0, 3), st_ino=70844424, st_mode=S_IFLNK|0777, st_nlink=1, st_uid=0, st_gid=0, st_blksize=1024, st_blocks=0, st_size=0, st_atime=2004/09/07-23:34:40, st_mtime=2004/09/07-23:34:40, st_ctime=2004/09/07-23:34:40}) = 0
readlink("/proc/1081/exe", "/usr/lib/j2se/1.4/bin/java", 4096) = 26
lstat64("/usr", {st_dev=makedev(98, 0), st_ino=113, st_mode=S_IFDIR|0755, st_nlink=12, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=0, st_size=312, st_atime=2004/09/07-23:33:55, st_mtime=2004/09/07-22:53:02, st_ctime=2004/09/07-22:53:02}) = 0
lstat64("/usr/lib", {st_dev=makedev(98, 0), st_ino=143, st_mode=S_IFDIR|0755, st_nlink=41, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=22, st_size=11424, st_atime=2004/09/07-23:33:56, st_mtime=2004/09/07-23:33:23, st_ctime=2004/09/07-23:33:23}) = 0
lstat64("/usr/lib/j2se", {st_dev=makedev(98, 0), st_ino=29181, st_mode=S_IFDIR|0755, st_nlink=4, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=0, st_size=96, st_atime=2004/09/07-23:33:57, st_mtime=2004/09/07-23:33:11, st_ctime=2004/09/07-23:33:11}) = 0
lstat64("/usr/lib/j2se/1.4", {st_dev=makedev(98, 0), st_ino=29183, st_mode=S_IFDIR|0755, st_nlink=6, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=0, st_size=144, st_atime=2004/09/07-23:33:07, st_mtime=2004/09/07-23:33:29, st_ctime=2004/09/07-23:33:29}) = 0
lstat64("/usr/lib/j2se/1.4/bin", {st_dev=makedev(98, 0), st_ino=29184, st_mode=S_IFDIR|0755, st_nlink=3, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=1, st_size=816, st_atime=2004/09/07-23:33:07, st_mtime=2004/09/07-23:33:28, st_ctime=2004/09/07-23:33:28}) = 0
lstat64("/usr/lib/j2se/1.4/bin/java", {st_dev=makedev(98, 0), st_ino=29190, st_mode=S_IFREG|0755, st_nlink=2, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=48, st_size=20820, st_atime=2004/09/07-23:34:40, st_mtime=2002/11/01-16:56:13, st_ctime=2004/09/07-23:33:11}) = 0
access("/usr/lib/j2se/1.4/lib/i386/libjava.so", F_OK) = -1 ENOENT (No such file or directory)
access("/usr/lib/j2se/1.4/jre/lib/i386/libjava.so", F_OK) = 0
open("/usr/lib/j2se/1.4/jre/lib/i386/jvm.cfg", O_RDONLY) = 3
fstat64(3, {st_dev=makedev(98, 0), st_ino=29218, st_mode=S_IFREG|0644, st_nlink=1, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=8, st_size=671, st_atime=2004/09/07-23:34:40, st_mtime=2002/07/24-00:34:35, st_ctime=2004/09/07-23:33:13}) = 0
mmap2(NULL, 131072, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x4016b000
read(3, "#\n# @(#)jvm.cfg\t1.6 01/12/03\n# \n"..., 131072) = 671
read(3, "", 131072)                     = 0
close(3)                                = 0
munmap(0x4016b000, 131072)              = 0
stat64("/usr/lib/j2se/1.4/jre/lib/i386/client/libjvm.so", {st_dev=makedev(98, 0), st_ino=29213, st_mode=S_IFREG|0644, st_nlink=1, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=9225, st_size=4716004, st_atime=2004/09/07-23:34:09, st_mtime=2002/11/01-16:56:12, st_ctime=2004/09/07-23:33:13}) = 0
futex(0x4002effc, FUTEX_WAKE, 2147483647) = 0
open("/usr/lib/j2se/1.4/jre/lib/i386/client/libjvm.so", 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\220M\16"..., 512) = 512
fstat64(3, {st_dev=makedev(98, 0), st_ino=29213, st_mode=S_IFREG|0644, st_nlink=1, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=9225, st_size=4716004, st_atime=2004/09/07-23:34:40, st_mtime=2002/11/01-16:56:12, st_ctime=2004/09/07-23:33:13}) = 0
old_mmap(NULL, 4788152, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x4016b000
old_mmap(0x405cf000, 118784, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x463000) = 0x405cf000
old_mmap(0x405ec000, 65464, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x405ec000
close(3)                                = 0
open("/usr/lib/j2se/1.4/jre/lib/i386/client/libnsl.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/lib/j2se/1.4/jre/lib/i386/libnsl.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY)      = 3
fstat64(3, {st_dev=makedev(98, 0), st_ino=29113, st_mode=S_IFREG|0644, st_nlink=1, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=40, st_size=17718, st_atime=2004/09/07-23:34:40, st_mtime=2004/09/07-23:21:36, st_ctime=2004/09/07-23:21:36}) = 0
old_mmap(NULL, 17718, PROT_READ, MAP_PRIVATE, 3, 0) = 0x405fc000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/tls/libnsl.so.1", 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\3209\0"..., 512) = 512
fstat64(3, {st_dev=makedev(98, 0), st_ino=16308, st_mode=S_IFREG|0644, st_nlink=1, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=152, st_size=74264, st_atime=2004/09/07-23:34:40, st_mtime=2004/08/09-19:30:20, st_ctime=2004/09/07-22:06:21}) = 0
old_mmap(NULL, 85600, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x40601000
old_mmap(0x40613000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x11000) = 0x40613000
old_mmap(0x40614000, 7776, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x40614000
close(3)                                = 0
open("/usr/lib/j2se/1.4/jre/lib/i386/client/libm.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/lib/j2se/1.4/jre/lib/i386/libm.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/tls/libm.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\0006\0"..., 512) = 512
fstat64(3, {st_dev=makedev(98, 0), st_ino=16306, st_mode=S_IFREG|0644, st_nlink=1, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=280, st_size=141312, st_atime=2004/09/07-23:34:40, st_mtime=2004/08/09-19:30:20, st_ctime=2004/09/07-22:06:21}) = 0
old_mmap(NULL, 139712, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x40616000
old_mmap(0x40638000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x22000) = 0x40638000
close(3)                                = 0
munmap(0x405fc000, 17718)               = 0
getpid()                                = 1081
open("/etc/mtab", O_RDONLY)             = 3
fstat64(3, {st_dev=makedev(98, 0), st_ino=1497, st_mode=S_IFREG|0644, st_nlink=1, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=8, st_size=158, st_atime=2004/09/07-23:34:09, st_mtime=2004/09/07-23:00:37, st_ctime=2004/09/07-23:00:37}) = 0
mmap2(NULL, 131072, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40639000
read(3, "/dev/ubd/disc0/disc / reiserfs r"..., 131072) = 158
close(3)                                = 0
munmap(0x40639000, 131072)              = 0
open("/proc/stat", O_RDONLY)            = 3
fstat64(3, {st_dev=makedev(0, 3), st_ino=4026531853, st_mode=S_IFREG|0444, st_nlink=1, st_uid=0, st_gid=0, st_blksize=1024, st_blocks=0, st_size=0, st_atime=2004/09/07-23:34:40, st_mtime=2004/09/07-23:34:40, st_ctime=2004/09/07-23:34:40}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40639000
read(3, "cpu  3778 0 12749 187703 79 35 4"..., 1024) = 203
read(3, "", 1024)                       = 0
close(3)                                = 0
munmap(0x40639000, 4096)                = 0
open("/etc/mtab", O_RDONLY)             = 3
fstat64(3, {st_dev=makedev(98, 0), st_ino=1497, st_mode=S_IFREG|0644, st_nlink=1, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=8, st_size=158, st_atime=2004/09/07-23:34:40, st_mtime=2004/09/07-23:00:37, st_ctime=2004/09/07-23:00:37}) = 0
mmap2(NULL, 131072, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40639000
read(3, "/dev/ubd/disc0/disc / reiserfs r"..., 131072) = 158
close(3)                                = 0
munmap(0x40639000, 131072)              = 0
open("/proc/meminfo", O_RDONLY)         = 3
fstat64(3, {st_dev=makedev(0, 3), st_ino=4026531842, st_mode=S_IFREG|0444, st_nlink=1, st_uid=0, st_gid=0, st_blksize=1024, st_blocks=0, st_size=0, st_atime=2004/09/07-23:34:40, st_mtime=2004/09/07-23:34:40, st_ctime=2004/09/07-23:34:40}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40639000
read(3, "MemTotal:        61240 kB\nMemFre"..., 1024) = 572
close(3)                                = 0
munmap(0x40639000, 4096)                = 0
getrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, rlim_max=RLIM_INFINITY}) = 0
gettimeofday({1094600080, 836499}, NULL) = 0
lstat64("/usr", {st_dev=makedev(98, 0), st_ino=113, st_mode=S_IFDIR|0755, st_nlink=12, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=0, st_size=312, st_atime=2004/09/07-23:33:55, st_mtime=2004/09/07-22:53:02, st_ctime=2004/09/07-22:53:02}) = 0
lstat64("/usr/lib", {st_dev=makedev(98, 0), st_ino=143, st_mode=S_IFDIR|0755, st_nlink=41, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=22, st_size=11424, st_atime=2004/09/07-23:33:56, st_mtime=2004/09/07-23:33:23, st_ctime=2004/09/07-23:33:23}) = 0
lstat64("/usr/lib/j2se", {st_dev=makedev(98, 0), st_ino=29181, st_mode=S_IFDIR|0755, st_nlink=4, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=0, st_size=96, st_atime=2004/09/07-23:33:57, st_mtime=2004/09/07-23:33:11, st_ctime=2004/09/07-23:33:11}) = 0
lstat64("/usr/lib/j2se/1.4", {st_dev=makedev(98, 0), st_ino=29183, st_mode=S_IFDIR|0755, st_nlink=6, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=0, st_size=144, st_atime=2004/09/07-23:33:07, st_mtime=2004/09/07-23:33:29, st_ctime=2004/09/07-23:33:29}) = 0
lstat64("/usr/lib/j2se/1.4/jre", {st_dev=makedev(98, 0), st_ino=29201, st_mode=S_IFDIR|0755, st_nlink=5, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=0, st_size=368, st_atime=2004/09/07-23:33:07, st_mtime=2004/09/07-23:33:23, st_ctime=2004/09/07-23:33:23}) = 0
lstat64("/usr/lib/j2se/1.4/jre/lib", {st_dev=makedev(98, 0), st_ino=29204, st_mode=S_IFDIR|0755, st_nlink=13, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=2, st_size=1088, st_atime=2004/09/07-23:33:07, st_mtime=2004/09/07-23:33:23, st_ctime=2004/09/07-23:33:23}) = 0
lstat64("/usr/lib/j2se/1.4/jre/lib/i386", {st_dev=makedev(98, 0), st_ino=29206, st_mode=S_IFDIR|0755, st_nlink=5, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=1, st_size=936, st_atime=2004/09/07-23:33:07, st_mtime=2004/09/07-23:33:14, st_ctime=2004/09/07-23:33:14}) = 0
lstat64("/usr/lib/j2se/1.4/jre/lib/i386/client", {st_dev=makedev(98, 0), st_ino=29212, st_mode=S_IFDIR|0755, st_nlink=2, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=0, st_size=144, st_atime=2004/09/07-23:33:07, st_mtime=2004/09/07-23:33:23, st_ctime=2004/09/07-23:33:23}) = 0
lstat64("/usr/lib/j2se/1.4/jre/lib/i386/client/libjvm.so", {st_dev=makedev(98, 0), st_ino=29213, st_mode=S_IFREG|0644, st_nlink=1, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=9225, st_size=4716004, st_atime=2004/09/07-23:34:40, st_mtime=2002/11/01-16:56:12, st_ctime=2004/09/07-23:33:13}) = 0
access("/etc/debian_version", F_OK)     = 0
open(".hotspotrc", O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory)
open("/usr/share/tomcat4/common/endorsed", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 3
fstat64(3, {st_dev=makedev(98, 0), st_ino=32314, st_mode=S_IFDIR|0755, st_nlink=2, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=0, st_size=48, st_atime=2004/09/07-23:34:09, st_mtime=2004/08/13-11:40:58, st_ctime=2004/09/07-22:55:41}) = 0
fcntl64(3, F_SETFD, FD_CLOEXEC)         = 0
mmap2(NULL, 135168, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40639000
getdents64(3, {{d_ino=32314, d_off=2, d_type=DT_UNKNOWN, d_reclen=24, d_name="."} {d_ino=32312, d_off=3, d_type=DT_UNKNOWN, d_reclen=24, d_name=".."}}, 131072) = 48
getdents64(3, {}, 131072)               = 0
munmap(0x40639000, 135168)              = 0
close(3)                                = 0
rt_sigaction(SIGSEGV, NULL, {SIG_DFL}, 8) = 0
rt_sigaction(SIGSEGV, {0x4041d358, ~[RTMIN], SA_RESTORER|SA_STACK|SA_RESTART|SA_SIGINFO, 0x40027a10}, {SIG_DFL}, 8) = 0
rt_sigaction(SIGPIPE, NULL, {SIG_DFL}, 8) = 0
rt_sigaction(SIGPIPE, {0x4041d358, ~[RTMIN], SA_RESTORER|SA_RESTART|SA_SIGINFO, 0x40027a10}, {SIG_DFL}, 8) = 0
rt_sigaction(SIGCHLD, NULL, {SIG_DFL}, 8) = 0
rt_sigaction(SIGCHLD, {0x4041d358, ~[RTMIN], SA_RESTORER|SA_RESTART|SA_SIGINFO|SA_NOCLDSTOP, 0x40027a10}, {SIG_DFL}, 8) = 0
rt_sigaction(SIGBUS, NULL, {SIG_DFL}, 8) = 0
rt_sigaction(SIGBUS, {0x4041d358, ~[RTMIN], SA_RESTORER|SA_RESTART|SA_SIGINFO, 0x40027a10}, {SIG_DFL}, 8) = 0
rt_sigaction(SIGILL, NULL, {SIG_DFL}, 8) = 0
rt_sigaction(SIGILL, {0x4041d358, ~[RTMIN], SA_RESTORER|SA_RESTART|SA_SIGINFO, 0x40027a10}, {SIG_DFL}, 8) = 0
rt_sigaction(SIGFPE, NULL, {SIG_DFL}, 8) = 0
rt_sigaction(SIGFPE, {0x4041d358, ~[RTMIN], SA_RESTORER|SA_RESTART|SA_SIGINFO, 0x40027a10}, {SIG_DFL}, 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
rt_sigaction(SIGUSR2, {0x4041bb5c, [], SA_RESTORER|SA_RESTART|SA_SIGINFO, 0x40027a10}, NULL, 8) = 0
getrlimit(RLIMIT_NOFILE, {rlim_cur=1024, rlim_max=1024}) = 0
setrlimit(RLIMIT_NOFILE, {rlim_cur=1024, rlim_max=1024}) = 0
open("/usr/lib/j2se/1.4/jre/lib/i386/native_threads/libhpi.so", 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\200@\0"..., 512) = 512
fstat64(3, {st_dev=makedev(98, 0), st_ino=29208, st_mode=S_IFREG|0644, st_nlink=1, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=80, st_size=39384, st_atime=2004/09/07-23:34:40, st_mtime=2002/11/01-16:56:13, st_ctime=2004/09/07-23:33:12}) = 0
old_mmap(NULL, 43420, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x40639000
mprotect(0x40642000, 6556, PROT_NONE)   = 0
old_mmap(0x40643000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x9000) = 0x40643000
close(3)                                = 0
mmap2(0xbfe0e000, 12288, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xbfe0e000
mprotect(0xbfe0e000, 12288, PROT_NONE)  = 0
getpid()                                = 1081
mmap2(0xbfe04000, 40960, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xbfe04000
sigaltstack({ss_sp=0xbfe04000, ss_flags=0, ss_size=40960}, NULL) = 0
rt_sigprocmask(SIG_UNBLOCK, [HUP INT QUIT USR2 TERM CHLD], NULL, 8) = 0
open("/usr/lib/j2se/1.4/jre/lib/i386/libverify.so", 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\260!\0"..., 512) = 512
fstat64(3, {st_dev=makedev(98, 0), st_ino=29216, st_mode=S_IFREG|0644, st_nlink=1, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=136, st_size=65608, st_atime=2004/09/07-23:34:40, st_mtime=2002/11/01-16:56:11, st_ctime=2004/09/07-23:33:13}) = 0
old_mmap(NULL, 68592, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x40644000
old_mmap(0x40653000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0xe000) = 0x40653000
close(3)                                = 0
open("/usr/lib/j2se/1.4/jre/lib/i386/client/libjvm.so", 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\220M\16"..., 512) = 512
fstat64(3, {st_dev=makedev(98, 0), st_ino=29213, st_mode=S_IFREG|0644, st_nlink=1, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=9225, st_size=4716004, st_atime=2004/09/07-23:34:40, st_mtime=2002/11/01-16:56:12, st_ctime=2004/09/07-23:33:13}) = 0
close(3)                                = 0
open("/usr/lib/j2se/1.4/jre/lib/i386/libjava.so", 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 \212\0"..., 512) = 512
fstat64(3, {st_dev=makedev(98, 0), st_ino=29217, st_mode=S_IFREG|0644, st_nlink=1, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=256, st_size=130480, st_atime=2004/09/07-23:34:41, st_mtime=2002/11/01-16:56:11, st_ctime=2004/09/07-23:33:13}) = 0
old_mmap(NULL, 133580, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x40655000
old_mmap(0x40674000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x1e000) = 0x40674000
close(3)                                = 0
open("/usr/lib/j2se/1.4/jre/lib/i386/client/libverify.so", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/lib/j2se/1.4/jre/lib/i386/libverify.so", 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\260!\0"..., 512) = 512
fstat64(3, {st_dev=makedev(98, 0), st_ino=29216, st_mode=S_IFREG|0644, st_nlink=1, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=136, st_size=65608, st_atime=2004/09/07-23:34:41, st_mtime=2002/11/01-16:56:11, st_ctime=2004/09/07-23:33:13}) = 0
close(3)                                = 0
open("/usr/lib/j2se/1.4/jre/lib/i386/libzip.so", 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\260\'\0"..., 512) = 512
fstat64(3, {st_dev=makedev(98, 0), st_ino=29219, st_mode=S_IFREG|0644, st_nlink=1, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=184, st_size=92024, st_atime=2004/09/07-23:34:41, st_mtime=2002/11/01-16:56:11, st_ctime=2004/09/07-23:33:13}) = 0
old_mmap(NULL, 95424, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x40676000
old_mmap(0x4068b000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x14000) = 0x4068b000
close(3)                                = 0
open("/usr/lib/j2se/1.4/jre/lib/i386/client/libjava.so", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/lib/j2se/1.4/jre/lib/i386/libjava.so", 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 \212\0"..., 512) = 512
fstat64(3, {st_dev=makedev(98, 0), st_ino=29217, st_mode=S_IFREG|0644, st_nlink=1, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=256, st_size=130480, st_atime=2004/09/07-23:34:41, st_mtime=2002/11/01-16:56:11, st_ctime=2004/09/07-23:33:13}) = 0
close(3)                                = 0
stat64("/usr/lib/j2se/1.4/jre/lib/rt.jar", {st_dev=makedev(98, 0), st_ino=34114, st_mode=S_IFREG|0644, st_nlink=1, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=46741, st_size=23908228, st_atime=2004/09/07-23:34:09, st_mtime=2002/07/24-01:00:37, st_ctime=2004/09/07-23:33:23}) = 0
lstat64("/usr", {st_dev=makedev(98, 0), st_ino=113, st_mode=S_IFDIR|0755, st_nlink=12, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=0, st_size=312, st_atime=2004/09/07-23:33:55, st_mtime=2004/09/07-22:53:02, st_ctime=2004/09/07-22:53:02}) = 0
lstat64("/usr/lib", {st_dev=makedev(98, 0), st_ino=143, st_mode=S_IFDIR|0755, st_nlink=41, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=22, st_size=11424, st_atime=2004/09/07-23:33:56, st_mtime=2004/09/07-23:33:23, st_ctime=2004/09/07-23:33:23}) = 0
lstat64("/usr/lib/j2se", {st_dev=makedev(98, 0), st_ino=29181, st_mode=S_IFDIR|0755, st_nlink=4, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=0, st_size=96, st_atime=2004/09/07-23:33:57, st_mtime=2004/09/07-23:33:11, st_ctime=2004/09/07-23:33:11}) = 0
lstat64("/usr/lib/j2se/1.4", {st_dev=makedev(98, 0), st_ino=29183, st_mode=S_IFDIR|0755, st_nlink=6, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=0, st_size=144, st_atime=2004/09/07-23:33:07, st_mtime=2004/09/07-23:33:29, st_ctime=2004/09/07-23:33:29}) = 0
lstat64("/usr/lib/j2se/1.4/jre", {st_dev=makedev(98, 0), st_ino=29201, st_mode=S_IFDIR|0755, st_nlink=5, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=0, st_size=368, st_atime=2004/09/07-23:33:07, st_mtime=2004/09/07-23:33:23, st_ctime=2004/09/07-23:33:23}) = 0
lstat64("/usr/lib/j2se/1.4/jre/lib", {st_dev=makedev(98, 0), st_ino=29204, st_mode=S_IFDIR|0755, st_nlink=13, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=2, st_size=1088, st_atime=2004/09/07-23:33:07, st_mtime=2004/09/07-23:33:23, st_ctime=2004/09/07-23:33:23}) = 0
lstat64("/usr/lib/j2se/1.4/jre/lib/rt.jar", {st_dev=makedev(98, 0), st_ino=34114, st_mode=S_IFREG|0644, st_nlink=1, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=46741, st_size=23908228, st_atime=2004/09/07-23:34:09, st_mtime=2002/07/24-01:00:37, st_ctime=2004/09/07-23:33:23}) = 0
open("/usr/lib/j2se/1.4/jre/lib/rt.jar", O_RDONLY|O_LARGEFILE) = 3
fstat64(3, {st_dev=makedev(98, 0), st_ino=34114, st_mode=S_IFREG|0644, st_nlink=1, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=46741, st_size=23908228, st_atime=2004/09/07-23:34:09, st_mtime=2002/07/24-01:00:37, st_ctime=2004/09/07-23:33:23}) = 0
_llseek(3, 0, [23908228], SEEK_END)     = 0
mmap2(NULL, 23908228, PROT_READ, MAP_SHARED, 3, 0) = 0x4068e000
close(3)                                = 0
mmap2(NULL, 274432, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x41d5b000
stat64("/usr/lib/j2se/1.4/jre/lib/i18n.jar", 0xbfffd8c0) = -1 ENOENT (No such file or directory)
stat64("/usr/lib/j2se/1.4/jre/lib/sunrsasign.jar", {st_dev=makedev(98, 0), st_ino=29262, st_mode=S_IFREG|0644, st_nlink=1, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=184, st_size=90973, st_atime=2004/09/07-23:34:10, st_mtime=2002/07/24-00:32:43, st_ctime=2004/09/07-23:33:14}) = 0
lstat64("/usr", {st_dev=makedev(98, 0), st_ino=113, st_mode=S_IFDIR|0755, st_nlink=12, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=0, st_size=312, st_atime=2004/09/07-23:33:55, st_mtime=2004/09/07-22:53:02, st_ctime=2004/09/07-22:53:02}) = 0
lstat64("/usr/lib", {st_dev=makedev(98, 0), st_ino=143, st_mode=S_IFDIR|0755, st_nlink=41, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=22, st_size=11424, st_atime=2004/09/07-23:33:56, st_mtime=2004/09/07-23:33:23, st_ctime=2004/09/07-23:33:23}) = 0
lstat64("/usr/lib/j2se", {st_dev=makedev(98, 0), st_ino=29181, st_mode=S_IFDIR|0755, st_nlink=4, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=0, st_size=96, st_atime=2004/09/07-23:33:57, st_mtime=2004/09/07-23:33:11, st_ctime=2004/09/07-23:33:11}) = 0
lstat64("/usr/lib/j2se/1.4", {st_dev=makedev(98, 0), st_ino=29183, st_mode=S_IFDIR|0755, st_nlink=6, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=0, st_size=144, st_atime=2004/09/07-23:33:07, st_mtime=2004/09/07-23:33:29, st_ctime=2004/09/07-23:33:29}) = 0
lstat64("/usr/lib/j2se/1.4/jre", {st_dev=makedev(98, 0), st_ino=29201, st_mode=S_IFDIR|0755, st_nlink=5, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=0, st_size=368, st_atime=2004/09/07-23:33:07, st_mtime=2004/09/07-23:33:23, st_ctime=2004/09/07-23:33:23}) = 0
lstat64("/usr/lib/j2se/1.4/jre/lib", {st_dev=makedev(98, 0), st_ino=29204, st_mode=S_IFDIR|0755, st_nlink=13, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=2, st_size=1088, st_atime=2004/09/07-23:33:07, st_mtime=2004/09/07-23:33:23, st_ctime=2004/09/07-23:33:23}) = 0
lstat64("/usr/lib/j2se/1.4/jre/lib/sunrsasign.jar", {st_dev=makedev(98, 0), st_ino=29262, st_mode=S_IFREG|0644, st_nlink=1, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=184, st_size=90973, st_atime=2004/09/07-23:34:10, st_mtime=2002/07/24-00:32:43, st_ctime=2004/09/07-23:33:14}) = 0
open("/usr/lib/j2se/1.4/jre/lib/sunrsasign.jar", O_RDONLY|O_LARGEFILE) = 3
fstat64(3, {st_dev=makedev(98, 0), st_ino=29262, st_mode=S_IFREG|0644, st_nlink=1, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=184, st_size=90973, st_atime=2004/09/07-23:34:10, st_mtime=2002/07/24-00:32:43, st_ctime=2004/09/07-23:33:14}) = 0
_llseek(3, 0, [90973], SEEK_END)        = 0
mmap2(NULL, 90973, PROT_READ, MAP_SHARED, 3, 0) = 0x41d9e000
close(3)                                = 0
stat64("/usr/lib/j2se/1.4/jre/lib/jsse.jar", {st_dev=makedev(98, 0), st_ino=29267, st_mode=S_IFREG|0644, st_nlink=1, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=904, st_size=462284, st_atime=2004/09/07-23:34:10, st_mtime=2002/07/24-00:32:45, st_ctime=2004/09/07-23:33:15}) = 0
lstat64("/usr", {st_dev=makedev(98, 0), st_ino=113, st_mode=S_IFDIR|0755, st_nlink=12, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=0, st_size=312, st_atime=2004/09/07-23:33:55, st_mtime=2004/09/07-22:53:02, st_ctime=2004/09/07-22:53:02}) = 0
lstat64("/usr/lib", {st_dev=makedev(98, 0), st_ino=143, st_mode=S_IFDIR|0755, st_nlink=41, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=22, st_size=11424, st_atime=2004/09/07-23:33:56, st_mtime=2004/09/07-23:33:23, st_ctime=2004/09/07-23:33:23}) = 0
lstat64("/usr/lib/j2se", {st_dev=makedev(98, 0), st_ino=29181, st_mode=S_IFDIR|0755, st_nlink=4, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=0, st_size=96, st_atime=2004/09/07-23:33:57, st_mtime=2004/09/07-23:33:11, st_ctime=2004/09/07-23:33:11}) = 0
lstat64("/usr/lib/j2se/1.4", {st_dev=makedev(98, 0), st_ino=29183, st_mode=S_IFDIR|0755, st_nlink=6, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=0, st_size=144, st_atime=2004/09/07-23:33:07, st_mtime=2004/09/07-23:33:29, st_ctime=2004/09/07-23:33:29}) = 0
lstat64("/usr/lib/j2se/1.4/jre", {st_dev=makedev(98, 0), st_ino=29201, st_mode=S_IFDIR|0755, st_nlink=5, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=0, st_size=368, st_atime=2004/09/07-23:33:07, st_mtime=2004/09/07-23:33:23, st_ctime=2004/09/07-23:33:23}) = 0
lstat64("/usr/lib/j2se/1.4/jre/lib", {st_dev=makedev(98, 0), st_ino=29204, st_mode=S_IFDIR|0755, st_nlink=13, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=2, st_size=1088, st_atime=2004/09/07-23:33:07, st_mtime=2004/09/07-23:33:23, st_ctime=2004/09/07-23:33:23}) = 0
lstat64("/usr/lib/j2se/1.4/jre/lib/jsse.jar", {st_dev=makedev(98, 0), st_ino=29267, st_mode=S_IFREG|0644, st_nlink=1, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=904, st_size=462284, st_atime=2004/09/07-23:34:10, st_mtime=2002/07/24-00:32:45, st_ctime=2004/09/07-23:33:15}) = 0
open("/usr/lib/j2se/1.4/jre/lib/jsse.jar", O_RDONLY|O_LARGEFILE) = 3
fstat64(3, {st_dev=makedev(98, 0), st_ino=29267, st_mode=S_IFREG|0644, st_nlink=1, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=904, st_size=462284, st_atime=2004/09/07-23:34:10, st_mtime=2002/07/24-00:32:45, st_ctime=2004/09/07-23:33:15}) = 0
_llseek(3, 0, [462284], SEEK_END)       = 0
mmap2(NULL, 462284, PROT_READ, MAP_SHARED, 3, 0) = 0x41db5000
close(3)                                = 0
stat64("/usr/lib/j2se/1.4/jre/lib/jce.jar", {st_dev=makedev(98, 0), st_ino=29263, st_mode=S_IFREG|0644, st_nlink=1, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=152, st_size=76355, st_atime=2004/09/07-23:34:10, st_mtime=2002/07/24-00:32:45, st_ctime=2004/09/07-23:33:15}) = 0
lstat64("/usr", {st_dev=makedev(98, 0), st_ino=113, st_mode=S_IFDIR|0755, st_nlink=12, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=0, st_size=312, st_atime=2004/09/07-23:33:55, st_mtime=2004/09/07-22:53:02, st_ctime=2004/09/07-22:53:02}) = 0
lstat64("/usr/lib", {st_dev=makedev(98, 0), st_ino=143, st_mode=S_IFDIR|0755, st_nlink=41, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=22, st_size=11424, st_atime=2004/09/07-23:33:56, st_mtime=2004/09/07-23:33:23, st_ctime=2004/09/07-23:33:23}) = 0
lstat64("/usr/lib/j2se", {st_dev=makedev(98, 0), st_ino=29181, st_mode=S_IFDIR|0755, st_nlink=4, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=0, st_size=96, st_atime=2004/09/07-23:33:57, st_mtime=2004/09/07-23:33:11, st_ctime=2004/09/07-23:33:11}) = 0
lstat64("/usr/lib/j2se/1.4", {st_dev=makedev(98, 0), st_ino=29183, st_mode=S_IFDIR|0755, st_nlink=6, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=0, st_size=144, st_atime=2004/09/07-23:33:07, st_mtime=2004/09/07-23:33:29, st_ctime=2004/09/07-23:33:29}) = 0
lstat64("/usr/lib/j2se/1.4/jre", {st_dev=makedev(98, 0), st_ino=29201, st_mode=S_IFDIR|0755, st_nlink=5, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=0, st_size=368, st_atime=2004/09/07-23:33:07, st_mtime=2004/09/07-23:33:23, st_ctime=2004/09/07-23:33:23}) = 0
lstat64("/usr/lib/j2se/1.4/jre/lib", {st_dev=makedev(98, 0), st_ino=29204, st_mode=S_IFDIR|0755, st_nlink=13, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=2, st_size=1088, st_atime=2004/09/07-23:33:07, st_mtime=2004/09/07-23:33:23, st_ctime=2004/09/07-23:33:23}) = 0
lstat64("/usr/lib/j2se/1.4/jre/lib/jce.jar", {st_dev=makedev(98, 0), st_ino=29263, st_mode=S_IFREG|0644, st_nlink=1, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=152, st_size=76355, st_atime=2004/09/07-23:34:10, st_mtime=2002/07/24-00:32:45, st_ctime=2004/09/07-23:33:15}) = 0
open("/usr/lib/j2se/1.4/jre/lib/jce.jar", O_RDONLY|O_LARGEFILE) = 3
fstat64(3, {st_dev=makedev(98, 0), st_ino=29263, st_mode=S_IFREG|0644, st_nlink=1, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=152, st_size=76355, st_atime=2004/09/07-23:34:10, st_mtime=2002/07/24-00:32:45, st_ctime=2004/09/07-23:33:15}) = 0
_llseek(3, 0, [76355], SEEK_END)        = 0
mmap2(NULL, 76355, PROT_READ, MAP_SHARED, 3, 0) = 0x41e26000
close(3)                                = 0
stat64("/usr/lib/j2se/1.4/jre/lib/charsets.jar", {st_dev=makedev(98, 0), st_ino=34063, st_mode=S_IFREG|0644, st_nlink=1, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=5605, st_size=2863340, st_atime=2004/09/07-23:34:10, st_mtime=2002/07/24-00:51:28, st_ctime=2004/09/07-23:33:19}) = 0
lstat64("/usr", {st_dev=makedev(98, 0), st_ino=113, st_mode=S_IFDIR|0755, st_nlink=12, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=0, st_size=312, st_atime=2004/09/07-23:33:55, st_mtime=2004/09/07-22:53:02, st_ctime=2004/09/07-22:53:02}) = 0
lstat64("/usr/lib", {st_dev=makedev(98, 0), st_ino=143, st_mode=S_IFDIR|0755, st_nlink=41, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=22, st_size=11424, st_atime=2004/09/07-23:33:56, st_mtime=2004/09/07-23:33:23, st_ctime=2004/09/07-23:33:23}) = 0
lstat64("/usr/lib/j2se", {st_dev=makedev(98, 0), st_ino=29181, st_mode=S_IFDIR|0755, st_nlink=4, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=0, st_size=96, st_atime=2004/09/07-23:33:57, st_mtime=2004/09/07-23:33:11, st_ctime=2004/09/07-23:33:11}) = 0
lstat64("/usr/lib/j2se/1.4", {st_dev=makedev(98, 0), st_ino=29183, st_mode=S_IFDIR|0755, st_nlink=6, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=0, st_size=144, st_atime=2004/09/07-23:33:07, st_mtime=2004/09/07-23:33:29, st_ctime=2004/09/07-23:33:29}) = 0
lstat64("/usr/lib/j2se/1.4/jre", {st_dev=makedev(98, 0), st_ino=29201, st_mode=S_IFDIR|0755, st_nlink=5, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=0, st_size=368, st_atime=2004/09/07-23:33:07, st_mtime=2004/09/07-23:33:23, st_ctime=2004/09/07-23:33:23}) = 0
lstat64("/usr/lib/j2se/1.4/jre/lib", {st_dev=makedev(98, 0), st_ino=29204, st_mode=S_IFDIR|0755, st_nlink=13, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=2, st_size=1088, st_atime=2004/09/07-23:33:07, st_mtime=2004/09/07-23:33:23, st_ctime=2004/09/07-23:33:23}) = 0
lstat64("/usr/lib/j2se/1.4/jre/lib/charsets.jar", {st_dev=makedev(98, 0), st_ino=34063, st_mode=S_IFREG|0644, st_nlink=1, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=5605, st_size=2863340, st_atime=2004/09/07-23:34:10, st_mtime=2002/07/24-00:51:28, st_ctime=2004/09/07-23:33:19}) = 0
open("/usr/lib/j2se/1.4/jre/lib/charsets.jar", O_RDONLY|O_LARGEFILE) = 3
fstat64(3, {st_dev=makedev(98, 0), st_ino=34063, st_mode=S_IFREG|0644, st_nlink=1, st_uid=0, st_gid=0, st_blksize=131072, st_blocks=5605, st_size=2863340, st_atime=2004/09/07-23:34:10, st_mtime=2002/07/24-00:51:28, st_ctime=2004/09/07-23:33:19}) = 0
_llseek(3, 0, [2863340], SEEK_END)      = 0
mmap2(NULL, 2863340, PROT_READ, MAP_SHARED, 3, 0) = 0x41e39000
close(3)                                = 0
stat64("/usr/lib/j2se/1.4/jre/classes", 0xbfffd8c0) = -1 ENOENT (No such file or directory)
mmap2(NULL, 33554432, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0) = 0x420f5000
mmap2(0x420f5000, 163840, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x420f5000
mmap2(NULL, 524288, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0) = 0x440f5000
mmap2(0x440f5000, 4096, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x440f5000
mmap2(NULL, 163840, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x44175000
mmap2(NULL, 134217728, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0) = 0x4419d000
munmap(0x4419d000, 134217728)           = 0
mmap2(NULL, 134283264, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0) = 0x4419d000
munmap(0x4419d000, 12288)               = 0
munmap(0x4c1a0000, 53248)               = 0
mmap2(NULL, 266240, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0) = 0x4c1a0000
mmap2(0x4c1e0000, 4096, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x4c1e0000
mmap2(0x441a0000, 655360, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x441a0000
mmap2(0x4c1a0000, 4096, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x4c1a0000
mmap2(0x44680000, 1441792, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x44680000
mmap2(NULL, 122880, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0) = 0x4c1e1000
mmap2(0x4c1e1000, 4096, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x4c1e1000
mmap2(0x4c1a2000, 8192, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x4c1a2000
mmap2(0x481a0000, 4194304, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x481a0000
mmap2(NULL, 135168, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0) = 0x4c1ff000
mmap2(0x4c1ff000, 12288, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x4c1ff000
mmap2(0x4c1c0000, 8192, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x4c1c0000
mmap2(0x4211d000, 32768, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x4211d000
gettimeofday({1094600081, 441035}, NULL) = 0
brk(0)                                  = 0x8070000
brk(0x8092000)                          = 0x8092000
gettimeofday({1094600081, 472003}, NULL) = 0
mmap2(0x42125000, 32768, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x42125000
mmap2(0x4212d000, 32768, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x4212d000
mmap2(0x42135000, 32768, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x42135000
mmap2(0x440f6000, 4096, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x440f6000
mmap2(0x4213d000, 32768, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x4213d000
mmap2(0x42145000, 32768, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x42145000
mmap2(0x4214d000, 32768, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x4214d000
mmap2(0x42155000, 32768, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x42155000
mmap2(0x4215d000, 32768, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x4215d000
mmap2(0x42165000, 32768, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x42165000
open(".hotspot_compiler", O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory)
mmap2(NULL, 524288, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x4c220000
mprotect(0x4c220000, 4096, PROT_NONE)   = 0
clone(
An unexpected exception has been detected in native code outside the VM.
Unexpected Signal : 11 occurred at PC=0x0
Function=[Unknown.]
Library=(N/A)

NOTE: We are unable to locate the function name symbol for the error
      just occurred. Please refer to release documentation for possible
      reason and solutions.


Current Java thread:

Dynamic libraries:
08048000-0804d000 r-xp 00000000 62:00 29190      /usr/lib/j2se/1.4/bin/java
0804d000-0804e000 rw-p 00004000 62:00 29190      /usr/lib/j2se/1.4/bin/java
40000000-40016000 r-xp 00000000 62:00 16275      /lib/ld-2.3.2.so
40016000-40017000 rw-p 00015000 62:00 16275      /lib/ld-2.3.2.so
4001d000-40029000 r-xp 00000000 62:00 16316      /lib/tls/libpthread-0.60.so
40029000-4002a000 rw-p 0000c000 62:00 16316      /lib/tls/libpthread-0.60.so
4002c000-4002e000 r-xp 00000000 62:00 16305      /lib/tls/libdl-2.3.2.so
4002e000-4002f000 rw-p 00001000 62:00 16305      /lib/tls/libdl-2.3.2.so
4002f000-4015f000 r-xp 00000000 62:00 16303      /lib/tls/libc-2.3.2.so
4015f000-40168000 rw-p 0012f000 62:00 16303      /lib/tls/libc-2.3.2.so
4016b000-405cf000 r-xp 00000000 62:00 29213      /usr/lib/j2se/1.4/jre/lib/i386/client/libjvm.so
405cf000-405ec000 rw-p 00463000 62:00 29213      /usr/lib/j2se/1.4/jre/lib/i386/client/libjvm.so
40601000-40613000 r-xp 00000000 62:00 16308      /lib/tls/libnsl-2.3.2.so
40613000-40614000 rw-p 00011000 62:00 16308      /lib/tls/libnsl-2.3.2.so
40616000-40638000 r-xp 00000000 62:00 16306      /lib/tls/libm-2.3.2.so
40638000-40639000 rw-p 00022000 62:00 16306      /lib/tls/libm-2.3.2.so
40639000-40642000 r-xp 00000000 62:00 29208      /usr/lib/j2se/1.4/jre/lib/i386/native_threads/libhpi.so
40642000-40643000 ---p 00009000 62:00 29208      /usr/lib/j2se/1.4/jre/lib/i386/native_threads/libhpi.so
40643000-40644000 rw-p 00009000 62:00 29208      /usr/lib/j2se/1.4/jre/lib/i386/native_threads/libhpi.so
40644000-40653000 r-xp 00000000 62:00 29216      /usr/lib/j2se/1.4/jre/lib/i386/libverify.so
40653000-40655000 rw-p 0000e000 62:00 29216      /usr/lib/j2se/1.4/jre/lib/i386/libverify.so
40655000-40674000 r-xp 00000000 62:00 29217      /usr/lib/j2se/1.4/jre/lib/i386/libjava.so
40674000-40676000 rw-p 0001e000 62:00 29217      /usr/lib/j2se/1.4/jre/lib/i386/libjava.so
40676000-4068b000 r-xp 00000000 62:00 29219      /usr/lib/j2se/1.4/jre/lib/i386/libzip.so
4068b000-4068e000 rw-p 00014000 62:00 29219      /usr/lib/j2se/1.4/jre/lib/i386/libzip.so
4068e000-41d5b000 r--s 00000000 62:00 34114      /usr/lib/j2se/1.4/jre/lib/rt.jar
41d9e000-41db5000 r--s 00000000 62:00 29262      /usr/lib/j2se/1.4/jre/lib/sunrsasign.jar
41db5000-41e26000 r--s 00000000 62:00 29267      /usr/lib/j2se/1.4/jre/lib/jsse.jar
41e26000-41e39000 r--s 00000000 62:00 29263      /usr/lib/j2se/1.4/jre/lib/jce.jar
41e39000-420f5000 r--s 00000000 62:00 34063      /usr/lib/j2se/1.4/jre/lib/charsets.jar

Local Time = Tue Sep  7 23:34:41 2004
Elapsed Time = 0
#
# The exception above was detected in native code outside the VM
#
# Java VM: Java HotSpot(TM) Client VM (Blackdown-1.4.1-beta mixed mode)
#
# An error report file has been saved as hs_err_pid1081.log.
# Please refer to the file for further information.
#
child_stack=0x4c29fb48, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID|CLONE_DETACHED, parent_tidptr=0x4c29fbf8, {entry_number:0, base_addr:0x4c29fbb0, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}, child_tidptr=0x4c29fbf8) = 1082
--- SIGABRT (Aborted) @ 0 (0) ---
+++ killed by SIGABRT +++
template:/usr/share/tomcat4/bin#

[-- Attachment #3: bind-strace.txt --]
[-- Type: text/plain, Size: 12492 bytes --]

template:~# strace named -g
execve("/usr/sbin/named", ["named", "-g"], [/* 15 vars */]) = 0
uname({sys="Linux", node="template", ...}) = 0
brk(0)                                  = 0x808e000
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40017000
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
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=17124, ...}) = 0
old_mmap(NULL, 17124, PROT_READ, MAP_PRIVATE, 3, 0) = 0x40018000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/usr/lib/liblwres.so.1", 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\0P$\0\000"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=57548, ...}) = 0
old_mmap(NULL, 60616, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x4001d000
old_mmap(0x4002b000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0xd000) = 0x4002b000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/usr/lib/libdns.so.11", 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\300\"\1"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=1038536, ...}) = 0
old_mmap(NULL, 1042992, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x4002c000
old_mmap(0x40127000, 16384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0xfa000) = 0x40127000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/usr/lib/i586/libcrypto.so.0.9.7", 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\271"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=942856, ...}) = 0
old_mmap(NULL, 960824, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x4012b000
old_mmap(0x40201000, 69632, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0xd5000) = 0x40201000
old_mmap(0x40212000, 14648, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x40212000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/usr/lib/libisccfg.so.0", 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=\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=61288, ...}) = 0
old_mmap(NULL, 63432, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x40216000
old_mmap(0x40223000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0xd000) = 0x40223000
old_mmap(0x40225000, 1992, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x40225000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/usr/lib/libisccc.so.0", 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\0p\35\0\000"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=26832, ...}) = 0
old_mmap(NULL, 29908, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x40226000
old_mmap(0x4022d000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x6000) = 0x4022d000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/usr/lib/libisc.so.7", 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\240z\0"..., 512) = 512
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x4022e000
fstat64(3, {st_mode=S_IFREG|0644, st_size=225192, ...}) = 0
old_mmap(NULL, 228604, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x4022f000
old_mmap(0x40266000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x36000) = 0x40266000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/tls/libnsl.so.1", 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\3209\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=74264, ...}) = 0
old_mmap(NULL, 85600, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x40267000
old_mmap(0x40279000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x11000) = 0x40279000
old_mmap(0x4027a000, 7776, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x4027a000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/tls/libpthread.so.0", 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\320D\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=78167, ...}) = 0
old_mmap(NULL, 60768, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x4027c000
old_mmap(0x40288000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0xc000) = 0x40288000
old_mmap(0x40289000, 7520, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x40289000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/tls/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\340X\1"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=1279076, ...}) = 0
old_mmap(NULL, 1289388, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x4028b000
old_mmap(0x403bb000, 36864, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x12f000) = 0x403bb000
old_mmap(0x403c4000, 7340, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x403c4000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/tls/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\220\32"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=9432, ...}) = 0
old_mmap(NULL, 12288, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x403c6000
old_mmap(0x403c8000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x1000) = 0x403c8000
close(3)                                = 0
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x403c9000
set_thread_area({entry_number:-1 -> -1, base_addr:0x403c98a0, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}) = -1 ENOSYS (Function not implemented)
modify_ldt(1, {entry_number:0, base_addr:0x403c98a0, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}, 16) = 0
munmap(0x40018000, 17124)               = 0
set_tid_address(0x403c98e8)             = 476
rt_sigaction(SIGRTMIN, {0x40280430, [], SA_RESTORER|SA_SIGINFO, 0x40286a10}, NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [RTMIN], NULL, 8) = 0
getrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, rlim_max=RLIM_INFINITY}) = 0
socket(PF_FILE, SOCK_DGRAM, 0)          = 3
fcntl64(3, F_SETFD, FD_CLOEXEC)         = 0
connect(3, {sa_family=AF_FILE, path="/dev/log"}, 16) = 0
getuid32()                              = 0
capset(0x19980330, 0, {CAP_DAC_READ_SEARCH|CAP_SETGID|CAP_SETUID|CAP_NET_BIND_SERVICE|CAP_SYS_CHROOT|CAP_SYS_RESOURCE, CAP_DAC_READ_SEARCH|CAP_SETGID|CAP_SETUID|CAP_NET_BIND_SERVICE|CAP_SYS_CHROOT|CAP_SYS_RESOURCE, CAP_DAC_READ_SEARCH|CAP_SETGID|CAP_SETUID|CAP_NET_BIND_SERVICE|CAP_SYS_CHROOT|CAP_SYS_RESOURCE}) = 0
getpid()                                = 476
rt_sigaction(SIGXFSZ, {SIG_IGN}, {SIG_DFL}, 8) = 0
rt_sigaction(SIGINT, {0x4024eab0, ~[RTMIN], SA_RESTORER, 0x40286a18}, NULL, 8) = 0
rt_sigaction(SIGTERM, {0x4024eab0, ~[RTMIN], SA_RESTORER, 0x40286a18}, NULL, 8) = 0
rt_sigaction(SIGPIPE, {SIG_IGN}, NULL, 8) = 0
rt_sigaction(SIGHUP, {SIG_DFL}, NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [HUP INT TERM], NULL, 8) = 0
brk(0)                                  = 0x808e000
brk(0x80af000)                          = 0x80af000
brk(0)                                  = 0x80af000
open("/usr/share/locale/en_AU/libdns.cat", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en_AU/LC_MESSAGES/libdns.cat", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en/libdns.cat", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en/LC_MESSAGES/libdns.cat", O_RDONLY) = -1 ENOENT (No such file or directory)
futex(0x4012a590, FUTEX_WAKE, 2147483647) = 0
open("/usr/share/locale/en_AU/libisc.cat", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en_AU/LC_MESSAGES/libisc.cat", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en/libisc.cat", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en/LC_MESSAGES/libisc.cat", O_RDONLY) = -1 ENOENT (No such file or directory)
futex(0x40266c40, FUTEX_WAKE, 2147483647) = 0
futex(0x40266c60, FUTEX_WAKE, 2147483647) = 0
futex(0x4012a59c, FUTEX_WAKE, 2147483647) = 0
open("/usr/share/locale/en_AU/libdst.cat", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en_AU/LC_MESSAGES/libdst.cat", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en/libdst.cat", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en/LC_MESSAGES/libdst.cat", O_RDONLY) = -1 ENOENT (No such file or directory)
futex(0x4012a9e0, FUTEX_WAKE, 2147483647) = 0
futex(0x4012a9e4, FUTEX_WAKE, 2147483647) = 0
open("/usr/share/locale/en_AU/libisccc.cat", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en_AU/LC_MESSAGES/libisccc.cat", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en/libisccc.cat", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en/LC_MESSAGES/libisccc.cat", O_RDONLY) = -1 ENOENT (No such file or directory)
futex(0x4022d4c8, FUTEX_WAKE, 2147483647) = 0
futex(0x4022d4cc, FUTEX_WAKE, 2147483647) = 0
open("/etc/localtime", O_RDONLY)        = 4
fstat64(4, {st_mode=S_IFREG|0644, st_size=56, ...}) = 0
mmap2(NULL, 131072, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x403ca000
read(4, "TZif\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\1\0"..., 131072) = 56
close(4)                                = 0
munmap(0x403ca000, 131072)              = 0
open("/dev/null", O_RDWR)               = 4
prctl(0x8, 0x1, 0, 0, 0)                = 0
getuid32()                              = 0
getuid32()                              = 0
capset(0x19980330, 0, {CAP_NET_BIND_SERVICE|CAP_SYS_RESOURCE, CAP_NET_BIND_SERVICE|CAP_SYS_RESOURCE, CAP_NET_BIND_SERVICE|CAP_SYS_RESOURCE}) = 0
gettimeofday({1094598191, 321928}, NULL) = 0
write(2, "Sep 07 23:03:11.321 starting BIN"..., 46Sep 07 23:03:11.321 starting BIND 9.2.4rc7 -g
) = 46
getrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, rlim_max=RLIM_INFINITY}) = 0
getrlimit(RLIMIT_DATA, {rlim_cur=RLIM_INFINITY, rlim_max=RLIM_INFINITY}) = 0
getrlimit(RLIMIT_CORE, {rlim_cur=0, rlim_max=RLIM_INFINITY}) = 0
getrlimit(RLIMIT_NOFILE, {rlim_cur=1024, rlim_max=1024}) = 0
open("/etc/mtab", O_RDONLY)             = 5
fstat64(5, {st_mode=S_IFREG|0644, st_size=158, ...}) = 0
mmap2(NULL, 131072, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x403ca000
read(5, "/dev/ubd/disc0/disc / reiserfs r"..., 131072) = 158
close(5)                                = 0
munmap(0x403ca000, 131072)              = 0
open("/proc/stat", O_RDONLY)            = 5
fstat64(5, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x403ca000
read(5, "cpu  339 0 3420 12020 19 35 28\nc"..., 1024) = 186
read(5, "", 1024)                       = 0
close(5)                                = 0
munmap(0x403ca000, 4096)                = 0
gettimeofday({1094598191, 389117}, NULL) = 0
write(2, "Sep 07 23:03:11.389 using 1 CPU\n", 32Sep 07 23:03:11.389 using 1 CPU
) = 32
mmap2(NULL, 8388608, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x403ca000
mprotect(0x403ca000, 4096, PROT_NONE)   = 0
clone(child_stack=0x40bc9b48, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID|CLONE_DETACHED, parent_tidptr=0x40bc9bf8ptrace: umoven: No such process
, tls=0xbffffb70, child_tidptr=0x40bc9bf8) = 477
trace: ptrace(PTRACE_SYSCALL, ...): No such process
template:~#

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [uml-devel] [PATCH] nptl/sys_clone fix for i386/ppc
       [not found] <BACKUPJQjdF8qoH28Db000022d5@NOSPAM.BRITSYS.NET>
@ 2004-09-08  0:29 ` David Jeffery
  2004-09-08 18:09   ` BlaisorBlade
  0 siblings, 1 reply; 14+ messages in thread
From: David Jeffery @ 2004-09-08  0:29 UTC (permalink / raw)
  To: ralston; +Cc: user-mode-linux-devel, 'BlaisorBlade'

Michael Ralston wrote:

>I've been testing out this patch...
>
>It seems it allows me to start a uml-2.6.8.1 with SKAS using libc6-2.3.2.
>I'm not sure if programs that make use of NPTL are running correctly though.
>  
>

It depends on what part of pthreads the programs use.  My patch only 
fixes basic thread creation.  If you run the pthread test suite from 
LSB, you'll find there is alot still broken.  Sorry for my patch 
sounding more impressive than it was.  The few pthread things I ran work 
but they didn't make extensive use of the nptl's pthread features.  I'm 
going to try and look at what's broken but no guarantees I'll know how 
to fix it.

David Jeffery


-------------------------------------------------------
This SF.Net email is sponsored by BEA Weblogic Workshop
FREE Java Enterprise J2EE developer tools!
Get your free copy of BEA WebLogic Workshop 8.1 today.
http://ads.osdn.com/?ad_id=5047&alloc_id=10808&op=click
_______________________________________________
User-mode-linux-devel mailing list
User-mode-linux-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [uml-devel] [PATCH] nptl/sys_clone fix for i386/ppc
  2004-09-08  0:29 ` [uml-devel] [PATCH] nptl/sys_clone fix for i386/ppc David Jeffery
@ 2004-09-08 18:09   ` BlaisorBlade
  0 siblings, 0 replies; 14+ messages in thread
From: BlaisorBlade @ 2004-09-08 18:09 UTC (permalink / raw)
  To: user-mode-linux-devel; +Cc: David Jeffery, ralston

On Wednesday 08 September 2004 02:29, David Jeffery wrote:
> Michael Ralston wrote:
> >I've been testing out this patch...
> >
> >It seems it allows me to start a uml-2.6.8.1 with SKAS using libc6-2.3.2.
> >I'm not sure if programs that make use of NPTL are running correctly
> > though.
>
> It depends on what part of pthreads the programs use.  My patch only
> fixes basic thread creation.  If you run the pthread test suite from
> LSB, you'll find there is alot still broken.  Sorry for my patch
> sounding more impressive than it was.  The few pthread things I ran work
> but they didn't make extensive use of the nptl's pthread features.  I'm
> going to try and look at what's broken but no guarantees I'll know how
> to fix it.
Ok, now that seems reasonable.

The biggest problem are these two syscalls (this is a quote from 
arch/um/kernel/sys_call_table.c):

        [ __NR_set_thread_area ] (syscall_handler_t *) sys_ni_syscall,
        [ __NR_get_thread_area ] (syscall_handler_t *) sys_ni_syscall,

We've always been knowing that the problem is setting the TLS space - on i386 
you do it by allocating a memory area for each thread and setting a reference 
to it(to change on thread switching) in the GDT (a special memory area 
handled by the CPU).
However, it should be possible to make them work - see modify_ldt 
implementation in SKAS mode to understand how.

Bye
-- 
Paolo Giarrusso, aka Blaisorblade
Linux registered user n. 292729


-------------------------------------------------------
This SF.Net email is sponsored by BEA Weblogic Workshop
FREE Java Enterprise J2EE developer tools!
Get your free copy of BEA WebLogic Workshop 8.1 today.
http://ads.osdn.com/?ad_id=5047&alloc_id=10808&op=click
_______________________________________________
User-mode-linux-devel mailing list
User-mode-linux-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [uml-devel] [PATCH] nptl/sys_clone fix for i386/ppc
  2004-08-26  2:06 David Jeffery
  2004-09-05 15:35 ` BlaisorBlade
  2004-09-07 23:12 ` Michael Ralston
@ 2004-09-10 23:52 ` Jeff Dike
  2004-09-11 15:45   ` BlaisorBlade
  2 siblings, 1 reply; 14+ messages in thread
From: Jeff Dike @ 2004-09-10 23:52 UTC (permalink / raw)
  To: David Jeffery; +Cc: user-mode-linux-devel

djeffery@britsys.net said:
> The problem is caused by the incorrect implementation of sys_clone().
>  sys_clone() is an ugly beast that has different arguements depending
> on  the architecture.  For i386 and ppc, the child tid is passed as
> the  5th arguement instead of as the 4th arguement as as some other
> architectures (like x86-64) do.  The 4th arguement on i386 and ppc
> doesn't look to be used by the kernel. 

This is fixed in my tree.  It was a lot simpler than your patch, or what I
led you to believe.  I just moved sys_clone from syscall_kern.c to
arch/um/sys-i386/syscalls.c and fixed the interface.

Other architectures will now lack it, but that'll be easy to fix.

				Jeff



-------------------------------------------------------
This SF.Net email is sponsored by: YOU BE THE JUDGE. Be one of 170
Project Admins to receive an Apple iPod Mini FREE for your judgement on
who ports your project to Linux PPC the best. Sponsored by IBM. 
Deadline: Sept. 13. Go here: http://sf.net/ppc_contest.php
_______________________________________________
User-mode-linux-devel mailing list
User-mode-linux-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [uml-devel] [PATCH] nptl/sys_clone fix for i386/ppc
  2004-09-10 23:52 ` Jeff Dike
@ 2004-09-11 15:45   ` BlaisorBlade
  2004-09-11 18:26     ` Jeff Dike
  0 siblings, 1 reply; 14+ messages in thread
From: BlaisorBlade @ 2004-09-11 15:45 UTC (permalink / raw)
  To: user-mode-linux-devel; +Cc: Jeff Dike, David Jeffery

On Saturday 11 September 2004 01:52, Jeff Dike wrote:
> djeffery@britsys.net said:
> > The problem is caused by the incorrect implementation of sys_clone().
> >  sys_clone() is an ugly beast that has different arguements depending
> > on  the architecture.  For i386 and ppc, the child tid is passed as
> > the  5th arguement instead of as the 4th arguement as as some other
> > architectures (like x86-64) do.  The 4th arguement on i386 and ppc
> > doesn't look to be used by the kernel.
>
> This is fixed in my tree.  It was a lot simpler than your patch, or what I
> led you to believe.  I just moved sys_clone from syscall_kern.c to
> arch/um/sys-i386/syscalls.c and fixed the interface.

Jeff, please fix your patch again - the unused argument is the fourth, not the 
third:

original one
+#if defined(__subarch_i386__) || defined(__subarch_ppc__)
+long sys_clone_5arg(unsigned long clone_flags, unsigned long newsp,
+               int *parent_tid, unsigned long unused, int *child_tid)
+{
+        return sys_clone(clone_flags, newsp, parent_tid, child_tid);
+}
+#endif

Also, Andrew Morton wrote some UML fixes (for scheduler bugs) on his own. Did 
you already note this or you want them forwarded?
-- 
Paolo Giarrusso, aka Blaisorblade
Linux registered user n. 292729


-------------------------------------------------------
This SF.Net email is sponsored by: YOU BE THE JUDGE. Be one of 170
Project Admins to receive an Apple iPod Mini FREE for your judgement on
who ports your project to Linux PPC the best. Sponsored by IBM. 
Deadline: Sept. 13. Go here: http://sf.net/ppc_contest.php
_______________________________________________
User-mode-linux-devel mailing list
User-mode-linux-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [uml-devel] [PATCH] nptl/sys_clone fix for i386/ppc
  2004-09-11 15:45   ` BlaisorBlade
@ 2004-09-11 18:26     ` Jeff Dike
  2004-09-12 15:52       ` BlaisorBlade
  0 siblings, 1 reply; 14+ messages in thread
From: Jeff Dike @ 2004-09-11 18:26 UTC (permalink / raw)
  To: BlaisorBlade; +Cc: user-mode-linux-devel, David Jeffery

> Jeff, please fix your patch again - the unused argument is the fourth, not 
> the third:

Crap, I went to the trouble of confirming this in the i386 code, and
ended up miscounting arguments.  It still worked, though.

> Also, Andrew Morton wrote some UML fixes (for scheduler bugs) on his own. Did
> you already note this or you want them forwarded?

I didn't see them, please send them over.

				Jeff


-------------------------------------------------------
This SF.Net email is sponsored by: YOU BE THE JUDGE. Be one of 170
Project Admins to receive an Apple iPod Mini FREE for your judgement on
who ports your project to Linux PPC the best. Sponsored by IBM. 
Deadline: Sept. 13. Go here: http://sf.net/ppc_contest.php
_______________________________________________
User-mode-linux-devel mailing list
User-mode-linux-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel

^ permalink raw reply	[flat|nested] 14+ messages in thread

* RE: [uml-devel] [PATCH] nptl/sys_clone fix for i386/ppc
@ 2004-09-11 22:27 Wichmann, Mats D
  0 siblings, 0 replies; 14+ messages in thread
From: Wichmann, Mats D @ 2004-09-11 22:27 UTC (permalink / raw)
  To: David Jeffery, ralston; +Cc: user-mode-linux-devel, BlaisorBlade

 
>It depends on what part of pthreads the programs use.  My patch only 
>fixes basic thread creation.  If you run the pthread test suite from 
>LSB, you'll find there is alot still broken.  

I'm glad folks are finding some use for the tests.
Just to give credit where due, this is VSTH-Lite,
the "free" version of the official posix threads
test suite which we (LSB) just repackage. Current
generic nptl+tls-enabled-glibc do quite well
on this set of tests (like, one failure, which
is likely a testsuite problem).

-- mats


-------------------------------------------------------
This SF.Net email is sponsored by: YOU BE THE JUDGE. Be one of 170
Project Admins to receive an Apple iPod Mini FREE for your judgement on
who ports your project to Linux PPC the best. Sponsored by IBM. 
Deadline: Sept. 13. Go here: http://sf.net/ppc_contest.php
_______________________________________________
User-mode-linux-devel mailing list
User-mode-linux-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [uml-devel] [PATCH] nptl/sys_clone fix for i386/ppc
  2004-09-11 18:26     ` Jeff Dike
@ 2004-09-12 15:52       ` BlaisorBlade
  2004-09-13  3:10           ` Jeff Dike
  0 siblings, 1 reply; 14+ messages in thread
From: BlaisorBlade @ 2004-09-12 15:52 UTC (permalink / raw)
  To: user-mode-linux-devel; +Cc: Jeff Dike, David Jeffery, linux-kernel

[-- Attachment #1: Type: text/plain, Size: 2304 bytes --]

[For LKML: CC me on replies, I'm not subscribed]
On Saturday 11 September 2004 20:26, Jeff Dike wrote:
> > Jeff, please fix your patch again - the unused argument is the fourth,
> > not the third:
>
> Crap, I went to the trouble of confirming this in the i386 code, and
> ended up miscounting arguments.  It still worked, though.

It worked no worse than current version (which is broken). In fact the 2.4 
clone had 2 arguments. So it's obvious.

I checked in the i386 code (the _syscall5 macro and the sys_clone definition). 
And the patch from David is the correct one:

This says where args go (from unistd.h, macro _syscall5):
        : "0" (__NR_##name),"b" ((long)(arg1)),"c" ((long)(arg2)), \
          "d" ((long)(arg3)),"S" ((long)(arg4)),"D" ((long)(arg5))); \

And this is the i386 code, with some comments, especially about the three 
remaining problems:

asmlinkage int sys_clone(struct pt_regs regs)
{
        unsigned long clone_flags;
        unsigned long newsp;
        int __user *parent_tidptr, *child_tidptr;

        clone_flags = regs.ebx; //arg1
        newsp = regs.ecx; //arg2
        parent_tidptr = (int __user *)regs.edx; //arg3
        child_tidptr = (int __user *)regs.edi; //arg5
/*XXX: Shouldn't UML implement this?*/
        if (!newsp)
                newsp = regs.esp;
/*XXX: UML forgets the "& ~ CLONE_IDLETASK". */
/*And also UML does not pass regs.*/
        return do_fork(clone_flags & ~CLONE_IDLETASK, newsp, &regs, 0, 
parent_tidptr, child_tidptr);
}

Now, the CLONE_IDLETASK must be copied straight into our version. Pretty 
clear, that flag is for kernelspace callers of do_fork() only.

Security problem? I guess possibly (in the meaning used by OpenBSD, i.e. it is 
a security concern, because somehow could discover that this is exploitable).

Instead, luckily, both newsp and regs are passed unchanged to the arch code 
(the arch-independent code ignores them), and exactly to copy_thread. And the 
Uml version is ready to deal with this API, luckily.

However, this is non-standard. I've added just a comment for now, since you 
may have reason to keep the current code, but such behaviour calls for 
breakage when things change.

The attached patch replaces the one on your page.
-- 
Paolo Giarrusso, aka Blaisorblade
Linux registered user n. 292729



[-- Attachment #2: uml-fix-sys-clone-NPTL.patch --]
[-- Type: text/x-diff, Size: 2644 bytes --]


* Make sys_clone subarch-dependant
* Since i386 sys_clone skips reading %edi, the third param is unused
* Also, avoid passing to do_fork the CLONE_IDLETASK flag.
* Add a comment about the special calling convention used by UML for
do_fork and copy_thread.

Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade_spam@yahoo.it>
---

 uml-linux-2.6.8.1-paolo/arch/um/kernel/syscall_kern.c |   11 ---------
 uml-linux-2.6.8.1-paolo/arch/um/sys-i386/syscalls.c   |   20 ++++++++++++++++++
 2 files changed, 20 insertions(+), 11 deletions(-)

diff -puN arch/um/kernel/syscall_kern.c~uml-fix-sys-clone-NPTL arch/um/kernel/syscall_kern.c
--- uml-linux-2.6.8.1/arch/um/kernel/syscall_kern.c~uml-fix-sys-clone-NPTL	2004-09-12 17:36:49.061595744 +0200
+++ uml-linux-2.6.8.1-paolo/arch/um/kernel/syscall_kern.c	2004-09-12 17:36:49.064595288 +0200
@@ -44,17 +44,6 @@ long sys_fork(void)
 	return(ret);
 }
 
-long sys_clone(unsigned long clone_flags, unsigned long newsp, 
-	       int *parent_tid, int *child_tid)
-{
-	long ret;
-
-	current->thread.forking = 1;
-	ret = do_fork(clone_flags, newsp, NULL, 0, parent_tid, child_tid);
-	current->thread.forking = 0;
-	return(ret);
-}
-
 long sys_vfork(void)
 {
 	long ret;
diff -puN arch/um/sys-i386/syscalls.c~uml-fix-sys-clone-NPTL arch/um/sys-i386/syscalls.c
--- uml-linux-2.6.8.1/arch/um/sys-i386/syscalls.c~uml-fix-sys-clone-NPTL	2004-09-12 17:36:49.062595592 +0200
+++ uml-linux-2.6.8.1-paolo/arch/um/sys-i386/syscalls.c	2004-09-12 17:36:49.065595136 +0200
@@ -3,6 +3,7 @@
  * Licensed under the GPL
  */
 
+#include "linux/sched.h"
 #include "asm/mman.h"
 #include "asm/uaccess.h"
 #include "asm/unistd.h"
@@ -56,6 +57,25 @@ int old_select(struct sel_arg_struct *ar
 	return sys_select(a.n, a.inp, a.outp, a.exp, a.tvp);
 }
 
+/* The i386 version skips reading from %esi, the fourth argument. So we must do
+ * this, too.*/
+int sys_clone(unsigned long clone_flags, unsigned long newsp, int *parent_tid,
+		int unused, int *child_tid)
+{
+	long ret;
+
+	/* XXX: normal arch do here this pass, and also pass the regs to do_fork,
+	 * instead of NULL. Currently the arch-independent code ignores these
+	 * values, while the UML code (actually it's copy_thread) does the right
+	 * thing. But this should change, probably. */
+	/*if (!newsp)
+		newsp = UPT_SP(current->thread.regs);*/
+	current->thread.forking = 1;
+	ret = do_fork(clone_flags & ~CLONE_IDLETASK, newsp, NULL, 0, parent_tid, child_tid);
+	current->thread.forking = 0;
+	return(ret);
+}
+
 /*
  * Overrides for Emacs so that we follow Linus's tabbing style.
  * Emacs will notice this stuff at the end of the file and automatically
_

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [uml-devel] [PATCH] nptl/sys_clone fix for i386/ppc
  2004-09-12 15:52       ` BlaisorBlade
@ 2004-09-13  3:10           ` Jeff Dike
  0 siblings, 0 replies; 14+ messages in thread
From: Jeff Dike @ 2004-09-13  3:10 UTC (permalink / raw)
  To: BlaisorBlade; +Cc: user-mode-linux-devel, David Jeffery, linux-kernel

On Sun, Sep 12, 2004 at 05:52:44PM +0200, BlaisorBlade wrote:
> It worked no worse than current version (which is broken). In fact the 2.4 
> clone had 2 arguments. So it's obvious.

In fact, it worked better.  It worked on a modern Debian filesystem, where
my old code didn't.  Hence I didn't notice the mistake (although I should 
have compared what I did with David's patch and justified the differences,
if any).

> However, this is non-standard. I've added just a comment for now, since you 
> may have reason to keep the current code, but such behaviour calls for 
> breakage when things change.

Yeah, I not sure why I did things the way I did.  That's very old code, and
there may have been some good reason for it which has since disappeared.

Offhand, it looks like doing things in the standard way will clean up
copy_thread a bit.

				Jeff


-------------------------------------------------------
This SF.Net email is sponsored by: YOU BE THE JUDGE. Be one of 170
Project Admins to receive an Apple iPod Mini FREE for your judgement on
who ports your project to Linux PPC the best. Sponsored by IBM. 
Deadline: Sept. 13. Go here: http://sf.net/ppc_contest.php
_______________________________________________
User-mode-linux-devel mailing list
User-mode-linux-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [uml-devel] [PATCH] nptl/sys_clone fix for i386/ppc
@ 2004-09-13  3:10           ` Jeff Dike
  0 siblings, 0 replies; 14+ messages in thread
From: Jeff Dike @ 2004-09-13  3:10 UTC (permalink / raw)
  To: BlaisorBlade; +Cc: user-mode-linux-devel, David Jeffery, linux-kernel

On Sun, Sep 12, 2004 at 05:52:44PM +0200, BlaisorBlade wrote:
> It worked no worse than current version (which is broken). In fact the 2.4 
> clone had 2 arguments. So it's obvious.

In fact, it worked better.  It worked on a modern Debian filesystem, where
my old code didn't.  Hence I didn't notice the mistake (although I should 
have compared what I did with David's patch and justified the differences,
if any).

> However, this is non-standard. I've added just a comment for now, since you 
> may have reason to keep the current code, but such behaviour calls for 
> breakage when things change.

Yeah, I not sure why I did things the way I did.  That's very old code, and
there may have been some good reason for it which has since disappeared.

Offhand, it looks like doing things in the standard way will clean up
copy_thread a bit.

				Jeff

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [uml-devel] [PATCH] nptl/sys_clone fix for i386/ppc
  2004-09-13  3:10           ` Jeff Dike
@ 2004-09-13 18:50             ` BlaisorBlade
  -1 siblings, 0 replies; 14+ messages in thread
From: BlaisorBlade @ 2004-09-13 18:50 UTC (permalink / raw)
  To: Jeff Dike; +Cc: user-mode-linux-devel, David Jeffery, linux-kernel

On Monday 13 September 2004 05:10, Jeff Dike wrote:
> On Sun, Sep 12, 2004 at 05:52:44PM +0200, BlaisorBlade wrote:
> > It worked no worse than current version (which is broken). In fact the
> > 2.4 clone had 2 arguments. So it's obvious.
>
> In fact, it worked better.  It worked on a modern Debian filesystem, where
> my old code didn't.
Oh, well, your version gets the fifth arg right, indeed.
> > However, this is non-standard. I've added just a comment for now, since
> > you may have reason to keep the current code, but such behaviour calls
> > for breakage when things change.

> Yeah, I not sure why I did things the way I did.  That's very old code, and
> there may have been some good reason for it which has since disappeared.

> Offhand, it looks like doing things in the standard way will clean up
> copy_thread a bit.
I agree completely.
-- 
Paolo Giarrusso, aka Blaisorblade
Linux registered user n. 292729


-------------------------------------------------------
This SF.Net email is sponsored by: YOU BE THE JUDGE. Be one of 170
Project Admins to receive an Apple iPod Mini FREE for your judgement on
who ports your project to Linux PPC the best. Sponsored by IBM. 
Deadline: Sept. 13. Go here: http://sf.net/ppc_contest.php
_______________________________________________
User-mode-linux-devel mailing list
User-mode-linux-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [uml-devel] [PATCH] nptl/sys_clone fix for i386/ppc
@ 2004-09-13 18:50             ` BlaisorBlade
  0 siblings, 0 replies; 14+ messages in thread
From: BlaisorBlade @ 2004-09-13 18:50 UTC (permalink / raw)
  To: Jeff Dike; +Cc: user-mode-linux-devel, David Jeffery, linux-kernel

On Monday 13 September 2004 05:10, Jeff Dike wrote:
> On Sun, Sep 12, 2004 at 05:52:44PM +0200, BlaisorBlade wrote:
> > It worked no worse than current version (which is broken). In fact the
> > 2.4 clone had 2 arguments. So it's obvious.
>
> In fact, it worked better.  It worked on a modern Debian filesystem, where
> my old code didn't.
Oh, well, your version gets the fifth arg right, indeed.
> > However, this is non-standard. I've added just a comment for now, since
> > you may have reason to keep the current code, but such behaviour calls
> > for breakage when things change.

> Yeah, I not sure why I did things the way I did.  That's very old code, and
> there may have been some good reason for it which has since disappeared.

> Offhand, it looks like doing things in the standard way will clean up
> copy_thread a bit.
I agree completely.
-- 
Paolo Giarrusso, aka Blaisorblade
Linux registered user n. 292729

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2004-09-13 19:11 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <BACKUPJQjdF8qoH28Db000022d5@NOSPAM.BRITSYS.NET>
2004-09-08  0:29 ` [uml-devel] [PATCH] nptl/sys_clone fix for i386/ppc David Jeffery
2004-09-08 18:09   ` BlaisorBlade
2004-09-11 22:27 Wichmann, Mats D
  -- strict thread matches above, loose matches on Subject: below --
2004-08-26  2:06 David Jeffery
2004-09-05 15:35 ` BlaisorBlade
2004-09-07 23:12 ` Michael Ralston
2004-09-10 23:52 ` Jeff Dike
2004-09-11 15:45   ` BlaisorBlade
2004-09-11 18:26     ` Jeff Dike
2004-09-12 15:52       ` BlaisorBlade
2004-09-13  3:10         ` Jeff Dike
2004-09-13  3:10           ` Jeff Dike
2004-09-13 18:50           ` BlaisorBlade
2004-09-13 18:50             ` BlaisorBlade

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.