| Summary: | [Workbench] Deadlock in of workbench use of synchronization | ||
|---|---|---|---|
| Product: | [Eclipse Project] Platform | Reporter: | Jeff McAffer <jeffmcaffer> |
| Component: | UI | Assignee: | Oleg Besedin <ob1.eclipse> |
| Status: | VERIFIED FIXED | QA Contact: | |
| Severity: | normal | ||
| Priority: | P3 | CC: | bokowski, daniel_megert, emoffatt, irbull, jens.borrmann, Mike_Wilson, niklas.deutschmann, ob1.eclipse, prakash, pwebster, remy.suen, tjwatson |
| Version: | 3.6.1 | ||
| Target Milestone: | 3.8 M2 | ||
| Hardware: | PC | ||
| OS: | Mac OS X - Carbon (unsup.) | ||
| Whiteboard: | |||
| Bug Depends on: | |||
| Bug Blocks: | 347740 | ||
|
Description
Jeff McAffer
Moving the event.getType call to outside the sync block appears to have addressed the problem. The change seems very safe. Can we look at getting this in for Indigo? Today is the testing/verification of RC3 so this would have to go into RC4. That needs PMC approval so I'll add McQ and Boris to the list. (In reply to comment #0) > - change the bundle listener to be Asynchronous (not sure I fully understand > what the listener is doing or how this would affect that) I don't understand either but see bug 171833 comment 0: "As per bug 171584 the platform needs to use a synchronized bundle listener to be able to see the LAZILY_AWAITING_ACTIVATION state." > - move the event.getType() call outside the synchronized block. We are testing > this change to see if it helps. Sounds like a safe fix to me. (In reply to comment #3) > > - move the event.getType() call outside the synchronized block. We are testing > > this change to see if it helps. > > Sounds like a safe fix to me. True if we're certain that getType is side-effect free. Of course, the fact that it's causing class loading at least hints that that might not be the case... (In reply to comment #4) > True if we're certain that getType is side-effect free. Of course, the fact > that it's causing class loading at least hints that that might not be the > case... There are functional side effects and underlying VM side-effects. There are no functional side-effects here. I could see it changing the locking behaviour (underlying VM behaviour) so could in theory changing the timing of something else. I don't know how we could test or validate that. As it is without the change, it seemed rather easy for us to get a deadlock. Just do a PDE build running a full Eclipse install's ant runner application. We may have been using the JEE package so perhaps the different set of bundles installed is causing a different sequence of bundle events... If the change is deemed too much at this point we can retag for SR1. How about we do it early in 3.8 and back port the change to 3.7.1? I am a bit hesitant to make a change at this point of 3.7 as I can't reproduce a deadlock (could it be specific to Mac?) The deadlock actually happens on some linux build machines (so not specific to Mac) and as it is a race condition, you have to run many builds for some of them to lock up. I'm fine doing it in 3.8 and backporting. (In reply to comment #6) > How about we do it early in 3.8 and back port the change to 3.7.1? > > I am a bit hesitant to make a change at this point of 3.7 as I can't reproduce > a deadlock (could it be specific to Mac?) I was able to reproduce the deadlock on Linux (both 32 and 64 bit). Added the suggested change in the 3.8 and 4.2 streams: http://git.eclipse.org/c/platform/eclipse.platform.ui.git/commit/?h=R3_development&id=1e4ca2069cf2dcc2cdb4112a6d1eb45783e4b810 (In reply to comment #9) > Added the suggested change in the 3.8 and 4.2 streams: > > http://git.eclipse.org/c/platform/eclipse.platform.ui.git/commit/?h=R3_development&id=1e4ca2069cf2dcc2cdb4112a6d1eb45783e4b810 I don't see this change in R4_development. Are you trying out Andrew's script? (In reply to comment #10) > I don't see this change in R4_development. Are you trying out Andrew's script? Nope, that would be cool :-). I forgot to push the repository after making R4 change. Done this morning: http://git.eclipse.org/c/platform/eclipse.platform.ui.git/commit/?h=R4_development&id=12a874c06118ea95a0fb2beb1312739f27f9775b Verified that updated code is present in the I20110913-0200 build. *** Bug 323238 has been marked as a duplicate of this bug. *** |