KBNLresearch / iromlab

Loader software for automated imaging of optical media with Nimbie disc robot
Apache License 2.0
31 stars 5 forks source link

Iromlab hangs on "In vivo Optical Imaging of Fluorescent Markers" CD #96

Closed bitsgalore closed 4 years ago

bitsgalore commented 4 years ago

Following line in isobuster.py:

https://github.com/KBNLresearch/iromlab/blob/9d266a090807fb6284c49f3c08d2a3cccfdbc2cd/iromlab/isobuster.py#L100

If I replace except IOError: with a catch-all except: the disc is rejected (as it should), so I'm assuming that the error is something other than IOError. Since there is no exception handler in this case, isolyzerSuccess and imageTruncated are then undefined, which would explain the hang-up.

To get the exact exception tried this:

except Exception as e:
    logging.info(''.join(['### Exception: ', str(e)]))

Result:

Exception: 'NoneType' object has no attribute 'write'

bitsgalore commented 4 years ago

caused by bug in Isolyzer, which is fixed there by https://github.com/KBNLresearch/isolyzer/commit/2aaf9452e73d96ffb23ba830cde19949d252c9f9.

BUT after this fix the corrupt UDF image actually passes the check because the expected file size is 0 bytes! Possible solution: set imageTruncated to True if expected image size is 0.

bitsgalore commented 4 years ago

This should fix the issue:

https://github.com/KBNLresearch/iromlab/commit/33c6b6c98083da1cab4f5b58f07fd876da029cc9

bitsgalore commented 4 years ago

Additional info: was initially puzzled that recovered ISO image is only 162 kB whereas manually recovered ISO image through ISOBuster is 3.5 MB, but this is explained by the use of different drives in both cases (checked this by running identical command-line on both drives, which results in identical results).