Setting up Deadline - debugging a FranticX.Database.DatabaseConnectionException?

Me here again. Figured it out, looks like somehow I missed the fact that the mongo instance was not 5.0.27, something i thought we’d verified when moving to a remote server but yeah. So. For others, here’s a mini postmortem:

Symptoms

So much like this thread FranticX.Database.DatabaseConnectionException - Deadline - AWS Thinkbox Discussion Forums (thinkboxsoftware.com), you’ll have problems submitting. You won’t have problems running the client and/or monitor

Things you’ll see that would be puzzling are:

  • being able to use MongoDBCompass to easily connect to your db
  • running a Deadline Worker on a fresh collection in your mongodb database, and seeing it create alllll the deadline-required tables
  • seeing your Worker correctly report status messages that Monitor picks up
  • You will be able to make edits in Deadline Monitor to say plugin configuration, and see those reflected in the database as well.
  • RCS won’t work at all
  • slightly inconsistent error messages in the worker log that talk about connection issues

2024-06-25 18:10:36: Worker - An error occurred while updating the Worker’s info: An error occurred while trying to connect to the Database sunshine:27017. It is possible that the Mongo Database server is incorrectly configured, currently offline, blocked by a firewall, or experiencing network issues.
2024-06-25 18:10:36: Full error: An exception occurred while receiving a message from the server. (FranticX.Database.DatabaseConnectionException)

and

2024-06-25 18:20:31: at Deadline.Scheduling.JobRepositoryScan.PerformPendingJobScan(Boolean checkLastPendingJobTime, Boolean verbose, String region, Boolean logRepositoryHistory)
2024-06-25 18:20:31: ---------- Inner Stack Trace (System.IO.EndOfStreamException) ----------
2024-06-25 18:20:31: at MongoDB.Driver.Core.Misc.StreamExtensionMethods.ReadBytes(Stream stream, Byte buffer, Int32 offset, Int32 count, CancellationToken cancellationToken)
2024-06-25 18:20:31: at MongoDB.Driver.Core.Connections.BinaryConnection.ReceiveBuffer(CancellationToken cancellationToken)

Debugging

So, unfortunately, I still didn't find anything client-side to really pinpoint this, it was only when I got a hold of the container logs and saw this:

Specifically the line in yellow:

OP_DELETE is no longer supported

That opcode was deprecated in 5.0, and unsupported from 5.1 onwards. See: Legacy Opcodes - MongoDB Manual v7.0

...Fix

use the `5.0.27` tag :stuck_out_tongue:
1 Like