Housekepper plugin the DB configuration has changed since last run, will reprocess the whole DB !

Ubuntu, Orthanc Osimis Docker
Regular updates of the docker image
I am using the same database for the last 4 years,
no changes to database configuration
i was not running housekeeper plugin due to previous issues
I had this message in my logs

W1009 23:09:28.229034 main.cpp:923] Orthanc has started
W1009 23:09:28.229282 PluginsManager.cpp:157] Starting Housekeeper worker thread
W1009 23:09:28.235530 PluginsManager.cpp:157] Housekeeper: your storage might still contain some dicom-as-json files → will perform housekeeping
W1009 23:09:28.235556 PluginsManager.cpp:157] Housekeeper: the DB configuration has changed since last run, will reprocess the whole DB !

Many thanks,
Kyriakos

Hi,

Actually, the message “the DB configuration has changed …” is a bit too generic. Here, the Housekeeper detects that you might still have dicom-as-json files since you have used old Orthanc versions in the past and these files can now be removed. So, yes, your DB has not changed but the Housekeeper might still perform some housekeeping.

Best regards,

Alain.

Hello everyone,

I’m using Orthanc 1.12.4 and the corresponding housekeeper plugin on an ubuntu server (without docker) and face this same housekeeper issue every time I restart Orthanc. Dicom-as-json files must have been all erased as I’ve updated Orthanc many times since the 1.9.x version and because housekeeper becomes idle after a while. Here is the log:

W1031 14:36:35.111822 MAIN main.cpp:2059] Orthanc version: 1.12.4
W1031 14:36:35.123393 MAIN OrthancConfiguration.cpp:109] Scanning folder “/etc/orthanc” for configuration files
W1031 14:36:35.126352 MAIN OrthancConfiguration.cpp:58] Reading the configuration from: “/etc/orthanc/orthanc.json”
W1031 14:36:35.129397 MAIN OrthancConfiguration.cpp:58] Reading the configuration from: “/etc/orthanc/serve-folders.json”
W1031 14:36:35.133183 MAIN OrthancConfiguration.cpp:58] Reading the configuration from: “/etc/orthanc/python.json”
W1031 14:36:35.133393 MAIN OrthancConfiguration.cpp:58] Reading the configuration from: “/etc/orthanc/stonewebviewer.json”
W1031 14:36:35.134869 MAIN OrthancConfiguration.cpp:58] Reading the configuration from: “/etc/orthanc/worklists.json”
W1031 14:36:35.136569 MAIN OrthancConfiguration.cpp:58] Reading the configuration from: “/etc/orthanc/gdcm.json”
W1031 14:36:35.136935 MAIN OrthancConfiguration.cpp:58] Reading the configuration from: “/etc/orthanc/mysql.json”
W1031 14:36:35.137804 MAIN OrthancConfiguration.cpp:58] Reading the configuration from: “/etc/orthanc/credentials.json”
W1031 14:36:35.138364 MAIN OrthancConfiguration.cpp:58] Reading the configuration from: “/etc/orthanc/OHIF.json”
W1031 14:36:35.141441 MAIN OrthancConfiguration.cpp:58] Reading the configuration from: “/etc/orthanc/housekeeper.json”
W1031 14:36:35.142503 MAIN OrthancConfiguration.cpp:58] Reading the configuration from: “/etc/orthanc/webviewer.json”
W1031 14:36:35.143731 MAIN OrthancConfiguration.cpp:58] Reading the configuration from: “/etc/orthanc/explorer2.json”
W1031 14:36:35.540882 MAIN main.cpp:917] Loading plugin(s) from: /usr/share/orthanc/plugins/
W1031 14:36:35.549577 MAIN PluginsManager.cpp:274] Registering plugin ‘indexer’ (version mainline)
W1031 14:36:35.551964 MAIN PluginsManager.cpp:158] OrthancIndexer is disabled
W1031 14:36:35.557335 MAIN PluginsManager.cpp:274] Registering plugin ‘delayed-deletion’ (version 1.12.3)
W1031 14:36:35.559119 MAIN PluginsManager.cpp:158] DelayedDeletion - plugin is loaded but not enabled (no “DelayedDeletion” section found in configuration)
W1031 14:36:35.563742 MAIN PluginsManager.cpp:274] Registering plugin ‘housekeeper’ (version 1.12.4)
W1031 14:36:35.563764 MAIN housekeeper:/Plugin.cpp:810] Housekeeper plugin is initializing
E1031 14:36:35.565489 MAIN housekeeper:/Plugin.cpp:894] Housekeeper invalid value for ‘LimitMainDicomTagsReconstructLevel’: ‘’
W1031 14:36:35.575262 MAIN PluginsManager.cpp:274] Registering plugin ‘wsi’ (version 2.0)
W1031 14:36:35.577041 MAIN PluginsManager.cpp:158] The whole-slide imaging plugin will use at most 20 threads to transcode the tiles
W1031 14:36:35.578751 MAIN PluginsManager.cpp:158] Support of IIIF is enabled in the whole-slide imaging plugin
W1031 14:36:35.594968 MAIN PluginsManager.cpp:274] Registering plugin ‘postgresql-index’ (version 5.1)
W1031 14:36:35.596069 MAIN PluginsManager.cpp:158] No available configuration for the PostgreSQL index plugin
W1031 14:36:35.606103 MAIN PluginsManager.cpp:274] Registering plugin ‘connectivity-checks’ (version 1.12.4)
W1031 14:36:35.615165 MAIN PluginsManager.cpp:274] Registering plugin ‘volview’ (version 1.1)
W1031 14:36:35.624228 MAIN PluginsManager.cpp:274] Registering plugin ‘stone-webviewer’ (version 2.6)
W1031 14:36:35.632937 MAIN PluginsManager.cpp:274] Registering plugin ‘orthanc-explorer-2’ (version 1.6.4)
W1031 14:36:35.641416 MAIN PluginsManager.cpp:158] Root URI to the Orthanc-Explorer 2 application: /ui/
W1031 14:36:35.665693 MAIN PluginsManager.cpp:274] Registering plugin ‘mysql-index’ (version 5.2)
W1031 14:36:35.690866 MAIN mysql-index:/IndexBackend.cpp:2798] The index plugin will use 40 connection(s) to the database, and will retry up to 10 time(s) in the case of a collision
W1031 14:36:35.694353 MAIN PluginsManager.cpp:274] Registering plugin ‘worklists’ (version 1.12.1)
W1031 14:36:35.694380 MAIN PluginsManager.cpp:158] Sample worklist plugin is initializing
W1031 14:36:35.695494 MAIN PluginsManager.cpp:158] Worklist server is disabled by the configuration file
W1031 14:36:35.702743 MAIN PluginsManager.cpp:274] Registering plugin ‘authorization’ (version 0.8.1)
W1031 14:36:35.702763 MAIN PluginsManager.cpp:158] Initializing the authorization plugin
W1031 14:36:35.703890 MAIN PluginsManager.cpp:158] No section “Authorization” in the configuration file, the authorization plugin is disabled
W1031 14:36:35.709651 MAIN PluginsManager.cpp:274] Registering plugin ‘transfers’ (version mainline)
W1031 14:36:35.719699 MAIN PluginsManager.cpp:274] Registering plugin ‘dicom-web’ (version 1.13)
W1031 14:36:35.724752 MAIN PluginsManager.cpp:158] URI to the DICOMweb REST API: /dicom-web/
W1031 14:36:35.727312 MAIN PluginsManager.cpp:158] DICOMWeb PublicRoot: /dicom-web/
W1031 14:36:35.727330 MAIN PluginsManager.cpp:158] URI to the WADO-URI API: /wado
W1031 14:36:35.755690 MAIN PluginsManager.cpp:274] Registering plugin ‘multitenant-dicom’ (version 1.12.3)
W1031 14:36:35.792075 MAIN PluginsManager.cpp:274] Registering plugin ‘ohif’ (version 1.2)
W1031 14:36:35.799859 MAIN PluginsManager.cpp:274] Registering plugin ‘serve-folders’ (version 1.12.1)
W1031 14:36:35.800820 MAIN PluginsManager.cpp:158] ServeFolders: Empty configuration file: No additional folder will be served!
W1031 14:36:35.800844 MAIN main.cpp:1722] Using a custom database from plugins
W1031 14:36:35.800852 MAIN OrthancInitialization.cpp:526] Storage directory: “/media/DATA/Orthanc-Storage”
E1031 14:36:35.828815 MAIN mysql-index:/MySQLDatabase.cpp:128] MySQL error (2002,HY000): Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’ (2)
W1031 14:36:35.832900 MAIN mysql-index:/RetryDatabaseFactory.cpp:52] Database is currently unavailable, retrying…
W1031 14:36:40.860750 MAIN HttpClient.cpp:1195] HTTPS will use the CA certificates from this file: /etc/orthanc
W1031 14:36:40.864890 MAIN LuaContext.cpp:95] Lua says: Lua toolbox installed
W1031 14:36:40.866222 MAIN LuaContext.cpp:95] Lua says: Lua toolbox installed
W1031 14:36:40.867404 MAIN ServerContext.cpp:575] Disk compression is disabled
W1031 14:36:40.867435 MAIN ServerIndex.cpp:376] No limit on the number of stored patients
W1031 14:36:40.867441 MAIN ServerIndex.cpp:396] No limit on the size of the storage area
W1031 14:36:40.872612 MAIN JobsEngine.cpp:273] The jobs engine has started with 20 threads
W1031 14:36:40.872671 MAIN main.cpp:308] Security risk in DICOM SCP: C-GET requests are always allowed, even from unknown modalities
W1031 14:36:40.872681 MAIN main.cpp:313] Security risk in DICOM SCP: C-MOOVE requests are always allowed, even from unknown modalities
W1031 14:36:40.874664 MAIN main.cpp:1329] DICOM server listening with AET ORTHANC on port: 4242
W1031 14:36:40.874738 MAIN HttpServer.cpp:2046] HTTP compression is enabled
W1031 14:36:40.874765 MAIN main.cpp:1064] Remote access is allowed but “AuthenticationEnabled” is not in the configuration, automatically enabling HTTP authentication for security
W1031 14:36:40.874800 MAIN main.cpp:1178] Remote LUA script execution is disabled
W1031 14:36:40.874808 MAIN main.cpp:1190] REST API cannot write to the file system bacause the “RestApiWriteToFileSystemEnabled” configuration is set to false. The URI /instances/…/export is disabled. This is the most secure configuration.
W1031 14:36:40.877329 MAIN HttpServer.cpp:1804] HTTP server listening on port: 8042 (HTTPS encryption is disabled, remote access is allowed)
W1031 14:36:40.877354 MAIN main.cpp:929] Orthanc has started
W1031 14:36:40.877429 HOUSEKEEPER PluginsManager.cpp:158] Starting Housekeeper worker thread
W1031 14:36:40.878833 MAIN PluginsManager.cpp:158] When using OE2 and the authorization plugin together, you must set ‘Authorization.CheckedLevel’ to ‘studies’. Unless you are using this orthanc only to generate tokens.
W1031 14:36:40.878891 HOUSEKEEPER housekeeper:/Plugin.cpp:521] Housekeeper: DicomWEB plugin might miss series metadata cache → will perform housekeeping
W1031 14:36:40.878909 HOUSEKEEPER housekeeper:/Plugin.cpp:521] Housekeeper: DicomWEB plugin might miss series metadata cache → will perform housekeeping
W1031 14:36:40.878916 HOUSEKEEPER housekeeper:/Plugin.cpp:675] Housekeeper: the DB configuration has changed since last run, will reprocess the whole DB !

Thanks a lot for your help.
Nicolas

PS: housekeeper runs at night and that’s why nothing more appears in the log at that time

Hi @NAA

It seems the housekeeper plugin does not read its previous state correctly.

If you have access to the MySQL DB, you can check the value of property 1025 in the table ServerProperties.

If there are multiple entries, then, you should configure the DatabaseServerIdentifier although this is normally only mandatory in a Docker environment.

HTH,

Alain