[SERVER-28756] Remove TODO SERVER-28756 comment and continue disallowing transactions on the config database through mongos Created: 12/Apr/17  Updated: 22/Nov/22  Resolved: 22/Nov/22

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

Type: Task Priority: Major - P3
Reporter: Kaloian Manassiev Assignee: Jason Zhang
Resolution: Done Votes: 0
Labels: ShardedTxn:Testing, max-triage, neweng, open_todo_in_code, sharding-nyc-subteam3
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Depends
depends on SERVER-51070 Get rid of writeConfigServerDirect fo... Closed
Related
is related to SERVER-42114 Allow single RS transactions to run o... Closed
Backwards Compatibility: Fully Compatible
Sprint: Sharding NYC 2022-11-28
Participants:

 Description   

SERVER-42114 had added a TODO SERVER-28756 comment to follow up after mongos stopped omitting the txnNumber field when writing to the config database. The special codepath ShardingCatalogClientImpl::writeConfigServerDirect() is what caused the txnNumber to be omitted from writes to the config database through mongos. SERVER-51070 removed the writeConfigServerDirect() function which had special retry logic for writes to the config database.

After some internal discussion, we don't believe there is value to permit end users to run replica set transactions or cross-shard transactions on the config database through mongos. The remaining work for SERVER-28756 is to remove the TODO SERVER-28756 comment and continue disallowing transactions on the config database through mongos.

// TODO SERVER-28756: Change allowTransactionsOnConfigDatabase to true once we fix the bug
// where the mongos custom write path incorrectly drops the client's txnNumber.
auto allowTransactionsOnConfigDatabase = false;
validateSessionOptions(*_osi, command->getName(), nss, allowTransactionsOnConfigDatabase);


Original title

Remove the custom CSRS config server write retry logic

Original description

In order to support the continuous stepdown suite we implemented a custom write retry logic. Once retriable writes are supported by the server by default, this logic will no longer be necessary in all the places we put it and should be removed or at the very least consolidated within ShardRemote.



 Comments   
Comment by Githook User [ 22/Nov/22 ]

Author:

{'name': 'Jason Zhang', 'email': 'jason.zhang@mongodb.com', 'username': 'jz1242'}

Message: SERVER-28756 Remove TODO SERVER-28756 comment and continue disallowing transactions on the config database through mongos
Branch: master
https://github.com/mongodb/mongo/commit/c9a912b2757dacc50462a88197250677d73af69c

Comment by Kaloian Manassiev [ 15/Jun/22 ]

As we discussed on Slack: I don't see any reason to allow that, so it is fine with me to prohibit them.

Comment by Tommaso Tocci [ 31/May/22 ]

Putting this in needs scheduling even though we think it already went away

Comment by Jack Mulrow [ 25/Jul/19 ]

The custom logic also drops the client's txnNumber, which prevented us from allowing transactions to run against the config database through mongos in SERVER-42114.

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