Page MenuHomePhabricator

[Dashboard] mitkFactoryRegistrationTest fails frequently
Closed, DuplicatePublic

Description

The test mitkFactoryRegistrationTest frequently fails on the MITK dashboard. Example failure: http://cdash.mitk.org/testDetails.php?test=3318401&build=158794

At first, please specify what this test exactly does and double-check if it is acting according to documentation. In other words: Read the documentation and compare if the code really does what its supposed to do.

If there is no documentation, please provide some or find someone who can provide documentation.

Very often one of the following is involved when a test keeps failing randomly:
-Threading
-Rendering tests
-Writing/Reading of data from hard disks
-Special hardware/software of the corresponding dart client

One should double-check, if any of these things apply for this particular test and try to fix it. Do not hesitate to ask for help, if you are not familiar with these mentioned issues.

If there is no easy fix or the reason cannot be found, all findings should be documented here, and the author (or any module responsible person) of the test (or the class which is tested) should contact me.

The priority of this bug is high, because we would like to achieve a green dashboard and high test coverage.

JUST REMOVING THE TEST FROM CMAKE IS NOT WELCOME.
(This is a standard message, copied for all tests with similar behavior)

Event Timeline

All bugs marked with [Dashboard] make the dashboard red are highly important.

So far the test happened only on a single computer (which is the only windows debug dartclient).

I tried to reproduce the test on my computer in debug and failed. I could also not reproduce ist using the dartclient on the computer which it fails on (instead of timeout it finishes in under a second). So I deleted the entire dart client binary tree and will monitor if it will keep happening.

After checking the history it failed on every debug windows dart client. I will add output to narrow it down, as it only fails during nightly test execution.

[539900]: Merge branch 'bug-12731-nightly-windows-debug-diffusion-factory-regist

Merged commits:

2012-08-15 14:54:03 Caspar Goch [3dbc28]
Added output for nightly debugging


2012-08-15 14:53:23 Caspar Goch [e29376]
Fixed small typo

Seems to be fixed after adding output.

Extensive Research and the Application inverse debugging (c) led us to the following conclusions:

  1. The Bug only occurs on very few machines. One of them is the MES Windows Dartclient
  2. Reproduction is difficult and was only successful when running Ctest manually on all bugs. This points to a concurrency problem.
  3. The Test times out. Reason is that the STandard Library throws an Assertion Error in the list class. In WIndows, it can be found here:

C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\crt\src\list (no extension)
on line 990

  1. This line contains the code for the merge function. We tracked that down to

mitk::CoreObjectFactory::GetFileWriters()
where, on line 396 a merge is called on the file writer lists.

Someone with knowledege of that area should probably have a look that.

Correction. With

  1. Reproduction is difficult and was only successful when running Ctest

manually on all bugs. This points to a concurrency problem.

I meant "manually over all tests" of course

Test still failing. What is the status here?

Reassigned to Caspar/Keno, they already worked on it.

This bug kind of has slipped back into my area of expertise. It should be solved along with T14866. I assume this to be a duplicate, because of erroneous behaviour in the CoreObjectFactory in a concurrency situation.