public inbox for java-prs@sourceware.org
help / color / mirror / Atom feed
* [Bug java/21703] New: hang when rapidly calling String.intern()
@ 2005-05-21 19:55 debian-gcc at lists dot debian dot org
2005-05-21 20:09 ` [Bug libgcj/21703] " pinskia at gcc dot gnu dot org
` (8 more replies)
0 siblings, 9 replies; 10+ messages in thread
From: debian-gcc at lists dot debian dot org @ 2005-05-21 19:55 UTC (permalink / raw)
To: java-prs
[ forwarded from http://bugs.debian.org/275547 ]
falk@juist:/tmp% cat Test.java
class Test {
public static void main(String[] argv) {
for (char i = '\u0001'; i <= '\uffff'; i++) {
char[] ca = { i };
System.out.println("Interning "+((int)i)+"th String");
(new String(ca)).intern();
}
}
}
falk@juist:/tmp% gcj-3.4 -o Test --main=Test Test.java && ./Test
[...]
Interning 16380th String
Interning 16381th String
Interning 16382th String
Interning 16383th String
Interning 16384th String
[hangs infintely]
See also some analysis at the URL above. Also present in 3.3.
--
Summary: hang when rapidly calling String.intern()
Product: gcc
Version: 3.4.4
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: java
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: debian-gcc at lists dot debian dot org
CC: gcc-bugs at gcc dot gnu dot org,java-prs at gcc dot gnu
dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21703
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug libgcj/21703] hang when rapidly calling String.intern()
2005-05-21 19:55 [Bug java/21703] New: hang when rapidly calling String.intern() debian-gcc at lists dot debian dot org
@ 2005-05-21 20:09 ` pinskia at gcc dot gnu dot org
2005-05-21 20:14 ` pinskia at gcc dot gnu dot org
` (7 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-05-21 20:09 UTC (permalink / raw)
To: java-prs
--
What |Removed |Added
----------------------------------------------------------------------------
Component|java |libgcj
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21703
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug libgcj/21703] hang when rapidly calling String.intern()
2005-05-21 19:55 [Bug java/21703] New: hang when rapidly calling String.intern() debian-gcc at lists dot debian dot org
2005-05-21 20:09 ` [Bug libgcj/21703] " pinskia at gcc dot gnu dot org
@ 2005-05-21 20:14 ` pinskia at gcc dot gnu dot org
2005-05-21 23:48 ` tromey at gcc dot gnu dot org
` (6 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-05-21 20:14 UTC (permalink / raw)
To: java-prs
------- Additional Comments From pinskia at gcc dot gnu dot org 2005-05-21 20:14 -------
Confirmed, looks like the intern hash table becomes full.
--
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Ever Confirmed| |1
Last reconfirmed|0000-00-00 00:00:00 |2005-05-21 20:14:33
date| |
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21703
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug libgcj/21703] hang when rapidly calling String.intern()
2005-05-21 19:55 [Bug java/21703] New: hang when rapidly calling String.intern() debian-gcc at lists dot debian dot org
2005-05-21 20:09 ` [Bug libgcj/21703] " pinskia at gcc dot gnu dot org
2005-05-21 20:14 ` pinskia at gcc dot gnu dot org
@ 2005-05-21 23:48 ` tromey at gcc dot gnu dot org
2005-05-21 23:56 ` tromey at gcc dot gnu dot org
` (5 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: tromey at gcc dot gnu dot org @ 2005-05-21 23:48 UTC (permalink / raw)
To: java-prs
------- Additional Comments From tromey at gcc dot gnu dot org 2005-05-21 23:48 -------
Testing a patch.
--
What |Removed |Added
----------------------------------------------------------------------------
AssignedTo|unassigned at gcc dot gnu |tromey at gcc dot gnu dot
|dot org |org
Status|NEW |ASSIGNED
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21703
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug libgcj/21703] hang when rapidly calling String.intern()
2005-05-21 19:55 [Bug java/21703] New: hang when rapidly calling String.intern() debian-gcc at lists dot debian dot org
` (2 preceding siblings ...)
2005-05-21 23:48 ` tromey at gcc dot gnu dot org
@ 2005-05-21 23:56 ` tromey at gcc dot gnu dot org
2005-05-22 0:38 ` tromey at gcc dot gnu dot org
` (4 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: tromey at gcc dot gnu dot org @ 2005-05-21 23:56 UTC (permalink / raw)
To: java-prs
------- Additional Comments From tromey at gcc dot gnu dot org 2005-05-21 23:56 -------
In the upstream PR, a real deadlock is mentioned.
The backtrace shows the finalizer thread blocking.
Probably what is happening is that one thread is
spinning while looking for an empty slot in the string
hash table, and then the GC tries to finalize one of
these strings. The String finalizer tries to acquire
the lock already held by the thread looking for an
empty slot, resulting in deadlock.
This is just a theory, I would need at least backtraces
of all the threads to be sure.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21703
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug libgcj/21703] hang when rapidly calling String.intern()
2005-05-21 19:55 [Bug java/21703] New: hang when rapidly calling String.intern() debian-gcc at lists dot debian dot org
` (3 preceding siblings ...)
2005-05-21 23:56 ` tromey at gcc dot gnu dot org
@ 2005-05-22 0:38 ` tromey at gcc dot gnu dot org
2005-05-22 1:05 ` cvs-commit at gcc dot gnu dot org
` (3 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: tromey at gcc dot gnu dot org @ 2005-05-22 0:38 UTC (permalink / raw)
To: java-prs
------- Additional Comments From tromey at gcc dot gnu dot org 2005-05-22 00:37 -------
One more note -- the test case will loop infinitely
even when the intern() bug has been fixed, since every
'char' value is <= \uffff
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21703
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug libgcj/21703] hang when rapidly calling String.intern()
2005-05-21 19:55 [Bug java/21703] New: hang when rapidly calling String.intern() debian-gcc at lists dot debian dot org
` (4 preceding siblings ...)
2005-05-22 0:38 ` tromey at gcc dot gnu dot org
@ 2005-05-22 1:05 ` cvs-commit at gcc dot gnu dot org
2005-05-22 1:06 ` tromey at gcc dot gnu dot org
` (2 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: cvs-commit at gcc dot gnu dot org @ 2005-05-22 1:05 UTC (permalink / raw)
To: java-prs
------- Additional Comments From cvs-commit at gcc dot gnu dot org 2005-05-22 01:04 -------
Subject: Bug 21703
CVSROOT: /cvs/gcc
Module name: gcc
Branch: gcc-4_0-branch
Changes by: tromey@gcc.gnu.org 2005-05-22 01:04:47
Modified files:
libjava : ChangeLog
libjava/java/lang: natString.cc
libjava/java/lang/ref: natReference.cc
Log message:
PR libgcj/21703:
* java/lang/ref/natReference.cc (find_slot): Handle case where
table has no NULL entries.
* java/lang/natString.cc (_Jv_StringFindSlot): Handle case where
table has no NULL entries.
Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libjava/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=1.3391.2.74&r2=1.3391.2.75
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libjava/java/lang/natString.cc.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=1.36&r2=1.36.12.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libjava/java/lang/ref/natReference.cc.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=1.6&r2=1.6.72.1
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21703
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug libgcj/21703] hang when rapidly calling String.intern()
2005-05-21 19:55 [Bug java/21703] New: hang when rapidly calling String.intern() debian-gcc at lists dot debian dot org
` (5 preceding siblings ...)
2005-05-22 1:05 ` cvs-commit at gcc dot gnu dot org
@ 2005-05-22 1:06 ` tromey at gcc dot gnu dot org
2005-05-25 15:24 ` cvs-commit at gcc dot gnu dot org
2005-05-25 15:25 ` tromey at gcc dot gnu dot org
8 siblings, 0 replies; 10+ messages in thread
From: tromey at gcc dot gnu dot org @ 2005-05-22 1:06 UTC (permalink / raw)
To: java-prs
------- Additional Comments From tromey at gcc dot gnu dot org 2005-05-22 01:06 -------
I've checked in a patch on the 4.0 branch.
I will put it on the trunk when it emerges from its current
slushy state; I am leaving the PR open until then.
I'm not planning to put this on the 3.4 branch, but if someone
is motivated I think they are free to do so.
--
What |Removed |Added
----------------------------------------------------------------------------
Target Milestone|--- |4.0.1
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21703
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug libgcj/21703] hang when rapidly calling String.intern()
2005-05-21 19:55 [Bug java/21703] New: hang when rapidly calling String.intern() debian-gcc at lists dot debian dot org
` (6 preceding siblings ...)
2005-05-22 1:06 ` tromey at gcc dot gnu dot org
@ 2005-05-25 15:24 ` cvs-commit at gcc dot gnu dot org
2005-05-25 15:25 ` tromey at gcc dot gnu dot org
8 siblings, 0 replies; 10+ messages in thread
From: cvs-commit at gcc dot gnu dot org @ 2005-05-25 15:24 UTC (permalink / raw)
To: java-prs
------- Additional Comments From cvs-commit at gcc dot gnu dot org 2005-05-25 15:24 -------
Subject: Bug 21703
CVSROOT: /cvs/gcc
Module name: gcc
Changes by: tromey@gcc.gnu.org 2005-05-25 15:23:57
Modified files:
libjava : ChangeLog
libjava/java/lang: natString.cc
libjava/java/lang/ref: natReference.cc
Log message:
PR libgcj/21703:
* java/lang/ref/natReference.cc (find_slot): Handle case where
table has no NULL entries.
* java/lang/natString.cc (_Jv_StringFindSlot): Handle case where
table has no NULL entries.
Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libjava/ChangeLog.diff?cvsroot=gcc&r1=1.3631&r2=1.3632
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libjava/java/lang/natString.cc.diff?cvsroot=gcc&r1=1.37&r2=1.38
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libjava/java/lang/ref/natReference.cc.diff?cvsroot=gcc&r1=1.6&r2=1.7
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21703
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug libgcj/21703] hang when rapidly calling String.intern()
2005-05-21 19:55 [Bug java/21703] New: hang when rapidly calling String.intern() debian-gcc at lists dot debian dot org
` (7 preceding siblings ...)
2005-05-25 15:24 ` cvs-commit at gcc dot gnu dot org
@ 2005-05-25 15:25 ` tromey at gcc dot gnu dot org
8 siblings, 0 replies; 10+ messages in thread
From: tromey at gcc dot gnu dot org @ 2005-05-25 15:25 UTC (permalink / raw)
To: java-prs
------- Additional Comments From tromey at gcc dot gnu dot org 2005-05-25 15:24 -------
Fix checked in.
--
What |Removed |Added
----------------------------------------------------------------------------
Status|ASSIGNED |RESOLVED
Resolution| |FIXED
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21703
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2005-05-25 15:25 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-05-21 19:55 [Bug java/21703] New: hang when rapidly calling String.intern() debian-gcc at lists dot debian dot org
2005-05-21 20:09 ` [Bug libgcj/21703] " pinskia at gcc dot gnu dot org
2005-05-21 20:14 ` pinskia at gcc dot gnu dot org
2005-05-21 23:48 ` tromey at gcc dot gnu dot org
2005-05-21 23:56 ` tromey at gcc dot gnu dot org
2005-05-22 0:38 ` tromey at gcc dot gnu dot org
2005-05-22 1:05 ` cvs-commit at gcc dot gnu dot org
2005-05-22 1:06 ` tromey at gcc dot gnu dot org
2005-05-25 15:24 ` cvs-commit at gcc dot gnu dot org
2005-05-25 15:25 ` tromey at gcc dot gnu dot org
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).