S3 (object) Storage Plugin Upgrade Issue

Hi Team,

We have Orthanc 1.9.0 in use with AWS S3 Plugin (<1.2) in use.

It saves both a .dcm and a .unk file to storage.

I updated our systems to use Orthanc 1.9.3 and AWS S3 Plugin 1.2.

Unfortunately, the S3 plugin causes a 500 error when trying to read the tags from a previously stored file. From Orthanc logs, the error is:

E0519 10:35:49.777387 PluginsManager.cpp:164] AWS S3 Storage: error while reading object c98d26e9-10ad-47ab-be3b-7208d6f8f569: error while reading file c98d26e9-10ad-47ab-be3b-7208d6f8f569dcm.head: object not found !

I have replicated this issue with the following steps:

  1. Using osimis/orthanc:21.2.0 and compile the S3 plugin based on commit “8a7a5defd5d0”.
  2. Using docker-compose & minio, run this container and upload a dicom file. This will create 2 files in minio xxx.dcm & xxx.unk
  3. Using osimis/orthanc:21.5.1 and S3 plugin version 1.2, create a new container
  4. Using this new container and the same orthanc DB & minio files, call /instances/xxx/tags. This will return a 500 error and the orthanc logs will include the message above.
    It looks like the S3 Plugin is trying to read a dcm.head file, where none exists. Where as it should be looking for a .unk file.

I have attached an example docker-compose.yml file along with a Orthanc database created in Orthanc 1.9.0 and the contents of a minio /data directory. You can use this to replicate the issue.

I experienced the same issue when upgrading an existing AWS installation as well as when testing using minio.

I hope this helps replicate the issue, let me know if I can help in any other way.

Cheers,

James

docker-compose.dev.yml (1 KB)

orthanc1.9-data.zip (22.8 KB)

Hi James,

Orthanc has introduced a new type of files (type 3: FileContentType_DicomUntilPixelData) that was unknown to the S3 plugin at that time hence the .unk extension.
And now, the latest S3 plugin is looking for .dcm.head files (note that there was a typo and the first dot was missing. it has been fixed a few minutes ago: https://hg.orthanc-server.com/orthanc-object-storage/rev/9d03e24dafc1)

Note that, since you are using storage compression, these .dcm.head files are still required.

Therefore, you should actually rename all your .unk files into .dcm.head files. I have tested it with your test setup and it works.

Sorry for the inconvenience.

Alain.

Thanks for the update Alain and how to fix it.

Thanks for all your and all the orthanc teams’ hard work!

James