Uploaded image for project: 'Data Management'
  1. Data Management
  2. DM-7377

meas_base testMonteCarlo randomly triggers recursion on Python 3

    Details

    • Type: Bug
    • Status: Done
    • Priority: Major
    • Resolution: Done
    • Fix Version/s: None
    • Component/s: afw, meas_base
    • Labels:
      None
    • Templates:
    • Team:
      Data Release Production

      Description

      Running the tests on meas_base in my Python 3 stack, I sometimes get a failure in testSdssCentroid.testMonteCarlo:

      $ python tests/testSdssCentroid.py 
      testEdge (__main__.SdssCentroidTestCase) ... measurement: Measuring 1 sources (1 parents, 0 children) 
      ok
      testMonteCarlo (__main__.SdssCentroidTestCase)
      Test that we get exactly the right answer on an ideal sim with no noise, and that ... /Users/timj/work/lsstsw3/stack/DarwinX86/utils/12.0-9-gf85c792/python/lsst/utils/tests.py:667: DeprecationWarning: assertClose is deprecated; please use TestCase.assertFloatsAlmostEqual
        DeprecationWarning)
      Exception ignored in: <bound method Schema.<lambda> of Schema(
          (Field['L'](name="id", doc="unique ID"), Key<L>(offset=0, nElements=1)),
          (Field['Angle'](name="coord_ra", doc="position in ra/dec"), Key<Angle>(offset=8, nElements=1)),
          (Field['Angle'](name="coord_dec", doc="position in ra/dec"), Key<Angle>(offset=16, nElements=1)),
          (Field['L'](name="parent", doc="unique ID of parent source"), Key<L>(offset=24, nElements=1)),
          (Field['I'](name="deblend_nChild"), Key<I>(offset=32, nElements=1)),
          (Field['D'](name="truth_flux", doc="true flux", units="count"), Key<D>(offset=40, nElements=1)),
          (Field['D'](name="truth_x", doc="true simulated centroid", units="pixel"), Key<D>(offset=48, nElements=1)),
          (Field['D'](name="truth_y", doc="true simulated centroid", units="pixel"), Key<D>(offset=56, nElements=1)),
          (Field['Flag'](name="truth_flag", doc="set if the object is a star"), Key['Flag'](offset=64, bit=0)),
          (Field['D'](name="truth_xx", doc="true shape after PSF convolution", units="pixel^2"), Key<D>(offset=72, nElements=1)),
          (Field['D'](name="truth_yy", doc="true shape after PSF convolution", units="pixel^2"), Key<D>(offset=80, nElements=1)),
          (Field['D'](name="truth_xy", doc="true shape after PSF convolution", units="pixel^2"), Key<D>(offset=88, nElements=1)),
          (Field['Flag'](name="truth_isStar", doc="set if the object is a star"), Key['Flag'](offset=64, bit=1)),
          (Field['D'](name="base_SdssCentroid_x", doc="centroid from Sdss Centroid algorithm", units="pixel"), Key<D>(offset=96, nElements=1)),
          (Field['D'](name="base_SdssCentroid_y", doc="centroid from Sdss Centroid algorithm", units="pixel"), Key<D>(offset=104, nElements=1)),
          (Field['F'](name="base_SdssCentroid_xSigma", doc="1-sigma uncertainty on x position", units="pixel"), Key<F>(offset=112, nElements=1)),
          (Field['F'](name="base_SdssCentroid_ySigma", doc="1-sigma uncertainty on y position", units="pixel"), Key<F>(offset=116, nElements=1)),
          (Field['Flag'](name="base_SdssCentroid_flag", doc="general failure flag, set if anything went wrong"), Key['Flag'](offset=64, bit=2)),
          (Field['Flag'](name="base_SdssCentroid_flag_edge", doc="Object too close to edge"), Key['Flag'](offset=64, bit=3)),
          (Field['Flag'](name="base_SdssCentroid_flag_noSecondDerivative", doc="Vanishing second derivative"), Key['Flag'](offset=64, bit=4)),
          (Field['Flag'](name="base_SdssCentroid_flag_almostNoSecondDerivative", doc="Almost vanishing second derivative"), Key['Flag'](offset=64, bit=5)),
          (Field['Flag'](name="base_SdssCentroid_flag_notAtMaximum", doc="Object is not at a maximum"), Key['Flag'](offset=64, bit=6)),
          (Field['Flag'](name="base_SdssCentroid_flag_resetToPeak", doc="set if CentroidChecker reset the centroid"), Key['Flag'](offset=64, bit=7)),
          'base_SdssCentroid_flag_badInitialCentroid'->'truth_flag'
          'slot_Centroid'->'truth'
          'slot_Shape'->'truth'
      )
      >
      RecursionError: maximum recursion depth exceeded while calling a Python object
      Fatal Python error: Cannot recover from stack overflow.
       
      Current thread 0x00007fff76534000 (most recent call first):
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 11043 in __getattribute__
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 10797 in getTable
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 11035 in __getattribute__
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 11043 in __getattribute__
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 10797 in getTable
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 11035 in __getattribute__
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 11043 in __getattribute__
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 10797 in getTable
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 11035 in __getattribute__
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 11043 in __getattribute__
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 10797 in getTable
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 11035 in __getattribute__
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 11043 in __getattribute__
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 10797 in getTable
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 11035 in __getattribute__
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 11043 in __getattribute__
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 10797 in getTable
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 11035 in __getattribute__
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 11043 in __getattribute__
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 10797 in getTable
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 11035 in __getattribute__
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 11043 in __getattribute__
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 10797 in getTable
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 11035 in __getattribute__
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 11043 in __getattribute__
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 10797 in getTable
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 11035 in __getattribute__
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 11043 in __getattribute__
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 10797 in getTable
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 11035 in __getattribute__
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 11043 in __getattribute__
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 10797 in getTable
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 11035 in __getattribute__
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 11043 in __getattribute__
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 10797 in getTable
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 11035 in __getattribute__
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 11043 in __getattribute__
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 10797 in getTable
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 11035 in __getattribute__
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 11043 in __getattribute__
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 10797 in getTable
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 11035 in __getattribute__
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 11043 in __getattribute__
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 10797 in getTable
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 11035 in __getattribute__
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 11043 in __getattribute__
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 10797 in getTable
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 11035 in __getattribute__
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 11043 in __getattribute__
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 10797 in getTable
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 11035 in __getattribute__
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 11043 in __getattribute__
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 10797 in getTable
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 11035 in __getattribute__
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 11043 in __getattribute__
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 10797 in getTable
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 11035 in __getattribute__
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 11043 in __getattribute__
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 10797 in getTable
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 11035 in __getattribute__
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 11043 in __getattribute__
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 10797 in getTable
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 11035 in __getattribute__
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 11043 in __getattribute__
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 10797 in getTable
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 11035 in __getattribute__
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 11043 in __getattribute__
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 10797 in getTable
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 11035 in __getattribute__
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 11043 in __getattribute__
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 10797 in getTable
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 11035 in __getattribute__
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 11043 in __getattribute__
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 10797 in getTable
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 11035 in __getattribute__
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 11043 in __getattribute__
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 10797 in getTable
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 11035 in __getattribute__
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 11043 in __getattribute__
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 10797 in getTable
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 11035 in __getattribute__
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 11043 in __getattribute__
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 10797 in getTable
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 11035 in __getattribute__
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 11043 in __getattribute__
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 10797 in getTable
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 11035 in __getattribute__
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 11043 in __getattribute__
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 10797 in getTable
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 11035 in __getattribute__
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 11043 in __getattribute__
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 10797 in getTable
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 11035 in __getattribute__
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 11043 in __getattribute__
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 10797 in getTable
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 11035 in __getattribute__
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 11043 in __getattribute__
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 10797 in getTable
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 11035 in __getattribute__
        File "/Users/timj/work/lsstsw3/stack/DarwinX86/afw/12.0-21-g32ef022+3/python/lsst/afw/table/tableLib.py", line 11043 in __getattribute__
        ...
      Abort trap: 6
      

      and sometimes it works:

      $ python tests/testSdssCentroid.py 
      testEdge (__main__.SdssCentroidTestCase) ... measurement: Measuring 1 sources (1 parents, 0 children) 
      ok
      testMonteCarlo (__main__.SdssCentroidTestCase)
      Test that we get exactly the right answer on an ideal sim with no noise, and that ... /Users/timj/work/lsstsw3/stack/DarwinX86/utils/12.0-9-gf85c792/python/lsst/utils/tests.py:667: DeprecationWarning: assertClose is deprecated; please use TestCase.assertFloatsAlmostEqual
        DeprecationWarning)
      ok
      testNo2ndDerivative (__main__.SdssCentroidTestCase) ... measurement: Measuring 1 sources (1 parents, 0 children) 
      ok
      testNotAtMaximum (__main__.SdssCentroidTestCase) ... measurement: Measuring 1 sources (1 parents, 0 children) 
      ok
      testSingleFramePlugin (__main__.SdssCentroidTestCase)
      Test that we can call the algorithm through the SFM plugin interface. ... measurement: Measuring 1 sources (1 parents, 0 children) 
      ok
      testRegistration (__main__.SdssCentroidTransformTestCase) ... ok
      testTransform (__main__.SdssCentroidTransformTestCase) ... ok
      testFileDescriptorLeaks (__main__.TestMemory) ... ok
      testLeaks (__main__.TestMemory)
      !Check for memory leaks in the preceding tests ... ok
       
      ----------------------------------------------------------------------
      Ran 9 tests in 5.397s
       
      OK
      

      Jim Bosch seems to think it's triggered by an instability in the random seed.

      The segv happens at:

      28  _tableLib.so                  	0x000000010799eb1d SWIG_Python_GetSwigThis(_object*) + 221 (tableLib_wrap.cc:2316)
      29  _tableLib.so                  	0x000000010799e782 SWIG_Python_ConvertPtrAndOwn(_object*, void**, swig_type_info*, int, int*) + 98 (tableLib_wrap.cc:2366)
      30  _tableLib.so                  	0x0000000107929598 _wrap__SourceCatalogBase_getTable(_object*, _object*) + 88 (tableLib_wrap.cc:120031)
      

      The lines reported in the recursion trap are relating to attributes in tableLib.py

        11029     def __getattribute__(self, name):
        11030     # Catalog forwards unknown method calls to its table and column view
        11031     # for convenience.  (Feature requested by RHL; complaints about magic
        11032     # should be directed to him.)
        11033     # We have to use __getattribute__ because SWIG overrides __getattr__.
        11034         try:
        11035             return object.__getattribute__(self, name)
        11036         except AttributeError:
        11037     # self._columns is created the when self.columns is accessed -
        11038     # looking for it in self.columns below would trigger infinite
        11039     # recursion.
        11040             if name == "_columns":
        11041                 raise
        11042         try:
        11043             return getattr(self.table, name)
        11044         except AttributeError:
        11045             return getattr(self.columns, name)
        11046     table = property(getTable)
        11047     schema = property(getSchema)
      

      Trapping for "this" in addition to "_columns" on line 11040 fixes the problem but there is concern that we do not really understand the condition that is leading to this.

        Attachments

          Container Issues

            Issue Links

              Activity

                People

                • Assignee:
                  nlust Nate Lust
                  Reporter:
                  tjenness Tim Jenness
                  Watchers:
                  Jim Bosch, Nate Lust, Russell Owen, Tim Jenness
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  4 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved:

                    Summary Panel