Seismc DMS error on close aborts application
My application crashed after encountering an error in DMS, in spite of trying to catch exceptions.
Here is what I believe to be the sequence of events.
- OpenVDS::Close() is called by the application and does an explicit delete of this->vds.
- ~VDS destructs its unique_ptr VolumeDataStore (default deleter).
- ~VolumeDataStoreIOManager() destructs its unique_ptr m_ioManager (default deleter), concrete type is IOManagerDms
- ~IOManagerDms() calls m_dataset->close() without protecting against exceptions.
- seismicdrive::SDGenericDataset::close() finds some problem and throws.
- terminate() is called because destructors are not allowed to throw.
Wishful thinking: Is it valid to use a VolumeDataAccessManager after OpenVDS::Close() has been called? If so, would it be possible to use the AddUploadError() / GetCurrentUploadError() (and Download...) to propagate such errors?
I was using OpenVDS from git hash 1199f2bc (probably).