Skip to content

Commit 3d90e1e

Browse files
authored
Fix: queue.get(block=False) can raise Empty (#99)
1 parent b87cbd1 commit 3d90e1e

File tree

3 files changed

+15
-6
lines changed

3 files changed

+15
-6
lines changed

skywalking/agent/protocol/grpc.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
import logging
1919
from skywalking.loggings import logger
2020
import traceback
21-
from queue import Queue
21+
from queue import Queue, Empty
2222

2323
import grpc
2424

@@ -70,7 +70,10 @@ def on_error(self):
7070
def report(self, queue: Queue, block: bool = True):
7171
def generator():
7272
while True:
73-
segment = queue.get(block=block) # type: Segment
73+
try:
74+
segment = queue.get(block=block) # type: Segment
75+
except Empty:
76+
return
7477

7578
logger.debug('reporting segment %s', segment)
7679

skywalking/agent/protocol/http.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
#
1717

1818
from skywalking.loggings import logger
19-
from queue import Queue
19+
from queue import Queue, Empty
2020

2121
from skywalking.agent import Protocol
2222
from skywalking.client.http import HttpServiceManagementClient, HttpTraceSegmentReportService
@@ -41,7 +41,10 @@ def connected(self):
4141
def report(self, queue: Queue, block: bool = True):
4242
def generator():
4343
while True:
44-
segment = queue.get(block=block) # type: Segment
44+
try:
45+
segment = queue.get(block=block) # type: Segment
46+
except Empty:
47+
return
4548

4649
logger.debug('reporting segment %s', segment)
4750

skywalking/agent/protocol/kafka.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717

1818
import logging
1919
from skywalking.loggings import logger, getLogger
20-
from queue import Queue
20+
from queue import Queue, Empty
2121

2222
from skywalking import config
2323
from skywalking.agent import Protocol
@@ -45,7 +45,10 @@ def heartbeat(self):
4545
def report(self, queue: Queue, block: bool = True):
4646
def generator():
4747
while True:
48-
segment = queue.get(block=block) # type: Segment
48+
try:
49+
segment = queue.get(block=block) # type: Segment
50+
except Empty:
51+
return
4952

5053
logger.debug('reporting segment %s', segment)
5154

0 commit comments

Comments
 (0)