Comment 13 for bug 495023

Revision history for this message
Gareth White (gwhite-deactivatedaccount) wrote : Re: Interrupting commit to smart server sometimes removes files

Hi Andrew,

I'm afraid I can still reproduce the issue on OS X even with your patch. So there must be something else contributing to the problem here.

I noticed that in _dirstate_helpers_pyx.c it appears that __pyx_f_6bzrlib_21_dirstate_helpers_pyx_13ProcessEntryC__update_current_block() is not propagating any exceptions that occur - instead it's calling __Pyx_WriteUnraisable() and returning.

According to http://www.cosc.canterbury.ac.nz/greg.ewing/python/Pyrex/version/Doc/Manual/basics.html#mozTocId482761 this is the expected behaviour for "cdef void" functions unless you declare them with "except *".

Could this help explain the behaviour I'm seeing?

(Disclaimer: I'm a complete newbie when it comes to Pyrex so if I've just said something completely stupid or obvious please let me know. I'm not trying to fix this bug, I'm just curious to learn how this works.)