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).