Skip to content

ingest-occurrences and ingest-monitor silent hang → MAXPOLL eviction loop on 26.4.2 #4326

Description

@Abdulaziz-Moafa

Self-Hosted Version

26.4.2

CPU Architecture

x86_64

Docker Version

25.0.1

Docker Compose Version

2.35.1

Machine Specification

  • My system meets the minimum system requirements of Sentry

Installation Type

Upgrade from 25.11.0 to 26.4.2

Steps to Reproduce

  1. Run a self-hosted Sentry 26.4.2 install with active cron monitors.

  2. both the ingest-monitors and ingest-occurrences containers become unhealthy.

  3. Check Kafka consumer-group state. Lag starts growing, and after a while both groups show "no active members".

I don't have a clean synthetic reproducer — Once the services enters this state it does not recover on its own. Restart, force-recreate, and offset-reset all fail to fix it permanently.

Expected Result

  • ingest-monitors reads check-ins, updates monitor state. and become healthy
  • ingest-occurrences reads occurrences, and become healthy

Actual Result

Both consumers are caught in a poll-timeout / no-progress loop and don't recover on their own.

The pattern is the same on both:

  1. The container starts, the consumer joins Kafka, and "New partitions assigned" is logged.
  2. After max-poll-interval-ms elapses, librdkafka kicks it out with a MAXPOLL error and the consumer leaves the group.
  3. CURRENT-OFFSET never moves. Lag grows.

For ingest-occurrences,

11:33:57 [INFO] arroyo.processing.processor: New partitions assigned: {Partition(topic=Topic(name='ingest-occurrences'), index=0): 14419083}
11:33:57 [INFO] arroyo.processing.processor: Member id: 'rdkafka-3acdb193-f381-4426-a2fd-19ee32a59bd9'
11:33:57 [INFO] arroyo.backends.kafka.consumer: Paused partitions after assignment: set()
%4|1778586639.061|MAXPOLL|rdkafka#consumer-1| [thrd:main]: Application maximum poll interval (1000000ms) exceeded by 50ms (adjust max.poll.interval.ms for long-running message processing): leaving group

For ingest-monitors the pattern is similar, MAXPOLL fires:

11:07:53 [INFO] arroyo.processing.processor: New partitions assigned: {Partition(topic=Topic(name='ingest-monitors'), index=0): 5361426}
11:07:53 [INFO] sentry.monitors.consumers.monitor_consumer: monitors.consumer.check_in_closed (guid='77c6299352cf4e4dafe9bdc0f3d0ac30' slug='updateworkerarrivalstatus111001' status=1)
... [~40 check_in_closed lines over 4 seconds] ...
%4|1778584373.597|MAXPOLL|rdkafka#consumer-1| [thrd:main]: Application maximum poll interval (300000ms) exceeded by 289ms (adjust max.poll.interval.ms for long-running message processing): leaving group

Digging into the monitors container further, I found this. The embedded sentry.utils.pubsub Kafka producer can't talk to the broker:

%5|1778613304.136|REQTMOUT|sentry.utils.pubsub#producer-3| [thrd:kafka:9092/1001]: kafka:9092/1001: Timed out MetadataRequest in flight (after 1000ms, timeout #0)
%4|1778613305.139|FAIL|sentry.utils.pubsub#producer-3| [thrd:kafka:9092/1001]: kafka:9092/1001: ApiVersionRequest failed: Local: Timed out: probably due to broker version < 0.10 (after 1001ms in state APIVERSION_QUERY)
%4|1778613306.273|FAIL|sentry.utils.pubsub#producer-3| [thrd:kafka:9092/bootstrap]: kafka:9092/bootstrap: ApiVersionRequest failed: Local: Timed out: probably due to broker version < 0.10 (after 1000ms in state APIVERSION_QUERY)

Consumer-group state:

Consumer group 'ingest-monitors' has no active members.
Consumer group 'ingest-occurrences' has no active members.

GROUP TOPIC PART CURRENT-OFFSET LOG-END-OFFSET LAG
ingest-monitors ingest-monitors 0 5362916 5365054 2138
ingest-occurrences ingest-occurrences 0 14419083 14445920 26837

Event ID

No response

Metadata

Metadata

Assignees

Labels

Self-hosted: Next ReleaseUsed to track issues and pull requests (PRs) that should be fixed in the next release schedule.

Projects

Status
No status
Status
Waiting for: Product Owner

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions