[SERVER-70068] Check if listener socket is TCP before attempting to set backlog queue length Created: 28/Sep/22  Updated: 29/Oct/23  Resolved: 13/Oct/22

Status: Closed
Project: Core Server
Component/s: None
Affects Version/s: None
Fix Version/s: 6.2.0-rc0

Type: Bug Priority: Major - P3
Reporter: Blake Oler Assignee: Jason Chan
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Backwards Compatibility: Fully Compatible
Operating System: ALL
Sprint: Service Arch 2022-10-03, Service Arch 2022-10-17
Participants:

 Description   

Background

When attempting to retrieve a listener socket's backlog queue length, we don't attempt to first check if the socket is TCP. The concept of a backlog queue length only exists in TCP and is not seen on Unix-domain sockets.

Problem caused

When starting up, the server will emit

"Error accepting new connection","attr":{"error":"Operation not supported"}

for each non-TCP listener. This will have no effect on the livelihood of these listeners, as the server swallows the error and recovers immediately.

Solution

Check if the socket is TCP after retrieving the acceptor record for a particular listener. If the socket is not TCP, do nothing. If it is, attempt to retrieve the backlog queue length.



 Comments   
Comment by Githook User [ 13/Oct/22 ]

Author:

{'name': 'Jason Chan', 'email': 'jason.chan@mongodb.com', 'username': 'jasonjhchan'}

Message: SERVER-70068 Check if listener socket is TCP before attempting to set backlog queue length
Branch: master
https://github.com/mongodb/mongo/commit/e30779f2b5bdcc9a5fff58515ec88dfd2545815a

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