Project

General

Profile

sinedon.data.DataAccessError: referenced data can not be found:

Added by Arne Moeller over 7 years ago

Dear Anchi and all,
we have encountered a small problem with our database - the webviewer etc works fine and all info is there. However, when we process we get a mysql or sinedon error (see below). I think this happened the first time when the database disk became fully occupied - but now we have freed some space and the error remains.

Also we had to move to a bigger storage - from data_leginon to data_xleginon - sessionpath update etc works very well (even now that we cant process) but I am not sure this is related

any help would be highly appreciated

cheers,

Arne

!!! WARNING: directory '/data_xleginon/appion/17jan30a/extract/dogrun2' already exists.
... Writing function log to: dogPicker.log
... Uploading ScriptData....
... Found 8 processors on this machine
... Running Appion version 'myami-3.2'
... Reading old done dictionary: dogPicker.donedict
... Found 1 done dictionary entries
... Querying database for preset 'en' images from session '17jan30a' ...
... Found 585 images in 0.85 sec
... Remove processed images
Traceback (most recent call last):
File "/usr/local/myami/appion/bin/dogPicker.py", line 86, in <module>
imgLoop.run()
File "/usr/lib/python2.6/site-packages/appionlib/appionLoop2.py", line 61, in run
self._getAllImages()
File "/usr/lib/python2.6/site-packages/appionlib/appionLoop2.py", line 503, in _getAllImages
self._removeProcessedImages()
File "/usr/lib/python2.6/site-packages/appionlib/appionLoop2.py", line 771, in _removeProcessedImages
skip, reason = self.skipTestOnImage(imgdata)
File "/usr/lib/python2.6/site-packages/appionlib/appionLoop2.py", line 737, in skipTestOnImage
tiltangle = apDatabase.getTiltAngleDeg(imgdata)
File "/usr/lib/python2.6/site-packages/appionlib/apDatabase.py", line 247, in getTiltAngleDeg
return imgdata['scope']['stage position']['a']*180.0/math.pi
File "/usr/lib/python2.6/site-packages/sinedon/data.py", line 517, in getitem
return self.special_getitem(key, dereference=True)
File "/usr/lib/python2.6/site-packages/sinedon/data.py", line 502, in special_getitem
value = value.getData(**kwargs)
File "/usr/lib/python2.6/site-packages/sinedon/data.py", line 254, in getData
referent = datamanager.getData(self, **kwargs)
File "/usr/lib/python2.6/site-packages/sinedon/data.py", line 159, in getData
raise DataAccessError('referenced data can not be found: %s' % (datareference,))
sinedon.data.DataAccessError: referenced data can not be found: DataReference[class: ScopeEMData, dmid: None, dbid: 43274, referent: None]


Replies (1)

RE: sinedon.data.DataAccessError: referenced data can not be found: - Added by Anchi Cheng over 7 years ago

It is likely that some data that need to be saved did not happen when database was full.

The error is normally hard to trace, but in this case, it only involves one reference:

imgdata['scope']['stage position']['a']*180.0/math.pi

is in an AcquisitionImageData with a reference to an entry in ScopeEMData. Both of them should be inserted to mysql database during data collection or image upload. In this case it appears that the AcquisitionImageData is inserted but not ScopeEMData reference.

The error message did give the ScopeEMData dbid: 43274. Therefore, you can check against in a straight mysql query for it. dbid is mapped to DEF_id in leginondb.ScopeEMData.

If this happens frequently now, you may want to check if ScopeEMData and maybe other tables needs to be repaired after the incident. There are many tools for repairing mysql database if you Google search "mysql repair table".

    (1-1/1)