Uploaded image for project: 'Ruby Driver'
  1. Ruby Driver
  2. RUBY-2215

Demarcate server vs driver diagnostics in exception messages

    • Type: Icon: Improvement Improvement
    • Resolution: Unresolved
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • Component/s: Dev Exp
    • Labels:
      None

      When authentication fails I get the following exception message currently:

      > Mongo::Auth::Unauthorized (User foo (mechanism: aws) is not authorized to access test (auth source: $external, used mechanism: MONGODB-AWS, used server: localhost:14421 (PRIMARY)): Received authentication for mechanism MONGODB-AWS which is unknown or not enabled (2: BadValue) (on localhost:14421))

      Here, I expect that (2: BadValue) is part of the server-generated message since the driver doesn't have a mapping from codes to code names.

      Here is an exception message produced for OperationFailure for comparison:

      > Mongo::Error::OperationFailure (no such command: 'pingx' (59) (on localhost:14421))

      In this message, 59 is the code returned by the server but the formatting of 59 in the parentheses is supplied by the driver, and the server-supplied text is just "no such command: 'pingx'".

      We should clearly indicate in exception messages produced by the driver which part of the message came from the server and which part was composed by the driver.

            Assignee:
            Unassigned Unassigned
            Reporter:
            oleg.pudeyev@mongodb.com Oleg Pudeyev (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: