Transfer Accelerator - Status 500 when sending Mammo Tomo Studies

Running into a bit of a strange issue when using the latest Orthanc on ubuntu and the latest Transfer Accelerator plugin. During testing, I have large CT and MRI studies (1000+ images) that I can push using the transfer accelerator either via lua script or from orthanc explorer, with no issues. I am now testing larger Mammo Tomosythesis studies (1.5GB) in size, and they are received via DICOm into Orthanc with no issue. When the lua script tries to transfer using the Transfers plugin, the job in the queue goes to failure. I have disabled the lua script to rule out this being the cause. Also tried adjusting the transfers.json file, here are my current settings:

/**

  • The following options control the configuration of the
  • transfers accelerator plugin for Orthanc.
    **/

“Transfers” : {
“HttpTimeout” : 240 // Can be increased on slow networks
“Threads” : 6, // Number of worker threads for one transfer
“Bucketsize” : 16384, // Optimal size for the bucket (in KB)
“CacheSize” : 1024, // Size of the memory cache to process DICOM files (in MB)
“MaxPushTransactions” : 10, // Maximum number of simultaneous receptions in push mode
“MaxHttpRetries” : 2 // Maximum number of HTTP retries for one bucket
}
}

In verbose logging I see the following behavior, resulting failures occur with the status 500 errors being reported:

I0512 00:25:02.230320 PluginsManager.cpp:172] Transfers accelerator reading DICOM instance: 12a78599-30357658-aa91403a-8f75fcb8-fe752840
I0512 00:25:02.230374 FilesystemStorage.cpp:155] Reading attachment “b7ffd7c0-5c30-4393-acf7-9d04effe75bf” of “DICOM” content type
I0512 00:25:02.312076 HttpClient.cpp:671] HTTP status code 200 after PUT request on: http://10.3.33.87:8443//transfers/push/0d09b175-75e1-47a9-95f9-1041eadcfc87/1
I0512 00:25:02.312649 PluginsManager.cpp:172] Transfers accelerator reading DICOM instance: 12a78599-30357658-aa91403a-8f75fcb8-fe752840
I0512 00:25:02.320415 FilesystemStorage.cpp:155] Reading attachment “b7ffd7c0-5c30-4393-acf7-9d04effe75bf” of “DICOM” content type
I0512 00:25:13.385422 HttpClient.cpp:671] HTTP status code 500 after PUT request on: http://10.3.33.87:8443//transfers/push/0d09b175-75e1-47a9-95f9-1041eadcfc87/3
E0512 00:25:13.385494 HttpClient.cpp:700] Error in HTTP request, received HTTP status 500 (Internal Server Error)
E0512 00:25:13.388475 PluginsManager.cpp:197] Exception while invoking plugin service 8006: Error in the network protocol
I0512 00:25:13.388514 PluginsManager.cpp:172] Reached the maximum number of retries for a HTTP query
I0512 00:25:14.451070 HttpClient.cpp:671] HTTP status code 500 after PUT request on: http://10.3.33.87:8443//transfers/push/0d09b175-75e1-47a9-95f9-1041eadcfc87/2
E0512 00:25:14.451118 HttpClient.cpp:700] Error in HTTP request, received HTTP status 500 (Internal Server Error)
E0512 00:25:14.453944 PluginsManager.cpp:197] Exception while invoking plugin service 8006: Error in the network protocol
I0512 00:25:14.454022 PluginsManager.cpp:172] Reached the maximum number of retries for a HTTP query
I0512 00:25:15.524850 HttpClient.cpp:671] HTTP status code 500 after PUT request on: http://10.3.33.87:8443//transfers/push/0d09b175-75e1-47a9-95f9-1041eadcfc87/4
E0512 00:25:15.524895 HttpClient.cpp:700] Error in HTTP request, received HTTP status 500 (Internal Server Error)
E0512 00:25:15.527848 PluginsManager.cpp:197] Exception while invoking plugin service 8006: Error in the network protocol
I0512 00:25:15.527885 PluginsManager.cpp:172] Reached the maximum number of retries for a HTTP query
I0512 00:25:16.627471 HttpClient.cpp:671] HTTP status code 500 after PUT request on: http://10.3.33.87:8443//transfers/push/0d09b175-75e1-47a9-95f9-1041eadcfc87/5
E0512 00:25:16.627661 HttpClient.cpp:700] Error in HTTP request, received HTTP status 500 (Internal Server Error)
E0512 00:25:16.631073 PluginsManager.cpp:197] Exception while invoking plugin service 8006: Error in the network protocol
I0512 00:25:16.631188 PluginsManager.cpp:172] Reached the maximum number of retries for a HTTP query
I0512 00:25:16.673821 HttpClient.cpp:671] HTTP status code 200 after DELETE request on: http://10.3.33.87:8443//transfers/push/0d09b175-75e1-47a9-95f9-1041eadcfc87

In further trying to rule out what may be going on, I am able to successfully do a standard peer transfer using the same (2) Orthanc servers. What I notice is that when the transfer gets to the large files, when using the transfer accelerators plugin, it appears to timeout when trying to Read the attachment. What I notice is that is looks like it is after about 10 seconds it fails with the status 500.

Is there something different with the transfers plugin vs the standard http/https peer transfer that I can adjust?

Hello,

This sentence: “After about 10 seconds it fails with the status 500” indicates that the HTTP timeout is at its default value of 10 seconds.

There is an issue in your configuration: The option “HttpTimeout” should not appear within the “Transfers” subsection. Instead, it should be part of the root section, as shown in:
http://book.orthanc-server.com/plugins/transfers.html#advanced-options

HTH,
Sébastien-

Thanks Sebastian. I removed from transfers.json, have the value HttpTimeout in main json config file set to 1000 on both Orthanc Servers, still same behavior using transfers plugin.

As a consequence, you’ll need to provide sample DICOM files, possibly anonymized, together with full configuration and exact instructions for the Orthanc community to independently reproduce your issue.

Are you running this behind Apache at all?

Not running behind Apache.