Thread: [Sablevm-developer] sablevm hang
Brought to you by:
egagnon
From: Joseph P. <pa...@mc...> - 2004-06-14 18:11:02
|
Heya, I'm running into an issue were the sablevm seems to be hanging on what i think is a threading related issue. I've narrowed down where in code the hang occurs, but i'm not sure _why_ it occurs. I'm providing the class and instantiation along with a portion of strace output. if more strace output would help, please let me know. Any help would be greatly appreciated. System config: Suse 9.1 updated; x86 Thanks, Joe ------AwtUtils.java from the JXTA distribution----- ****Executed as AwtUtils.initAsDaemon()**** import java.awt.Frame; public class AwtUtils { public static void initAsDaemon() { (new Thread() { public void run() { try { Frame f = new Frame(); f.dispose(); } catch (Throwable t) { } } public void doit() { setDaemon(true); setName("awt daemon initializer"); start(); try { join(); } catch (InterruptedException ie) { } } }).doit(); } } -------------------Strace output--------------------- open("/usr/local/lib/libfontconfig.so.1", O_RDONLY) = -1 ENOENT (No such file or directory) open("tls/i686/sse2/libfontconfig.so.1", O_RDONLY) = -1 ENOENT (No such file ordirectory) open("tls/i686/libfontconfig.so.1", O_RDONLY) = -1 ENOENT (No such file or directory) open("tls/sse2/libfontconfig.so.1", O_RDONLY) = -1 ENOENT (No such file or directory) open("tls/libfontconfig.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)open("i686/sse2/libfontconfig.so.1", O_RDONLY) = -1 ENOENT (No such file or directory) open("i686/libfontconfig.so.1", O_RDONLY) = -1 ENOENT (No such file or directory) open("sse2/libfontconfig.so.1", O_RDONLY) = -1 ENOENT (No such file or directory) open("libfontconfig.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)open("/usr/lib/libfontconfig.so.1", O_RDONLY) = 13 read(13, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\300\223"..., 512) = 512 fstat64(13, {st_mode=S_IFREG|0755, st_size=204755, ...}) = 0 old_mmap(NULL, 170408, PROT_READ|PROT_EXEC, MAP_PRIVATE, 13, 0) = 0x41f97000 madvise(0x41f97000, 170408, MADV_SEQUENTIAL|0x1) = 0 old_mmap(0x41fbc000, 16384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 13, 0x25000) = 0x41fbc000 old_mmap(0x41fc0000, 2472, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x41fc0000 close(13) = 0 open("/usr/local/lib/libfreetype.so.6", O_RDONLY) = -1 ENOENT (No such file or d irectory) open("tls/i686/sse2/libfreetype.so.6", O_RDONLY) = -1 ENOENT (No such file or directory) open("tls/i686/libfreetype.so.6", O_RDONLY) = -1 ENOENT (No such file or directory) open("tls/sse2/libfreetype.so.6", O_RDONLY) = -1 ENOENT (No such file or directory) open("tls/libfreetype.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)open("i686/sse2/libfreetype.so.6", O_RDONLY) = -1 ENOENT (No such file or directory) open("i686/libfreetype.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)open("sse2/libfreetype.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)open("libfreetype.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)open("/usr/lib/libfreetype.so.6", O_RDONLY) = 13 read(13, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\360\346"..., 512) = 512 fstat64(13, {st_mode=S_IFREG|0755, st_size=473346, ...}) = 0 old_mmap(NULL, 429584, PROT_READ|PROT_EXEC, MAP_PRIVATE, 13, 0) = 0x41fc1000 madvise(0x41fc1000, 429584, MADV_SEQUENTIAL|0x1) = 0 old_mmap(0x42023000, 28672, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 13, 0x62000) = 0x42023000 close(13) = 0 open("/usr/local/lib/libexpat.so.0", O_RDONLY) = -1 ENOENT (No such file or directory) open("tls/i686/sse2/libexpat.so.0", O_RDONLY) = -1 ENOENT (No such file or directory) open("tls/i686/libexpat.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)open("tls/sse2/libexpat.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)open("tls/libexpat.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)open("i686/sse2/libexpat.so.0", O_RDONLY) = -1 ENOENT (No such file or directory) open("i686/libexpat.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)open("sse2/libexpat.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)open("libexpat.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)open("/usr/lib/libexpat.so.0", O_RDONLY) = 13 read(13, "\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(13, {st_mode=S_IFREG|0755, st_size=160096, ...}) = 0 old_mmap(NULL, 124104, PROT_READ|PROT_EXEC, MAP_PRIVATE, 13, 0) = 0x4202a000 madvise(0x4202a000, 124104, MADV_SEQUENTIAL|0x1) = 0 old_mmap(0x42046000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 13, 0x1c000) = 0x42046000 close(13) = 0 munmap(0x41a40000, 122337) = 0 rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 write(1, "[verbose class: loading \"java/be"..., 60[verbose class: loading "java/beans/PropertyChangeSupport"] ) = 60 open("/home/paris/software/sablevm//share/sablevm/sablevm-classpath/java/beans/PropertyChangeSupport.class", O_RDONLY) = 13 fstat64(13, {st_mode=S_IFREG|0644, st_size=5035, ...}) = 0 mmap2(NULL, 5035, PROT_READ, MAP_PRIVATE, 13, 0) = 0x41a40000 munmap(0x41a40000, 5035) = 0 close(13) = 0 rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 write(1, "[verbose class: loading \"gnu/jav"..., 63[verbose class: loading "gnu/java/awt/peer/gtk/GtkMainThread"] ) = 63 open("/home/paris/software/sablevm//share/sablevm/sablevm-classpath/gnu/java/awt/peer/gtk/GtkMainThread.class", O_RDONLY) = 13 fstat64(13, {st_mode=S_IFREG|0644, st_size=1021, ...}) = 0 mmap2(NULL, 1021, PROT_READ, MAP_PRIVATE, 13, 0) = 0x41a40000 munmap(0x41a40000, 1021) = 0 close(13) = 0 write(1, "[verbose class: loading \"gnu/jav"..., 64[verbose class: loading "gnu/java/awt/peer/gtk/GtkGenericPeer"] ) = 64 open("/home/paris/software/sablevm//share/sablevm/sablevm-classpath/gnu/java/awt/peer/gtk/GtkGenericPeer.class", O_RDONLY) = 13 fstat64(13, {st_mode=S_IFREG|0644, st_size=1045, ...}) = 0 mmap2(NULL, 1045, PROT_READ, MAP_PRIVATE, 13, 0) = 0x41a40000 munmap(0x41a40000, 1045) = 0 close(13) = 0 rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 brk(0) = 0x8093000 brk(0x80b9000) = 0x80b9000 mmap2(NULL, 2101248, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_ANONYMOUS,-1, 0) = 0x42049000 mprotect(0x42049000, 4096, PROT_NONE) = 0 clone(child_stack=0x42249b08, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, parent_tidptr=0x42249bf8, {entry_number:6, base_addr:0x42249bb0, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}, child_tidptr=0x42249bf8) = 6137 futex(0x8072e00, FUTEX_WAIT, 0, NULL <unfinished ...> |
From: Etienne G. <gag...@uq...> - 2004-06-14 22:50:43
|
Hi Joe, Could you also type Ctrl-\ [e.g. SIGQUIT], when it hangs? This would dump the Java stack trace. Etienne Joseph Paris wrote: > Heya, > > I'm running into an issue were the sablevm seems to be hanging on what i > think is a threading related issue. I've narrowed down where in code > the hang occurs, but i'm not sure _why_ it occurs. I'm providing the > class and instantiation along with a portion of strace output. if more > strace output would help, please let me know. > > Any help would be greatly appreciated. > > System config: > Suse 9.1 updated; x86 > > Thanks, > Joe > > ------AwtUtils.java from the JXTA distribution----- > ****Executed as AwtUtils.initAsDaemon()**** > > > import java.awt.Frame; > > public class AwtUtils { > > public static void initAsDaemon() { > (new Thread() { > public void run() { > try { > Frame f = new Frame(); > f.dispose(); > } catch (Throwable t) { > } > } > public void doit() { > setDaemon(true); > setName("awt daemon initializer"); > start(); > try { > join(); > } catch (InterruptedException ie) { > } > } > }).doit(); > } > } > > > -------------------Strace output--------------------- > > open("/usr/local/lib/libfontconfig.so.1", O_RDONLY) = -1 ENOENT (No such > file or directory) > open("tls/i686/sse2/libfontconfig.so.1", O_RDONLY) = -1 ENOENT (No such > file ordirectory) > open("tls/i686/libfontconfig.so.1", O_RDONLY) = -1 ENOENT (No such file or > directory) > open("tls/sse2/libfontconfig.so.1", O_RDONLY) = -1 ENOENT (No such file or > directory) > open("tls/libfontconfig.so.1", O_RDONLY) = -1 ENOENT (No such file or > directory)open("i686/sse2/libfontconfig.so.1", O_RDONLY) = -1 ENOENT (No > such file or directory) > open("i686/libfontconfig.so.1", O_RDONLY) = -1 ENOENT (No such file or > directory) > open("sse2/libfontconfig.so.1", O_RDONLY) = -1 ENOENT (No such file or > directory) > open("libfontconfig.so.1", O_RDONLY) = -1 ENOENT (No such file or > directory)open("/usr/lib/libfontconfig.so.1", O_RDONLY) = 13 > read(13, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\300\223"..., > 512) = 512 > fstat64(13, {st_mode=S_IFREG|0755, st_size=204755, ...}) = 0 > old_mmap(NULL, 170408, PROT_READ|PROT_EXEC, MAP_PRIVATE, 13, 0) = > 0x41f97000 > madvise(0x41f97000, 170408, MADV_SEQUENTIAL|0x1) = 0 > old_mmap(0x41fbc000, 16384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, > 13, 0x25000) = 0x41fbc000 > old_mmap(0x41fc0000, 2472, PROT_READ|PROT_WRITE, > MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x41fc0000 > close(13) = 0 > open("/usr/local/lib/libfreetype.so.6", O_RDONLY) = -1 ENOENT (No such > file or d irectory) > open("tls/i686/sse2/libfreetype.so.6", O_RDONLY) = -1 ENOENT (No such file > or directory) > open("tls/i686/libfreetype.so.6", O_RDONLY) = -1 ENOENT (No such file or > directory) > open("tls/sse2/libfreetype.so.6", O_RDONLY) = -1 ENOENT (No such file or > directory) > open("tls/libfreetype.so.6", O_RDONLY) = -1 ENOENT (No such file or > directory)open("i686/sse2/libfreetype.so.6", O_RDONLY) = -1 ENOENT (No > such file or directory) > open("i686/libfreetype.so.6", O_RDONLY) = -1 ENOENT (No such file or > directory)open("sse2/libfreetype.so.6", O_RDONLY) = -1 ENOENT (No such > file or directory)open("libfreetype.so.6", O_RDONLY) = -1 ENOENT (No > such file or directory)open("/usr/lib/libfreetype.so.6", O_RDONLY) = 13 > read(13, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\360\346"..., > 512) = 512 > fstat64(13, {st_mode=S_IFREG|0755, st_size=473346, ...}) = 0 > old_mmap(NULL, 429584, PROT_READ|PROT_EXEC, MAP_PRIVATE, 13, 0) = > 0x41fc1000 > madvise(0x41fc1000, 429584, MADV_SEQUENTIAL|0x1) = 0 > old_mmap(0x42023000, 28672, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, > 13, 0x62000) = 0x42023000 > close(13) = 0 > open("/usr/local/lib/libexpat.so.0", O_RDONLY) = -1 ENOENT (No such file > or directory) > open("tls/i686/sse2/libexpat.so.0", O_RDONLY) = -1 ENOENT (No such file or > directory) > open("tls/i686/libexpat.so.0", O_RDONLY) = -1 ENOENT (No such file or > directory)open("tls/sse2/libexpat.so.0", O_RDONLY) = -1 ENOENT (No such > file or directory)open("tls/libexpat.so.0", O_RDONLY) = -1 ENOENT (No > such file or directory)open("i686/sse2/libexpat.so.0", O_RDONLY) = -1 > ENOENT (No such file or directory) > open("i686/libexpat.so.0", O_RDONLY) = -1 ENOENT (No such file or > directory)open("sse2/libexpat.so.0", O_RDONLY) = -1 ENOENT (No such > file or directory)open("libexpat.so.0", O_RDONLY) = -1 ENOENT (No > such file or directory)open("/usr/lib/libexpat.so.0", O_RDONLY) = 13 > read(13, "\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(13, {st_mode=S_IFREG|0755, st_size=160096, ...}) = 0 > old_mmap(NULL, 124104, PROT_READ|PROT_EXEC, MAP_PRIVATE, 13, 0) = > 0x4202a000 > madvise(0x4202a000, 124104, MADV_SEQUENTIAL|0x1) = 0 > old_mmap(0x42046000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, > 13, 0x1c000) = 0x42046000 > close(13) = 0 > munmap(0x41a40000, 122337) = 0 > rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 > rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 > rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 > rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 > rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 > write(1, "[verbose class: loading \"java/be"..., 60[verbose class: loading > "java/beans/PropertyChangeSupport"] > ) = 60 > open("/home/paris/software/sablevm//share/sablevm/sablevm-classpath/java/beans/PropertyChangeSupport.class", > O_RDONLY) = 13 > fstat64(13, {st_mode=S_IFREG|0644, st_size=5035, ...}) = 0 > mmap2(NULL, 5035, PROT_READ, MAP_PRIVATE, 13, 0) = 0x41a40000 > munmap(0x41a40000, 5035) = 0 > close(13) = 0 > rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 > rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 > write(1, "[verbose class: loading \"gnu/jav"..., 63[verbose class: loading > "gnu/java/awt/peer/gtk/GtkMainThread"] > ) = 63 > open("/home/paris/software/sablevm//share/sablevm/sablevm-classpath/gnu/java/awt/peer/gtk/GtkMainThread.class", > O_RDONLY) = 13 > fstat64(13, {st_mode=S_IFREG|0644, st_size=1021, ...}) = 0 > mmap2(NULL, 1021, PROT_READ, MAP_PRIVATE, 13, 0) = 0x41a40000 > munmap(0x41a40000, 1021) = 0 > close(13) = 0 > write(1, "[verbose class: loading \"gnu/jav"..., 64[verbose class: loading > "gnu/java/awt/peer/gtk/GtkGenericPeer"] > ) = 64 > open("/home/paris/software/sablevm//share/sablevm/sablevm-classpath/gnu/java/awt/peer/gtk/GtkGenericPeer.class", > O_RDONLY) = 13 > fstat64(13, {st_mode=S_IFREG|0644, st_size=1045, ...}) = 0 > mmap2(NULL, 1045, PROT_READ, MAP_PRIVATE, 13, 0) = 0x41a40000 > munmap(0x41a40000, 1045) = 0 > close(13) = 0 > rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 > rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 > rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 > rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 > rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 > rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 > rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 > rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 > rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 > rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 > rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 > brk(0) = 0x8093000 > brk(0x80b9000) = 0x80b9000 > mmap2(NULL, 2101248, PROT_READ|PROT_WRITE|PROT_EXEC, > MAP_PRIVATE|MAP_ANONYMOUS,-1, 0) = 0x42049000 > mprotect(0x42049000, 4096, PROT_NONE) = 0 > clone(child_stack=0x42249b08, > flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, > parent_tidptr=0x42249bf8, {entry_number:6, base_addr:0x42249bb0, > limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, > limit_in_pages:1, seg_not_present:0, useable:1}, child_tidptr=0x42249bf8) > = 6137 > futex(0x8072e00, FUTEX_WAIT, 0, NULL <unfinished ...> > > > > ------------------------------------------------------- > This SF.Net email is sponsored by The 2004 JavaOne(SM) Conference > Learn from the experts at JavaOne(SM), Sun's Worldwide Java Developer > Conference, June 28 - July 1 at the Moscone Center in San Francisco, CA > REGISTER AND SAVE! http://java.sun.com/javaone/sf Priority Code NWMGYKND > _______________________________________________ > Sablevm-developer mailing list > Sab...@li... > https://lists.sourceforge.net/lists/listinfo/sablevm-developer > > -- Etienne M. Gagnon, Ph.D. http://www.info.uqam.ca/~egagnon/ SableVM: http://www.sablevm.org/ SableCC: http://www.sablecc.org/ |
From: Joseph P. <pa...@mc...> - 2004-06-15 01:05:16
|
no problem. Here it is: (VMObject.java:-1) java/lang/VMObject.wait n (Object.java:431) java/lang/Object.wait (GtkMainThread.java:63) gnu/java/awt/peer/gtk/GtkMainThread.<init> (GtkToolkit.java:108) gnu/java/awt/peer/gtk/GtkToolkit.<init> (Constructor.java:-1) java/lang/reflect/Constructor.constructNative n (Constructor.java:408) java/lang/reflect/Constructor.newInstance (Class.java:1496) java/lang/Class.newInstance (Toolkit.java:522) java/awt/Toolkit.getDefaultToolkit (Component.java:695) java/awt/Component.getToolkit (Container.java:374) java/awt/Container.addImpl (Container.java:268) java/awt/Container.add (ConfigDialog.java:329) net/jxta/impl/peergroup/ConfigDialog$PagesPanel.<init> (ConfigDialog.java:375) net/jxta/impl/peergroup/ConfigDialog.<init> (DefaultConfigurator.java:139) net/jxta/impl/peergroup/DefaultConfigurator.<init> (DefaultConfigurator.java:126) net/jxta/impl/peergroup/DefaultConfigurator.<init> (Constructor.java:-1) java/lang/reflect/Constructor.constructNative n (Constructor.java:408) java/lang/reflect/Constructor.newInstance (Class.java:1496) java/lang/Class.newInstance (Platform.java:202) net/jxta/impl/peergroup/Platform.generateConfigAdvertisement (Platform.java:161) net/jxta/impl/peergroup/Platform.initFirst (GenericPeerGroup.java:784) net/jxta/impl/peergroup/GenericPeerGroup.init (PeerGroupFactory.java:369) net/jxta/peergroup/PeerGroupFactory.newPlatform (PeerGroupFactory.java:420) net/jxta/peergroup/PeerGroupFactory.newNetPeerGroup (Server.java:116) Server.startJxta (Server.java:108) Server.main (VirtualMachine.java:-1) java/lang/VirtualMachine.invokeMain n (VirtualMachine.java:92) java/lang/VirtualMachine.main Thanks, Joe On Mon, 14 Jun 2004, Etienne Gagnon wrote: > Hi Joe, > > Could you also type Ctrl-\ [e.g. SIGQUIT], when it hangs? This would > dump the Java stack trace. > > Etienne > > Joseph Paris wrote: > > Heya, > > > > I'm running into an issue were the sablevm seems to be hanging on what i > > think is a threading related issue. I've narrowed down where in code > > the hang occurs, but i'm not sure _why_ it occurs. I'm providing the > > class and instantiation along with a portion of strace output. if more > > strace output would help, please let me know. > > > > Any help would be greatly appreciated. > > > > System config: > > Suse 9.1 updated; x86 > > > > Thanks, > > Joe > > > > ------AwtUtils.java from the JXTA distribution----- > > ****Executed as AwtUtils.initAsDaemon()**** > > > > > > import java.awt.Frame; > > > > public class AwtUtils { > > > > public static void initAsDaemon() { > > (new Thread() { > > public void run() { > > try { > > Frame f = new Frame(); > > f.dispose(); > > } catch (Throwable t) { > > } > > } > > public void doit() { > > setDaemon(true); > > setName("awt daemon initializer"); > > start(); > > try { > > join(); > > } catch (InterruptedException ie) { > > } > > } > > }).doit(); > > } > > } > > > > > > -------------------Strace output--------------------- > > > > open("/usr/local/lib/libfontconfig.so.1", O_RDONLY) = -1 ENOENT (No such > > file or directory) > > open("tls/i686/sse2/libfontconfig.so.1", O_RDONLY) = -1 ENOENT (No such > > file ordirectory) > > open("tls/i686/libfontconfig.so.1", O_RDONLY) = -1 ENOENT (No such file or > > directory) > > open("tls/sse2/libfontconfig.so.1", O_RDONLY) = -1 ENOENT (No such file or > > directory) > > open("tls/libfontconfig.so.1", O_RDONLY) = -1 ENOENT (No such file or > > directory)open("i686/sse2/libfontconfig.so.1", O_RDONLY) = -1 ENOENT (No > > such file or directory) > > open("i686/libfontconfig.so.1", O_RDONLY) = -1 ENOENT (No such file or > > directory) > > open("sse2/libfontconfig.so.1", O_RDONLY) = -1 ENOENT (No such file or > > directory) > > open("libfontconfig.so.1", O_RDONLY) = -1 ENOENT (No such file or > > directory)open("/usr/lib/libfontconfig.so.1", O_RDONLY) = 13 > > read(13, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\300\223"..., > > 512) = 512 > > fstat64(13, {st_mode=S_IFREG|0755, st_size=204755, ...}) = 0 > > old_mmap(NULL, 170408, PROT_READ|PROT_EXEC, MAP_PRIVATE, 13, 0) = > > 0x41f97000 > > madvise(0x41f97000, 170408, MADV_SEQUENTIAL|0x1) = 0 > > old_mmap(0x41fbc000, 16384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, > > 13, 0x25000) = 0x41fbc000 > > old_mmap(0x41fc0000, 2472, PROT_READ|PROT_WRITE, > > MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x41fc0000 > > close(13) = 0 > > open("/usr/local/lib/libfreetype.so.6", O_RDONLY) = -1 ENOENT (No such > > file or d irectory) > > open("tls/i686/sse2/libfreetype.so.6", O_RDONLY) = -1 ENOENT (No such file > > or directory) > > open("tls/i686/libfreetype.so.6", O_RDONLY) = -1 ENOENT (No such file or > > directory) > > open("tls/sse2/libfreetype.so.6", O_RDONLY) = -1 ENOENT (No such file or > > directory) > > open("tls/libfreetype.so.6", O_RDONLY) = -1 ENOENT (No such file or > > directory)open("i686/sse2/libfreetype.so.6", O_RDONLY) = -1 ENOENT (No > > such file or directory) > > open("i686/libfreetype.so.6", O_RDONLY) = -1 ENOENT (No such file or > > directory)open("sse2/libfreetype.so.6", O_RDONLY) = -1 ENOENT (No such > > file or directory)open("libfreetype.so.6", O_RDONLY) = -1 ENOENT (No > > such file or directory)open("/usr/lib/libfreetype.so.6", O_RDONLY) = 13 > > read(13, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\360\346"..., > > 512) = 512 > > fstat64(13, {st_mode=S_IFREG|0755, st_size=473346, ...}) = 0 > > old_mmap(NULL, 429584, PROT_READ|PROT_EXEC, MAP_PRIVATE, 13, 0) = > > 0x41fc1000 > > madvise(0x41fc1000, 429584, MADV_SEQUENTIAL|0x1) = 0 > > old_mmap(0x42023000, 28672, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, > > 13, 0x62000) = 0x42023000 > > close(13) = 0 > > open("/usr/local/lib/libexpat.so.0", O_RDONLY) = -1 ENOENT (No such file > > or directory) > > open("tls/i686/sse2/libexpat.so.0", O_RDONLY) = -1 ENOENT (No such file or > > directory) > > open("tls/i686/libexpat.so.0", O_RDONLY) = -1 ENOENT (No such file or > > directory)open("tls/sse2/libexpat.so.0", O_RDONLY) = -1 ENOENT (No such > > file or directory)open("tls/libexpat.so.0", O_RDONLY) = -1 ENOENT (No > > such file or directory)open("i686/sse2/libexpat.so.0", O_RDONLY) = -1 > > ENOENT (No such file or directory) > > open("i686/libexpat.so.0", O_RDONLY) = -1 ENOENT (No such file or > > directory)open("sse2/libexpat.so.0", O_RDONLY) = -1 ENOENT (No such > > file or directory)open("libexpat.so.0", O_RDONLY) = -1 ENOENT (No > > such file or directory)open("/usr/lib/libexpat.so.0", O_RDONLY) = 13 > > read(13, "\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(13, {st_mode=S_IFREG|0755, st_size=160096, ...}) = 0 > > old_mmap(NULL, 124104, PROT_READ|PROT_EXEC, MAP_PRIVATE, 13, 0) = > > 0x4202a000 > > madvise(0x4202a000, 124104, MADV_SEQUENTIAL|0x1) = 0 > > old_mmap(0x42046000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, > > 13, 0x1c000) = 0x42046000 > > close(13) = 0 > > munmap(0x41a40000, 122337) = 0 > > rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 > > rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 > > rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 > > rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 > > rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 > > write(1, "[verbose class: loading \"java/be"..., 60[verbose class: loading > > "java/beans/PropertyChangeSupport"] > > ) = 60 > > open("/home/paris/software/sablevm//share/sablevm/sablevm-classpath/java/beans/PropertyChangeSupport.class", > > O_RDONLY) = 13 > > fstat64(13, {st_mode=S_IFREG|0644, st_size=5035, ...}) = 0 > > mmap2(NULL, 5035, PROT_READ, MAP_PRIVATE, 13, 0) = 0x41a40000 > > munmap(0x41a40000, 5035) = 0 > > close(13) = 0 > > rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 > > rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 > > write(1, "[verbose class: loading \"gnu/jav"..., 63[verbose class: loading > > "gnu/java/awt/peer/gtk/GtkMainThread"] > > ) = 63 > > open("/home/paris/software/sablevm//share/sablevm/sablevm-classpath/gnu/java/awt/peer/gtk/GtkMainThread.class", > > O_RDONLY) = 13 > > fstat64(13, {st_mode=S_IFREG|0644, st_size=1021, ...}) = 0 > > mmap2(NULL, 1021, PROT_READ, MAP_PRIVATE, 13, 0) = 0x41a40000 > > munmap(0x41a40000, 1021) = 0 > > close(13) = 0 > > write(1, "[verbose class: loading \"gnu/jav"..., 64[verbose class: loading > > "gnu/java/awt/peer/gtk/GtkGenericPeer"] > > ) = 64 > > open("/home/paris/software/sablevm//share/sablevm/sablevm-classpath/gnu/java/awt/peer/gtk/GtkGenericPeer.class", > > O_RDONLY) = 13 > > fstat64(13, {st_mode=S_IFREG|0644, st_size=1045, ...}) = 0 > > mmap2(NULL, 1045, PROT_READ, MAP_PRIVATE, 13, 0) = 0x41a40000 > > munmap(0x41a40000, 1045) = 0 > > close(13) = 0 > > rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 > > rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 > > rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 > > rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 > > rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 > > rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 > > rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 > > rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 > > rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 > > rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 > > rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 > > brk(0) = 0x8093000 > > brk(0x80b9000) = 0x80b9000 > > mmap2(NULL, 2101248, PROT_READ|PROT_WRITE|PROT_EXEC, > > MAP_PRIVATE|MAP_ANONYMOUS,-1, 0) = 0x42049000 > > mprotect(0x42049000, 4096, PROT_NONE) = 0 > > clone(child_stack=0x42249b08, > > flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, > > parent_tidptr=0x42249bf8, {entry_number:6, base_addr:0x42249bb0, > > limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, > > limit_in_pages:1, seg_not_present:0, useable:1}, child_tidptr=0x42249bf8) > > = 6137 > > futex(0x8072e00, FUTEX_WAIT, 0, NULL <unfinished ...> > > > > > > > > ------------------------------------------------------- > > This SF.Net email is sponsored by The 2004 JavaOne(SM) Conference > > Learn from the experts at JavaOne(SM), Sun's Worldwide Java Developer > > Conference, June 28 - July 1 at the Moscone Center in San Francisco, CA > > REGISTER AND SAVE! http://java.sun.com/javaone/sf Priority Code NWMGYKND > > _______________________________________________ > > Sablevm-developer mailing list > > Sab...@li... > > https://lists.sourceforge.net/lists/listinfo/sablevm-developer > > > > > > -- > Etienne M. Gagnon, Ph.D. http://www.info.uqam.ca/~egagnon/ > SableVM: http://www.sablevm.org/ > SableCC: http://www.sablecc.org/ > > |
From: Joseph P. <pa...@mc...> - 2004-06-16 16:41:36
|
Were you able to make any progress on figuring out what the problem is? If there is anything more you need from me, please don't hesitate to ask. --Joe On Mon, 14 Jun 2004, Joseph Paris wrote: > no problem. Here it is: > > (VMObject.java:-1) java/lang/VMObject.wait n > (Object.java:431) java/lang/Object.wait > (GtkMainThread.java:63) gnu/java/awt/peer/gtk/GtkMainThread.<init> > (GtkToolkit.java:108) gnu/java/awt/peer/gtk/GtkToolkit.<init> > (Constructor.java:-1) java/lang/reflect/Constructor.constructNative n > (Constructor.java:408) java/lang/reflect/Constructor.newInstance > (Class.java:1496) java/lang/Class.newInstance > (Toolkit.java:522) java/awt/Toolkit.getDefaultToolkit > (Component.java:695) java/awt/Component.getToolkit > (Container.java:374) java/awt/Container.addImpl > (Container.java:268) java/awt/Container.add > (ConfigDialog.java:329) > net/jxta/impl/peergroup/ConfigDialog$PagesPanel.<init> > (ConfigDialog.java:375) net/jxta/impl/peergroup/ConfigDialog.<init> > (DefaultConfigurator.java:139) > net/jxta/impl/peergroup/DefaultConfigurator.<init> > (DefaultConfigurator.java:126) > net/jxta/impl/peergroup/DefaultConfigurator.<init> > (Constructor.java:-1) java/lang/reflect/Constructor.constructNative n > (Constructor.java:408) java/lang/reflect/Constructor.newInstance > (Class.java:1496) java/lang/Class.newInstance > (Platform.java:202) > net/jxta/impl/peergroup/Platform.generateConfigAdvertisement > (Platform.java:161) net/jxta/impl/peergroup/Platform.initFirst > (GenericPeerGroup.java:784) net/jxta/impl/peergroup/GenericPeerGroup.init > (PeerGroupFactory.java:369) > net/jxta/peergroup/PeerGroupFactory.newPlatform > (PeerGroupFactory.java:420) > net/jxta/peergroup/PeerGroupFactory.newNetPeerGroup > (Server.java:116) Server.startJxta > (Server.java:108) Server.main > (VirtualMachine.java:-1) java/lang/VirtualMachine.invokeMain n > (VirtualMachine.java:92) java/lang/VirtualMachine.main > > > Thanks, > Joe > > > On Mon, 14 Jun 2004, Etienne Gagnon wrote: > > > Hi Joe, > > > > Could you also type Ctrl-\ [e.g. SIGQUIT], when it hangs? This would > > dump the Java stack trace. > > > > Etienne > > > > Joseph Paris wrote: > > > Heya, > > > > > > I'm running into an issue were the sablevm seems to be hanging on what i > > > think is a threading related issue. I've narrowed down where in code > > > the hang occurs, but i'm not sure _why_ it occurs. I'm providing the > > > class and instantiation along with a portion of strace output. if more > > > strace output would help, please let me know. > > > > > > Any help would be greatly appreciated. > > > > > > System config: > > > Suse 9.1 updated; x86 > > > > > > Thanks, > > > Joe > > > > > > ------AwtUtils.java from the JXTA distribution----- > > > ****Executed as AwtUtils.initAsDaemon()**** > > > > > > > > > import java.awt.Frame; > > > > > > public class AwtUtils { > > > > > > public static void initAsDaemon() { > > > (new Thread() { > > > public void run() { > > > try { > > > Frame f = new Frame(); > > > f.dispose(); > > > } catch (Throwable t) { > > > } > > > } > > > public void doit() { > > > setDaemon(true); > > > setName("awt daemon initializer"); > > > start(); > > > try { > > > join(); > > > } catch (InterruptedException ie) { > > > } > > > } > > > }).doit(); > > > } > > > } > > > > > > > > > -------------------Strace output--------------------- > > > > > > open("/usr/local/lib/libfontconfig.so.1", O_RDONLY) = -1 ENOENT (No such > > > file or directory) > > > open("tls/i686/sse2/libfontconfig.so.1", O_RDONLY) = -1 ENOENT (No such > > > file ordirectory) > > > open("tls/i686/libfontconfig.so.1", O_RDONLY) = -1 ENOENT (No such file or > > > directory) > > > open("tls/sse2/libfontconfig.so.1", O_RDONLY) = -1 ENOENT (No such file or > > > directory) > > > open("tls/libfontconfig.so.1", O_RDONLY) = -1 ENOENT (No such file or > > > directory)open("i686/sse2/libfontconfig.so.1", O_RDONLY) = -1 ENOENT (No > > > such file or directory) > > > open("i686/libfontconfig.so.1", O_RDONLY) = -1 ENOENT (No such file or > > > directory) > > > open("sse2/libfontconfig.so.1", O_RDONLY) = -1 ENOENT (No such file or > > > directory) > > > open("libfontconfig.so.1", O_RDONLY) = -1 ENOENT (No such file or > > > directory)open("/usr/lib/libfontconfig.so.1", O_RDONLY) = 13 > > > read(13, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\300\223"..., > > > 512) = 512 > > > fstat64(13, {st_mode=S_IFREG|0755, st_size=204755, ...}) = 0 > > > old_mmap(NULL, 170408, PROT_READ|PROT_EXEC, MAP_PRIVATE, 13, 0) = > > > 0x41f97000 > > > madvise(0x41f97000, 170408, MADV_SEQUENTIAL|0x1) = 0 > > > old_mmap(0x41fbc000, 16384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, > > > 13, 0x25000) = 0x41fbc000 > > > old_mmap(0x41fc0000, 2472, PROT_READ|PROT_WRITE, > > > MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x41fc0000 > > > close(13) = 0 > > > open("/usr/local/lib/libfreetype.so.6", O_RDONLY) = -1 ENOENT (No such > > > file or d irectory) > > > open("tls/i686/sse2/libfreetype.so.6", O_RDONLY) = -1 ENOENT (No such file > > > or directory) > > > open("tls/i686/libfreetype.so.6", O_RDONLY) = -1 ENOENT (No such file or > > > directory) > > > open("tls/sse2/libfreetype.so.6", O_RDONLY) = -1 ENOENT (No such file or > > > directory) > > > open("tls/libfreetype.so.6", O_RDONLY) = -1 ENOENT (No such file or > > > directory)open("i686/sse2/libfreetype.so.6", O_RDONLY) = -1 ENOENT (No > > > such file or directory) > > > open("i686/libfreetype.so.6", O_RDONLY) = -1 ENOENT (No such file or > > > directory)open("sse2/libfreetype.so.6", O_RDONLY) = -1 ENOENT (No such > > > file or directory)open("libfreetype.so.6", O_RDONLY) = -1 ENOENT (No > > > such file or directory)open("/usr/lib/libfreetype.so.6", O_RDONLY) = 13 > > > read(13, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\360\346"..., > > > 512) = 512 > > > fstat64(13, {st_mode=S_IFREG|0755, st_size=473346, ...}) = 0 > > > old_mmap(NULL, 429584, PROT_READ|PROT_EXEC, MAP_PRIVATE, 13, 0) = > > > 0x41fc1000 > > > madvise(0x41fc1000, 429584, MADV_SEQUENTIAL|0x1) = 0 > > > old_mmap(0x42023000, 28672, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, > > > 13, 0x62000) = 0x42023000 > > > close(13) = 0 > > > open("/usr/local/lib/libexpat.so.0", O_RDONLY) = -1 ENOENT (No such file > > > or directory) > > > open("tls/i686/sse2/libexpat.so.0", O_RDONLY) = -1 ENOENT (No such file or > > > directory) > > > open("tls/i686/libexpat.so.0", O_RDONLY) = -1 ENOENT (No such file or > > > directory)open("tls/sse2/libexpat.so.0", O_RDONLY) = -1 ENOENT (No such > > > file or directory)open("tls/libexpat.so.0", O_RDONLY) = -1 ENOENT (No > > > such file or directory)open("i686/sse2/libexpat.so.0", O_RDONLY) = -1 > > > ENOENT (No such file or directory) > > > open("i686/libexpat.so.0", O_RDONLY) = -1 ENOENT (No such file or > > > directory)open("sse2/libexpat.so.0", O_RDONLY) = -1 ENOENT (No such > > > file or directory)open("libexpat.so.0", O_RDONLY) = -1 ENOENT (No > > > such file or directory)open("/usr/lib/libexpat.so.0", O_RDONLY) = 13 > > > read(13, "\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(13, {st_mode=S_IFREG|0755, st_size=160096, ...}) = 0 > > > old_mmap(NULL, 124104, PROT_READ|PROT_EXEC, MAP_PRIVATE, 13, 0) = > > > 0x4202a000 > > > madvise(0x4202a000, 124104, MADV_SEQUENTIAL|0x1) = 0 > > > old_mmap(0x42046000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, > > > 13, 0x1c000) = 0x42046000 > > > close(13) = 0 > > > munmap(0x41a40000, 122337) = 0 > > > rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 > > > rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 > > > rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 > > > rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 > > > rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 > > > write(1, "[verbose class: loading \"java/be"..., 60[verbose class: loading > > > "java/beans/PropertyChangeSupport"] > > > ) = 60 > > > open("/home/paris/software/sablevm//share/sablevm/sablevm-classpath/java/beans/PropertyChangeSupport.class", > > > O_RDONLY) = 13 > > > fstat64(13, {st_mode=S_IFREG|0644, st_size=5035, ...}) = 0 > > > mmap2(NULL, 5035, PROT_READ, MAP_PRIVATE, 13, 0) = 0x41a40000 > > > munmap(0x41a40000, 5035) = 0 > > > close(13) = 0 > > > rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 > > > rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 > > > write(1, "[verbose class: loading \"gnu/jav"..., 63[verbose class: loading > > > "gnu/java/awt/peer/gtk/GtkMainThread"] > > > ) = 63 > > > open("/home/paris/software/sablevm//share/sablevm/sablevm-classpath/gnu/java/awt/peer/gtk/GtkMainThread.class", > > > O_RDONLY) = 13 > > > fstat64(13, {st_mode=S_IFREG|0644, st_size=1021, ...}) = 0 > > > mmap2(NULL, 1021, PROT_READ, MAP_PRIVATE, 13, 0) = 0x41a40000 > > > munmap(0x41a40000, 1021) = 0 > > > close(13) = 0 > > > write(1, "[verbose class: loading \"gnu/jav"..., 64[verbose class: loading > > > "gnu/java/awt/peer/gtk/GtkGenericPeer"] > > > ) = 64 > > > open("/home/paris/software/sablevm//share/sablevm/sablevm-classpath/gnu/java/awt/peer/gtk/GtkGenericPeer.class", > > > O_RDONLY) = 13 > > > fstat64(13, {st_mode=S_IFREG|0644, st_size=1045, ...}) = 0 > > > mmap2(NULL, 1045, PROT_READ, MAP_PRIVATE, 13, 0) = 0x41a40000 > > > munmap(0x41a40000, 1045) = 0 > > > close(13) = 0 > > > rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 > > > rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 > > > rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 > > > rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 > > > rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 > > > rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 > > > rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 > > > rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 > > > rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 > > > rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 > > > rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 > > > brk(0) = 0x8093000 > > > brk(0x80b9000) = 0x80b9000 > > > mmap2(NULL, 2101248, PROT_READ|PROT_WRITE|PROT_EXEC, > > > MAP_PRIVATE|MAP_ANONYMOUS,-1, 0) = 0x42049000 > > > mprotect(0x42049000, 4096, PROT_NONE) = 0 > > > clone(child_stack=0x42249b08, > > > flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, > > > parent_tidptr=0x42249bf8, {entry_number:6, base_addr:0x42249bb0, > > > limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, > > > limit_in_pages:1, seg_not_present:0, useable:1}, child_tidptr=0x42249bf8) > > > = 6137 > > > futex(0x8072e00, FUTEX_WAIT, 0, NULL <unfinished ...> > > > > > > > > > > > > ------------------------------------------------------- > > > This SF.Net email is sponsored by The 2004 JavaOne(SM) Conference > > > Learn from the experts at JavaOne(SM), Sun's Worldwide Java Developer > > > Conference, June 28 - July 1 at the Moscone Center in San Francisco, CA > > > REGISTER AND SAVE! http://java.sun.com/javaone/sf Priority Code NWMGYKND > > > _______________________________________________ > > > Sablevm-developer mailing list > > > Sab...@li... > > > https://lists.sourceforge.net/lists/listinfo/sablevm-developer > > > > > > > > > > -- > > Etienne M. Gagnon, Ph.D. http://www.info.uqam.ca/~egagnon/ > > SableVM: http://www.sablevm.org/ > > SableCC: http://www.sablecc.org/ > > > > > |
From: Chris P. <chr...@ma...> - 2004-06-17 16:32:32
|
Hi Joe, It's obviously a deadlock somewhere, which means a concurrency / threading bug. It could either be in Classpath or in our locking code. AWT is not really something I know about. Greg recently implemented InterruptedException IIRC, and that could be it as well. Can you reproduce the problem without AWT? Is that really the absolute simplest test case you can give us? What happens if you declare the Thread body as a named class? Does it happen every single time? Cheers, Chris Joseph Paris wrote: > Were you able to make any progress on figuring out what the problem is? > If there is anything more you need from me, please don't hesitate to ask. > > --Joe > > On Mon, 14 Jun 2004, Joseph Paris wrote: > > >>no problem. Here it is: >> >>(VMObject.java:-1) java/lang/VMObject.wait n >>(Object.java:431) java/lang/Object.wait >>(GtkMainThread.java:63) gnu/java/awt/peer/gtk/GtkMainThread.<init> >>(GtkToolkit.java:108) gnu/java/awt/peer/gtk/GtkToolkit.<init> >>(Constructor.java:-1) java/lang/reflect/Constructor.constructNative n >>(Constructor.java:408) java/lang/reflect/Constructor.newInstance >>(Class.java:1496) java/lang/Class.newInstance >>(Toolkit.java:522) java/awt/Toolkit.getDefaultToolkit >>(Component.java:695) java/awt/Component.getToolkit >>(Container.java:374) java/awt/Container.addImpl >>(Container.java:268) java/awt/Container.add >>(ConfigDialog.java:329) >>net/jxta/impl/peergroup/ConfigDialog$PagesPanel.<init> >>(ConfigDialog.java:375) net/jxta/impl/peergroup/ConfigDialog.<init> >>(DefaultConfigurator.java:139) >>net/jxta/impl/peergroup/DefaultConfigurator.<init> >>(DefaultConfigurator.java:126) >>net/jxta/impl/peergroup/DefaultConfigurator.<init> >>(Constructor.java:-1) java/lang/reflect/Constructor.constructNative n >>(Constructor.java:408) java/lang/reflect/Constructor.newInstance >>(Class.java:1496) java/lang/Class.newInstance >>(Platform.java:202) >>net/jxta/impl/peergroup/Platform.generateConfigAdvertisement >>(Platform.java:161) net/jxta/impl/peergroup/Platform.initFirst >>(GenericPeerGroup.java:784) net/jxta/impl/peergroup/GenericPeerGroup.init >>(PeerGroupFactory.java:369) >>net/jxta/peergroup/PeerGroupFactory.newPlatform >>(PeerGroupFactory.java:420) >>net/jxta/peergroup/PeerGroupFactory.newNetPeerGroup >>(Server.java:116) Server.startJxta >>(Server.java:108) Server.main >>(VirtualMachine.java:-1) java/lang/VirtualMachine.invokeMain n >>(VirtualMachine.java:92) java/lang/VirtualMachine.main >> >> >>Thanks, >>Joe >> >> >>On Mon, 14 Jun 2004, Etienne Gagnon wrote: >> >> >>>Hi Joe, >>> >>>Could you also type Ctrl-\ [e.g. SIGQUIT], when it hangs? This would >>>dump the Java stack trace. >>> >>>Etienne >>> >>>Joseph Paris wrote: >>> >>>>Heya, >>>> >>>>I'm running into an issue were the sablevm seems to be hanging on what i >>>>think is a threading related issue. I've narrowed down where in code >>>>the hang occurs, but i'm not sure _why_ it occurs. I'm providing the >>>>class and instantiation along with a portion of strace output. if more >>>>strace output would help, please let me know. >>>> >>>>Any help would be greatly appreciated. >>>> >>>>System config: >>>>Suse 9.1 updated; x86 >>>> >>>>Thanks, >>>>Joe >>>> >>>>------AwtUtils.java from the JXTA distribution----- >>>>****Executed as AwtUtils.initAsDaemon()**** >>>> >>>> >>>>import java.awt.Frame; >>>> >>>>public class AwtUtils { >>>> >>>> public static void initAsDaemon() { >>>> (new Thread() { >>>> public void run() { >>>> try { >>>> Frame f = new Frame(); >>>> f.dispose(); >>>> } catch (Throwable t) { >>>> } >>>> } >>>> public void doit() { >>>> setDaemon(true); >>>> setName("awt daemon initializer"); >>>> start(); >>>> try { >>>> join(); >>>> } catch (InterruptedException ie) { >>>> } >>>> } >>>> }).doit(); >>>> } >>>>} >>>> >>>> >>>>-------------------Strace output--------------------- >>>> >>>>open("/usr/local/lib/libfontconfig.so.1", O_RDONLY) = -1 ENOENT (No such >>>>file or directory) >>>>open("tls/i686/sse2/libfontconfig.so.1", O_RDONLY) = -1 ENOENT (No such >>>>file ordirectory) >>>>open("tls/i686/libfontconfig.so.1", O_RDONLY) = -1 ENOENT (No such file or >>>>directory) >>>>open("tls/sse2/libfontconfig.so.1", O_RDONLY) = -1 ENOENT (No such file or >>>>directory) >>>>open("tls/libfontconfig.so.1", O_RDONLY) = -1 ENOENT (No such file or >>>>directory)open("i686/sse2/libfontconfig.so.1", O_RDONLY) = -1 ENOENT (No >>>>such file or directory) >>>>open("i686/libfontconfig.so.1", O_RDONLY) = -1 ENOENT (No such file or >>>>directory) >>>>open("sse2/libfontconfig.so.1", O_RDONLY) = -1 ENOENT (No such file or >>>>directory) >>>>open("libfontconfig.so.1", O_RDONLY) = -1 ENOENT (No such file or >>>>directory)open("/usr/lib/libfontconfig.so.1", O_RDONLY) = 13 >>>>read(13, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\300\223"..., >>>>512) = 512 >>>>fstat64(13, {st_mode=S_IFREG|0755, st_size=204755, ...}) = 0 >>>>old_mmap(NULL, 170408, PROT_READ|PROT_EXEC, MAP_PRIVATE, 13, 0) = >>>>0x41f97000 >>>>madvise(0x41f97000, 170408, MADV_SEQUENTIAL|0x1) = 0 >>>>old_mmap(0x41fbc000, 16384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, >>>>13, 0x25000) = 0x41fbc000 >>>>old_mmap(0x41fc0000, 2472, PROT_READ|PROT_WRITE, >>>>MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x41fc0000 >>>>close(13) = 0 >>>>open("/usr/local/lib/libfreetype.so.6", O_RDONLY) = -1 ENOENT (No such >>>>file or d irectory) >>>>open("tls/i686/sse2/libfreetype.so.6", O_RDONLY) = -1 ENOENT (No such file >>>>or directory) >>>>open("tls/i686/libfreetype.so.6", O_RDONLY) = -1 ENOENT (No such file or >>>>directory) >>>>open("tls/sse2/libfreetype.so.6", O_RDONLY) = -1 ENOENT (No such file or >>>>directory) >>>>open("tls/libfreetype.so.6", O_RDONLY) = -1 ENOENT (No such file or >>>>directory)open("i686/sse2/libfreetype.so.6", O_RDONLY) = -1 ENOENT (No >>>>such file or directory) >>>>open("i686/libfreetype.so.6", O_RDONLY) = -1 ENOENT (No such file or >>>>directory)open("sse2/libfreetype.so.6", O_RDONLY) = -1 ENOENT (No such >>>>file or directory)open("libfreetype.so.6", O_RDONLY) = -1 ENOENT (No >>>>such file or directory)open("/usr/lib/libfreetype.so.6", O_RDONLY) = 13 >>>>read(13, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\360\346"..., >>>>512) = 512 >>>>fstat64(13, {st_mode=S_IFREG|0755, st_size=473346, ...}) = 0 >>>>old_mmap(NULL, 429584, PROT_READ|PROT_EXEC, MAP_PRIVATE, 13, 0) = >>>>0x41fc1000 >>>>madvise(0x41fc1000, 429584, MADV_SEQUENTIAL|0x1) = 0 >>>>old_mmap(0x42023000, 28672, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, >>>>13, 0x62000) = 0x42023000 >>>>close(13) = 0 >>>>open("/usr/local/lib/libexpat.so.0", O_RDONLY) = -1 ENOENT (No such file >>>>or directory) >>>>open("tls/i686/sse2/libexpat.so.0", O_RDONLY) = -1 ENOENT (No such file or >>>>directory) >>>>open("tls/i686/libexpat.so.0", O_RDONLY) = -1 ENOENT (No such file or >>>>directory)open("tls/sse2/libexpat.so.0", O_RDONLY) = -1 ENOENT (No such >>>>file or directory)open("tls/libexpat.so.0", O_RDONLY) = -1 ENOENT (No >>>>such file or directory)open("i686/sse2/libexpat.so.0", O_RDONLY) = -1 >>>>ENOENT (No such file or directory) >>>>open("i686/libexpat.so.0", O_RDONLY) = -1 ENOENT (No such file or >>>>directory)open("sse2/libexpat.so.0", O_RDONLY) = -1 ENOENT (No such >>>>file or directory)open("libexpat.so.0", O_RDONLY) = -1 ENOENT (No >>>>such file or directory)open("/usr/lib/libexpat.so.0", O_RDONLY) = 13 >>>>read(13, "\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(13, {st_mode=S_IFREG|0755, st_size=160096, ...}) = 0 >>>>old_mmap(NULL, 124104, PROT_READ|PROT_EXEC, MAP_PRIVATE, 13, 0) = >>>>0x4202a000 >>>>madvise(0x4202a000, 124104, MADV_SEQUENTIAL|0x1) = 0 >>>>old_mmap(0x42046000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, >>>>13, 0x1c000) = 0x42046000 >>>>close(13) = 0 >>>>munmap(0x41a40000, 122337) = 0 >>>>rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 >>>>rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 >>>>rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 >>>>rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 >>>>rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 >>>>write(1, "[verbose class: loading \"java/be"..., 60[verbose class: loading >>>>"java/beans/PropertyChangeSupport"] >>>>) = 60 >>>>open("/home/paris/software/sablevm//share/sablevm/sablevm-classpath/java/beans/PropertyChangeSupport.class", >>>>O_RDONLY) = 13 >>>>fstat64(13, {st_mode=S_IFREG|0644, st_size=5035, ...}) = 0 >>>>mmap2(NULL, 5035, PROT_READ, MAP_PRIVATE, 13, 0) = 0x41a40000 >>>>munmap(0x41a40000, 5035) = 0 >>>>close(13) = 0 >>>>rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 >>>>rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 >>>>write(1, "[verbose class: loading \"gnu/jav"..., 63[verbose class: loading >>>>"gnu/java/awt/peer/gtk/GtkMainThread"] >>>>) = 63 >>>>open("/home/paris/software/sablevm//share/sablevm/sablevm-classpath/gnu/java/awt/peer/gtk/GtkMainThread.class", >>>>O_RDONLY) = 13 >>>>fstat64(13, {st_mode=S_IFREG|0644, st_size=1021, ...}) = 0 >>>>mmap2(NULL, 1021, PROT_READ, MAP_PRIVATE, 13, 0) = 0x41a40000 >>>>munmap(0x41a40000, 1021) = 0 >>>>close(13) = 0 >>>>write(1, "[verbose class: loading \"gnu/jav"..., 64[verbose class: loading >>>>"gnu/java/awt/peer/gtk/GtkGenericPeer"] >>>>) = 64 >>>>open("/home/paris/software/sablevm//share/sablevm/sablevm-classpath/gnu/java/awt/peer/gtk/GtkGenericPeer.class", >>>>O_RDONLY) = 13 >>>>fstat64(13, {st_mode=S_IFREG|0644, st_size=1045, ...}) = 0 >>>>mmap2(NULL, 1045, PROT_READ, MAP_PRIVATE, 13, 0) = 0x41a40000 >>>>munmap(0x41a40000, 1045) = 0 >>>>close(13) = 0 >>>>rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 >>>>rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 >>>>rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 >>>>rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 >>>>rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 >>>>rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 >>>>rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 >>>>rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 >>>>rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 >>>>rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 >>>>rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 >>>>brk(0) = 0x8093000 >>>>brk(0x80b9000) = 0x80b9000 >>>>mmap2(NULL, 2101248, PROT_READ|PROT_WRITE|PROT_EXEC, >>>>MAP_PRIVATE|MAP_ANONYMOUS,-1, 0) = 0x42049000 >>>>mprotect(0x42049000, 4096, PROT_NONE) = 0 >>>>clone(child_stack=0x42249b08, >>>>flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, >>>>parent_tidptr=0x42249bf8, {entry_number:6, base_addr:0x42249bb0, >>>>limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, >>>>limit_in_pages:1, seg_not_present:0, useable:1}, child_tidptr=0x42249bf8) >>>>= 6137 >>>>futex(0x8072e00, FUTEX_WAIT, 0, NULL <unfinished ...> >>>> >>>> >>>> >>>>------------------------------------------------------- >>>>This SF.Net email is sponsored by The 2004 JavaOne(SM) Conference >>>>Learn from the experts at JavaOne(SM), Sun's Worldwide Java Developer >>>>Conference, June 28 - July 1 at the Moscone Center in San Francisco, CA >>>>REGISTER AND SAVE! http://java.sun.com/javaone/sf Priority Code NWMGYKND >>>>_______________________________________________ >>>>Sablevm-developer mailing list >>>>Sab...@li... >>>>https://lists.sourceforge.net/lists/listinfo/sablevm-developer >>>> >>>> >>> >>>-- >>>Etienne M. Gagnon, Ph.D. http://www.info.uqam.ca/~egagnon/ >>>SableVM: http://www.sablevm.org/ >>>SableCC: http://www.sablecc.org/ >>> >>> >> > > > ------------------------------------------------------- > This SF.Net email is sponsored by The 2004 JavaOne(SM) Conference > Learn from the experts at JavaOne(SM), Sun's Worldwide Java Developer > Conference, June 28 - July 1 at the Moscone Center in San Francisco, CA > REGISTER AND SAVE! http://java.sun.com/javaone/sf Priority Code NWMGYKND > _______________________________________________ > Sablevm-developer mailing list > Sab...@li... > https://lists.sourceforge.net/lists/listinfo/sablevm-developer > |
From: Joseph P. <pa...@mc...> - 2004-06-17 21:16:26
|
I've done some testing with sablevm and calling methods for awt, and i haven't had a problem. For example, instantiating an AWT or Swing class from inside another class there were no problems. If i remove that call in code, it then hangs on the instantiation of an AWT/Swing class one line later. The hang happens every time (and i've tried about 40+ times to make sure ;p). I'm really not sure why it would hang there, and i know there is no problem using Sun's jvm. I'm not too familiar on how your vm works. Do you create a thread per class that's loaded, etc? I wish i had a more simple test case to work with. What are the relevant files i should be looking at? I will continue to try and replicate this problem in a more simple case. --Joe On Thu, 17 Jun 2004, Chris Pickett wrote: > Hi Joe, > > It's obviously a deadlock somewhere, which means a concurrency / > threading bug. It could either be in Classpath or in our locking code. > AWT is not really something I know about. Greg recently implemented > InterruptedException IIRC, and that could be it as well. > > Can you reproduce the problem without AWT? Is that really the absolute > simplest test case you can give us? What happens if you declare the > Thread body as a named class? Does it happen every single time? > > Cheers, > Chris > > Joseph Paris wrote: > > Were you able to make any progress on figuring out what the problem is? > > If there is anything more you need from me, please don't hesitate to ask. > > > > --Joe > > > > On Mon, 14 Jun 2004, Joseph Paris wrote: > > > > > >>no problem. Here it is: > >> > >>(VMObject.java:-1) java/lang/VMObject.wait n > >>(Object.java:431) java/lang/Object.wait > >>(GtkMainThread.java:63) gnu/java/awt/peer/gtk/GtkMainThread.<init> > >>(GtkToolkit.java:108) gnu/java/awt/peer/gtk/GtkToolkit.<init> > >>(Constructor.java:-1) java/lang/reflect/Constructor.constructNative n > >>(Constructor.java:408) java/lang/reflect/Constructor.newInstance > >>(Class.java:1496) java/lang/Class.newInstance > >>(Toolkit.java:522) java/awt/Toolkit.getDefaultToolkit > >>(Component.java:695) java/awt/Component.getToolkit > >>(Container.java:374) java/awt/Container.addImpl > >>(Container.java:268) java/awt/Container.add > >>(ConfigDialog.java:329) > >>net/jxta/impl/peergroup/ConfigDialog$PagesPanel.<init> > >>(ConfigDialog.java:375) net/jxta/impl/peergroup/ConfigDialog.<init> > >>(DefaultConfigurator.java:139) > >>net/jxta/impl/peergroup/DefaultConfigurator.<init> > >>(DefaultConfigurator.java:126) > >>net/jxta/impl/peergroup/DefaultConfigurator.<init> > >>(Constructor.java:-1) java/lang/reflect/Constructor.constructNative n > >>(Constructor.java:408) java/lang/reflect/Constructor.newInstance > >>(Class.java:1496) java/lang/Class.newInstance > >>(Platform.java:202) > >>net/jxta/impl/peergroup/Platform.generateConfigAdvertisement > >>(Platform.java:161) net/jxta/impl/peergroup/Platform.initFirst > >>(GenericPeerGroup.java:784) net/jxta/impl/peergroup/GenericPeerGroup.init > >>(PeerGroupFactory.java:369) > >>net/jxta/peergroup/PeerGroupFactory.newPlatform > >>(PeerGroupFactory.java:420) > >>net/jxta/peergroup/PeerGroupFactory.newNetPeerGroup > >>(Server.java:116) Server.startJxta > >>(Server.java:108) Server.main > >>(VirtualMachine.java:-1) java/lang/VirtualMachine.invokeMain n > >>(VirtualMachine.java:92) java/lang/VirtualMachine.main > >> > >> > >>Thanks, > >>Joe > >> > >> > >>On Mon, 14 Jun 2004, Etienne Gagnon wrote: > >> > >> > >>>Hi Joe, > >>> > >>>Could you also type Ctrl-\ [e.g. SIGQUIT], when it hangs? This would > >>>dump the Java stack trace. > >>> > >>>Etienne > >>> > >>>Joseph Paris wrote: > >>> > >>>>Heya, > >>>> > >>>>I'm running into an issue were the sablevm seems to be hanging on what i > >>>>think is a threading related issue. I've narrowed down where in code > >>>>the hang occurs, but i'm not sure _why_ it occurs. I'm providing the > >>>>class and instantiation along with a portion of strace output. if more > >>>>strace output would help, please let me know. > >>>> > >>>>Any help would be greatly appreciated. > >>>> > >>>>System config: > >>>>Suse 9.1 updated; x86 > >>>> > >>>>Thanks, > >>>>Joe > >>>> > >>>>------AwtUtils.java from the JXTA distribution----- > >>>>****Executed as AwtUtils.initAsDaemon()**** > >>>> > >>>> > >>>>import java.awt.Frame; > >>>> > >>>>public class AwtUtils { > >>>> > >>>> public static void initAsDaemon() { > >>>> (new Thread() { > >>>> public void run() { > >>>> try { > >>>> Frame f = new Frame(); > >>>> f.dispose(); > >>>> } catch (Throwable t) { > >>>> } > >>>> } > >>>> public void doit() { > >>>> setDaemon(true); > >>>> setName("awt daemon initializer"); > >>>> start(); > >>>> try { > >>>> join(); > >>>> } catch (InterruptedException ie) { > >>>> } > >>>> } > >>>> }).doit(); > >>>> } > >>>>} > >>>> > >>>> > >>>>-------------------Strace output--------------------- > >>>> > >>>>open("/usr/local/lib/libfontconfig.so.1", O_RDONLY) = -1 ENOENT (No such > >>>>file or directory) > >>>>open("tls/i686/sse2/libfontconfig.so.1", O_RDONLY) = -1 ENOENT (No such > >>>>file ordirectory) > >>>>open("tls/i686/libfontconfig.so.1", O_RDONLY) = -1 ENOENT (No such file or > >>>>directory) > >>>>open("tls/sse2/libfontconfig.so.1", O_RDONLY) = -1 ENOENT (No such file or > >>>>directory) > >>>>open("tls/libfontconfig.so.1", O_RDONLY) = -1 ENOENT (No such file or > >>>>directory)open("i686/sse2/libfontconfig.so.1", O_RDONLY) = -1 ENOENT (No > >>>>such file or directory) > >>>>open("i686/libfontconfig.so.1", O_RDONLY) = -1 ENOENT (No such file or > >>>>directory) > >>>>open("sse2/libfontconfig.so.1", O_RDONLY) = -1 ENOENT (No such file or > >>>>directory) > >>>>open("libfontconfig.so.1", O_RDONLY) = -1 ENOENT (No such file or > >>>>directory)open("/usr/lib/libfontconfig.so.1", O_RDONLY) = 13 > >>>>read(13, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\300\223"..., > >>>>512) = 512 > >>>>fstat64(13, {st_mode=S_IFREG|0755, st_size=204755, ...}) = 0 > >>>>old_mmap(NULL, 170408, PROT_READ|PROT_EXEC, MAP_PRIVATE, 13, 0) = > >>>>0x41f97000 > >>>>madvise(0x41f97000, 170408, MADV_SEQUENTIAL|0x1) = 0 > >>>>old_mmap(0x41fbc000, 16384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, > >>>>13, 0x25000) = 0x41fbc000 > >>>>old_mmap(0x41fc0000, 2472, PROT_READ|PROT_WRITE, > >>>>MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x41fc0000 > >>>>close(13) = 0 > >>>>open("/usr/local/lib/libfreetype.so.6", O_RDONLY) = -1 ENOENT (No such > >>>>file or d irectory) > >>>>open("tls/i686/sse2/libfreetype.so.6", O_RDONLY) = -1 ENOENT (No such file > >>>>or directory) > >>>>open("tls/i686/libfreetype.so.6", O_RDONLY) = -1 ENOENT (No such file or > >>>>directory) > >>>>open("tls/sse2/libfreetype.so.6", O_RDONLY) = -1 ENOENT (No such file or > >>>>directory) > >>>>open("tls/libfreetype.so.6", O_RDONLY) = -1 ENOENT (No such file or > >>>>directory)open("i686/sse2/libfreetype.so.6", O_RDONLY) = -1 ENOENT (No > >>>>such file or directory) > >>>>open("i686/libfreetype.so.6", O_RDONLY) = -1 ENOENT (No such file or > >>>>directory)open("sse2/libfreetype.so.6", O_RDONLY) = -1 ENOENT (No such > >>>>file or directory)open("libfreetype.so.6", O_RDONLY) = -1 ENOENT (No > >>>>such file or directory)open("/usr/lib/libfreetype.so.6", O_RDONLY) = 13 > >>>>read(13, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\360\346"..., > >>>>512) = 512 > >>>>fstat64(13, {st_mode=S_IFREG|0755, st_size=473346, ...}) = 0 > >>>>old_mmap(NULL, 429584, PROT_READ|PROT_EXEC, MAP_PRIVATE, 13, 0) = > >>>>0x41fc1000 > >>>>madvise(0x41fc1000, 429584, MADV_SEQUENTIAL|0x1) = 0 > >>>>old_mmap(0x42023000, 28672, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, > >>>>13, 0x62000) = 0x42023000 > >>>>close(13) = 0 > >>>>open("/usr/local/lib/libexpat.so.0", O_RDONLY) = -1 ENOENT (No such file > >>>>or directory) > >>>>open("tls/i686/sse2/libexpat.so.0", O_RDONLY) = -1 ENOENT (No such file or > >>>>directory) > >>>>open("tls/i686/libexpat.so.0", O_RDONLY) = -1 ENOENT (No such file or > >>>>directory)open("tls/sse2/libexpat.so.0", O_RDONLY) = -1 ENOENT (No such > >>>>file or directory)open("tls/libexpat.so.0", O_RDONLY) = -1 ENOENT (No > >>>>such file or directory)open("i686/sse2/libexpat.so.0", O_RDONLY) = -1 > >>>>ENOENT (No such file or directory) > >>>>open("i686/libexpat.so.0", O_RDONLY) = -1 ENOENT (No such file or > >>>>directory)open("sse2/libexpat.so.0", O_RDONLY) = -1 ENOENT (No such > >>>>file or directory)open("libexpat.so.0", O_RDONLY) = -1 ENOENT (No > >>>>such file or directory)open("/usr/lib/libexpat.so.0", O_RDONLY) = 13 > >>>>read(13, "\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(13, {st_mode=S_IFREG|0755, st_size=160096, ...}) = 0 > >>>>old_mmap(NULL, 124104, PROT_READ|PROT_EXEC, MAP_PRIVATE, 13, 0) = > >>>>0x4202a000 > >>>>madvise(0x4202a000, 124104, MADV_SEQUENTIAL|0x1) = 0 > >>>>old_mmap(0x42046000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, > >>>>13, 0x1c000) = 0x42046000 > >>>>close(13) = 0 > >>>>munmap(0x41a40000, 122337) = 0 > >>>>rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 > >>>>rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 > >>>>rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 > >>>>rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 > >>>>rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 > >>>>write(1, "[verbose class: loading \"java/be"..., 60[verbose class: loading > >>>>"java/beans/PropertyChangeSupport"] > >>>>) = 60 > >>>>open("/home/paris/software/sablevm//share/sablevm/sablevm-classpath/java/beans/PropertyChangeSupport.class", > >>>>O_RDONLY) = 13 > >>>>fstat64(13, {st_mode=S_IFREG|0644, st_size=5035, ...}) = 0 > >>>>mmap2(NULL, 5035, PROT_READ, MAP_PRIVATE, 13, 0) = 0x41a40000 > >>>>munmap(0x41a40000, 5035) = 0 > >>>>close(13) = 0 > >>>>rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 > >>>>rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 > >>>>write(1, "[verbose class: loading \"gnu/jav"..., 63[verbose class: loading > >>>>"gnu/java/awt/peer/gtk/GtkMainThread"] > >>>>) = 63 > >>>>open("/home/paris/software/sablevm//share/sablevm/sablevm-classpath/gnu/java/awt/peer/gtk/GtkMainThread.class", > >>>>O_RDONLY) = 13 > >>>>fstat64(13, {st_mode=S_IFREG|0644, st_size=1021, ...}) = 0 > >>>>mmap2(NULL, 1021, PROT_READ, MAP_PRIVATE, 13, 0) = 0x41a40000 > >>>>munmap(0x41a40000, 1021) = 0 > >>>>close(13) = 0 > >>>>write(1, "[verbose class: loading \"gnu/jav"..., 64[verbose class: loading > >>>>"gnu/java/awt/peer/gtk/GtkGenericPeer"] > >>>>) = 64 > >>>>open("/home/paris/software/sablevm//share/sablevm/sablevm-classpath/gnu/java/awt/peer/gtk/GtkGenericPeer.class", > >>>>O_RDONLY) = 13 > >>>>fstat64(13, {st_mode=S_IFREG|0644, st_size=1045, ...}) = 0 > >>>>mmap2(NULL, 1045, PROT_READ, MAP_PRIVATE, 13, 0) = 0x41a40000 > >>>>munmap(0x41a40000, 1045) = 0 > >>>>close(13) = 0 > >>>>rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 > >>>>rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 > >>>>rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 > >>>>rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 > >>>>rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 > >>>>rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 > >>>>rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 > >>>>rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 > >>>>rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 > >>>>rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 > >>>>rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 > >>>>brk(0) = 0x8093000 > >>>>brk(0x80b9000) = 0x80b9000 > >>>>mmap2(NULL, 2101248, PROT_READ|PROT_WRITE|PROT_EXEC, > >>>>MAP_PRIVATE|MAP_ANONYMOUS,-1, 0) = 0x42049000 > >>>>mprotect(0x42049000, 4096, PROT_NONE) = 0 > >>>>clone(child_stack=0x42249b08, > >>>>flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, > >>>>parent_tidptr=0x42249bf8, {entry_number:6, base_addr:0x42249bb0, > >>>>limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, > >>>>limit_in_pages:1, seg_not_present:0, useable:1}, child_tidptr=0x42249bf8) > >>>>= 6137 > >>>>futex(0x8072e00, FUTEX_WAIT, 0, NULL <unfinished ...> > >>>> > >>>> > >>>> > >>>>------------------------------------------------------- > >>>>This SF.Net email is sponsored by The 2004 JavaOne(SM) Conference > >>>>Learn from the experts at JavaOne(SM), Sun's Worldwide Java Developer > >>>>Conference, June 28 - July 1 at the Moscone Center in San Francisco, CA > >>>>REGISTER AND SAVE! http://java.sun.com/javaone/sf Priority Code NWMGYKND > >>>>_______________________________________________ > >>>>Sablevm-developer mailing list > >>>>Sab...@li... > >>>>https://lists.sourceforge.net/lists/listinfo/sablevm-developer > >>>> > >>>> > >>> > >>>-- > >>>Etienne M. Gagnon, Ph.D. http://www.info.uqam.ca/~egagnon/ > >>>SableVM: http://www.sablevm.org/ > >>>SableCC: http://www.sablecc.org/ > >>> > >>> > >> > > > > > > ------------------------------------------------------- > > This SF.Net email is sponsored by The 2004 JavaOne(SM) Conference > > Learn from the experts at JavaOne(SM), Sun's Worldwide Java Developer > > Conference, June 28 - July 1 at the Moscone Center in San Francisco, CA > > REGISTER AND SAVE! http://java.sun.com/javaone/sf Priority Code NWMGYKND > > _______________________________________________ > > Sablevm-developer mailing list > > Sab...@li... > > https://lists.sourceforge.net/lists/listinfo/sablevm-developer > > > > |
From: Chris P. <chr...@ma...> - 2004-06-17 22:33:21
|
Joseph Paris wrote: > I've done some testing with sablevm and calling methods for awt, and i > haven't had a problem. For example, instantiating an AWT or Swing class > from inside another class there were no problems. If i remove that call > in code, it then hangs on the instantiation of an AWT/Swing class one line > later. I'm sorry, I don't follow 100%. Can you illustrate with code? The hang happens every time (and i've tried about 40+ times to > make sure ;p). I'm really not sure why it would hang there, and i know > there is no problem using Sun's jvm. Okay. That's very fortunate that it happens every time :) > I'm not too familiar on how your vm works. Do you create a thread per > class that's loaded, etc? There is one pthread per Java thread. I wish i had a more simple test case to work > with. What are the relevant files i should be looking at? Check out the staging versions of sablevm and sablevm-classpath (which are fairly stable, but contain more recent updates than the tarballs). You could also grab the latest nightly snapshots. See: http://devel.sablevm.org/wiki/Getting As for relevant files ... well, there's Java stuff in sablevm-classpath, and VM stuff in sablevm. You might want to try ./configure --enable-debugging-features --with-threading=switch for the most safe mode. The switch interpreter is easier to step through with gdb. I tried it with an older (roughly 1.1.4) sablevm-switch-debug and it still hangs. I changed the _svmf_dump_stack_trace() function to print out internal frames, and I see: stack_bottom_method (VMObject.java:-1) java/lang/VMObject.wait n (Object.java:445) java/lang/Object.wait (EventQueue.java:98) java/awt/EventQueue.getNextEvent (EventDispatchThread.java:64) java/awt/EventDispatchThread.run (VMThread.java:116) java/lang/VMThread.callRun (Thread.java:386) java/lang/Thread.callRun (VirtualMachine.java:117) java/lang/VirtualMachine.runThread vm_initiated_call_method stack_bottom_method which at first glance suggests the other thread (at the top) never even gets started properly. I might be wrong, but it looks related to some thread startup errors we were seeing earlier. Etienne and Greg, I put Joe's current test case with an added main method at: http://www.sable.mcgill.ca/~cpicke/sablevm/AwtUtils.java I will > continue to try and replicate this problem in a more simple case. Sure. Basically every line or possibly funny syntax (e.g. anonymous classes) that you can eliminate cuts down the problem. Cheers, Chris |
From: Joseph P. <pa...@mc...> - 2004-06-17 22:51:12
|
Yeah, i made that sounds confusing ;p I meant to say that i have no problem using the AwtUtils.init... by itself, nor do i have a problem burying an awt class way down in a series of class instantiations (currently tried about 6 levels down). However, in the current code base (JXTA) if i remove the call to AwtUtils.init... the next call (which instantiates a class that displays a Frame) hangs with the same problem and at VMObject.wait. I'm not sure if i'm hitting a thread limit or what, it seems kind of odd that the same problem occurs regardless of whether or not i call AwtUtils.init or create a new Frame. I'll try your suggestions below and post some results. Thanks! Joe On Thu, 17 Jun 2004, Chris Pickett wrote: > Joseph Paris wrote: > > I've done some testing with sablevm and calling methods for awt, and i > > haven't had a problem. For example, instantiating an AWT or Swing class > > from inside another class there were no problems. If i remove that call > > in code, it then hangs on the instantiation of an AWT/Swing class one line > > later. > > I'm sorry, I don't follow 100%. Can you illustrate with code? > > The hang happens every time (and i've tried about 40+ times to > > make sure ;p). I'm really not sure why it would hang there, and i know > > there is no problem using Sun's jvm. > > Okay. That's very fortunate that it happens every time :) > > > I'm not too familiar on how your vm works. Do you create a thread per > > class that's loaded, etc? > > There is one pthread per Java thread. > > I wish i had a more simple test case to work > > with. What are the relevant files i should be looking at? > > Check out the staging versions of sablevm and sablevm-classpath (which > are fairly stable, but contain more recent updates than the tarballs). > You could also grab the latest nightly snapshots. See: > > http://devel.sablevm.org/wiki/Getting > > As for relevant files ... well, there's Java stuff in sablevm-classpath, > and VM stuff in sablevm. You might want to try > > ./configure --enable-debugging-features --with-threading=switch > > for the most safe mode. The switch interpreter is easier to step > through with gdb. > > I tried it with an older (roughly 1.1.4) sablevm-switch-debug and it > still hangs. I changed the _svmf_dump_stack_trace() function to print > out internal frames, and I see: > > stack_bottom_method > (VMObject.java:-1) java/lang/VMObject.wait n > (Object.java:445) java/lang/Object.wait > (EventQueue.java:98) java/awt/EventQueue.getNextEvent > (EventDispatchThread.java:64) java/awt/EventDispatchThread.run > (VMThread.java:116) java/lang/VMThread.callRun > (Thread.java:386) java/lang/Thread.callRun > (VirtualMachine.java:117) java/lang/VirtualMachine.runThread > vm_initiated_call_method > stack_bottom_method > > which at first glance suggests the other thread (at the top) never even > gets started properly. I might be wrong, but it looks related to some > thread startup errors we were seeing earlier. Etienne and Greg, I put > Joe's current test case with an added main method at: > > http://www.sable.mcgill.ca/~cpicke/sablevm/AwtUtils.java > > I will > > continue to try and replicate this problem in a more simple case. > > Sure. Basically every line or possibly funny syntax (e.g. anonymous > classes) that you can eliminate cuts down the problem. > > Cheers, > Chris > > |
From: Chris P. <chr...@ma...> - 2004-06-17 23:02:47
|
Joseph Paris wrote: > Yeah, i made that sounds confusing ;p I meant to say that i have no > problem using the AwtUtils.init... by itself, nor do i have a problem > burying an awt class way down in a series of class instantiations > (currently tried about 6 levels down). > > However, in the current code base (JXTA) if i remove the call to > AwtUtils.init... the next call (which instantiates a class that displays a > Frame) hangs with the same problem and at VMObject.wait. I'm not sure > if i'm hitting a thread limit or what, it seems kind of odd that the same > problem occurs regardless of whether or not i call AwtUtils.init or create > a new Frame. > > I'll try your suggestions below and post some results. Let's work from the AwtUtils.java that I modified to have a main() method. It runs with Sun's JDK but hangs with sablevm AFAICT. Try and simplify just that until it doesn't hang, and give us the minimal hanging example. For example, you can remove the "f.dispose();" line and it will still hang, but not the "Frame f = new Frame();" line. Cheers, Chris |
From: Chris P. <chr...@ma...> - 2004-06-18 06:27:32
|
Chris Pickett wrote: > Joseph Paris wrote: > >>Yeah, i made that sounds confusing ;p I meant to say that i have no >>problem using the AwtUtils.init... by itself, nor do i have a problem >>burying an awt class way down in a series of class instantiations >>(currently tried about 6 levels down). >> >>However, in the current code base (JXTA) if i remove the call to >>AwtUtils.init... the next call (which instantiates a class that displays a >>Frame) hangs with the same problem and at VMObject.wait. I'm not sure >>if i'm hitting a thread limit or what, it seems kind of odd that the same >>problem occurs regardless of whether or not i call AwtUtils.init or create >>a new Frame. >> >>I'll try your suggestions below and post some results. > > > Let's work from the AwtUtils.java that I modified to have a main() > method. It runs with Sun's JDK but hangs with sablevm AFAICT. Try and > simplify just that until it doesn't hang, and give us the minimal > hanging example. For example, you can remove the "f.dispose();" line > and it will still hang, but not the "Frame f = new Frame();" line. Hi again ... I narrowed down the test case a bit, and looked up some docs. I'm going to bed now, but if someone feels inspired to look at it: http://java.sun.com/j2se/1.4.2/docs/api/java/awt/Window.html#dispose() http://java.sun.com/j2se/1.4.2/docs/api/java/awt/doc-files/AWTThreadIssues.html Here is the more simple test case: http://www.sable.mcgill.ca/~cpicke/sablevm/AwtUtils2.java Also, if I run: sablevm-switch-debug --property=sablevm.verbose.instructions=true --property=sablevm.verbose.methods=true -s -g -j AwtUtils2 &> log & and then do: tail -n 50 log I get: T1: [verbose instructions: executing @0x4152c37c ALOAD] T1: [verbose instructions: executing @0x4152c384 ALOAD_0] T1: [verbose instructions: executing @0x4152c388 GETFIELD_REFERENCE] T1: [verbose instructions: executing @0x4152c394 ILOAD_3] T1: [verbose instructions: executing @0x4152c398 AALOAD] T1: [verbose instructions: executing @0x4152c39c PUTFIELD_REFERENCE] T1: [verbose instructions: executing @0x4152c3a8 ALOAD_0] T1: [verbose instructions: executing @0x4152c3ac GETFIELD_REFERENCE] T1: [verbose instructions: executing @0x4152c3b8 ILOAD_3] T1: [verbose instructions: executing @0x4152c3bc ALOAD] T1: [verbose instructions: executing @0x4152c3c4 AASTORE] T1: [verbose instructions: executing @0x4152c3c8 RETURN] T1: [verbose methods: exiting method java/util/HashMap.addEntry(Ljava/lang/Object;Ljava/lang/Object;IZ)V] T1: [ returning to java/util/HashMap.put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;] T1: [verbose instructions: executing @0x4152bf34 ACONST_NULL] T1: [verbose instructions: executing @0x4152bf38 ARETURN] T1: [verbose methods: exiting method java/util/HashMap.put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;] T1: [ returning to java/lang/ClassLoader.loadClass(Ljava/lang/String;Z)Ljava/lang/Class;] T1: [verbose instructions: executing @0x413de548 POP] T1: [verbose instructions: executing @0x413de54c ALOAD] T1: [verbose instructions: executing @0x413de554 ALOAD_3] T1: [verbose instructions: executing @0x413de558 MONITOREXIT] T1: [verbose instructions: executing @0x413de55c ARETURN] T1: [verbose methods: exiting method java/lang/ClassLoader.loadClass(Ljava/lang/String;Z)Ljava/lang/Class;] T1: [ returning to java/lang/ClassLoader.loadClass(Ljava/lang/String;)Ljava/lang/Class;] T1: [verbose instructions: executing @0x413de304 ARETURN] T1: [verbose methods: exiting method java/lang/ClassLoader.loadClass(Ljava/lang/String;)Ljava/lang/Class;] T1: [ returning to java/lang/VirtualMachine.createClass(Ljava/lang/ClassLoader;Ljava/lang/String;)Ljava/lang/Class;] T1: [verbose instructions: executing @0x415418c4 ARETURN] T1: [verbose methods: exiting method java/lang/VirtualMachine.createClass(Ljava/lang/ClassLoader;Ljava/lang/String;)Ljava/lang/Class;] T1: [ returning to MyThread.run()V] T1: [verbose instructions: executing @0x80511c0 INTERNAL_CALL_END] T1: [verbose instructions: executing @0x413feb74 ASTORE_1] T1: [verbose instructions: executing @0x413feb78 GOTO] T1: [verbose instructions: executing @0x413feb80 RETURN] T1: [verbose methods: exiting method MyThread.run()V] T1: [ returning to AwtUtils.main([Ljava/lang/String;)V] T1: [verbose instructions: executing @0x413fe570 REPLACE] T1: [verbose instructions: executing @0x413fe57c GOTO] T1: [verbose instructions: executing @0x413fe514 RETURN] T1: [verbose methods: exiting method AwtUtils.main([Ljava/lang/String;)V] T1: [ returning to java/lang/VirtualMachine.invokeMain(Ljava/lang/Class;[Ljava/lang/String;)V] T1: [verbose instructions: executing @0x80511c0 INTERNAL_CALL_END] [verbose methods: exiting method java/lang/VirtualMachine.invokeMain(Ljava/lang/Class;[Ljava/lang/String;)V] [ returning to java/lang/VirtualMachine.main([Ljava/lang/String;)V] T1: [verbose instructions: executing @0x413b2fc0 REPLACE] T1: [verbose instructions: executing @0x413b2fcc GOTO] T1: [verbose instructions: executing @0x413b2f1c RETURN] T1: [verbose methods: exiting method java/lang/VirtualMachine.main([Ljava/lang/String;)V] T1: [verbose instructions: executing @0x80511c0 INTERNAL_CALL_END] It now looks to me like the started AWT thread never dies. If I remove the call to dispose(), actually everything is fine (oddly this was not the case with the more complex example). Cheers, Chris |
From: Joseph P. <pa...@mc...> - 2004-06-18 15:24:40
|
I'll have to second that. I've ran through some code and the f.dispose does seem to finish and return, and it does seem the thread isn't being destroyed (otherwise the vm should exit). Is it possibly something in the Window.dispose code that's confusing the VM? I've only gone so far as to gurantee that each call is completing, but not actually tracing each call. I also found that removing this call in Window.dispose: getToolkit().getSystemEventQueue().postEvent(we); seems to allow the engine to exit after completion. I'll have to do further testing to verify that's really what's causing the problem, but it seems so at first glance. --Joe On Fri, 18 Jun 2004, Chris Pickett wrote: > Chris Pickett wrote: > > Joseph Paris wrote: > > > >>Yeah, i made that sounds confusing ;p I meant to say that i have no > >>problem using the AwtUtils.init... by itself, nor do i have a problem > >>burying an awt class way down in a series of class instantiations > >>(currently tried about 6 levels down). > >> > >>However, in the current code base (JXTA) if i remove the call to > >>AwtUtils.init... the next call (which instantiates a class that displays a > >>Frame) hangs with the same problem and at VMObject.wait. I'm not sure > >>if i'm hitting a thread limit or what, it seems kind of odd that the same > >>problem occurs regardless of whether or not i call AwtUtils.init or create > >>a new Frame. > >> > >>I'll try your suggestions below and post some results. > > > > > > Let's work from the AwtUtils.java that I modified to have a main() > > method. It runs with Sun's JDK but hangs with sablevm AFAICT. Try and > > simplify just that until it doesn't hang, and give us the minimal > > hanging example. For example, you can remove the "f.dispose();" line > > and it will still hang, but not the "Frame f = new Frame();" line. > > Hi again ... > > I narrowed down the test case a bit, and looked up some docs. I'm going > to bed now, but if someone feels inspired to look at it: > > http://java.sun.com/j2se/1.4.2/docs/api/java/awt/Window.html#dispose() > http://java.sun.com/j2se/1.4.2/docs/api/java/awt/doc-files/AWTThreadIssues.html > > Here is the more simple test case: > > http://www.sable.mcgill.ca/~cpicke/sablevm/AwtUtils2.java > > Also, if I run: > > sablevm-switch-debug --property=sablevm.verbose.instructions=true > --property=sablevm.verbose.methods=true -s -g -j AwtUtils2 &> log & > > and then do: > > tail -n 50 log > > I get: > > T1: [verbose instructions: executing @0x4152c37c ALOAD] > T1: [verbose instructions: executing @0x4152c384 ALOAD_0] > T1: [verbose instructions: executing @0x4152c388 GETFIELD_REFERENCE] > T1: [verbose instructions: executing @0x4152c394 ILOAD_3] > T1: [verbose instructions: executing @0x4152c398 AALOAD] > T1: [verbose instructions: executing @0x4152c39c PUTFIELD_REFERENCE] > T1: [verbose instructions: executing @0x4152c3a8 ALOAD_0] > T1: [verbose instructions: executing @0x4152c3ac GETFIELD_REFERENCE] > T1: [verbose instructions: executing @0x4152c3b8 ILOAD_3] > T1: [verbose instructions: executing @0x4152c3bc ALOAD] > T1: [verbose instructions: executing @0x4152c3c4 AASTORE] > T1: [verbose instructions: executing @0x4152c3c8 RETURN] > T1: [verbose methods: exiting method > java/util/HashMap.addEntry(Ljava/lang/Object;Ljava/lang/Object;IZ)V] > T1: [ returning to > java/util/HashMap.put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;] > T1: [verbose instructions: executing @0x4152bf34 ACONST_NULL] > T1: [verbose instructions: executing @0x4152bf38 ARETURN] > T1: [verbose methods: exiting method > java/util/HashMap.put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;] > T1: [ returning to > java/lang/ClassLoader.loadClass(Ljava/lang/String;Z)Ljava/lang/Class;] > T1: [verbose instructions: executing @0x413de548 POP] > T1: [verbose instructions: executing @0x413de54c ALOAD] > T1: [verbose instructions: executing @0x413de554 ALOAD_3] > T1: [verbose instructions: executing @0x413de558 MONITOREXIT] > T1: [verbose instructions: executing @0x413de55c ARETURN] > T1: [verbose methods: exiting method > java/lang/ClassLoader.loadClass(Ljava/lang/String;Z)Ljava/lang/Class;] > T1: [ returning to > java/lang/ClassLoader.loadClass(Ljava/lang/String;)Ljava/lang/Class;] > T1: [verbose instructions: executing @0x413de304 ARETURN] > T1: [verbose methods: exiting method > java/lang/ClassLoader.loadClass(Ljava/lang/String;)Ljava/lang/Class;] > T1: [ returning to > java/lang/VirtualMachine.createClass(Ljava/lang/ClassLoader;Ljava/lang/String;)Ljava/lang/Class;] > T1: [verbose instructions: executing @0x415418c4 ARETURN] > T1: [verbose methods: exiting method > java/lang/VirtualMachine.createClass(Ljava/lang/ClassLoader;Ljava/lang/String;)Ljava/lang/Class;] > T1: [ returning to MyThread.run()V] > T1: [verbose instructions: executing @0x80511c0 INTERNAL_CALL_END] > T1: [verbose instructions: executing @0x413feb74 ASTORE_1] > T1: [verbose instructions: executing @0x413feb78 GOTO] > T1: [verbose instructions: executing @0x413feb80 RETURN] > T1: [verbose methods: exiting method MyThread.run()V] > T1: [ returning to AwtUtils.main([Ljava/lang/String;)V] > T1: [verbose instructions: executing @0x413fe570 REPLACE] > T1: [verbose instructions: executing @0x413fe57c GOTO] > T1: [verbose instructions: executing @0x413fe514 RETURN] > T1: [verbose methods: exiting method AwtUtils.main([Ljava/lang/String;)V] > T1: [ returning to > java/lang/VirtualMachine.invokeMain(Ljava/lang/Class;[Ljava/lang/String;)V] > T1: [verbose instructions: executing @0x80511c0 INTERNAL_CALL_END] > [verbose methods: exiting method > java/lang/VirtualMachine.invokeMain(Ljava/lang/Class;[Ljava/lang/String;)V] > [ returning to > java/lang/VirtualMachine.main([Ljava/lang/String;)V] > T1: [verbose instructions: executing @0x413b2fc0 REPLACE] > T1: [verbose instructions: executing @0x413b2fcc GOTO] > T1: [verbose instructions: executing @0x413b2f1c RETURN] > T1: [verbose methods: exiting method > java/lang/VirtualMachine.main([Ljava/lang/String;)V] > T1: [verbose instructions: executing @0x80511c0 INTERNAL_CALL_END] > > It now looks to me like the started AWT thread never dies. If I remove > the call to dispose(), actually everything is fine (oddly this was not > the case with the more complex example). > > Cheers, > Chris > > |
From: Chris P. <chr...@ma...> - 2004-06-18 18:35:02
|
Hi Joe, (Etienne, can you read and comment?) So, if you look at gdb stacktraces for each process, you can see exactly how it's deadlocking: $ ps -A u ... cpicke 455 1.0 0.1 25456 3436 pts/0 S 13:31 0:00 sablevm-switch-debug AwtUtils2 cpicke 457 0.0 0.1 25456 3436 pts/0 S 13:31 0:00 sablevm-switch-debug AwtUtils2 cpicke 458 0.0 0.1 25456 3436 pts/0 S 13:31 0:00 sablevm-switch-debug AwtUtils2 ... It seems from instruction traces that actually 455 is the MyThread thread, 457 I'm unclear about, and 458 is the AwtUtils2.main() thread. What's confusing is that the AwtUtils2.main() thread has thread.id == 2, whereas the MyThread has thread.id == 1. I put a 'System.out.println("hello");' in MyThread to be sure -- you only see the calls to it in T1 (grep println AwtUtils2.log). http://www.sable.mcgill.ca/~cpicke/sablevm/AwtUtils2.java http://www.sable.mcgill.ca/~cpicke/sablevm/AwtUtils2.log (69M) If I understand correctly, the AwtUtils2.main() thread starts the MyThread, waits for it to die, and in the meantime the MyThread tries to exit the VM itself, because of a mishandled: getToolkit().getSystemEventQueue().postEvent(we); in java.awt.Window.dispose() like you said. $ gdb sablevm-switch-debug 455 ... (gdb) bt #0 0x4017e87e in sigsuspend () from /lib/libc.so.6 #1 0x40103879 in __pthread_wait_for_restart_signal () from /lib/libpthread.so.0 #2 0x40100102 in pthread_cond_wait () from /lib/libpthread.so.0 #3 0x400badac in DestroyJavaVM (_vm=0x804cad0) at invoke_interface.c:474 #4 0x0804a9a8 in main (argc=2, argv=0xbffff664) at sablevm.c:1469 ... which gets stuck here: /* wait for all non-deamon threads to die */ while (vm->threads.user != NULL) { _svmm_cond_wait (vm->threads.vm_destruction_cond, vm->global_mutex); } --> again, this is the MyThread $ gdb sablevm-switch-debug 457 ... (gdb) bt #0 0x4021dbb0 in poll () from /lib/libc.so.6 #1 0x40100d96 in __pthread_manager () from /lib/libpthread.so.0 #2 0x40224d6a in clone () from /lib/libc.so.6 $ gdb sablevm-switch-debug 458 ... (gdb) bt #0 0x4017e87e in sigsuspend () from /lib/libc.so.6 #1 0x40103879 in __pthread_wait_for_restart_signal () from /lib/libpthread.so.0 #2 0x40100102 in pthread_cond_wait () from /lib/libpthread.so.0 #3 0x400c7c0a in Java_java_lang_VMObject_wait (_env=0x806a7a8, class=0x806a320, o=0x806a310, ms=0, ns=0) at java_lang_VMObject.c:261 #4 0x40131827 in ffi_call_SYSV () at /tmp/ccBwuNHj.s:40 #5 0x401314a7 in ffi_call (cif=0x8, fn=0xfffffffc, rvalue=0xbf7ffc88, avalue=0xfffffffc) at ../../../gcc-3.3.2/libffi/src/x86/ffi.c:194 #6 0x40035df7 in _svmf_invoke_native_static (env=0x806a7a8) at native.c:850 #7 0x40071cd2 in _svmf_interpreter (_env=0x806a7a8) at instructions_switch.c:19728 #8 0x4002ac2c in _svmh_invoke_static_virtualmachine_runthread (env=0x806a7a8) at method_invoke.c:5777 #9 0x400203ef in _svmf_thread_start (_env=0x806a7a8) at thread.c:1521 #10 0x401010ba in pthread_start_thread () from /lib/libpthread.so.0 #11 0x40224d6a in clone () from /lib/libc.so.6 which gets stuck here: if (ms == 0 && ns == 0) { _svmm_cond_wait (fat_lock->notification_cond, fat_lock->mutex); } --> this is the AwtUtils2.main() thread (AFAICT) Anyway, I don't know what the solution is. I originally thought broadcasting to all sleeping threads when trying to exit the VM was the answer, but now I'm not sure. Cheers, Chris |
From: Chris P. <chr...@ma...> - 2004-06-18 21:07:52
|
Sorry for all the emails on this, but this just occurred to me: re-reading http://java.sun.com/j2se/1.4.2/docs/api/java/awt/doc-files/AWTThreadIssues.html it seems like it's not a SableVM but a Classpath AWT problem, in that Classpath AWT does not terminate its helper threads, whereas it should (if it were to support 1.4, that is). If you look, there are three conditions to be satisfied: 1) There are no displayable AWT or Swing components. 2) There are no native events in the native event queue. 3) There are no AWT events in java EventQueues. I think the fix is for java.awt.EventDispatchThread.run() to test all three conditions and terminate itself if all true. Cheers, Chris |
From: Joseph P. <pa...@mc...> - 2004-06-17 22:05:47
|
I should also mention that it hangs in the same place at: (VMObject.java:-1) java/lang/VMObject.wait n I was curious as to why it references '-1'. --Joe On Thu, 17 Jun 2004, Joseph Paris wrote: > I've done some testing with sablevm and calling methods for awt, and i > haven't had a problem. For example, instantiating an AWT or Swing class > from inside another class there were no problems. If i remove that call > in code, it then hangs on the instantiation of an AWT/Swing class one line > later. The hang happens every time (and i've tried about 40+ times to > make sure ;p). I'm really not sure why it would hang there, and i know > there is no problem using Sun's jvm. > > I'm not too familiar on how your vm works. Do you create a thread per > class that's loaded, etc? I wish i had a more simple test case to work > with. What are the relevant files i should be looking at? I will > continue to try and replicate this problem in a more simple case. > > --Joe > > On Thu, 17 Jun 2004, Chris Pickett wrote: > > > Hi Joe, > > > > It's obviously a deadlock somewhere, which means a concurrency / > > threading bug. It could either be in Classpath or in our locking code. > > AWT is not really something I know about. Greg recently implemented > > InterruptedException IIRC, and that could be it as well. > > > > Can you reproduce the problem without AWT? Is that really the absolute > > simplest test case you can give us? What happens if you declare the > > Thread body as a named class? Does it happen every single time? > > > > Cheers, > > Chris > > > > Joseph Paris wrote: > > > Were you able to make any progress on figuring out what the problem is? > > > If there is anything more you need from me, please don't hesitate to ask. > > > > > > --Joe > > > > > > On Mon, 14 Jun 2004, Joseph Paris wrote: > > > > > > > > >>no problem. Here it is: > > >> > > >>(VMObject.java:-1) java/lang/VMObject.wait n > > >>(Object.java:431) java/lang/Object.wait > > >>(GtkMainThread.java:63) gnu/java/awt/peer/gtk/GtkMainThread.<init> > > >>(GtkToolkit.java:108) gnu/java/awt/peer/gtk/GtkToolkit.<init> > > >>(Constructor.java:-1) java/lang/reflect/Constructor.constructNative n > > >>(Constructor.java:408) java/lang/reflect/Constructor.newInstance > > >>(Class.java:1496) java/lang/Class.newInstance > > >>(Toolkit.java:522) java/awt/Toolkit.getDefaultToolkit > > >>(Component.java:695) java/awt/Component.getToolkit > > >>(Container.java:374) java/awt/Container.addImpl > > >>(Container.java:268) java/awt/Container.add > > >>(ConfigDialog.java:329) > > >>net/jxta/impl/peergroup/ConfigDialog$PagesPanel.<init> > > >>(ConfigDialog.java:375) net/jxta/impl/peergroup/ConfigDialog.<init> > > >>(DefaultConfigurator.java:139) > > >>net/jxta/impl/peergroup/DefaultConfigurator.<init> > > >>(DefaultConfigurator.java:126) > > >>net/jxta/impl/peergroup/DefaultConfigurator.<init> > > >>(Constructor.java:-1) java/lang/reflect/Constructor.constructNative n > > >>(Constructor.java:408) java/lang/reflect/Constructor.newInstance > > >>(Class.java:1496) java/lang/Class.newInstance > > >>(Platform.java:202) > > >>net/jxta/impl/peergroup/Platform.generateConfigAdvertisement > > >>(Platform.java:161) net/jxta/impl/peergroup/Platform.initFirst > > >>(GenericPeerGroup.java:784) net/jxta/impl/peergroup/GenericPeerGroup.init > > >>(PeerGroupFactory.java:369) > > >>net/jxta/peergroup/PeerGroupFactory.newPlatform > > >>(PeerGroupFactory.java:420) > > >>net/jxta/peergroup/PeerGroupFactory.newNetPeerGroup > > >>(Server.java:116) Server.startJxta > > >>(Server.java:108) Server.main > > >>(VirtualMachine.java:-1) java/lang/VirtualMachine.invokeMain n > > >>(VirtualMachine.java:92) java/lang/VirtualMachine.main > > >> > > >> > > >>Thanks, > > >>Joe > > >> > > >> > > >>On Mon, 14 Jun 2004, Etienne Gagnon wrote: > > >> > > >> > > >>>Hi Joe, > > >>> > > >>>Could you also type Ctrl-\ [e.g. SIGQUIT], when it hangs? This would > > >>>dump the Java stack trace. > > >>> > > >>>Etienne > > >>> > > >>>Joseph Paris wrote: > > >>> > > >>>>Heya, > > >>>> > > >>>>I'm running into an issue were the sablevm seems to be hanging on what i > > >>>>think is a threading related issue. I've narrowed down where in code > > >>>>the hang occurs, but i'm not sure _why_ it occurs. I'm providing the > > >>>>class and instantiation along with a portion of strace output. if more > > >>>>strace output would help, please let me know. > > >>>> > > >>>>Any help would be greatly appreciated. > > >>>> > > >>>>System config: > > >>>>Suse 9.1 updated; x86 > > >>>> > > >>>>Thanks, > > >>>>Joe > > >>>> > > >>>>------AwtUtils.java from the JXTA distribution----- > > >>>>****Executed as AwtUtils.initAsDaemon()**** > > >>>> > > >>>> > > >>>>import java.awt.Frame; > > >>>> > > >>>>public class AwtUtils { > > >>>> > > >>>> public static void initAsDaemon() { > > >>>> (new Thread() { > > >>>> public void run() { > > >>>> try { > > >>>> Frame f = new Frame(); > > >>>> f.dispose(); > > >>>> } catch (Throwable t) { > > >>>> } > > >>>> } > > >>>> public void doit() { > > >>>> setDaemon(true); > > >>>> setName("awt daemon initializer"); > > >>>> start(); > > >>>> try { > > >>>> join(); > > >>>> } catch (InterruptedException ie) { > > >>>> } > > >>>> } > > >>>> }).doit(); > > >>>> } > > >>>>} > > >>>> > > >>>> > > >>>>-------------------Strace output--------------------- > > >>>> > > >>>>open("/usr/local/lib/libfontconfig.so.1", O_RDONLY) = -1 ENOENT (No such > > >>>>file or directory) > > >>>>open("tls/i686/sse2/libfontconfig.so.1", O_RDONLY) = -1 ENOENT (No such > > >>>>file ordirectory) > > >>>>open("tls/i686/libfontconfig.so.1", O_RDONLY) = -1 ENOENT (No such file or > > >>>>directory) > > >>>>open("tls/sse2/libfontconfig.so.1", O_RDONLY) = -1 ENOENT (No such file or > > >>>>directory) > > >>>>open("tls/libfontconfig.so.1", O_RDONLY) = -1 ENOENT (No such file or > > >>>>directory)open("i686/sse2/libfontconfig.so.1", O_RDONLY) = -1 ENOENT (No > > >>>>such file or directory) > > >>>>open("i686/libfontconfig.so.1", O_RDONLY) = -1 ENOENT (No such file or > > >>>>directory) > > >>>>open("sse2/libfontconfig.so.1", O_RDONLY) = -1 ENOENT (No such file or > > >>>>directory) > > >>>>open("libfontconfig.so.1", O_RDONLY) = -1 ENOENT (No such file or > > >>>>directory)open("/usr/lib/libfontconfig.so.1", O_RDONLY) = 13 > > >>>>read(13, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\300\223"..., > > >>>>512) = 512 > > >>>>fstat64(13, {st_mode=S_IFREG|0755, st_size=204755, ...}) = 0 > > >>>>old_mmap(NULL, 170408, PROT_READ|PROT_EXEC, MAP_PRIVATE, 13, 0) = > > >>>>0x41f97000 > > >>>>madvise(0x41f97000, 170408, MADV_SEQUENTIAL|0x1) = 0 > > >>>>old_mmap(0x41fbc000, 16384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, > > >>>>13, 0x25000) = 0x41fbc000 > > >>>>old_mmap(0x41fc0000, 2472, PROT_READ|PROT_WRITE, > > >>>>MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x41fc0000 > > >>>>close(13) = 0 > > >>>>open("/usr/local/lib/libfreetype.so.6", O_RDONLY) = -1 ENOENT (No such > > >>>>file or d irectory) > > >>>>open("tls/i686/sse2/libfreetype.so.6", O_RDONLY) = -1 ENOENT (No such file > > >>>>or directory) > > >>>>open("tls/i686/libfreetype.so.6", O_RDONLY) = -1 ENOENT (No such file or > > >>>>directory) > > >>>>open("tls/sse2/libfreetype.so.6", O_RDONLY) = -1 ENOENT (No such file or > > >>>>directory) > > >>>>open("tls/libfreetype.so.6", O_RDONLY) = -1 ENOENT (No such file or > > >>>>directory)open("i686/sse2/libfreetype.so.6", O_RDONLY) = -1 ENOENT (No > > >>>>such file or directory) > > >>>>open("i686/libfreetype.so.6", O_RDONLY) = -1 ENOENT (No such file or > > >>>>directory)open("sse2/libfreetype.so.6", O_RDONLY) = -1 ENOENT (No such > > >>>>file or directory)open("libfreetype.so.6", O_RDONLY) = -1 ENOENT (No > > >>>>such file or directory)open("/usr/lib/libfreetype.so.6", O_RDONLY) = 13 > > >>>>read(13, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\360\346"..., > > >>>>512) = 512 > > >>>>fstat64(13, {st_mode=S_IFREG|0755, st_size=473346, ...}) = 0 > > >>>>old_mmap(NULL, 429584, PROT_READ|PROT_EXEC, MAP_PRIVATE, 13, 0) = > > >>>>0x41fc1000 > > >>>>madvise(0x41fc1000, 429584, MADV_SEQUENTIAL|0x1) = 0 > > >>>>old_mmap(0x42023000, 28672, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, > > >>>>13, 0x62000) = 0x42023000 > > >>>>close(13) = 0 > > >>>>open("/usr/local/lib/libexpat.so.0", O_RDONLY) = -1 ENOENT (No such file > > >>>>or directory) > > >>>>open("tls/i686/sse2/libexpat.so.0", O_RDONLY) = -1 ENOENT (No such file or > > >>>>directory) > > >>>>open("tls/i686/libexpat.so.0", O_RDONLY) = -1 ENOENT (No such file or > > >>>>directory)open("tls/sse2/libexpat.so.0", O_RDONLY) = -1 ENOENT (No such > > >>>>file or directory)open("tls/libexpat.so.0", O_RDONLY) = -1 ENOENT (No > > >>>>such file or directory)open("i686/sse2/libexpat.so.0", O_RDONLY) = -1 > > >>>>ENOENT (No such file or directory) > > >>>>open("i686/libexpat.so.0", O_RDONLY) = -1 ENOENT (No such file or > > >>>>directory)open("sse2/libexpat.so.0", O_RDONLY) = -1 ENOENT (No such > > >>>>file or directory)open("libexpat.so.0", O_RDONLY) = -1 ENOENT (No > > >>>>such file or directory)open("/usr/lib/libexpat.so.0", O_RDONLY) = 13 > > >>>>read(13, "\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(13, {st_mode=S_IFREG|0755, st_size=160096, ...}) = 0 > > >>>>old_mmap(NULL, 124104, PROT_READ|PROT_EXEC, MAP_PRIVATE, 13, 0) = > > >>>>0x4202a000 > > >>>>madvise(0x4202a000, 124104, MADV_SEQUENTIAL|0x1) = 0 > > >>>>old_mmap(0x42046000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, > > >>>>13, 0x1c000) = 0x42046000 > > >>>>close(13) = 0 > > >>>>munmap(0x41a40000, 122337) = 0 > > >>>>rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 > > >>>>rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 > > >>>>rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 > > >>>>rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 > > >>>>rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 > > >>>>write(1, "[verbose class: loading \"java/be"..., 60[verbose class: loading > > >>>>"java/beans/PropertyChangeSupport"] > > >>>>) = 60 > > >>>>open("/home/paris/software/sablevm//share/sablevm/sablevm-classpath/java/beans/PropertyChangeSupport.class", > > >>>>O_RDONLY) = 13 > > >>>>fstat64(13, {st_mode=S_IFREG|0644, st_size=5035, ...}) = 0 > > >>>>mmap2(NULL, 5035, PROT_READ, MAP_PRIVATE, 13, 0) = 0x41a40000 > > >>>>munmap(0x41a40000, 5035) = 0 > > >>>>close(13) = 0 > > >>>>rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 > > >>>>rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 > > >>>>write(1, "[verbose class: loading \"gnu/jav"..., 63[verbose class: loading > > >>>>"gnu/java/awt/peer/gtk/GtkMainThread"] > > >>>>) = 63 > > >>>>open("/home/paris/software/sablevm//share/sablevm/sablevm-classpath/gnu/java/awt/peer/gtk/GtkMainThread.class", > > >>>>O_RDONLY) = 13 > > >>>>fstat64(13, {st_mode=S_IFREG|0644, st_size=1021, ...}) = 0 > > >>>>mmap2(NULL, 1021, PROT_READ, MAP_PRIVATE, 13, 0) = 0x41a40000 > > >>>>munmap(0x41a40000, 1021) = 0 > > >>>>close(13) = 0 > > >>>>write(1, "[verbose class: loading \"gnu/jav"..., 64[verbose class: loading > > >>>>"gnu/java/awt/peer/gtk/GtkGenericPeer"] > > >>>>) = 64 > > >>>>open("/home/paris/software/sablevm//share/sablevm/sablevm-classpath/gnu/java/awt/peer/gtk/GtkGenericPeer.class", > > >>>>O_RDONLY) = 13 > > >>>>fstat64(13, {st_mode=S_IFREG|0644, st_size=1045, ...}) = 0 > > >>>>mmap2(NULL, 1045, PROT_READ, MAP_PRIVATE, 13, 0) = 0x41a40000 > > >>>>munmap(0x41a40000, 1045) = 0 > > >>>>close(13) = 0 > > >>>>rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 > > >>>>rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 > > >>>>rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 > > >>>>rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 > > >>>>rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 > > >>>>rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 > > >>>>rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 > > >>>>rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 > > >>>>rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 > > >>>>rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 > > >>>>rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 > > >>>>brk(0) = 0x8093000 > > >>>>brk(0x80b9000) = 0x80b9000 > > >>>>mmap2(NULL, 2101248, PROT_READ|PROT_WRITE|PROT_EXEC, > > >>>>MAP_PRIVATE|MAP_ANONYMOUS,-1, 0) = 0x42049000 > > >>>>mprotect(0x42049000, 4096, PROT_NONE) = 0 > > >>>>clone(child_stack=0x42249b08, > > >>>>flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, > > >>>>parent_tidptr=0x42249bf8, {entry_number:6, base_addr:0x42249bb0, > > >>>>limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, > > >>>>limit_in_pages:1, seg_not_present:0, useable:1}, child_tidptr=0x42249bf8) > > >>>>= 6137 > > >>>>futex(0x8072e00, FUTEX_WAIT, 0, NULL <unfinished ...> > > >>>> > > >>>> > > >>>> > > >>>>------------------------------------------------------- > > >>>>This SF.Net email is sponsored by The 2004 JavaOne(SM) Conference > > >>>>Learn from the experts at JavaOne(SM), Sun's Worldwide Java Developer > > >>>>Conference, June 28 - July 1 at the Moscone Center in San Francisco, CA > > >>>>REGISTER AND SAVE! http://java.sun.com/javaone/sf Priority Code NWMGYKND > > >>>>_______________________________________________ > > >>>>Sablevm-developer mailing list > > >>>>Sab...@li... > > >>>>https://lists.sourceforge.net/lists/listinfo/sablevm-developer > > >>>> > > >>>> > > >>> > > >>>-- > > >>>Etienne M. Gagnon, Ph.D. http://www.info.uqam.ca/~egagnon/ > > >>>SableVM: http://www.sablevm.org/ > > >>>SableCC: http://www.sablecc.org/ > > >>> > > >>> > > >> > > > > > > > > > ------------------------------------------------------- > > > This SF.Net email is sponsored by The 2004 JavaOne(SM) Conference > > > Learn from the experts at JavaOne(SM), Sun's Worldwide Java Developer > > > Conference, June 28 - July 1 at the Moscone Center in San Francisco, CA > > > REGISTER AND SAVE! http://java.sun.com/javaone/sf Priority Code NWMGYKND > > > _______________________________________________ > > > Sablevm-developer mailing list > > > Sab...@li... > > > https://lists.sourceforge.net/lists/listinfo/sablevm-developer > > > > > > > > |