[GODRIVER-2934] Investigate OS differences in DNS and Timeout errors Created: 07/Aug/23  Updated: 05/Feb/24

Status: Backlog
Project: Go Driver
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Improvement Priority: Unknown
Reporter: Preston Vasquez Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Related
related to GODRIVER-2792 Switch to Supported Build Hosts Closed
related to GODRIVER-3110 [Build Failure] 18._Azure_IMDS_Creden... Closed
related to GODRIVER-3120 TestClientSideEncryptionProse/11._kms... Investigating
Documentation Changes Summary:

1. What would you like to communicate to the user about this feature?
2. Would you like the user to see examples of the syntax and/or executable code and its output?
3. Which versions of the driver/connector does this apply to?


 Description   

There are differences in DNS errors returned by Ubuntu 18.04 and 20.04 . Namely, when running the following test:

TestClientSideEncryptionProse/7._custom_endpoint 

See here for an example: https://parsley.mongodb.com/test/mongo_go_driver_tests_42_plus_zlib_zstd_support__version~latest_os_ssl_40~ubuntu2004_64_go_1_20_test_replicaset_auth_nossl_patch_3efbd23a061a4069af96e56b894f4f72bcd51999_64cd9b4cd6d80a3c8e5e519e_23_08_05_00_44_12/0/08d34aefd7aaf227df0beac7993d28c6?bookmarks=0,16745,23928&shareLine=16551

The "no such hosts" error returned by 18.04 is expected , but when upgrading to 20.04 you get the following:

expected error dial tcp: lookup doesnotexist.invalid on 127.0.0.53:53: server misbehaving to contain substring 'no such host' 

This still comes from the Go DNS Lookup, here

Definition of done: Identify the reason why a different DNS results with different Ubuntu versions. Determine if the "misbehaving" error is masking a bug in the Go Driver.

--- 

Additionally, the following test results in different timeout errors betwen RHEL 8.7 and all other OS:

TestClientSideEncryptionProse/18._Azure_IMDS_Credentials/Case_6:_Slow_Response 

Here is an example:

https://parsley.mongodb.com/test/mongo_go_driver_tests_latest_zlib_zstd_support__version~latest_os_ssl_40~rhel87_64_go_1_20_test_replicaset_auth_nossl_patch_7fa4f6d1f2fb3725118a8084ee19c7c77fa9bc13_65b972f732f417bd50811a62_24_01_30_22_07_01/0/5ff6b7bd9bfb2d35c7e9dd2998509463?shareLine=15031

Both come from the "send" net/http method. The Go version also seems to matter here, versions older than 1.20 will result in the deadline exceeded error.



 Comments   
Comment by Steve Silvester [ 05/Feb/24 ]

Potential solution is to check the error type vs an error string.

Comment by Steve Silvester [ 05/Feb/24 ]

PR: https://github.com/mongodb/mongo-go-driver/pull/1535

Comment by Steve Silvester [ 05/Feb/24 ]

https://danp.net/posts/macos-dns-change-in-go-1-20/

Generated at Thu Feb 08 08:39:41 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.