[PATCH] Link to the Sun JVM bug mentioned in OffsetCache
From: Shawn O. Pearce <hidden>
Date: 2016-06-15 22:46:42
Subsystem:
the rest · Maintainer:
Linus Torvalds
This bug has now been published by Sun. We should link to the
database entry so we can find more detail later.
Signed-off-by: Shawn O. Pearce <redacted>
---
"Shawn O. Pearce" [off-list ref] wrote:
> Robin Rosenberg [off-list ref] wrote:
> > > diff --git a/org.spearce.jgit/src/org/spearce/jgit/lib/OffsetCache.java b/org.spearce.jgit/src/org/spearce/jgit/lib/OffsetCache.java
> > > + private void gc() {
> > > + R r;
> > > + while ((r = (R) queue.poll()) != null) {
> > > + // Sun's Java 5 and 6 implementation have a bug where a Reference
> > > + // can be enqueued and dequeued twice on the same reference queue
> > > + // due to a race condition within ReferenceQueue.enqueue(Reference).
> >
> > Reference to the official Sun bug? Might help if someone wants to
> > implement a flag to avoid this (if necessary...)
>
> Actually, this is a new bug. I tried looking through BugParade
> but nobody has mentioned or discovered this before.
>
> I submitted a bug report yesterday, but they have yet to publish it.
And here it is.
.../src/org/spearce/jgit/lib/OffsetCache.java | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/org.spearce.jgit/src/org/spearce/jgit/lib/OffsetCache.java b/org.spearce.jgit/src/org/spearce/jgit/lib/OffsetCache.java
index a1cd4be..b81c7e0 100644
--- a/org.spearce.jgit/src/org/spearce/jgit/lib/OffsetCache.java
+++ b/org.spearce.jgit/src/org/spearce/jgit/lib/OffsetCache.java@@ -414,6 +414,8 @@ private void gc() { // can be enqueued and dequeued twice on the same reference queue // due to a race condition within ReferenceQueue.enqueue(Reference). // + // http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6837858 + // // We CANNOT permit a Reference to come through us twice, as it will // skew the resource counters we maintain. Our canClear() check here // provides a way to skip the redundant dequeues, if any.
--
1.6.3.rc4.206.g03e16