Page MenuHomePhabricator

mitkImageAccessorTest_Pic3D.nrrd fails on dart clients
Closed, ResolvedPublic

Description

Only fails on internal MBI dartclient, but blocks dashboard. See:

http://mbits/cdash/viewTest.php?onlyfailed&buildid=157042

and

http://mbits/cdash/viewTest.php?onlyfailed&buildid=157057

Maybe a problem of threading inside the test. Care when calling TerminateThread(ThreadID), the ID is not always the same. Better store the ID when starting the thread and use it later to terminate it.

Event Timeline

Most methods in mitk::Image aren't thread-safe. This test makes sure, that the recently introduced Image accessors work correctly to provide at least a thread-safe image access.

However, a few methods in mitk::Image or its super classes are needed by image accessors and thus need to be thread-safe too.

Although the needed methods should only read data, this test revealed side effects leading to undefined states even in basic methods like Image->GetDimension().

Moreover, mitkBaseProcess (super class of mitk::Image) affects the use of SmartPointers by overwriting Register() and Unregister(). Unfortunately there is no mutex integrated (as it is in itk::LightObject) to prevent overlapping thread access.

The next step will be to investigate, which methods are affected, and to create bug entries for each of those.

In order to get rid of failing tests, the number of threads used in the test will be temporarily reduced to one in the next days.

New remote branch pushed: bug-13935-ImageAccessorTest

New remote branch pushed: bug-13935-ImageAccessorTestNew

[a75769]: Merge branch 'bug-13935-ImageAccessorTest2'

Merged commits:

2012-12-19 18:24:07 Jan Hering [aa2936]
Reduced number of threads

The test doesn't fail anymore. => resolved

Work on the actual problem will continue with T14443.