sablevm-developer Mailing List for SableVM
Brought to you by:
egagnon
You can subscribe to this list here.
2000 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(27) |
Aug
(22) |
Sep
(1) |
Oct
|
Nov
(1) |
Dec
(30) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2001 |
Jan
(2) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(2) |
Sep
(32) |
Oct
|
Nov
|
Dec
|
2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(69) |
Sep
(10) |
Oct
(31) |
Nov
(15) |
Dec
(58) |
2003 |
Jan
(33) |
Feb
(81) |
Mar
(85) |
Apr
(24) |
May
(15) |
Jun
(14) |
Jul
(6) |
Aug
(9) |
Sep
(101) |
Oct
(59) |
Nov
(142) |
Dec
(34) |
2004 |
Jan
(107) |
Feb
(164) |
Mar
(181) |
Apr
(96) |
May
(81) |
Jun
(71) |
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Fancong Z. <fz...@pa...> - 2004-07-02 01:09:16
|
On Wed, 30 Jun 2004, David B=E9langer wrote: > On Tue, Jun 29, 2004 at 10:27:20PM -0400, Fancong Zeng wrote: > > I am wondering if Sable VM can run on top of Red Hat? If yes, any > > additional > > installation notes? I cannot find a Debian Linux machine around. > >=20 >=20 > Hi, >=20 > Yes, it should run on Redhat. You may need to compile it from source a= s > I don't think there is currently a Redhat package pre-built. Someone > did recently a Mandrake package but I have no clue how similar Mandrake > and Redhat are and if the Mandrake package could be installed on Redhat. > If you looked in the developer mailing archives, you will find the emai= l > about it the Mandrake package. I did not find discussion on Mandrake --- maybe I was on a different page= ,=20 but I will try to install Sable VM. It would be very useful if you put notes on where one=20 can get the libraries (for Red Hat and other platforms) in the=20 INSTALL.txt. Spefically, the libraries of interests include: - libgtk2.0-dev =20 - libart-2.0-dev=20 - libffi2-dev - libtool - libltdl3-dev - libpopt-dev I don;t think the Red Hat box I have access to has all these libraries=20 installed. Fancong |
From: David <db...@cs...> - 2004-06-30 14:38:27
|
On Tue, Jun 29, 2004 at 10:27:20PM -0400, Fancong Zeng wrote: > I am wondering if Sable VM can run on top of Red Hat? If yes, any > additional > installation notes? I cannot find a Debian Linux machine around. >=20 Hi, Yes, it should run on Redhat. You may need to compile it from source as I don't think there is currently a Redhat package pre-built. Someone did recently a Mandrake package but I have no clue how similar Mandrake and Redhat are and if the Mandrake package could be installed on Redhat. If you looked in the developer mailing archives, you will find the email about it the Mandrake package. David --- David B=E9langer Graduate Student School of Computer Science McGill University Office: MC226 Web page: http://www.cs.mcgill.ca/~dbelan2/ Public key: http://www.cs.mcgill.ca/~dbelan2/public_key.txt |
From: Fancong Z. <fz...@pa...> - 2004-06-30 02:27:23
|
I am wondering if Sable VM can run on top of Red Hat? If yes, any additional installation notes? I cannot find a Debian Linux machine around. |
From: Mark W. <ma...@kl...> - 2004-06-24 12:18:05
|
Hi, On Mon, 2004-06-14 at 10:37, Grzegorz B. Prokopski wrote: > One of the regressions I saw, was that the wheels in "Swing toy drawing > board" (see our screenshot sections to know what I am talking about) > were working, but NOT moving. The "Swing progress bar" was broken too > :-( Do you have the sources for those examples online somewhere? We should create some mauve module containing free example/test programs for more swing things. I am about to merge in the latest gcj gui-branch drop and it would be nice to have something more than Graydon his testswing example to test against. Cheers, Mark |
From: David <db...@cs...> - 2004-06-22 04:22:21
|
Etienne, I undid part of your change to Class.getClassLoader(). The isPrimitive() case is required as Class for primitive type do not have _svmt_type_info and cause segmentation fault when the pointer is unwrapped. A simple test case that was causing it: public class Test { public static void main(String[] args) { System.err.println(int.class.getClassLoader()); } } David --- David B=E9langer Graduate Student School of Computer Science McGill University Office: MC226 Web page: http://www.cs.mcgill.ca/~dbelan2/ Public key: http://www.cs.mcgill.ca/~dbelan2/public_key.txt |
From: Vincent L. <vi...@vi...> - 2004-06-21 16:23:19
|
Package: sablevm Version: 1.1.5-1 Severity: normal Concerning the following Java source: ------------------------------------------------------------------ // $Id: test.java 3734 2004-06-21 15:36:52Z lefevre $ public class test { public static void main(String[] args) throws Exception { test t = new test(); t.doTest(); } volatile double x, y, z, d; public void doTest() { x = 9007199254740994.0; /* 2^53 + 2 */ y = 1.0 - 1/65536.0; z = x + y; d = z - x; System.out.println("z = " + z); System.out.println("d = " + d); } } ------------------------------------------------------------------ I've compiled it with "gcj -C test.java" (GCC 3.3.4). Both IBM's and Sun's JVM give the correct result: greux:~/wd/src/fp> /global/greux/lefevre/IBMJava2-131/jre/bin/java test z = 9.007199254740994E15 d = 0.0 greux:~/wd/src/fp> /usr/local/j2re1.4.1/bin/java test z = 9.007199254740994E15 d = 0.0 but not SableVM: greux:~/wd/src/fp> /usr/bin/java-sablevm test z = 9.007199254740996E15 d = 2.0 SableVM should switch the FPU of the x86 processor (Pentium III in my case) to rounding in double precision to avoid the effect of the "double rounding" (you may find some information about this effect here: <http://www.srware.com/linux_numerics.txt>). -- System Information: Debian Release: testing/unstable APT prefers unstable APT policy: (500, 'unstable'), (500, 'testing') Architecture: i386 (i686) Kernel: Linux 2.6.6 Locale: LANG=POSIX, LC_CTYPE=en_US.ISO8859-1 Versions of packages sablevm depends on: ii java-common 0.22 Base of all Java packages ii libc6 2.3.2.ds1-13 GNU C Library: Shared libraries an ii libpopt0 1.7-4 lib for parsing cmdline parameters ii libsablevm1 1.1.5-1 Free implementation of JVM second ii unzip 5.51-2 De-archiver for .zip files -- no debconf information |
From: <ow...@bu...> - 2004-06-20 05:09:26
|
Your message dated Sun, 20 Jun 2004 00:34:54 -0400 with message-id <200...@ga...> and subject line sablevm-classlib 1.1.5 packages now in unstable has caused the attached Bug report to be marked as done. This means that you claim that the problem has been dealt with. If this is not the case it is now your responsibility to reopen the Bug report if necessary, and/or fix the problem forthwith. (NB: If you are a system administrator and have no idea what I am talking about this indicates a serious mail system misconfiguration somewhere. Please contact me immediately.) Debian bug tracking system administrator (administrator, Debian Bugs database) -------------------------------------- Received: (at submit) by bugs.debian.org; 10 Jun 2004 16:00:09 +0000 >From bre...@in... Thu Jun 10 09:00:09 2004 Return-path: <bre...@in...> Received: from mx5.informatik.uni-tuebingen.de [134.2.12.32] by spohr.debian.org with esmtp (Exim 3.35 1 (Debian)) id 1BYRyL-0002zi-00; Thu, 10 Jun 2004 09:00:09 -0700 Received: from localhost (loopback [127.0.0.1]) by mx5.informatik.uni-tuebingen.de (Postfix) with ESMTP id 2F17A10D; Thu, 10 Jun 2004 17:59:38 +0200 (MST) Received: from mx3.informatik.uni-tuebingen.de ([134.2.12.26]) by localhost (mx5 [134.2.12.32]) (amavisd-new, port 10024) with ESMTP id 21346-03; Thu, 10 Jun 2004 17:59:36 +0200 (DFT) Received: from dual (semeai.Informatik.Uni-Tuebingen.De [134.2.15.66]) by mx3.informatik.uni-tuebingen.de (Postfix) with ESMTP id 02E9B149; Thu, 10 Jun 2004 17:59:34 +0200 (DFT) Received: from mrvn by dual with local (Exim 4.34) id 1BYRxB-0007I0-0K; Thu, 10 Jun 2004 15:58:57 +0000 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: Goswin von Brederlow <bre...@in...> To: Debian Bug Tracking System <su...@bu...> Subject: libsablevm1: Versiond Depends unfullfillable X-Mailer: reportbug 2.61 Date: Thu, 10 Jun 2004 15:58:51 +0000 Message-Id: <E1BYRxB-0007I0-0K@dual> Sender: Goswin von Brederlow <bre...@in...> X-Virus-Scanned: by amavisd-new (McAfee AntiVirus) at informatik.uni-tuebingen.de Delivered-To: su...@bu... X-Spam-Checker-Version: SpamAssassin 2.60-bugs.debian.org_2004_03_25 (1.212-2003-09-23-exp) on spohr.debian.org X-Spam-Status: No, hits=-8.0 required=4.0 tests=BAYES_00,HAS_PACKAGE autolearn=no version=2.60-bugs.debian.org_2004_03_25 X-Spam-Level: Package: libsablevm1 Severity: grave Justification: renders package unusable Hi, Package: libsablevm1 Depends: libc6 (>= 2.3.2.ds1-4), libffi2 (>= 1:3.3.3-7), libltdl3 (>= 1.5.2-2), libsablevm-classlib1-java (>> 1.1.5), libsablevm-native1 (>> 1.1.5) Package: libsablevm-native1 Version: 1.1.3-1 you seem to have uploaded a sablevm compiled against a newer sablevm-classlib than is available in sid. MfG Goswin -- System Information: Debian Release: testing/unstable Architecture: amd64 (x86_64) Kernel: Linux 2.6.5-amd64 Locale: LANG=C, LC_CTYPE=C --------------------------------------- Received: (at 253650-done) by bugs.debian.org; 20 Jun 2004 04:46:48 +0000 >From gr...@ga... Sat Jun 19 21:46:47 2004 Return-path: <gr...@ga...> Received: from anis.telecom.uqam.ca [132.208.250.6] by spohr.debian.org with esmtp (Exim 3.35 1 (Debian)) id 1BbuEB-0008Pn-00; Sat, 19 Jun 2004 21:46:47 -0700 Received: from anis4.telecom.uqam.ca (anis4.telecom.uqam.ca [132.208.250.236]) by sortant.uqam.ca (8.12.10/8.12.1) with SMTP id i5K4e9n5022732 for <253...@bu...>; Sun, 20 Jun 2004 00:40:09 -0400 (EDT) Received: from antivirus.uqam.ca ([132.208.250.6]) by anis4.telecom.uqam.ca (SAVSMTP 3.1.1.32) with SMTP id M2004062000415326189 for <253...@bu...>; Sun, 20 Jun 2004 00:41:53 -0400 Received: from gadek.homelinux.org (28.29.internet.uqam.ca [132.208.29.28]) by intrant.uqam.ca (8.12.10/8.12.2/uqam-filtres) with ESMTP id i5K4ZAb4012882 for <253...@bu...>; Sun, 20 Jun 2004 00:35:11 -0400 (EDT) X-Spam-Filter: Filtre-Uqam re: ab...@uq... Received: from greg by gadek.homelinux.org with local (Exim 4.34) id 1Bbu2g-000536-Vl for 253...@bu...; Sun, 20 Jun 2004 00:34:55 -0400 Date: Sun, 20 Jun 2004 00:34:54 -0400 From: "Grzegorz B. Prokopski" <ga...@de...> To: 253...@bu... Subject: sablevm-classlib 1.1.5 packages now in unstable Message-ID: <200...@ga...> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.6+20040523i Sender: "Grzegorz B. Prokopski" <gr...@ga...> Delivered-To: 253...@bu... X-Spam-Checker-Version: SpamAssassin 2.60-bugs.debian.org_2004_03_25 (1.212-2003-09-23-exp) on spohr.debian.org X-Spam-Status: No, hits=-3.0 required=4.0 tests=BAYES_00 autolearn=no version=2.60-bugs.debian.org_2004_03_25 X-Spam-Level: The new sablevm-classlib 1.1.5 packages are now in unstable so this bug can be closed. GBP -- Grzegorz B. Prokopski <ga...@de...> Debian GNU/Linux http://www.debian.org SableVM - LGPLed JVM http://www.sablevm.org Why SableVM ?!? http://devel.sablevm.org/wiki/Features |
From: <ow...@bu...> - 2004-06-19 15:40:21
|
Your message dated Sat, 19 Jun 2004 11:18:46 -0400 with message-id <200...@ga...> and subject line sablevm-classlib 1.1.5 packages now in unstable has caused the attached Bug report to be marked as done. This means that you claim that the problem has been dealt with. If this is not the case it is now your responsibility to reopen the Bug report if necessary, and/or fix the problem forthwith. (NB: If you are a system administrator and have no idea what I am talking about this indicates a serious mail system misconfiguration somewhere. Please contact me immediately.) Debian bug tracking system administrator (administrator, Debian Bugs database) -------------------------------------- Received: (at submit) by bugs.debian.org; 9 Jun 2004 17:56:07 +0000 >From Q...@pi... Wed Jun 09 10:56:07 2004 Return-path: <Q...@pi...> Received: from astra.telenet-ops.be [195.130.132.58] by spohr.debian.org with esmtp (Exim 3.35 1 (Debian)) id 1BY7J1-0003rg-00; Wed, 09 Jun 2004 10:56:07 -0700 Received: from localhost (localhost.localdomain [127.0.0.1]) by astra.telenet-ops.be (Postfix) with SMTP id 5207C388155 for <su...@bu...>; Wed, 9 Jun 2004 19:56:06 +0200 (MEST) Received: from kabel.telenet.be (D5E08CEF.kabel.telenet.be [213.224.140.239]) by astra.telenet-ops.be (Postfix) with ESMTP id 4548B388122 for <su...@bu...>; Wed, 9 Jun 2004 19:56:06 +0200 (MEST) Received: by kabel.telenet.be (Postfix, from userid 501) id E916C158AD5; Wed, 09 Jun 2004 19:56:05 +0200 (CEST) Date: Wed, 9 Jun 2004 19:56:05 +0200 From: Kurt Roeckx <Q...@pi...> To: su...@bu... Subject: samblevm: Missing dependencies. Message-ID: <200...@pi...> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.4.2.1i Sender: Q...@pi... Delivered-To: su...@bu... X-Spam-Checker-Version: SpamAssassin 2.60 (1.212-2003-09-23-exp) on spohr.debian.org X-Spam-Status: No, hits=0.0 required=5.0 tests=none autolearn=no version=2.60 X-Spam-Level: Package: sablevm Version: 1.1.5-1 Severity: serious It's depending on:"libsablevm1, libsablevm1 (= 1.1.5-1)". libsamblevm1 in turn depends on: "libsablevm-classlib1-java (>> 1.1.5), libsablevm-native1 (>> 1.1.5)". Those versions of libsablevm-classlib1-java and libsablevm-native1 still aren't available. Kurt --------------------------------------- Received: (at 253481-done) by bugs.debian.org; 19 Jun 2004 15:23:34 +0000 >From gr...@ga... Sat Jun 19 08:23:34 2004 Return-path: <gr...@ga...> Received: from anis.telecom.uqam.ca [132.208.250.6] by spohr.debian.org with esmtp (Exim 3.35 1 (Debian)) id 1Bbhgs-0008SD-00; Sat, 19 Jun 2004 08:23:34 -0700 Received: from anis4.telecom.uqam.ca (anis4.telecom.uqam.ca [132.208.250.236]) by sortant.uqam.ca (8.12.10/8.12.1) with SMTP id i5JFKioD023719 for <253...@bu...>; Sat, 19 Jun 2004 11:21:54 -0400 (EDT) Received: from antivirus.uqam.ca ([132.208.250.6]) by anis4.telecom.uqam.ca (SAVSMTP 3.1.1.32) with SMTP id M2004061911225001159 for <253...@bu...>; Sat, 19 Jun 2004 11:22:50 -0400 Received: from gadek.homelinux.org (28.29.internet.uqam.ca [132.208.29.28]) by intrant.uqam.ca (8.12.10/8.12.2/uqam-filtres) with ESMTP id i5JFJ3b4017740 for <253...@bu...>; Sat, 19 Jun 2004 11:19:03 -0400 (EDT) X-Spam-Filter: Filtre-Uqam re: ab...@uq... Received: from greg by gadek.homelinux.org with local (Exim 4.34) id 1BbhcF-0003v6-3X for 253...@bu...; Sat, 19 Jun 2004 11:18:47 -0400 Date: Sat, 19 Jun 2004 11:18:46 -0400 From: "Grzegorz B. Prokopski" <ga...@de...> To: 253...@bu... Subject: sablevm-classlib 1.1.5 packages now in unstable Message-ID: <200...@ga...> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.6+20040523i Sender: "Grzegorz B. Prokopski" <gr...@ga...> Delivered-To: 253...@bu... X-Spam-Checker-Version: SpamAssassin 2.60-bugs.debian.org_2004_03_25 (1.212-2003-09-23-exp) on spohr.debian.org X-Spam-Status: No, hits=-3.0 required=4.0 tests=BAYES_00 autolearn=no version=2.60-bugs.debian.org_2004_03_25 X-Spam-Level: The new sablevm-classlib 1.1.5 packages are now in unstable so this bug can be closed. GBP -- Grzegorz B. Prokopski <ga...@de...> Debian GNU/Linux http://www.debian.org SableVM - LGPLed JVM http://www.sablevm.org Why SableVM ?!? http://devel.sablevm.org/wiki/Features |
From: Etienne G. <gag...@uq...> - 2004-06-19 03:00:26
|
Hi all, I've updated the sablevm-classpath vendor branch with the latest upstream code, and merged changes into the staging branch. Please let report of any regression/improvement you notice. My preliminary tests showed no regressions. Etienne -- 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-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: 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: 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: Fabien R. <re...@ne...> - 2004-06-18 08:36:14
|
Grzegorz B. Prokopski wrote: >W liście z czw, 17-06-2004, godz. 06:16, Fabien Renaud pisze: > > >>Hello, >>I have 2 or 3, I don´t know problems : >> >>I´m with 1.1.3 on ARM >> >> > >Since over a month I am looking for an account on Debian Unstable ARM >machine. Unfortunatelly Debian's ARM machine, which is normally >available from developers is down since quite long time and I was >not able to find any information when it's expected to be back. > >Switching to 1.1.5 or staging would surely help. But I also know >that there *are* some ARM-specific problems. I am eager to fix them, >but I can't because I lack access to software/hardware I need for that. > >So, maybe you would be able to give me an account on one of your ARM >machines (can be chroot or UML) with remote access? > >HTH > > Grzegorz B. Prokopski > > Yep there are some problems with lastest version. I´ll try again with staging. Sorry, but I am not able to give you an access (I´m in a firm and all it´s not open source) Fabien |
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: Etienne G. <gag...@uq...> - 2004-06-18 05:48:20
|
Hi Roman, Thanks a lot for the example. It allowed me to actually find the source of the problem and fix it! :-) I have checked-in the fix in current sablevm & sablevm-classpath staging (revision 2759). I hope this helps. Etienne Roman Kennke wrote: > Here we go. Attached (i hope ;-> ) is a very simple example, which > throws an exception when called this way: > >>$HOME/local/bin/sablevm TestStrangeClasspath > > when called this way: > >>$HOME/local/bin/sablevm -c > > $HOME/local/share/sablevm/sablevm-classpath:. TestStrangeClasspath > > everything works fine. Isn't this weird? I used SableVM and > SableVM-Classpath from bugfree branch. -- Etienne M. Gagnon, Ph.D. http://www.info.uqam.ca/~egagnon/ SableVM: http://www.sablevm.org/ SableCC: http://www.sablecc.org/ |
From: Grzegorz B. P. <ga...@de...> - 2004-06-18 05:39:41
|
W li=B6cie z czw, 17-06-2004, godz. 06:16, Fabien Renaud pisze:=20 > Hello, > I have 2 or 3, I don=B4t know problems : > =20 > I=B4m with 1.1.3 on ARM Since over a month I am looking for an account on Debian Unstable ARM machine. Unfortunatelly Debian's ARM machine, which is normally available from developers is down since quite long time and I was not able to find any information when it's expected to be back. Switching to 1.1.5 or staging would surely help. But I also know that there *are* some ARM-specific problems. I am eager to fix them, but I can't because I lack access to software/hardware I need for that. So, maybe you would be able to give me an account on one of your ARM machines (can be chroot or UML) with remote access? HTH Grzegorz B. Prokopski --=20 Grzegorz B. Prokopski <ga...@de...> Debian GNU/Linux http://www.debian.org SableVM - LGPL'ed Java VM http://www.sablevm.org Why SableVM ?!? http://devel.sablevm.org/wiki/Features |
From: Grzegorz P. (D. D. <ga...@de...> - 2004-06-18 03:24:25
|
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Format: 1.7 Date: Wed, 2 Jun 2004 21:09:59 -0400 Source: sablevm-classlib Binary: libsablevm-native1 libsablevm-classlib1-java Architecture: source all sparc Version: 1.1.5-1 Distribution: unstable Urgency: high Maintainer: Grzegorz Prokopski (Debian Developer) <ga...@de...> Changed-By: Grzegorz Prokopski (Debian Developer) <ga...@de...> Description: libsablevm-classlib1-java - GNU Classpath modified to work with SableVM JVM libsablevm-native1 - GNU Classpath modified to work with SableVM JVM (native part) Changes: sablevm-classlib (1.1.5-1) unstable; urgency=high . * New upstream release * Urgency high, because our testing package is outdated and getting this SableVM 1.1.5 package into Sarge should allow avdyk to fix a few java packages stuck in unstable. Mainly Ant 1.6 support is important. Files: 26fa568cddeda2638c766d4989a2cb50 740 libs optional sablevm-classlib_1.1.5-1.dsc 6bab25aa50da3c2b4bea4179d48cd1c5 3514687 libs optional sablevm-classlib_1.1.5.orig.tar.gz 68c21a6fc6a5e8d44a0d288cafdbd558 4503 libs optional sablevm-classlib_1.1.5-1.diff.gz 91679a02a8e9238af47d3a6cb7224bd0 1975602 libs optional libsablevm-classlib1-java_1.1.5-1_all.deb 524aaeced461a9fb2377ca073335c341 393410 libs optional libsablevm-native1_1.1.5-1_sparc.deb -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQFAvuUxcxjwiKS4/ekRAvZwAKDCaB3lEl/p0WN6u/NuzlTha0wwuwCdFf7U IAi5cQzmV+7QYoKulRZ9hB8= =Q0Qd -----END PGP SIGNATURE----- Accepted: libsablevm-classlib1-java_1.1.5-1_all.deb to pool/main/s/sablevm-classlib/libsablevm-classlib1-java_1.1.5-1_all.deb libsablevm-native1_1.1.5-1_sparc.deb to pool/main/s/sablevm-classlib/libsablevm-native1_1.1.5-1_sparc.deb sablevm-classlib_1.1.5-1.diff.gz to pool/main/s/sablevm-classlib/sablevm-classlib_1.1.5-1.diff.gz sablevm-classlib_1.1.5-1.dsc to pool/main/s/sablevm-classlib/sablevm-classlib_1.1.5-1.dsc sablevm-classlib_1.1.5.orig.tar.gz to pool/main/s/sablevm-classlib/sablevm-classlib_1.1.5.orig.tar.gz |
From: Roman K. <ro...@on...> - 2004-06-17 23:26:50
|
Hi, > >>>>I found another issue, this time related to a database connection with > >>>>MySQL. During sending an update, the hole connection seems to hang > >>>>infinitely. > >>> > >>> > >>>Update: I've done a lot of tests, during which I got it running on > >>>Linux. I used a new MySQL driver for this. Unfortunately my testprog > >>>does still not run under FreeBSD. I will attach my testprog. > >> > I have no idea either, but it's apparently another threading bug. If > you have linuxthreads available for FreeBSD and it's not a pain to use > them, that would be worth trying out. Grzegorz Prokopski has helped me to narrow the bug. It seems to be an issue in Classpaths network handling. I'll send a new test-case: a simple server and a simple client. When trying to send big arrays >22k, the network layer hangs. At least in FreeBSD. Running sablevm through strace gives the following: (last few lines only) write(2, "sending 220000 bytes...\n", 24) = 24 break(0x9408000) = 0 sendto(6, "\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1"..., 220000, 0, NULL, 0) = 220000 break(0x93d2000) = 0 write(2, "receiving status bytes...\n", 26) = 26 recvfrom(6, 0x91b2070, 1, 0, 0, 0) = -1 EAGAIN (Resource temporarily unavailable) poll([{fd=6, events=POLLRDNORM}], 1, 0) = 0 poll( Grzegorz Prokopski assumed, that Classpath does not handle EAGAIN correcly, and doesn't try to recvfrom again, as it should. I hope this is helpful. /Roman |
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-17 22:54:06
|
Roman Kennke wrote: > Hi, > > >>>>I found another issue, this time related to a database connection with >>>>MySQL. During sending an update, the hole connection seems to hang >>>>infinitely. >>> >>> >>>Update: I've done a lot of tests, during which I got it running on >>>Linux. I used a new MySQL driver for this. Unfortunately my testprog >>>does still not run under FreeBSD. I will attach my testprog. >> >>Hi Roman, >> >>I think you forgot to attach the test case. > > > Oh, sorry. As always, I forgot the attachment ;-) > > In order to run the test, you need a MySQL database set up this way: > > CREATE DATABASE test; > GRANT ALL PRIVILEGES ON test.* TO test IDENTIFIED BY 'test'; > GRANT ALL PRIVILEGES ON test.* TO test@localhost IDENTIFIED BY 'test'; > USE test; > CREATE TABLE ( > test LONGBLOB > ); > > and of course you need the MySQL JDBC driver (I used version 3.0.14). > > I hope, someone is willing and able to run this. Eventually someone will get to it. I don't know if we have a FreeBSD machine. If you were able to provide shell access to somebody it might be faster. Anyway, can you try ./configure --enable-debugging-features --with-threading=switch ? I have no idea either, but it's apparently another threading bug. If you have linuxthreads available for FreeBSD and it's not a pain to use them, that would be worth trying out. 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 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: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 > > > > > > > > |
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: Roman K. <ro...@on...> - 2004-06-17 19:12:24
|
Hi, > >>I found another issue, this time related to a database connection with > >>MySQL. During sending an update, the hole connection seems to hang > >>infinitely. > > > > > > Update: I've done a lot of tests, during which I got it running on > > Linux. I used a new MySQL driver for this. Unfortunately my testprog > > does still not run under FreeBSD. I will attach my testprog. > > Hi Roman, > > I think you forgot to attach the test case. Oh, sorry. As always, I forgot the attachment ;-) In order to run the test, you need a MySQL database set up this way: CREATE DATABASE test; GRANT ALL PRIVILEGES ON test.* TO test IDENTIFIED BY 'test'; GRANT ALL PRIVILEGES ON test.* TO test@localhost IDENTIFIED BY 'test'; USE test; CREATE TABLE ( test LONGBLOB ); and of course you need the MySQL JDBC driver (I used version 3.0.14). I hope, someone is willing and able to run this. Cheers, Roman |