[SERVER-47713] Remove intrusive_ptr reference decrement in expression context Created: 23/Apr/20  Updated: 29/Oct/23  Resolved: 15/May/20

Status: Closed
Project: Core Server
Component/s: None
Affects Version/s: None
Fix Version/s: 4.7.0

Type: Bug Priority: Major - P3
Reporter: Eric Cox (Inactive) Assignee: Jacob Evans
Resolution: Fixed Votes: 0
Labels: qopt-team
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Problem/Incident
Backwards Compatibility: Fully Compatible
Operating System: ALL
Sprint: Query 2020-05-18, Query 2020-06-01
Participants:
Linked BF Score: 45

 Description   

During SERVER-47191 let paramater expressions are agg expressions. They are evaluated during expression context construction and stored in the variables member of ExpressionContext, but you need an expression context to evaluate an agg expression. As a temporary hack we bump the ref count to this and use this to evaluate let params. We detach the temporary intrusive_ptr in an BLOCK_ON_EXIT scope. Undo this sorcery.



 Comments   
Comment by Githook User [ 16/May/20 ]

Author:

{'name': 'Jacob Evans', 'email': 'jacob.evans@10gen.com'}

Message: SERVER-47713 Change Expression code to remove intrusive ExpressionContext
Branch: master
https://github.com/mongodb/mongo/commit/a7f769dd597e33e988832c43c99912c1d3139c9b

Comment by Githook User [ 16/May/20 ]

Author:

{'name': 'Jacob Evans', 'email': 'jacob.evans@10gen.com'}

Message: SERVER-47713 Change Expression code to remove intrusive ExpressionContext
Branch: master
https://github.com/10gen/mongo-enterprise-modules/commit/0ed0a9c4e10cf87cc5b7d5fe28a529f30dd775da

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