secondaryPreferred read preference is not forwarded to mongos

XMLWordPrintableJSON

    • Type: Bug
    • Resolution: Fixed
    • Priority: Unknown
    • 2.1.0
    • Affects Version/s: 1.2.3, 2.0.0
    • Component/s: None
    • None
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      The Rust driver currently follows the outdated wording of the server selection which instructs drivers not to forward secondaryPreferred read preferences to mongos. This guidance was intended for use with OP_QUERY, not OP_MSG, and results in secondaryPreferred reads always going to the primary.

      repro:

      #[tokio::main(flavor = "multi_thread", worker_threads = 5)]
      async fn main() -> Result<(), Box<dyn Error>> {
          let client = Client::with_uri_str("mongodb://127.0.0.1:27017").await.unwrap();
      
          let rp = ReadPreference::SecondaryPreferred { options: Default::default() };
          let doc = client.database("admin").run_command(doc! { "hello": 1 }, SelectionCriteria::ReadPreference(rp)).await?;
          assert!(!doc.get_bool("isWritablePrimary")?);
      
          Ok(())
      }
      
      

              Assignee:
              Abraham Egnor
              Reporter:
              Patrick Freed
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Created:
                Updated:
                Resolved: