Orthanc 1.4.2: Simulaneous C-MOVE and Query are not working?

Hi guys,

I’m experiencing the following issue with Orthanc 1.4.2. When a large C-Move is in progress from a remote modality, I can’t query that modality (for example, searching by Patient ID) at the same time.
Does anyone else experience this issue? Is there a fix for it?

Thanks!
Best Regards,
Georg

Hello,

First of all, please upgrade to Orthanc 1.5.0.

Sébastien-

Orthanc 1.5.0

Is there a program you built?
I want a macOS version.

2018年12月19日水曜日 0時18分11秒 UTC+9 Sébastien Jodogne:

Hey Sebastien, thanks for the swift response. I just tried building a docker container for 1.5.0, but it appears to have tests failing. Can you confirm?

Which tests are you referring to?

No new issue has been reported since the release of Orthanc 1.5.0

This is the script I use to get Orthanc:

#!/bin/bash

[[ $# -lt 1 ]] && { echo “synopsis: $0 <Orthanc Version | baseline>”; exit 1; }

set -e
cd

URL=http://lsb.orthanc-server.com/
VERSION_ORTHANC=$1

Download binaries compiled with Linux Standard Base

wget ${URL}/orthanc/${VERSION_ORTHANC}/Orthanc
wget ${URL}/orthanc/${VERSION_ORTHANC}/OrthancRecoverCompressedFile
wget ${URL}/orthanc/${VERSION_ORTHANC}/UnitTests -O - > UnitTests-Orthanc
wget ${URL}/orthanc/${VERSION_ORTHANC}/libModalityWorklists.so
wget ${URL}/orthanc/${VERSION_ORTHANC}/libServeFolders.so

chmod +x ./Orthanc
chmod +x ./OrthancRecoverCompressedFile
chmod +x ./UnitTests-Orthanc

Run the unit tests

echo ‘Running Unit Tests’
mkdir ~/UnitTests
cd ~/UnitTests
…/UnitTests-Orthanc

Recover space used by the unit tests

cd
rm -rf ./UnitTests
rm -rf ./UnitTests-Orthanc

Move the binaries to their final location

mkdir -p /usr/local/sbin/
mkdir -p /usr/local/bin/
mkdir -p /usr/local/share/orthanc/plugins/

mv ./Orthanc /usr/local/sbin/
mv ./OrthancRecoverCompressedFile /usr/local/bin/
mv ./libModalityWorklists.so /usr/local/share/orthanc/plugins/
mv ./libServeFolders.so /usr/local/share/orthanc/plugins/

Which is the download-orthanc.sh you use for the orthanc docker container. Executing UnitTests-Orthanc fails:

`
[----------] Global test environment tear-down
[==========] 211 tests from 58 test cases ran. (576 ms total)
[ PASSED ] 210 tests.
[ FAILED ] 1 test, listed below:
[ FAILED ] SharedLibrary.Basic

1 FAILED TEST
YOU HAVE 3 DISABLED TESTS

The command ‘/bin/sh -c bash ./download-orthanc.sh $ORTHANC_VERSION’ returned a non-zero code: 1
`

Please could you run, and copy/paste the output of the command:

…/UnitTests-Orthanc --gtest_filter=Shared

Of course, here is the output:

`
W1219 10:23:17.820165 OrthancConfiguration.cpp:159] Using the default Orthanc configuration
I1219 10:23:17.820365 Toolbox.cpp:1346] Using locale: “en_US.UTF-8” for case-insensitive comparison of strings
I1219 10:23:17.830446 Enumerations.cpp:2129] Default encoding for DICOM was changed to: Latin1
I1219 10:23:17.830797 FromDcmtkBridge.cpp:236] Using DCTMK version: 362
I1219 10:23:17.830969 FromDcmtkBridge.cpp:244] Loading the embedded dictionaries
I1219 10:23:17.858972 FromDcmtkBridge.cpp:256] Loading the embedded dictionary of private tags
I1219 10:23:17.867553 FromDcmtkBridge.cpp:2096] Registering JPEG Lossless codecs in DCMTK
I1219 10:23:17.867573 FromDcmtkBridge.cpp:2101] Registering JPEG codecs in DCMTK
Note: Google Test filter = Shared
[==========] Running 5 tests from 3 test cases.
[----------] Global test environment set-up.
[----------] 1 test from LRU
[ RUN ] LRU.SharedArchive
[ OK ] LRU.SharedArchive (0 ms)
[----------] 1 test from LRU (0 ms total)

[----------] 2 tests from MultiThreading
[ RUN ] MultiThreading.SharedMessageQueueBasic
[ OK ] MultiThreading.SharedMessageQueueBasic (4 ms)
[ RUN ] MultiThreading.SharedMessageQueueClean
[ OK ] MultiThreading.SharedMessageQueueClean (0 ms)
[----------] 2 tests from MultiThreading (4 ms total)

[----------] 2 tests from SharedLibrary
[ RUN ] SharedLibrary.Enumerations
[ OK ] SharedLibrary.Enumerations (0 ms)
[ RUN ] SharedLibrary.Basic
E1219 10:23:17.877780 OrthancException.h:85] Error while using a shared library (plugin): Shared library does not expose function “world”
E1219 10:23:17.877815 OrthancException.h:85] Error while using a shared library (plugin): Shared library does not expose function “_init”
unknown file: Failure
Unknown C++ exception thrown in the test body.
[ FAILED ] SharedLibrary.Basic (0 ms)
[----------] 2 tests from SharedLibrary (0 ms total)

[----------] Global test environment tear-down
[==========] 5 tests from 3 test cases ran. (4 ms total)
[ PASSED ] 4 tests.
[ FAILED ] 1 test, listed below:
[ FAILED ] SharedLibrary.Basic

1 FAILED TEST
The command ‘/bin/sh -c bash ./download-orthanc.sh $ORTHANC_VERSION’ returned a non-zero code: 1

`

The excerpt below indicates that your system library “/lib/x86_64-linux-gnu/libSegFault.so” does not publish the symbol “_init”, which is unexpected.

Which GNU/Linux distribution are your using?

That’s strange indeed. Looks like the usage of “_init” is new in 1.5.0, no? I’m attempting to build Orthanc from the “debian:buster-slim” image. The Docker Host (though this shouldn’t really matter) is running Linux x86_64 4.19.4

Note that building 1.4.2 also complains about the symbol “world”, but works:

`
Running Unit Tests
W1219 13:18:54.919184 OrthancInitialization.cpp:216] Using the default Orthanc configuration
I1219 13:18:54.919285 Toolbox.cpp:1372] Using locale: “en_US.UTF-8” for case-insensitive comparison of strings
I1219 13:18:54.922742 Enumerations.cpp:1918] Default encoding for DICOM was changed to: Latin1
I1219 13:18:54.922902 FromDcmtkBridge.cpp:236] Using DCTMK version: 362
I1219 13:18:54.922970 FromDcmtkBridge.cpp:244] Loading the embedded dictionaries
I1219 13:18:54.932164 FromDcmtkBridge.cpp:256] Loading the embedded dictionary of private tags
I1219 13:18:54.937246 FromDcmtkBridge.cpp:2093] Registering JPEG Lossless codecs in DCMTK
I1219 13:18:54.937261 FromDcmtkBridge.cpp:2098] Registering JPEG codecs in DCMTK
Note: Google Test filter = Shared
[==========] Running 5 tests from 3 test cases.
[----------] Global test environment set-up.
[----------] 1 test from LRU
[ RUN ] LRU.SharedArchive
[ OK ] LRU.SharedArchive (0 ms)
[----------] 1 test from LRU (0 ms total)

[----------] 2 tests from MultiThreading
[ RUN ] MultiThreading.SharedMessageQueueBasic
[ OK ] MultiThreading.SharedMessageQueueBasic (4 ms)
[ RUN ] MultiThreading.SharedMessageQueueClean
[ OK ] MultiThreading.SharedMessageQueueClean (0 ms)
[----------] 2 tests from MultiThreading (4 ms total)

[----------] 2 tests from SharedLibrary
[ RUN ] SharedLibrary.Enumerations
[ OK ] SharedLibrary.Enumerations (0 ms)
[ RUN ] SharedLibrary.Basic
E1219 13:18:54.945786 SharedLibrary.cpp:122] Shared library does not expose function “world”
[ OK ] SharedLibrary.Basic (0 ms)
[----------] 2 tests from SharedLibrary (0 ms total)

[----------] Global test environment tear-down
[==========] 5 tests from 3 test cases ran. (4 ms total)
[ PASSED ] 5 tests.
Stopped Unit Tests
`

Thanks for the feedback!

The fact that the test complains about missing “world” is the purpose of the unit tests.

Just committed the following changeset that removes the test about “_init”:

https://bitbucket.org/sjodogne/orthanc/commits/3254b36a5f9b6bce35c12ad57f8a831699408c02

This patch will be part of future Orthanc releases. In the meantime, you can solve your issue simply by skipping the problematic test:

…/UnitTests-Orthanc --gtest_filter=-SharedLibrary.Basic

Sébastien-

Thanks Sebastien, this indeed appears to be working with Orthanc 1.5.0! Thanks a lot for your effort!