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.
(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.)
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_13ProcessEn tryC__update_ current_ block() is not propagating any exceptions that occur - instead it's calling __Pyx_WriteUnra isable( ) and returning.
According to http:// www.cosc. canterbury. ac.nz/greg. ewing/python/ Pyrex/version/ Doc/Manual/ basics. html#mozTocId48 2761 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.)