You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Anton Vinogradov (Jira)" <ji...@apache.org> on 2022/10/27 09:47:00 UTC

[jira] [Assigned] (IGNITE-16224) Read Repair attempts must be limited to avoid stack overflow

     [ https://issues.apache.org/jira/browse/IGNITE-16224?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Anton Vinogradov reassigned IGNITE-16224:
-----------------------------------------

    Assignee:     (was: Anton Vinogradov)

> Read Repair attempts must be limited to avoid stack overflow
> ------------------------------------------------------------
>
>                 Key: IGNITE-16224
>                 URL: https://issues.apache.org/jira/browse/IGNITE-16224
>             Project: Ignite
>          Issue Type: Sub-task
>            Reporter: Anton Vinogradov
>            Priority: Major
>
> Currently, we perform `repairAsync` on every consistency violation.
> {noformat}
> protected Map<K, V> repairableGetAll(
>         Collection<? extends K> keys,
>         boolean deserializeBinary,
>         boolean needVer,
>         boolean recovery,
>         ReadRepairStrategy readRepairStrategy) throws IgniteCheckedException {
>         try {
>             return getAll(keys, deserializeBinary, needVer, recovery, readRepairStrategy);
>         }
>         catch (IgniteIrreparableConsistencyViolationException e) {
>             throw e;
>         }
>         catch (IgniteConsistencyViolationException e) {
>             repairAsync(keys, ctx.operationContextPerCall(), false).get();
>             return repairableGetAll(keys, deserializeBinary, needVer, recovery, readRepairStrategy);
>         }
>     }
> {noformat}
> In case of concurrent modifications and/or some bugs, stack overflow is possible here.
> Rechecks and repairs should be limited.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)