I’m getting this error on trying to ping my DB.
mongodb+srv://hosteldb.e3ayhyn.mongodb.net/?retryWrites=true&w=majority&authSource=%24external&authMechanism=MONGODB-X509&tlsCertificateKeyFile=X509-cert-application.pem
Connected successfully.
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Error { kind: ServerSelection { message: "Server selection timeout: No available servers. Topology: { Type: ReplicaSetNoPrimary, Servers: [ { Address: ac-hikpf5h-shard-00-02.e3ayhyn.mongodb.net:27017, Type: Unknown, Error: No such file or directory (os error 2) }, { Address: ac-hikpf5h-shard-00-01.e3ayhyn.mongodb.net:27017, Type: Unknown, Error: No such file or directory (os error 2) }, { Address: ac-hikpf5h-shard-00-00.e3ayhyn.mongodb.net:27017, Type: Unknown, Error: No such file or directory (os error 2) }, ] }" }, labels: {}, wire_version: None, source: None }', src/main.rs:16:70
stack backtrace:
0: 0x558c9867b9a0 - std::backtrace_rs::backtrace::libunwind::trace::h32eb3e08e874dd27
at /rustc/897e37553bba8b42751c67658967889d11ecd120/library/std/src/../../backtrace/src/backtrace/libunwind.rs:93:5
1: 0x558c9867b9a0 - std::backtrace_rs::backtrace::trace_unsynchronized::haa3f451d27bc11a5
at /rustc/897e37553bba8b42751c67658967889d11ecd120/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
2: 0x558c9867b9a0 - std::sys_common::backtrace::_print_fmt::h5b94a01bb4289bb5
at /rustc/897e37553bba8b42751c67658967889d11ecd120/library/std/src/sys_common/backtrace.rs:66:5
3: 0x558c9867b9a0 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::hb070b7fa7e3175df
at /rustc/897e37553bba8b42751c67658967889d11ecd120/library/std/src/sys_common/backtrace.rs:45:22
4: 0x558c986a10de - core::fmt::write::hd5207aebbb9a86e9
at /rustc/897e37553bba8b42751c67658967889d11ecd120/library/core/src/fmt/mod.rs:1202:17
5: 0x558c98675a15 - std::io::Write::write_fmt::h3bd699bbd129ab8a
at /rustc/897e37553bba8b42751c67658967889d11ecd120/library/std/src/io/mod.rs:1679:15
6: 0x558c9867d1d3 - std::sys_common::backtrace::_print::h7a21be552fdf58da
at /rustc/897e37553bba8b42751c67658967889d11ecd120/library/std/src/sys_common/backtrace.rs:48:5
7: 0x558c9867d1d3 - std::sys_common::backtrace::print::ha85c41fe4dd80b13
at /rustc/897e37553bba8b42751c67658967889d11ecd120/library/std/src/sys_common/backtrace.rs:35:9
8: 0x558c9867d1d3 - std::panicking::default_hook::{{closure}}::h04cca40023d0eeca
at /rustc/897e37553bba8b42751c67658967889d11ecd120/library/std/src/panicking.rs:295:22
9: 0x558c9867cebf - std::panicking::default_hook::haa3ca8c310ed5402
at /rustc/897e37553bba8b42751c67658967889d11ecd120/library/std/src/panicking.rs:314:9
10: 0x558c9867d87a - std::panicking::rust_panic_with_hook::h7b190ce1a948faac
at /rustc/897e37553bba8b42751c67658967889d11ecd120/library/std/src/panicking.rs:698:17
11: 0x558c9867d777 - std::panicking::begin_panic_handler::{{closure}}::hbafbfdc3e1b97f68
at /rustc/897e37553bba8b42751c67658967889d11ecd120/library/std/src/panicking.rs:588:13
12: 0x558c9867be4c - std::sys_common::backtrace::__rust_end_short_backtrace::hda93e5fef243b4c0
at /rustc/897e37553bba8b42751c67658967889d11ecd120/library/std/src/sys_common/backtrace.rs:138:18
13: 0x558c9867d492 - rust_begin_unwind
at /rustc/897e37553bba8b42751c67658967889d11ecd120/library/std/src/panicking.rs:584:5
14: 0x558c97b3d373 - core::panicking::panic_fmt::h8d17ca1073d9a733
at /rustc/897e37553bba8b42751c67658967889d11ecd120/library/core/src/panicking.rs:142:14
15: 0x558c97b3d4c3 - core::result::unwrap_failed::hfaddf24b248137d3
at /rustc/897e37553bba8b42751c67658967889d11ecd120/library/core/src/result.rs:1785:5
16: 0x558c97b6c8b8 - core::result::Result<T,E>::unwrap::h7cfaf9f63865626d
at /rustc/897e37553bba8b42751c67658967889d11ecd120/library/core/src/result.rs:1107:23
17: 0x558c97b4e432 - rust_consumer::main::hab342cdb996c6973
at /workspaces/HostelMan/document-verification/rust-consumer/src/main.rs:16:20
18: 0x558c97b3d9db - core::ops::function::FnOnce::call_once::ha36fa24bcea7fbf0
at /rustc/897e37553bba8b42751c67658967889d11ecd120/library/core/src/ops/function.rs:248:5
19: 0x558c97b4ea3e - std::sys_common::backtrace::__rust_begin_short_backtrace::hf46ea52f7fc1b996
at /rustc/897e37553bba8b42751c67658967889d11ecd120/library/std/src/sys_common/backtrace.rs:122:18
20: 0x558c97b4fed1 - std::rt::lang_start::{{closure}}::h9ec016e26b03fa68
at /rustc/897e37553bba8b42751c67658967889d11ecd120/library/std/src/rt.rs:166:18
21: 0x558c986722af - core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &F>::call_once::hb69be6e0857c6cfb
at /rustc/897e37553bba8b42751c67658967889d11ecd120/library/core/src/ops/function.rs:283:13
22: 0x558c986722af - std::panicking::try::do_call::h396dfc441ee9c786
at /rustc/897e37553bba8b42751c67658967889d11ecd120/library/std/src/panicking.rs:492:40
23: 0x558c986722af - std::panicking::try::h6cdda972d28b3a4f
at /rustc/897e37553bba8b42751c67658967889d11ecd120/library/std/src/panicking.rs:456:19
24: 0x558c986722af - std::panic::catch_unwind::h376039ec264e8ef9
at /rustc/897e37553bba8b42751c67658967889d11ecd120/library/std/src/panic.rs:137:14
25: 0x558c986722af - std::rt::lang_start_internal::{{closure}}::hc94720ca3d4cb727
at /rustc/897e37553bba8b42751c67658967889d11ecd120/library/std/src/rt.rs:148:48
26: 0x558c986722af - std::panicking::try::do_call::h2422fb95933fa2d5
at /rustc/897e37553bba8b42751c67658967889d11ecd120/library/std/src/panicking.rs:492:40
27: 0x558c986722af - std::panicking::try::h488286b5ec8333ff
at /rustc/897e37553bba8b42751c67658967889d11ecd120/library/std/src/panicking.rs:456:19
28: 0x558c986722af - std::panic::catch_unwind::h81636549836d2a25
at /rustc/897e37553bba8b42751c67658967889d11ecd120/library/std/src/panic.rs:137:14
29: 0x558c986722af - std::rt::lang_start_internal::h6ba1bb743c1e9df9
at /rustc/897e37553bba8b42751c67658967889d11ecd120/library/std/src/rt.rs:148:20
30: 0x558c97b4feaa - std::rt::lang_start::h65289c0e3cdf7e56
at /rustc/897e37553bba8b42751c67658967889d11ecd120/library/std/src/rt.rs:165:17
31: 0x558c97b4ea21 - main
32: 0x7f20c1cbed0a - __libc_start_main
33: 0x558c97b3d6aa - _start
34: 0x0 - <unknown>
Here’s my code:
fn db_init() -> Client {
// Path to certificate
let mongo_certificate = env::var("MONGODB_CERTIFICATE").unwrap();
// MongoDB connection URI
let uri = "mongodb+srv://hosteldb.e3ayhyn.mongodb.net/?retryWrites=true&w=majority&authSource=%24external&authMechanism=MONGODB-X509&tlsCertificateKeyFile=".to_owned()+ &mongo_certificate;
println!("{}", uri);
let client_options = ClientOptions::parse(uri).unwrap();
// Get a handle to the cluster
let client = Client::with_options(client_options).unwrap();
// List the names of the databases in that cluster
for db_name in client.list_database_names(None, None) {
println!("{:?}", db_name.len());
}
// Ping the server to see if you can connect to the cluster
client
.database("University")
.run_command(doc! {"ping": 1}, None)
.unwrap();
println!("Connected successfully.");
client
}
I have it running in a docker container. Go driver in same setting and on same network works perfectly fine. I don’t understand the issue.