Slicer build error on Windows on the dashboard

Since January 21, Slicer build on Windows has been failing (4 out of 5 cases) - see dashbaord with this error:

LINK : fatal error LNK1104: cannot open file 'D:\D\P\S-0-build\DCMTK-build\bin\Release\ofstd.dll' [D:\D\P\S-0-build\DCMTK-build\ofstd\libsrc\ofstd.vcxproj] [D:\D\P\S-0-build\DCMTK.vcxproj]

There was a huge CTK update for the DICOM visual browser, but it should not affect DCMTK build. It is also odd that one build succeeded.

@Sam_Horvath OR @jcfr could you have a look? Does the file exist? Does restarting the build fixes the problem? Has anything been changed on the factory machine around January 21?

Looking at it now, will post back soon.

1 Like

So, looking at the factory, the file exists, but there appears to be an executable hanging in the background that is holding the DLL:

dcmqrscp.exe
Killing that allows DCMTK to proceed. I will make sure we get a full build with extensions out today.
The build that succeeded coincides with a reboot of the machine I think.

Now looking into why that process is remaining open.

1 Like

Suspicious commit:

1 Like

@jcfr Do we need to add a similar commit to this one to ensure that dcmqrscp is killed?

1 Like

I also had to kill the process earlier this week. I originally thought the process was running due to tests I ran while testing CTK manually.

Since when Slicer is built, we do not explicitly run the CTK tests, I am not sure the linked commit is the culprit.

I will follow-up when I have an update.

2 Likes

We may have to look into the following:

Modules/Scripted/DICOMLib/DICOMProcesses.py
Applications/SlicerApp/Testing/Python/JRC2013Vis.py

That are both starting the dcmqrscp process, I will further review later this evening.

Independently of addressing this, we will also look into updating the dashboard script so that it makes sure all instance of DCMTK application are “terminated” before initiating the next cycle of nightly build.

1 Like

Thanks for the investigations!

If you have the chance, it would be great if you could trigger a Slicer build/package/upload for the Slicer Preview Release so that users get a chance to test out Davide’s latest DICOM browser features and fixes.

1 Like

Yep, a build has been started and is in progress.

2 Likes

dcmqrscp is a server and Windows firewall may show a popup asking the user for permission to open the port. This popup may interfere with the test exiting cleanly. If the user gave the permission once then I think it is not asked again for the same executable file (full path).

You can have a look at the list of allowed apps in the Control Panel\System and Security\Windows Defender Firewall\Allowed apps:

Today windows build has failed as well :frowning: and the last available Windows download is from 23. Would be possible for you to check again @Sam_Horvath ? thanks in advance.

Will do. I think it is the same issue, just not yet resolved.

Re: latest build, the download page for me has the build I triggered yesterday, and that should have the latest changes from the visual DICOM browser.

I did note during that build yesterday that it was taking o very long time for the download page to update.

Another way to get the most recent package is from the cdash site: CDash, the yellow package next to the build name.

Ah yes, now it is the latest version (this morning it was still the 23th). thanks for looking into it :slight_smile:

It is indeed a server, we need to also understand which test is starting the server.

Away from computer travelling, i didn’t have a chance to further look into this.

This popup may interfere with the test exiting cleanly. If the user gave the permission once then I think it is not asked again for the same executable file (full path).

You can have a look at the list of allowed apps in the Control Panel\System and Security\Windows Defender Firewall\Allowed apps:

@lassoan Thanks for the detailed instructions, the settings have been updated accordingly.

Today’s dasboard didn’t report any issues related to the dcmqrscp process :white_check_mark:

Thanks everyone for your input and help to sort this out :pray:

2 Likes

After inspecting the process explorer (following similar error reported on the dashboard), the dcmqrscp process still persists once the Slicer (or Slicer extension ?) tests have been executed:

I will investigate and report back.

Until we further improve the lifecycle associated with the execution of the dcmqrscp, a daily job has been setup to kill the process using before the the Preview build is started.

For reference, the following is executed:

taskkill /F /T /IM dcmqrscp.exe