[SERVER-46900] Prohibit operations on system.profile inside of transactions Created: 16/Mar/20  Updated: 29/Oct/23  Resolved: 01/May/20

Status: Closed
Project: Core Server
Component/s: None
Affects Version/s: None
Fix Version/s: 4.4.0-rc6, 4.7.0

Type: Bug Priority: Major - P3
Reporter: Maria van Keulen Assignee: Maria van Keulen
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Backports
Depends
Documented
is documented by DOCS-13625 Investigate changes in SERVER-46900: ... Closed
Related
related to SERVER-47835 Un-blacklist txn_passthrough_runner_s... Closed
related to SERVER-44854 Ensure collections with commit timest... Closed
is related to SERVER-48309 Remove 'requires_fcv_46' tag from 'ba... Closed
Backwards Compatibility: Fully Compatible
Operating System: ALL
Backport Requested:
v4.4
Sprint: Execution Team 2020-04-20, Execution Team 2020-05-04, Execution Team 2020-05-18
Participants:
Case:

 Description   

Presently, system.profile is the only non-replicated collection that can be read from in a multi-document transaction (we exclude operations on local from transactions).

This collection does not have a commit timestamp with which to set its minimum visible snapshot. This collection also does not require an ID index build, hence will not have its minimum visible snapshot set to the cluster time via the ID index build. It can therefore not have a minimum visible snapshot be set.

We believe the best solution for this is to prohibit operations on the system.profile collection inside of a transaction.



 Comments   
Comment by Henrik Edin [ 19/May/20 ]

Thanks maria.vankeulen! I filed SERVER-48309 to do it.

Comment by Maria van Keulen [ 15/May/20 ]

CC henrik.edin I think the requires_fcv_46 tag can be removed from https://github.com/mongodb/mongo/blob/6b38c78843e7eb58dc344d88903727762d7d486d/jstests/core/txns/banned_collection_reads_in_txn.js in master now that SERVER-46900 has been backported to 4.4.

Comment by Githook User [ 08/May/20 ]

Author:

{'name': 'Maria van Keulen', 'email': 'maria@mongodb.com', 'username': 'mvankeulen94'}

Message: SERVER-46900 Prohibit transaction operations on system.profile

(cherry picked from commit e4821bc15a083d1d156fa1ff7330ad5a1f985f9c)
Branch: v4.4
https://github.com/mongodb/mongo/commit/ab533026f3c32a4305a641a9b9a389ce5f769890

Comment by Githook User [ 01/May/20 ]

Author:

{'name': 'Maria van Keulen', 'email': 'maria@mongodb.com', 'username': 'mvankeulen94'}

Message: SERVER-46900 Prohibit transaction operations on system.profile
Branch: master
https://github.com/mongodb/mongo/commit/e4821bc15a083d1d156fa1ff7330ad5a1f985f9c

Comment by Maria van Keulen [ 28/Apr/20 ]

We already prohibit writes to system collections as of SERVER-34157 and SERVER-47400. In order to prohibit reads, it should be fine to exclude all operations on system.profile inside transactions, similarly to what we do for collections in local.

Comment by Connie Chen [ 19/Mar/20 ]

we believe we should prohibit reads from system.profile in multi-doc txns

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