Hi,

we are/were facing an issue where we were running into an OOM error in
Sentry. This happened right after startup and it is because of
SENTRY-2461[1].

We're trying to understand how this is supposed to work.

We see HmsFollower waking up every 500ms.
It looks at the current notification Id we have stored
in SENTRY_HMS_NOTIFICATION_ID (e.g. 100).
It then subtracts 1 (e.g. 99) and retrieves any notifications newer than
that (e.g. "100").
HmsFollower then calls NotificationProcessor#processNotificationEvent to
process the event.
If that method returns false we explicitly persist the notification Id

There's a few things that we find weird about this:
* We see hundreds of duplicates being processed because we never check if
we already have processed the same notification id. Now I do see comments
in the code that Hive reuses those ids so this might be intentional?

* But we also store these duplicate notification ids over and over. In the
normal scenario where the id hasn't changed in the last 500ms we just store
it again and because the table does not have a constraint on duplicates it
stores tens of thousands of duplicates for us at least until the purging
process kicks in 12h later

I guess our question is: Is this normal behavior? Should we see thousands
of duplicates and should Sentry reprocess the last notification over and
over?

Thank you very much!

Cheers,
Lars

[1] <https://issues.apache.org/jira/browse/SENTRY-2461>

Reply via email to