summaryrefslogtreecommitdiff
path: root/src/mongo/db/kill_current_op.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/kill_current_op.cpp')
-rw-r--r--src/mongo/db/kill_current_op.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/mongo/db/kill_current_op.cpp b/src/mongo/db/kill_current_op.cpp
index a938489ecc9..12901a345a2 100644
--- a/src/mongo/db/kill_current_op.cpp
+++ b/src/mongo/db/kill_current_op.cpp
@@ -114,6 +114,11 @@ namespace mongo {
if (_globalKill) {
uasserted(11600, "interrupted at shutdown");
}
+ if (c.curop()->maxTimeHasExpired()) {
+ c.curop()->kill();
+ notifyAllWaiters();
+ uasserted(16986, "operation exceeded time limit");
+ }
if (c.curop()->killPending()) {
notifyAllWaiters();
uasserted(11601, "operation was interrupted");
@@ -126,6 +131,10 @@ namespace mongo {
if (_globalKill) {
return "interrupted at shutdown";
}
+ if (c.curop()->maxTimeHasExpired()) {
+ c.curop()->kill();
+ return "exceeded time limit";
+ }
if (c.curop()->killPending()) {
return "interrupted";
}