You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Dmitriy Sorokin (Jira)" <ji...@apache.org> on 2020/04/13 23:29:00 UTC

[jira] [Commented] (IGNITE-8625) Dynamic SQL index recreate after cache clear may result in AssertionError or JVM crash

    [ https://issues.apache.org/jira/browse/IGNITE-8625?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17082738#comment-17082738 ] 

Dmitriy Sorokin commented on IGNITE-8625:
-----------------------------------------

I investigated this issue using the attached reproducer and ready to list several facts:

1. Before the fix IGNITE-4958 (change {{0bdfa20c}}) the test failed with AE on code line
{code:java}
    assert len >= 0;
{code}
of method {{PageUtils#getBytes(long, int, int)}}, sometimes causing the JVM crash on further execution;

2. After the fix IGNITE-4958 till the IGNITE-12061 (change {{dde81742}}) the test failed with AE on code line
{code:java}
    assert pageAddr != 0L : nextLink;
{code}
of method {{CacheDataRowAdapter#initFromLink(CacheGroupContext, GridCacheSharedContext, PageMemory, RowData)}} ({{CacheDataRowAdapter#doInitFromLink(...)}} since the fix IGNITE-10798, change {{bc209d08}});

3. Finally, since the fix IGNITE-12061 till the current master branch the test stopped falling, so I think that this issue was fixed too.

> Dynamic SQL index recreate after cache clear may result in AssertionError or JVM crash
> --------------------------------------------------------------------------------------
>
>                 Key: IGNITE-8625
>                 URL: https://issues.apache.org/jira/browse/IGNITE-8625
>             Project: Ignite
>          Issue Type: Bug
>          Components: persistence, sql
>            Reporter: Ivan Rakov
>            Assignee: Dmitriy Sorokin
>            Priority: Critical
>              Labels: MakeTeamcityGreenAgain, sql-stability
>             Fix For: 2.9, 2.8.1
>
>         Attachments: dyn_idx_reproducer.patch
>
>
> After recreation of previously dropped SQL index (in persistent mode), root page of new index B+ tree may contain links to data entries from previous index tree. If these entries were removed or relocated to another data page, attempt to dereference these links may throw AssertionError or even cause JVM crash.
> Patch with reproducer is attached.
> P.S. Please note that with IGNITE-4958 fix old invalid links may refer to non-data page - it might have been recycled into page with any other type. Such case will cause AssertionError on page read lock attempt. Rolling back IGNITE-4958 may help with debugging.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)