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

Reply via email to