Details
-
Type:
Bug
-
Status: Done
-
Resolution: Done
-
Fix Version/s: None
-
Component/s: meas_astrom
-
Labels:None
-
Team:Alert Production
Description
When running the meas_astrom test suite with nose the following error occurs:
======================================================================
|
ERROR: testBigXy0 (createWcsWithSip.CreateWcsWithSipCase)
|
----------------------------------------------------------------------
|
Traceback (most recent call last):
|
File "/Users/timj/work/lsstsw/src/meas_astrom/tests/createWcsWithSip.py", line 81, in testBigXy0
|
res = self.astrom.determineWcs2(cat, bbox=bbox)
|
File "/Users/timj/work/lsstsw/src/meas_astrom/python/lsst/meas/astrom/anetBasicAstrometry.py", line 436, in determineWcs2
|
wcs,qa = self.getBlindWcsSolution(sourceCat, **kwargs)
|
File "/Users/timj/work/lsstsw/src/meas_astrom/python/lsst/meas/astrom/anetBasicAstrometry.py", line 524, in getBlindWcsSolution
|
raise RuntimeError("Unable to match sources with catalog.")
|
RuntimeError: Unable to match sources with catalog.
|
-------------------- >> begin captured stdout << ---------------------
|
Catalog size 186
|
|
--------------------- >> end captured stdout << ----------------------
|
|
======================================================================
|
ERROR: testLinearXDistort (createWcsWithSip.CreateWcsWithSipCase)
|
----------------------------------------------------------------------
|
Traceback (most recent call last):
|
File "/Users/timj/work/lsstsw/src/meas_astrom/tests/createWcsWithSip.py", line 98, in testLinearXDistort
|
self.singleTestInstance(self.filename, distort.linearXDistort)
|
File "/Users/timj/work/lsstsw/src/meas_astrom/tests/createWcsWithSip.py", line 109, in singleTestInstance
|
cat = self.loadCatalogue(self.filename)
|
File "/Users/timj/work/lsstsw/src/meas_astrom/tests/createWcsWithSip.py", line 165, in loadCatalogue
|
res = self.astrom.determineWcs2(cat, bbox=bbox)
|
File "/Users/timj/work/lsstsw/src/meas_astrom/python/lsst/meas/astrom/anetBasicAstrometry.py", line 436, in determineWcs2
|
wcs,qa = self.getBlindWcsSolution(sourceCat, **kwargs)
|
File "/Users/timj/work/lsstsw/src/meas_astrom/python/lsst/meas/astrom/anetBasicAstrometry.py", line 524, in getBlindWcsSolution
|
raise RuntimeError("Unable to match sources with catalog.")
|
RuntimeError: Unable to match sources with catalog.
|
-------------------- >> begin captured stdout << ---------------------
|
linearXDistort
|
|
--------------------- >> end captured stdout << ----------------------
|
|
======================================================================
|
ERROR: testLinearYDistort (createWcsWithSip.CreateWcsWithSipCase)
|
----------------------------------------------------------------------
|
Traceback (most recent call last):
|
File "/Users/timj/work/lsstsw/src/meas_astrom/tests/createWcsWithSip.py", line 102, in testLinearYDistort
|
self.singleTestInstance(self.filename, distort.linearYDistort)
|
File "/Users/timj/work/lsstsw/src/meas_astrom/tests/createWcsWithSip.py", line 109, in singleTestInstance
|
cat = self.loadCatalogue(self.filename)
|
File "/Users/timj/work/lsstsw/src/meas_astrom/tests/createWcsWithSip.py", line 165, in loadCatalogue
|
res = self.astrom.determineWcs2(cat, bbox=bbox)
|
File "/Users/timj/work/lsstsw/src/meas_astrom/python/lsst/meas/astrom/anetBasicAstrometry.py", line 436, in determineWcs2
|
wcs,qa = self.getBlindWcsSolution(sourceCat, **kwargs)
|
File "/Users/timj/work/lsstsw/src/meas_astrom/python/lsst/meas/astrom/anetBasicAstrometry.py", line 524, in getBlindWcsSolution
|
raise RuntimeError("Unable to match sources with catalog.")
|
RuntimeError: Unable to match sources with catalog.
|
-------------------- >> begin captured stdout << ---------------------
|
linearYDistort
|
|
--------------------- >> end captured stdout << ----------------------
|
|
======================================================================
|
ERROR: testQuadraticDistort (createWcsWithSip.CreateWcsWithSipCase)
|
----------------------------------------------------------------------
|
Traceback (most recent call last):
|
File "/Users/timj/work/lsstsw/src/meas_astrom/tests/createWcsWithSip.py", line 106, in testQuadraticDistort
|
self.singleTestInstance(self.filename, distort.linearYDistort)
|
File "/Users/timj/work/lsstsw/src/meas_astrom/tests/createWcsWithSip.py", line 109, in singleTestInstance
|
cat = self.loadCatalogue(self.filename)
|
File "/Users/timj/work/lsstsw/src/meas_astrom/tests/createWcsWithSip.py", line 165, in loadCatalogue
|
res = self.astrom.determineWcs2(cat, bbox=bbox)
|
File "/Users/timj/work/lsstsw/src/meas_astrom/python/lsst/meas/astrom/anetBasicAstrometry.py", line 436, in determineWcs2
|
wcs,qa = self.getBlindWcsSolution(sourceCat, **kwargs)
|
File "/Users/timj/work/lsstsw/src/meas_astrom/python/lsst/meas/astrom/anetBasicAstrometry.py", line 524, in getBlindWcsSolution
|
raise RuntimeError("Unable to match sources with catalog.")
|
RuntimeError: Unable to match sources with catalog.
|
-------------------- >> begin captured stdout << ---------------------
|
linearQuadraticDistort
|
|
--------------------- >> end captured stdout << ----------------------
|
|
----------------------------------------------------------------------
|
Ran 77 tests in 96.588s
|
|
FAILED (SKIP=10, errors=4)
|
(This requires the corresponding patches from the DM-3901 ticket branch to have been applied).
Running in subprocess with:
nosetests --processes=4 --process-timeout=240 tests/*.py
|
leads to all tests passing. As does running just the createWcsWithSip.py test on its own with nose.
A bit more detail, (assuming you are testing on tickets/
DM-3901branch) I can get the tests to fail simply by first testing openFiles.py:py.test tests/openFiles.py tests/createWcsWithSip.py
Other prior tests can also trigger the problem (but the lsf*.py tests don't trigger it). nosetests has the same issue. This really does seem to be indicating some internal memory corruption.
Tests pass with nose if createWcsWithSip.py is run first. With a similar test order py.test fails because of a file descriptor leak by the time testMultiIndex.py executes.