Changes between Initial Version and Version 3 of Ticket #24522


Ignore:
Timestamp:
01/12/18 13:11:31 (3 years ago)
Author:
jdemeyer
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #24522

    • Property Cc rws added
    • Property Component changed from python3 to packages: standard
    • Property Summary changed from py3: bug in pynac numeric.cpp with PyObject_RichCompareBool to Pynac should check for errors when calling PyObject_RichCompareBool()
    • Property Owner changed from (none) to jdemeyer
    • Property Type changed from PLEASE CHANGE to defect
  • Ticket #24522 – Description

    initial v3  
    1 There are a number of methods in pynac's numeric module that don't check for error results from `PyObject_RichCompareBool`.  This leads to unhandled exceptions that, on Python 2, were somewhat by luck being cleared via `PyObject_Clear()` later in the call stack.  Maybe this was somewhat by design but it doesn't feel that way.
     1There are a number of methods in pynac's `ginac/numeric.cpp` module that don't check for error results from `PyObject_RichCompareBool` (which returns -1 on error).
    22
    3 On Python 3 we're less lucky--the interpreter asserts `!PyErr_Occurred` in more places and we don't get so lucky.  That, at least, seems to be the source of the difference.  I need to investigate a little more though.
     3This leads to unhandled exceptions that, on Python 2, were somewhat by luck being cleared via `PyObject_Clear()` later in the call stack.
     4
     5On Python 3, the interpreter asserts `!PyErr_Occurred` in more places and we don't get so lucky.