| Summary: | Concurrency problem when reading objects | ||
|---|---|---|---|
| Product: | [Technology] JGit | Reporter: | Robin Rosenberg <robin.rosenberg> |
| Component: | JGit | Assignee: | Project Inbox <jgit.core-inbox> |
| Status: | RESOLVED NOT_ECLIPSE | QA Contact: | |
| Severity: | normal | ||
| Priority: | P3 | CC: | sop, spearce |
| Version: | unspecified | ||
| Target Milestone: | --- | ||
| Hardware: | Macintosh | ||
| OS: | Mac OS X - Carbon (unsup.) | ||
| Whiteboard: | |||
|
Description
Robin Rosenberg
Can you reproduce this at will? Can you look to see if the WindowCursor or the Inflater inside of them are the same object reference between the two threads? That's the only way I can see that we would have data corruption during decompression of a loose object... the WindowCursor isn't thread-safe, but if EGit managed to reuse the same WindowCursor instance between two threads, you'd have the same Inflater instance in both threads, and the Inflater isn't thread-safe. At the moment at least the problem appears every time. The WindowCursor and Inflater instances as well as streams are different. The garbage produces is the same in both cases. I had some printouts for a while, so it seems there are no other threads involved. D***. I was running an OpenJDK for OS X. The available OS X builds of OpenJDK are, I think, nothing we support. (In reply to comment #4) > The available OS X builds of OpenJDK are, I think, nothing we support. I don't understand why this should be an issue. Is the Inflater object in OpenJDK just horribly busted? Similar to the JIT issue with the IBM JRE that caused problems with our unit tests? (In reply to comment #5) > (In reply to comment #4) > > The available OS X builds of OpenJDK are, I think, nothing we support. > > I don't understand why this should be an issue. Is the Inflater object in > OpenJDK just horribly busted? Similar to the JIT issue with the IBM JRE that > caused problems with our unit tests? I guess it is. This was a build of the 1.7 version so it is not production quality in any sense. Maybe someone could try on another platform and see. I hold my bug reports on the OS X build until official builds comes out. (In reply to comment #6) > (In reply to comment #5) > > (In reply to comment #4) > > > The available OS X builds of OpenJDK are, I think, nothing we support. > > > > I don't understand why this should be an issue. Is the Inflater object in > > OpenJDK just horribly busted? Similar to the JIT issue with the IBM JRE that > > caused problems with our unit tests? > > I guess it is. This was a build of the 1.7 version so it is not production > quality in any sense. > > Maybe someone could try on another platform and see. I hold my bug reports on > the OS X build until official builds comes out. OK. I'm inclined to believe its a JRE bug then, since its a non-production JRE and you verified that the Inflater and WindowCache instances were in fact different between the threads. Though I'm surprised there is a problem with the JRE, Inflater is an important part of the URLClassLoader code path. Maybe they tried to optimize something and the optimization is being tripped up by the way we use Inflater. |