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

Exceptions from importing lsst.afw.image cause SIGABRT

    XMLWordPrintable

    Details

    • Type: Story
    • Status: Done
    • Resolution: Done
    • Fix Version/s: None
    • Component/s: afw
    • Story Points:
      1
    • Team:
      Architecture

      Description

      If astropy.units fails to import and a raises an exception (eg if warnings are converted to errors) when being imported via Schema.cc during import of lsst.afw.image an abort signal is received:

      terminating with uncaught exception of type pybind11::error_already_set: SystemError: <built-in method __contains__ of dict object at 0x10049b900> returned a result with an error set
      

      Stepping through schema.cc the line triggering this is:

      * thread #1, queue = 'com.apple.main-thread', stop reason = breakpoint 2.1
          frame #0: 0x0000000116e3d53d schema.so`void lsst::afw::table::(anonymous namespace)::declareSchemaType<unsigned char>(mod=0x00007ffeefbf33c0) at schema.cc:187 [opt]
         184 	    std::string suffix = FieldBase<T>::getTypeString();
         185 	    py::str pySuffix(suffix);
         186 	
      -> 187 	    py::object astropyUnit = py::module::import("astropy.units").attr("Unit");
         188 	
         189 	    // FieldBase
         190 	    PyFieldBase<T> clsFieldBase(mod, ("FieldBase" + suffix).c_str());
       
        * frame #0: 0x0000000116e3d53d schema.so`void lsst::afw::table::(anonymous namespace)::declareSchemaType<unsigned char>(mod=0x00007ffeefbf33c0) at schema.cc:187 [opt]
          frame #1: 0x0000000116e3d143 schema.so`lsst::afw::table::(anonymous namespace)::pybind11_init_schema(mod=0x00007ffeefbf33c0) at schema.cc:398 [opt]
          frame #2: 0x0000000116e3cf5d schema.so`::PyInit_schema() at schema.cc:390 [opt]
      
      

      Something in the pybind11 layer is failing to catch the python exception and forward it on.

      Depending on your system this can be reproduced with:

      import warnings
      warnings.simplefilter("error")
      import lsst.afw.image
      

      Given the reference to schema.cc and _contains_ I initially thought this was related to DM-15406 and there is some commentary there.

        Attachments

          Issue Links

            Activity

            tjenness Tim Jenness created issue -
            tjenness Tim Jenness made changes -
            Field Original Value New Value
            Link This issue relates to DM-15406 [ DM-15406 ]
            tjenness Tim Jenness made changes -
            Risk Score 0
            tjenness Tim Jenness made changes -
            Component/s afw [ 10714 ]
            tjenness Tim Jenness made changes -
            Assignee Tim Jenness [ tjenness ]
            tjenness Tim Jenness made changes -
            Team Architecture [ 10304 ]
            tjenness Tim Jenness made changes -
            Reviewers Jim Bosch [ jbosch ]
            Status To Do [ 10001 ] In Review [ 10004 ]
            jbosch Jim Bosch made changes -
            Status In Review [ 10004 ] Reviewed [ 10101 ]
            jbosch Jim Bosch made changes -
            Link This issue relates to DM-15444 [ DM-15444 ]
            tjenness Tim Jenness made changes -
            Resolution Done [ 10000 ]
            Status Reviewed [ 10101 ] Done [ 10002 ]
            tjenness Tim Jenness made changes -
            Story Points 1

              People

              Assignee:
              tjenness Tim Jenness
              Reporter:
              tjenness Tim Jenness
              Reviewers:
              Jim Bosch
              Watchers:
              Jim Bosch, Paul Price, Tim Jenness
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved:

                  Jenkins

                  No builds found.