Project-MONAI/monai-deploy-informatics-gateway

MongoDB client connection string not parsed correctly any more

dewet22 opened this issue · 0 comments

Description

Between 0.5.0-beta.12 and 0.5.0-beta.18 (no releases in-between? also no git tags I can find?) it seems the parsing for MongoDB connection strings/database names was broken. This config worked before but resulted in a stack trace after updating the docker image to .18:

      ...
      "ConnectionStrings": {
        "Type": "mongodb",
        "DatabaseName": "InformaticsGateway"
      },
      ...

Injected via env variable is the connection string, in order to load it from kubernetes secrets, although that doesn't seem to make a difference since the same behaviour exhibits when that is put in the json config file as well:

ConnectionStrings__InformaticsGatewayDatabase=mongodb://mig:xxx@mongodb:27017/InformaticsGateway

I've verified that connection string works across MongoDB versions 5, 6 and 7 using mongosh so it isn't an authentication issue.

Relevant stack trace:

│ 2024-02-27 22:47:00.8535|3011|ERROR|Monai.Deploy.InformaticsGateway.Services.Connectors.PayloadAssembler|EventId=3011, EventName=ErrorProcessingBuckets|Error while processing buckets/payloads. System.ArgumentException:  │
│ Database names must be non-empty and not contain '.' or the null character. (Parameter 'databaseName')                                                                                                                      │
│    at MongoDB.Driver.Core.Misc.Ensure.That[T](T value, Func`2 assertion, String paramName, String message)                                                                                                                  │
│    at MongoDB.Driver.DatabaseNamespace..ctor(String databaseName)                                                                                                                                                           │
│    at MongoDB.Driver.MongoClient.GetDatabase(String name, MongoDatabaseSettings settings)                                                                                                                                   │

Configuration

  • Informatics Gateway version/commit: 0.4.1 running stable in production, I was investigating upgrading to latest/0.5.0-beta.90 and worked backwards
  • OS and version (distro if applicable): Amazon Linux on EKS
  • Kubernetes version (if applicable): 1.29
  • Docker version (if applicable): unknown
  • Installation source (NGC, Dockerhub, or something else): custom helm charts pulling from Dockerhub
  • Hardware configuration (CPU, GPU, memory, storage, etc...): n/a

Regression?

Yes, works fine in 0.4.1 until 0.5.0-beta.12, seems broken after that. I've tried to look through commits since 2023-09-22 which was the last known good point but GitHub's UI is just frustrating me.