Page MenuHomePhabricator

Fix mitkSceneIOTest
Closed, ResolvedPublic

Description

It crashes randomly with write problems. Always requires a manual dart trigger.
This is very tedious.

Event Timeline

Ok, the test was a little stupid. However it's a serious problem if this class cannot get a temporary directory from the operating system. This problem may be in Poco or Windows or SceneIO. Will be investigated with T2183.

For now the solution is to delete temp directories after zipping to reduce overall number of temp directories on Windows XP (#18125)

Sorry, but this does not semm to be the problem. Please see Vista64-VM on DashBoard.

Ok, the error was a little difficult to locate:

SceneIO was unable to delete a temporary directory that is created to hold the contents of the .zip file that should be created.

Jochen and I found that Poco was held from deleting the directory because something still held a file handle to the test image pic3d.pic.gz inside the temp directory. When this is the case (at least) Windows cannot remove the directory.

The original reason was a change in revision 15719, where a test was added that should detect cases where a .pic file cannot be written. The test that was added in 15719 opened a file handle using C 'fopen' but never closed this handle.

We changed PicFileWriter to use C++ means of file handling and correctly close the test handle now.

Changes comitted in revision 18165.

Added tests to detect when a temp directory cannot be removed in revision 18166. Leaving this bug open until it is clear whether this fixes the test behaviour on all platforms.

Forgot this long enough. No dartclients fail anymore, test seems to behave fine. Closing this bug as fixed.

Testing bugs are part of their respective modules -> changing component to other, please assign appropriate component.