[SERVER-21772] findAndModify not captured by Profiler Created: 04/Dec/15  Updated: 16/Nov/16  Resolved: 15/Dec/15

Status: Closed
Project: Core Server
Component/s: Diagnostics, Querying
Affects Version/s: 3.2.0-rc6
Fix Version/s: 3.2.1, 3.3.0

Type: Bug Priority: Major - P3
Reporter: Stephen Lee Assignee: David Storch
Resolution: Done Votes: 0
Labels: code-and-test
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Documented
is documented by DOCS-8938 findAndModify not captured by Profiler Closed
Duplicate
is duplicated by SERVER-16071 The nscanned and nscannedObjects is n... Closed
Related
is related to SERVER-21855 Certain commands are never captured i... Backlog
Backwards Compatibility: Fully Compatible
Operating System: ALL
Backport Completed:
Steps To Reproduce:

db.asdf.drop();
db.asdf.insert({a: true, b: 2});
db.setProfilingLevel(0);
db.system.profile.drop();
db.setProfilingLevel(2);
db.asdf.findAndModify({query: {a: true, b: 2}, update: {$set: {c: 3}}});
db.setProfilingLevel(0);
db.system.profile.find()

Sprint: QuInt D (12/14/15), QuInt E (01/11/16)
Participants:

 Description   

findAndModify operations which do not exceed the slowms threshold will always be absent from the system.profile collection.

This is happening because FindAndModify::run() is failing to call CurOp::enter_inlock(). The enter_inlock is responsible for raising the profiling level associated with the operation, based on the database profiling level. Failing to call it means that the operation's profiling level is erroneously left as "0".



 Comments   
Comment by Githook User [ 16/Dec/15 ]

Author:

{u'username': u'dstorch', u'name': u'David Storch', u'email': u'david.storch@10gen.com'}

Message: SERVER-21772 correctly profile and log findAndModify operations

(cherry picked from commit 95c072ee0a3efd3ecf188ed508d95fe236b05d48)
Branch: v3.2
https://github.com/mongodb/mongo/commit/a014a946bdea5013883bff963ae6fae9fe39e2a7

Comment by Githook User [ 16/Dec/15 ]

Author:

{u'username': u'dstorch', u'name': u'David Storch', u'email': u'david.storch@10gen.com'}

Message: SERVER-21772 remove dead method CurOp::setDbProfileLevel

(cherry picked from commit 840252b2676ff42303acb7e1ebb7887a2e924d78)
Branch: v3.2
https://github.com/mongodb/mongo/commit/cc9e9ae59d089d3b84a2ed117950d6e195360cf3

Comment by Githook User [ 15/Dec/15 ]

Author:

{u'username': u'dstorch', u'name': u'David Storch', u'email': u'david.storch@10gen.com'}

Message: SERVER-21772 correctly profile and log findAndModify operations
Branch: master
https://github.com/mongodb/mongo/commit/95c072ee0a3efd3ecf188ed508d95fe236b05d48

Comment by Githook User [ 08/Dec/15 ]

Author:

{u'username': u'dstorch', u'name': u'David Storch', u'email': u'david.storch@10gen.com'}

Message: SERVER-21772 remove dead method CurOp::setDbProfileLevel
Branch: master
https://github.com/mongodb/mongo/commit/840252b2676ff42303acb7e1ebb7887a2e924d78

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