diff --git a/.sampo/changesets/oversized-event-flush-hang.md b/.sampo/changesets/oversized-event-flush-hang.md new file mode 100644 index 00000000..9297fd6e --- /dev/null +++ b/.sampo/changesets/oversized-event-flush-hang.md @@ -0,0 +1,5 @@ +--- +pypi/posthog: patch +--- + +Prevent flush from hanging after dropping oversized queued events. diff --git a/posthog/consumer.py b/posthog/consumer.py index d4ce068e..8f3fa3b5 100644 --- a/posthog/consumer.py +++ b/posthog/consumer.py @@ -112,6 +112,7 @@ def next(self): self.log.error( "Item exceeds 900kib limit, dropping. (%s)", str(item) ) + queue.task_done() continue items.append(item) total_size += item_size diff --git a/posthog/test/test_consumer.py b/posthog/test/test_consumer.py index e032e813..f476b82a 100644 --- a/posthog/test/test_consumer.py +++ b/posthog/test/test_consumer.py @@ -45,6 +45,7 @@ def test_dropping_oversize_msg(self) -> None: next = consumer.next() self.assertEqual(next, []) self.assertTrue(q.empty()) + self.assertEqual(q.unfinished_tasks, 0) def test_upload(self) -> None: q = Queue()