[SERVER-28013] Ensure ReplClientInfo's last opTime can't be moved backwards Created: 14/Feb/17  Updated: 24/Aug/18  Resolved: 15/Feb/17

Status: Closed
Project: Core Server
Component/s: Replication
Affects Version/s: None
Fix Version/s: 3.4.3, 3.5.4

Type: Bug Priority: Major - P3
Reporter: Misha Tyulenev Assignee: Spencer Brody (Inactive)
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Backports
Related
related to SERVER-32695 Invariant failure at service_entry_po... Closed
Backwards Compatibility: Fully Compatible
Operating System: ALL
Backport Requested:
v3.4
Sprint: Repl 2017-03-06
Participants:

 Description   

This issue does not happen in production. Its a result of adding an invariant

void ReplClientInfo::setLastOp(const OpTime& op) {
+    invariant(op >= _lastOp);
    _lastOp = op;
}

However it may worth to take a look as it may become more evident with LogicalClock. The patch that hast this issue is below:
https://evergreen.mongodb.com/version/58a3710d3ff122311b00f5db

[js_test:config_version_rollback] 2017-02-14T21:33:21.790+0000 c23010|  mongod(_ZN5mongo15printStackTraceERSo+0x41) [0x7fa223d22db1]
[js_test:config_version_rollback] 2017-02-14T21:33:21.790+0000 c23010|  mongod(+0x16FEEA9) [0x7fa223d21ea9]
[js_test:config_version_rollback] 2017-02-14T21:33:21.790+0000 c23010|  mongod(+0x16FF38D) [0x7fa223d2238d]
[js_test:config_version_rollback] 2017-02-14T21:33:21.791+0000 c23010|  libpthread.so.0(+0xF7E0) [0x7fa21fbd37e0]
[js_test:config_version_rollback] 2017-02-14T21:33:21.791+0000 c23010|  libc.so.6(gsignal+0x35) [0x7fa21f8625e5]
[js_test:config_version_rollback] 2017-02-14T21:33:21.791+0000 c23010|  libc.so.6(abort+0x175) [0x7fa21f863dc5]
[js_test:config_version_rollback] 2017-02-14T21:33:21.792+0000 c23010|  mongod(_ZN5mongo17invariantOKFailedEPKcRKNS_6StatusES1_j+0x0) [0x7fa222eaf16c]
[js_test:config_version_rollback] 2017-02-14T21:33:21.792+0000 c23010|  mongod(_ZN5mongo4repl14ReplClientInfo9setLastOpERKNS0_6OpTimeE+0x35) [0x7fa223731145]
[js_test:config_version_rollback] 2017-02-14T21:33:21.792+0000 c23010|  mongod(_ZN5mongo4repl14ReplClientInfo27setLastOpToSystemLastOpTimeEPNS_16OperationContextE+0x88) [0x7fa223731218]
[js_test:config_version_rollback] 2017-02-14T21:33:21.793+0000 c23010|  mongod(_ZN5mongo14performDeletesEPNS_16OperationContextERKNS_8DeleteOpE+0x1F91) [0x7fa223490211]
[js_test:config_version_rollback] 2017-02-14T21:33:21.793+0000 c23010|  mongod(_ZN5mongo9CmdDelete7runImplEPNS_16OperationContextERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS_7BSONObjERNS_14BSONObjBuilderE+0x4F) [0x7fa2231f953f]
[js_test:config_version_rollback] 2017-02-14T21:33:21.793+0000 c23010|  mongod(+0xBD1CBC) [0x7fa2231f4cbc]
[js_test:config_version_rollback] 2017-02-14T21:33:21.794+0000 c23010|  mongod(_ZN5mongo7Command3runEPNS_16OperationContextERKNS_3rpc16RequestInterfaceEPNS3_21ReplyBuilderInterfaceE+0x8E4) [0x7fa22312b634]
[js_test:config_version_rollback] 2017-02-14T21:33:21.794+0000 c23010|  mongod(_ZN5mongo19execCommandDatabaseEPNS_16OperationContextEPNS_7CommandERKNS_3rpc16RequestInterfaceEPNS4_21ReplyBuilderInterfaceE+0xA16) [0x7fa22312c666]
[js_test:config_version_rollback] 2017-02-14T21:33:21.794+0000 c23010|  mongod(_ZN5mongo7Command11execCommandEPNS_16OperationContextEPS0_RKNS_3rpc16RequestInterfaceEPNS4_21ReplyBuilderInterfaceE+0x4C) [0x7fa2230fa03c]
[js_test:config_version_rollback] 2017-02-14T21:33:21.795+0000 c23010|  mongod(_ZN5mongo11runCommandsEPNS_16OperationContextERKNS_3rpc16RequestInterfaceEPNS2_21ReplyBuilderInterfaceE+0x26D) [0x7fa22381945d]
[js_test:config_version_rollback] 2017-02-14T21:33:21.795+0000 c23010|  mongod(_ZN5mongo16assembleResponseEPNS_16OperationContextERNS_7MessageERNS_10DbResponseERKNS_11HostAndPortE+0xCC5) [0x7fa2230207a5]
[js_test:config_version_rollback] 2017-02-14T21:33:21.796+0000 c23010|  mongod(_ZN5mongo23ServiceEntryPointMongod12_sessionLoopERKSt10shared_ptrINS_9transport7SessionEE+0x1ED) [0x7fa222f28c9d]
[js_test:config_version_rollback] 2017-02-14T21:33:21.796+0000 c23010|  mongod(+0x9065DD) [0x7fa222f295dd]
[js_test:config_version_rollback] 2017-02-14T21:33:21.796+0000 c23010|  mongod(+0x16644A2) [0x7fa223c874a2]
[js_test:config_version_rollback] 2017-02-14T21:33:21.796+0000 c23010|  libpthread.so.0(+0x7AA1) [0x7fa21fbcbaa1]
[js_test:config_version_rollback] 2017-02-14T21:33:21.796+0000 c23010|  libc.so.6(clone+0x6D) [0x7fa21f918aad]



 Comments   
Comment by Githook User [ 02/Mar/17 ]

Author:

{u'username': u'stbrody', u'name': u'Spencer T Brody', u'email': u'spencer@mongodb.com'}

Message: SERVER-28013 Ensure that last op for client only moves forward

(cherry picked from commit 34c00f16a8890775c71c63c860e2086c6bb603aa)
Branch: v3.4
https://github.com/mongodb/mongo/commit/92d9fb1162f40e1feeb21c534f9e6b278e050d64

Comment by Githook User [ 15/Feb/17 ]

Author:

{u'username': u'stbrody', u'name': u'Spencer T Brody', u'email': u'spencer@mongodb.com'}

Message: SERVER-28013 Ensure that last op for client only moves forward
Branch: master
https://github.com/mongodb/mongo/commit/34c00f16a8890775c71c63c860e2086c6bb603aa

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