Ticket #3746 (closed: fixed)
Segfault relating to InstrumentView and possibly masking?
Reported by: | Janik Zikovsky | Owned by: | Roman Tolchenov |
---|---|---|---|
Priority: | critical | Milestone: | Release 2.0 |
Component: | Mantid | Keywords: | |
Cc: | Blocked By: | ||
Blocking: | Tester: | Michael Reuter |
Description
Steps to reproduce:
- LoadEventNexus('CNCS_7860_event.nxs', 'cncs')
- Right-click workspace and choose instrument view
- Go to mask tab
- Mask out some detectors
- Run LoadEventNexus with the same file and output workspace name again.
- While LoadEventNexus, AFTER it has deleted the original workspace but BEFORE it has finished and replaced the workspace in the mantid workspace list, CLICK on where the workspace USED to be.
- I sometimes have to do the steps twice, but I didn't get it to crash without clicking on that spot.
- Segfault.
Weird, I know. This is on Ubuntu 11.04
Thread [7] (Suspended: Signal 'SIGSEGV' received. Description: Segmentation fault.) 40 glIsList() 0x00007ffff0cd7f49 39 Mantid::Geometry::CacheGeometryRenderer::~CacheGeometryRenderer() CacheGeometryRenderer.cpp:32 0x00007ffff74082f1 38 Mantid::Geometry::CacheGeometryHandler::~CacheGeometryHandler() CacheGeometryHandler.cpp:34 0x00007ffff7407c35 37 Mantid::Geometry::CacheGeometryHandler::~CacheGeometryHandler() CacheGeometryHandler.cpp:35 0x00007ffff7407c9c 36 boost::checked_delete<Mantid::Geometry::CacheGeometryHandler>() checked_delete.hpp:34 0x00007ffff73e5440 35 boost::detail::sp_counted_impl_p<Mantid::Geometry::CacheGeometryHandler>::dispose() sp_counted_impl.hpp:78 0x00007ffff73e959c 34 boost::detail::sp_counted_base::release() sp_counted_base_gcc_x86.hpp:145 0x0000000000692fec 33 boost::detail::shared_count::~shared_count() shared_count.hpp:217 0x0000000000693065 32 boost::shared_ptr<Mantid::Geometry::GeometryHandler>::~shared_ptr() shared_ptr.hpp:169 0x00007ffff73e2a0c 31 Mantid::Geometry::Object::~Object() Object.cpp:120 0x00007ffff73dabcb 30 Mantid::API::Sample::~Sample() Sample.h:57 0x00007ffff6d724c1 29 boost::checked_delete<Mantid::API::Sample>() checked_delete.hpp:34 0x00007ffff6d7254f 28 boost::detail::sp_counted_impl_p<Mantid::API::Sample>::dispose() sp_counted_impl.hpp:78 0x00007ffff6d74618 27 boost::detail::sp_counted_base::release() sp_counted_base_gcc_x86.hpp:145 0x0000000000692fec 26 boost::detail::shared_count::~shared_count() shared_count.hpp:217 0x0000000000693065 25 boost::shared_ptr<Mantid::API::Sample>::~shared_ptr() shared_ptr.hpp:169 0x00007ffff6d6da4a 24 Mantid::Kernel::cow_ptr<Mantid::API::Sample>::~cow_ptr() cow_ptr.h:136 0x00007ffff6d6dabc 23 Mantid::API::ExperimentInfo::~ExperimentInfo() ExperimentInfo.cpp:50 0x00007ffff6d67e0f 22 Mantid::API::MatrixWorkspace::~MatrixWorkspace() MatrixWorkspace.cpp:57 0x00007ffff6db8c58 21 Mantid::API::IEventWorkspace::~IEventWorkspace() IEventWorkspace.h:39 0x00007fffd679da65 20 Mantid::DataObjects::EventWorkspace::~EventWorkspace() EventWorkspace.cpp:42 0x00007fffd67999b6 19 Mantid::DataObjects::EventWorkspace::~EventWorkspace() EventWorkspace.cpp:53 0x00007fffd6799a20 18 boost::checked_delete<Mantid::DataObjects::EventWorkspace>() checked_delete.hpp:34 0x00007fffd67a6b98 17 boost::detail::sp_counted_impl_p<Mantid::DataObjects::EventWorkspace>::dispose() sp_counted_impl.hpp:78 0x00007fffd67a6c20 16 boost::detail::sp_counted_base::release() sp_counted_base_gcc_x86.hpp:145 0x0000000000692fec 15 boost::detail::shared_count::~shared_count() shared_count.hpp:217 0x0000000000693065 14 boost::shared_ptr<Mantid::API::IEventWorkspace>::~shared_ptr() shared_ptr.hpp:169 0x0000000000931326 13 Mantid::Kernel::PropertyWithValue<boost::shared_ptr<Mantid::API::IEventWorkspace> >::operator=() PropertyWithValue.h:351 0x00007ffff6e2b2f4 12 Mantid::API::WorkspaceProperty<Mantid::API::IEventWorkspace>::operator=() WorkspaceProperty.h:115 0x00007ffff6e25459 11 Mantid::Kernel::IPropertyManager::setProperty<boost::shared_ptr<Mantid::API::IEventWorkspace> >() IPropertyManager.h:101 0x00007fffd4f54d95 10 Mantid::DataHandling::LoadEventNexus::exec() LoadEventNexus.cpp:770 0x00007fffd4f4a740 9 Mantid::API::Algorithm::execute() Algorithm.cpp:300 0x00007ffff6d15b4f 8 Mantid::API::Algorithm::executeAsyncImpl() Algorithm.cpp:1214 0x00007ffff6d1b1e2 7 Mantid::API::AlgorithmProxy::executeAsyncImpl() AlgorithmProxy.cpp:215 0x00007ffff6d487bb 6 Poco::ActiveRunnable<bool, Poco::Void, Mantid::API::AlgorithmProxy>::run() ActiveRunnable.h:85 0x00007ffff6d4aa40 5 Poco::PooledThread::run() ThreadPool.cpp:203 0x00007fffef054185 4 Poco::ThreadImpl::runnableEntry() Thread_POSIX.cpp:345 0x00007fffef050cbd 3 start_thread() pthread_create.c:304 0x00007fffecfded8c 2 clone() clone.S:112 0x00007fffed2dc04d 1 <symbol is not available> 0x0000000000000000
Change History
comment:1 Changed 9 years ago by Nick Draper
- Status changed from new to assigned
- Owner changed from Nick Draper to Roman Tolchenov
comment:2 Changed 9 years ago by Roman Tolchenov
- Milestone changed from Iteration 30 to Iteration 31
Observed segfault on rhel5 but not on Windows7 or Ubuntu10.04. Without clicking it happens 100% on the 3rd run of LoadEventNexus. I don't have a quick solution.
comment:4 Changed 9 years ago by Roman Tolchenov
Re #3746. A quick fix prventing calling a gl command outside OpenGL
Changeset: ff67170b581782d75c6ef97834c3e13e1220589e
comment:5 Changed 9 years ago by Roman Tolchenov
Re #3746. Something didn't work with SingletonHolder.
Changeset: 9cd26bc3ea47cac1ac040cba29f63ed71515849d
comment:6 Changed 9 years ago by Roman Tolchenov
Re #3746. Using Singleton was a bad idea. Reverting.
Changeset: 1bc34d7f8ff6ad29d17b077a3b30ce6860a4ac79
comment:7 Changed 9 years ago by Roman Tolchenov
Re #3746. A quick fix prventing calling a gl command outside OpenGL
Changeset: ff67170b581782d75c6ef97834c3e13e1220589e
comment:8 Changed 9 years ago by Roman Tolchenov
Re #3746. Something didn't work with SingletonHolder.
Changeset: 9cd26bc3ea47cac1ac040cba29f63ed71515849d
comment:9 Changed 9 years ago by Roman Tolchenov
Re #3746. Using Singleton was a bad idea. Reverting.
Changeset: 1bc34d7f8ff6ad29d17b077a3b30ce6860a4ac79
comment:10 Changed 9 years ago by Roman Tolchenov
- Status changed from accepted to verify
- Resolution set to fixed
The last commit message was lost. I removed display lists from the renderers in Geometry. It is done to remove opengl commands from destructors.
comment:11 Changed 9 years ago by Michael Reuter
- Status changed from verify to verifying
- Tester set to Michael Reuter
comment:12 Changed 9 years ago by Michael Reuter
- Status changed from verifying to closed
I tried this on Mac, RHEL6 and Windows 7 and I can't get it to crash via the mechanism described, so it must be fixed.
comment:13 Changed 5 years ago by Stuart Campbell
This ticket has been transferred to github issue 4593
Fix if fast and safe, otherwise move to iteration 31