[GODRIVER-1772] mongo.Client blocked for ever Created: 21/Oct/20  Updated: 27/Oct/23  Resolved: 19/Nov/20

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

Type: Bug Priority: Major - P3
Reporter: Name No Assignee: Kevin Albertson
Resolution: Gone away Votes: 0
Labels: None
Σ Remaining Estimate: Not Specified Remaining Estimate: Not Specified
Σ Time Spent: Not Specified Time Spent: Not Specified
Σ Original Estimate: Not Specified Original Estimate: Not Specified

Sub-Tasks:
Key
Summary
Type
Status
Assignee
GODRIVER-1814 mongo client has i/o timeout after ne... Sub-task Closed  

 Description   

Hi,

I create a mongo Client for db operations like

 

cli.Database("database").Collection("table").FindOneAndUpdate(xxxxx)

It works as expected.

However, after some days, the operations fails with errors like these:

connection(gd07v.tq.bjzt.qianxin-inc.cn:27017[-4788]) incomplete read of message header: read tcp 172.17.0.103:35266->10.47.88.7:27017: i/o timeout
auth error: sasl conversation error: unable to authenticate using mechanism "SCRAM-SHA-256": context deadline exceeded
context deadline exceeded
connection() : dial tcp: i/o timeout
connection() : dial tcp: i/o timeout
connection() : dial tcp: i/o timeout
sasl conversation error: unable to authenticate using mechanism "SCRAM-SHA-256": context deadline exceeded
context deadline exceeded
context deadline exceeded
incomplete read of message header: read tcp 172.17.0.103:35408->10.47.88.7:27017: i/o timeout
auth error: sasl conversation error: unable to authenticate using mechanism "SCRAM-SHA-256": context deadline exceeded
auth error: sasl conversation error: unable to authenticate using mechanism "SCRAM-SHA-256": context deadline exceeded
connection() : dial tcp: i/o timeout
auth error: sasl conversation error: unable to authenticate using mechanism "SCRAM-SHA-256": context deadline exceeded
connection() : dial tcp: i/o timeout 

 

Ok, maybe some network problem occurs, but what I expected is it should return back to normal after the problem disappears.

While, in fact, after the last error message has been reported, the next operation will block and never return.  Even I add a context.WithTimeout context for the operation.

 

It keeps blocked even the network has been restored.  

How can I recovery from this blocking. 

 

 

 

 



 Comments   
Comment by Backlog - Core Eng Program Management Team [ 19/Nov/20 ]

There hasn't been any recent activity on this ticket, so we're resolving it. Thanks for reaching out! Please feel free to comment on this if you're able to provide more information.

Comment by Kevin Albertson [ 04/Nov/20 ]

Hi zylthinking@gmail.com, thank you for reporting!

A few details may help us diagnose this issue. What version of the Go driver are you using? What system are you running on? And against what MongoDB server version?

As you indicate, the error incomplete read of message header: read tcp 172.17.0.103:35266->10.47.88.7:27017: i/o timeout indicates an issue reading a server response from the network.

While, in fact, after the last error message has been reported, the next operation will block and never return. Even I add a context.WithTimeout context for the operation.

That next operation is also a FindOneAndUpdate? If possible, are you able to determine where the blocking occurs (e.g. by attaching a debugger)?

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