On Mon, Feb 15, 2010 at 08:57:49AM +0000, Padraig O'Briain wrote: > > > On 02/12/10 23:43, [email protected] wrote: > >On Fri, Feb 12, 2010 at 11:05:18PM +0000, John Rice wrote: > >>The bug we are tracking (14552) is completely reproducible with PM > >>in the gate: > > > >The test case below doesn't exactly match what's described in 14552. > > > >I took a look through the symptoms in 14552, but there's no obvious > >explanation for why a trip through plan_common_exception would cause > >api.cancel() to never return. I took a look at api.cancel(). It looks > >like changeset 1710 added a line that I removed in 1693. I'm skeptical > >that this is causing your problem, but I did delete that line since I > >was worried about missed wakeups. > > > >If you delete line api.py:1747, which reads, "self.__canceling = False" > >Does this change anything for you? > > Changing this does not have any effect on this problem. > > However changing plan_common_start to add call to > self.disable_cancel() before raise does fix the problem for me.
Ok, thanks. That's not the right fix, but it's close. With that information, it's now a bit more obvious that the problem is in the exception handler. If __plan_common_start() succeeds in setting enable_cancel() but gets an exception in this path, it needs to call cancel_cleanup_exception(). I'll file a bug for this in just a minute. -j _______________________________________________ pkg-discuss mailing list [email protected] http://mail.opensolaris.org/mailman/listinfo/pkg-discuss
