[SERVER-25445] Write command explain on mirror config servers triggers assertion failure Created: 04/Aug/16  Updated: 01/Feb/17  Resolved: 26/Aug/16

Status: Closed
Project: Core Server
Component/s: Sharding
Affects Version/s: 3.0.12, 3.2.8
Fix Version/s: None

Type: Bug Priority: Major - P3
Reporter: Randolph Tan Assignee: Andy Schwerin
Resolution: Won't Fix Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: File no_explain.js    
Issue Links:
Depends
Related
related to SERVER-27864 SlaveOK reads against SCCC config ser... Closed
Operating System: ALL
Sprint: Sharding 2016-08-29, Sharding 2016-09-19
Participants:

 Description   

The issue is because the explain command does not check that writes are to the config servers (which the real write command does). This will eventually result with the DBClientMultiCommand calling say() on SyncClusterConnection multiple times, which in turn calls say on the 3 connections inside SyncClusterConnection. This results with the connection calling say() multiple times in a row (w/o recv) which is not supported and the assertion ("MessagingPort::call() wrong id got:") is triggered when recv is called.

In v3.2, a different kind of assertion that happens much earlier, complaining that it is expecting a replica set name from the connection string (it fails because SCCC is not a replSet connection)


Generated at Thu Feb 08 04:09:12 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.