From 1d14618a0e3a86a705d543a8c761aa60bd1a59c0 Mon Sep 17 00:00:00 2001
From: Nathaniel Manista <nathaniel@google.com>
Date: Sat, 29 Aug 2015 19:18:22 +0000
Subject: [PATCH] Fix grace period bug in _end.accept_ticket

Tickets should not be ignored if the end is in a grace period; rather
they should be ignored if they are for an unrecognized (likely new)
operation and the end is in a grace period.
---
 src/python/grpcio/grpc/framework/core/_end.py | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/python/grpcio/grpc/framework/core/_end.py b/src/python/grpcio/grpc/framework/core/_end.py
index 5ef2f6d3a3..f57cde4e58 100644
--- a/src/python/grpcio/grpc/framework/core/_end.py
+++ b/src/python/grpcio/grpc/framework/core/_end.py
@@ -203,11 +203,11 @@ class _End(End):
   def accept_ticket(self, ticket):
     """See links.Link.accept_ticket for specification."""
     with self._lock:
-      if self._cycle is not None and not self._cycle.grace:
+      if self._cycle is not None:
         operation = self._cycle.operations.get(ticket.operation_id)
         if operation is not None:
           operation.handle_ticket(ticket)
-        elif self._servicer_package is not None:
+        elif self._servicer_package is not None and not self._cycle.grace:
           termination_action = _termination_action(
               self._lock, self._stats, ticket.operation_id, self._cycle)
           operation = _operation.service_operate(
-- 
GitLab