Hi,
On 06/06/2012 08:08 AM, Lodron, Gerald wrote:
Yupp, it seems that we have an older version of mitk and it seems that
the actual one does not have this bug. The problem is that we
developed a software which uses mitk which is currently in medical
software certification process (ISO 13485) and that it is not possible
to update the mitk toolkit any more during clinical trial , only
critical bug fixes like this one would be allowed (by writing an huge
amount of change request documents)….
Sounds familiar.
So if I look at the git the only thing you did is changing the
SmartPointer into a weak pointer in mitkDisplayCoordinateOperation.h ?
Yes, that fixed the bug.
Thanks for your help, would never found it otherwise…
You are welcome.
- Sascha
*Von:*Sascha Zelzer [mailto:[email protected]]
*Gesendet:* Freitag, 01. Juni 2012 16:49
*An:* Lodron, Gerald
*Cc:* MITK ([email protected])
*Betreff:* Re: [mitk-users] Crash on closing mitk App
Hi,
thanks for reporting this. What MITK version are you using?
We had a very similar problem which has been fixed since then:
http://bugs.mitk.org/show_bug.cgi?id=4733
It very much looks like there is a "wrong" destruction order: Methods
called from desctructors try to access static members of objects which
are probably gone already.
- Sascha
On 05/24/2012 02:22 PM, Lodron, Gerald wrote:
Hello
Sometimes (not very often) when i close my mitk App (but it also seems
to happen in ExtApp) i get a crash on mitkVtkLayerController at line
54 (see following) in “find” function of the static std::map of the
RemoveInstance function:
void mitk::VtkLayerController::RemoveInstance(vtkRenderWindow* renWin)
{
vtkLayerControllerMapType::iterator mapit =
s_LayerControllerMap.find(renWin);
if(mapit != s_LayerControllerMap.end())
{
deletemapit->second;
s_LayerControllerMap.erase( mapit );
}
}
It seems that this is a threading problem of mitk since renWin is not
a Nullpointer and the static variable s_LayerControllerMap also
exists. Has anyone a clue what I am making or what mitk is making
wrong? I have no idea how the debug this…
Here my call stack but I think it will not help much:
mitkCore.dll!std::_Tree<std::_Tmap_traits<vtkRenderWindow
const * __ptr64,mitk::VtkLayerController *
__ptr64,std::less<vtkRenderWindow const *
__ptr64>,std::allocator<std::pair<vtkRenderWindow const * __ptr64
const,mitk::VtkLayerController * __ptr64> >,0> >::_Lbound(const
vtkRenderWindow * const & _Keyval=0x00000000098f3030) Line 1264 + 0xa
bytes C++
mitkCore.dll!std::_Tree<std::_Tmap_traits<vtkRenderWindow
const * __ptr64,mitk::VtkLayerController *
__ptr64,std::less<vtkRenderWindow const *
__ptr64>,std::allocator<std::pair<vtkRenderWindow const * __ptr64
const,mitk::VtkLayerController * __ptr64> >,0> >::lower_bound(const
vtkRenderWindow * const & _Keyval=0x00000000098f3030) Line 1004 + 0xf
bytes C++
mitkCore.dll!std::_Tree<std::_Tmap_traits<vtkRenderWindow
const * __ptr64,mitk::VtkLayerController *
__ptr64,std::less<vtkRenderWindow const *
__ptr64>,std::allocator<std::pair<vtkRenderWindow const * __ptr64
const,mitk::VtkLayerController * __ptr64> >,0> >::find(const
vtkRenderWindow * const & _Keyval=0x00000000098f3030) Line 978 + 0x1a
bytes C++
mitkCore.dll!mitk::VtkLayerController::RemoveInstance(vtkRenderWindow
* renWin=0x00000000098f3030) Line 54 + 0x19 bytes C++
mitkCore.dll!mitk::BaseRenderer::~BaseRenderer() Line
239 C++
mitkCore.dll!mitk::VtkPropRenderer::~VtkPropRenderer() Line
133 + 0x64 bytes C++
mitkCore.dll!mitk::VtkPropRenderer::`vector deleting
destructor'() + 0x85 bytes C++
ITKCommon.dll!itk::LightObject::UnRegister() Line 201 + 0x31
bytes C++
ITKCommon.dll!itk::Object::UnRegister() Line 339 C++
mitkCore.dll!itk::SmartPointer<mitk::BaseRenderer>::UnRegister() Line
148 C++
mitkCore.dll!itk::SmartPointer<mitk::BaseRenderer>::~SmartPointer<mitk::BaseRenderer>()
Line 65 C++
mitkCore.dll!mitk::DisplayCoordinateOperation::~DisplayCoordinateOperation()
Line 55 + 0xe bytes C++
mitkCore.dll!mitk::DisplayCoordinateOperation::`vector
deleting destructor'() + 0x7f bytes C++
mitkCore.dll!mitk::OperationEvent::~OperationEvent() Line
139 + 0x37 bytes C++
mitkCore.dll!mitk::OperationEvent::`vector deleting
destructor'() + 0x7f bytes C++
mitkCore.dll!mitk::LimitedLinearUndo::ClearList(std::vector<mitk::UndoStackItem
*,std::allocator<mitk::UndoStackItem *> > *
list=[1](0x000000000fd1f150 {m_Destination=0x0000000009b28c20
m_Operation=0x0000000004090980 m_UndoOperation=0x000000000fd38ec0
...})) Line 40 + 0x30 bytes C++
mitkCore.dll!mitk::LimitedLinearUndo::~LimitedLinearUndo()
Line 31 C++
mitkCore.dll!mitk::VerboseLimitedLinearUndo::~VerboseLimitedLinearUndo()
Line 28 + 0xa bytes C++
mitkCore.dll!mitk::VerboseLimitedLinearUndo::`vector deleting
destructor'() + 0x85 bytes C++
ITKCommon.dll!itk::LightObject::UnRegister() Line 201 + 0x31
bytes C++
ITKCommon.dll!itk::Object::UnRegister() Line 339 C++
mitkCore.dll!itk::SmartPointer<mitk::UndoModel>::UnRegister() Line
148 C++
mitkCore.dll!itk::SmartPointer<mitk::UndoModel>::~SmartPointer<mitk::UndoModel>()
Line 65 C++
mitkCore.dll!`dynamic atexit destructor for
'mitk::UndoController::m_CurUndoModel''() + 0x26 bytes C++
mitkCore.dll!_CRT_INIT(void * hDllHandle=0x000007feeab90000,
unsigned long dwReason=0, void * lpreserved=0x0000000000000001) Line
446 C
mitkCore.dll!__DllMainCRTStartup(void *
hDllHandle=0x000007feeab90000, unsigned long dwReason=0, void *
lpreserved=0x0000000000000001) Line 557 + 0x13 bytes C
mitkCore.dll!_DllMainCRTStartup(void *
hDllHandle=0x000007feeab90000, unsigned long dwReason=0, void *
lpreserved=0x0000000000000001) Line 508 C
ntdll.dll!0000000077604371()
[Frames below may be incorrect and/or missing, no symbols
loaded for ntdll.dll]
ntdll.dll!0000000077604180()
msvcr90d.dll!__crtExitProcess(int status=0) Line 732 C
msvcr90d.dll!doexit(int code=0, int quick=0, int
retcaller=0) Line 645 C
msvcr90d.dll!exit(int code=0) Line 413 C
ReDeformApp.exe!__tmainCRTStartup() Line 595 C
> ReDeformApp.exe!mainCRTStartup() Line 399 C
kernel32.dll!000000007728652d()
ntdll.dll!000000007760c521()
------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and
threat landscape has changed and how IT managers can respond. Discussions
will include endpoint security, mobile security and the latest in malware
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
mitk-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mitk-users