[
https://issues.apache.org/jira/browse/IGNITE-20536?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Sergey Uttsel updated IGNITE-20536:
-----------------------------------
Description:
h3. Motivation
In https://issues.apache.org/jira/browse/IGNITE-20397 we discussed that it is
possible to get null handler in StripedDisruptor.StripeEntryHandler#onEvent on
a table drop. And we start to use a log warning instead of an assert.
But this is not the best solution. We still need to assert that handler is not
null on first event for the partition. And we need to skip events if the
partition was removed. So we need:
# to add assert that `handler != null`,
# on StripedDisruptor.StripeEntryHandler#unsubscribe put a no-op handler to a
subscribers map instead of remove it,
# to remove the no-op handler when there are no events for this handler.
h3. Definition of done:
# assert that `handler != null` is added,
# no-op handler on StripedDisruptor.StripeEntryHandler#unsubscribe,
# remove handler when it is not needed
was:
h3. Motivation
In https://issues.apache.org/jira/browse/IGNITE-20397 we discussed that it is
possible to get null handler in StripedDisruptor.StripeEntryHandler#onEvent on
a table drop. And we start to use a log warning instead of an assert.
But this is not the best solution. We still need to assert that handler is not
null on first event for the partition. And we need to skip events if the
partition was removed. So we need:
# to add assert that `handler != null`,
# on StripedDisruptor.StripeEntryHandler#unsubscribe put a no-op handler to a
subscribers map instead of remove it,
# to remove the no-op handler when there are no events for this handler.
h3. Definition of done:
# assert that `handler != null` is added,
# no-op handler on StripedDisruptor.StripeEntryHandler#unsubscribe,
# remove handler when it is not needed.
> No-op handlers for StripedDisruptor.StripeEntryHandler#subscribers
> ------------------------------------------------------------------
>
> Key: IGNITE-20536
> URL: https://issues.apache.org/jira/browse/IGNITE-20536
> Project: Ignite
> Issue Type: Bug
> Reporter: Sergey Uttsel
> Priority: Major
> Labels: ignite-3
>
> h3. Motivation
> In https://issues.apache.org/jira/browse/IGNITE-20397 we discussed that it is
> possible to get null handler in StripedDisruptor.StripeEntryHandler#onEvent
> on a table drop. And we start to use a log warning instead of an assert.
> But this is not the best solution. We still need to assert that handler is
> not null on first event for the partition. And we need to skip events if the
> partition was removed. So we need:
> # to add assert that `handler != null`,
> # on StripedDisruptor.StripeEntryHandler#unsubscribe put a no-op handler to
> a subscribers map instead of remove it,
> # to remove the no-op handler when there are no events for this handler.
> h3. Definition of done:
> # assert that `handler != null` is added,
> # no-op handler on StripedDisruptor.StripeEntryHandler#unsubscribe,
> # remove handler when it is not needed
--
This message was sent by Atlassian Jira
(v8.20.10#820010)