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

Reply via email to