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

ASF GitHub Bot commented on IGNITE-8320:
----------------------------------------

GitHub user Jokser opened a pull request:

    https://github.com/apache/ignite/pull/4016

    IGNITE-8320 Backport to 2.4

    

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/gridgain/apache-ignite ignite-gg-13826

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/ignite/pull/4016.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #4016
    
----
commit 79cc7728c87d942316213679f39cfeee46f9bfee
Author: zaleslaw <zaleslaw.sin@...>
Date:   2018-01-30T14:25:08Z

    IGNITE-7567: Fixed bug with datasest in examples
    
    this closes #3453
    
    (cherry picked from commit b42a5c5)

commit 915dd2966084d78f7b4f3d482e6bd25f860c1e23
Author: Alexey Goncharuk <alexey.goncharuk@...>
Date:   2018-01-31T08:22:26Z

    IGNITE-7569 Fixed index rebuild future - Fixes #3454.

commit 8ea8609259039852ab0c26f26ac528c1ffae7c94
Author: Alexey Goncharuk <alexey.goncharuk@...>
Date:   2018-01-31T08:24:57Z

    IGNITE-7577 Fixing public API active flag on baseline changes - Fixes #3455.

commit d1a23c684dfadedf2b28966a223684827f3c5d7b
Author: David Wimsey <david@...>
Date:   2018-01-31T08:47:25Z

    IGNITE-7576 Scripts: fix version check regexp to handle OpenJDK
    
    This closes #3456

commit c8ce1f66e98b3174d771a3b801a2538499dc2c3d
Author: Ivan Rakov <ivan.glukos@...>
Date:   2018-01-31T09:51:09Z

    IGNITE-7475 Improved VerifyBackupPartitionsTask to calculate partition 
hashes in parallel - Fixes #3407.
    
    Signed-off-by: Alexey Goncharuk <alexey.goncha...@gmail.com>

commit 258ff4299da20122d7c387cb8579264035c93c18
Author: Alexey Goncharuk <alexey.goncharuk@...>
Date:   2018-01-31T13:52:24Z

    IGNITE-7573 Fixed full API tests to be compliant with baseline topology

commit aca3b8c664de8dcbbfeabbb0f8c252194d6ad1b2
Author: Pavel Tupitsyn <ptupitsyn@...>
Date:   2018-01-31T16:49:07Z

    IGNITE-7473 .NET: Fix ConfigurationManager assembly error on Linux

commit 7bb61dfb1dcbcd7592222f159618a008bd02f6e6
Author: Alexey Kuznetsov <akuznetsov@...>
Date:   2018-02-01T08:22:53Z

    ignite-2.4.0 Update version.
    
    (cherry picked from commit 2e43749)

commit 254ed3a9c32d092702a0461509bf867cbd7cdee6
Author: Alexey Kuznetsov <akuznetsov@...>
Date:   2018-02-01T08:22:53Z

    ignite-2.4.0 Update version.
    
    (cherry picked from commit 2e43749)

commit d5782c53b8beab17ea4f953ad009d71b02fc335c
Author: artemmalykh <amalykh@...>
Date:   2018-02-01T09:43:02Z

    IGNITE-7590: fixed tree example
    
    this closes #3459
    
    (cherry picked from commit a9d40a7)

commit c1a9c0a404d77fba08170bedf14844f87abe3028
Author: Alexey Goncharuk <alexey.goncharuk@...>
Date:   2018-02-01T10:17:28Z

    IGNITE-7569 Fixing index rebuild future

commit e43799ce70cdbe03d9e206381d1d5138b820b075
Author: Alexey Goncharuk <alexey.goncharuk@...>
Date:   2018-02-01T13:39:17Z

    IGNITE-7520 Provide util-methods to get baseline from context - Fixes #3431.

commit a54bfd1a0906cee8394a0b495f61549ab63e4346
Author: dpavlov <dpavlov@...>
Date:   2018-02-01T15:31:12Z

    IGNITE-7599 Missed licenses in ignite-direct-io module
    
    Signed-off-by: Anton Vinogradov <a...@apache.org>
    
    (cherry picked from commit d88af9b)
    Signed-off-by: Anton Vinogradov <a...@apache.org>

commit 8f5fc7cfb0624cf2048efad38dfff32f782116e8
Author: Sergey Chugunov <sergey.chugunov@...>
Date:   2018-02-02T08:24:29Z

    IGNITE-7580 Fix compatibilityMode flag consistency
    
    This closes #3466
    
    (cherry picked from commit 8f2045e)

commit d3ddd50cb2b889173176b6c47c9ff61410e1d909
Author: Ilya Lantukh <ilantukh@...>
Date:   2018-02-07T10:33:28Z

    IGNITE-7514 Affinity assignment should be recalculated when primary node is 
not OWNER
    
    (cherry picked from commit faf50f1)

commit d3745e9d0a3ff5a64fba494889b7e2605f3af6bb
Author: Alexey Goncharuk <alexey.goncharuk@...>
Date:   2018-02-07T18:10:32Z

    IGNITE-7639 Fixed NPE

commit 421b2b9554cc0400be3ec95c07efffca409d07dd
Author: Stanislav Lukyanov <slukyanov@...>
Date:   2018-02-08T22:25:11Z

    IGNITE-7464 - Add property to configure time between node connection 
attempts - Fixes #3493

commit f7c16855ba802d9d47048521aec7e14285e4a281
Author: Pavel Kovalenko <jokserfn@...>
Date:   2018-02-09T13:55:15Z

    IGNITE-7540 Prevent page memory metadata corruption during checkpoint and 
group destroying. - Fixes #3490.
    
    Signed-off-by: Alexey Goncharuk <alexey.goncha...@gmail.com>

commit 2eec607b36186c05f92fae71b30d61d43eda4a69
Author: Nikolay Izhikov <nizhikov@...>
Date:   2018-02-09T04:00:54Z

    IGNITE-7337: Implementation of saving DataFrame to Ignite SQL tables - 
Fixes #3438.

commit c92f167fc491078f02b9f94fe89edafc2902ebc2
Author: ilantukh <ilantukh@...>
Date:   2018-02-14T12:40:13Z

    Updated version in properties.

commit 1ecf348dd429cf7861b414e0e5a7776b72dba281
Author: Sergey Chugunov <sergey.chugunov@...>
Date:   2018-02-16T13:21:12Z

    IGNITE-7699 BinaryMetadata exchange should not be triggered if metadata was 
not updated - Fixes #3523.
    
    Signed-off-by: Alexey Goncharuk <alexey.goncha...@gmail.com>
    
    (cherry-picked from commit bcd3881)

commit 2458bd08a5b501b3eeb5caf0ae6dcaa2bcccd915
Author: EdShangGG <eshangareev@...>
Date:   2018-02-16T13:29:49Z

    IGNITE-7676 Add affinity version to snapshot plugin stub - Fixes #3510.
    
    Signed-off-by: Alexey Goncharuk <alexey.goncha...@gmail.com>
    (cherry picked from commit b6d21fb)

commit bfdcda7a2a6b5cf64f15ed169d2beb886f131fac
Author: EdShangGG <eshangareev@...>
Date:   2018-02-12T16:36:30Z

    IGNITE-7626 Unify code in test which cleans up persistence directories - 
Fixes #3477.
    
    Signed-off-by: Alexey Goncharuk <alexey.goncha...@gmail.com>
    (cherry picked from commit a0997b9)

commit 2e92e0094b270aa8489e66d94bfcf15eadabfb4f
Author: EdShangGG <eshangareev@...>
Date:   2018-02-12T18:44:10Z

    IGNITE-7626 Unify code in test which clean up persistence directories - 
Fixes #3512.
    
    Signed-off-by: Alexey Goncharuk <alexey.goncha...@gmail.com>
    (cherry picked from commit 6f6f8dd)

commit 3f86c127c78065999663a4fc4eaedb5e5d4bee1c
Author: EdShangGG <eshangareev@...>
Date:   2018-02-12T18:26:31Z

    compilation fix

commit 0b9322c566f9b464291854142ac02495bd1817e4
Author: gg-shq <kshirokov@...>
Date:   2018-02-07T11:28:04Z

    IGNITE-6917: Implemented SQL COPY command.

commit c5e386ca96750213bddcd98d0af0c589fee476ca
Author: gg-shq <kshirokov@...>
Date:   2018-02-07T15:31:27Z

    IGNITE-7586: Added COPY command into the JDBC example.
    
    This closes #3485

commit d8203e2d81f8fbf0f7fbe5e710c9908f2fcb8307
Author: shq <kirill.shirokov@...>
Date:   2018-02-15T10:36:00Z

    IGNITE-7709: SQL COPY command: make sure file name is always quoted. This 
closes #3526.

commit 1185993ee7cd83695388f698f18f95b43e15de06
Author: devozerov <vozerov@...>
Date:   2018-02-15T11:00:42Z

    IGNITE-7714: SQL COPY command: fixed "Table not found" issue on the client 
node.

commit 88c8bdcc0dc2fdf2b2b22562a6b30031e053f671
Author: devozerov <vozerov@...>
Date:   2018-02-16T14:54:24Z

    IGNITE-7737: SQL COPY: renamed BUFFER_SIZE to PACKET_SIZE. This closes 
#3533.

----


> Page corruption during the rebalancing cache.
> ---------------------------------------------
>
>                 Key: IGNITE-8320
>                 URL: https://issues.apache.org/jira/browse/IGNITE-8320
>             Project: Ignite
>          Issue Type: Bug
>          Components: persistence
>    Affects Versions: 2.4
>            Reporter: Vyacheslav Koptilin
>            Assignee: Pavel Kovalenko
>            Priority: Major
>             Fix For: 2.6
>
>
> Cache rebalance may result in page memory corruption.
> {noformat}
> [2018-04-18T14:33:23,260][ERROR][sys-#54][GridCacheIoManager] Failed 
> processing message [senderId=95f06c25-e6bb-48f7-a3e5-4c05fc1c49be, 
> msg=GridDhtPartitionSupplyMessage [rebalanceId=37, 
> topVer=AffinityTopologyVersion [topVer=53, minorTopVer=1], missed=null, 
> clean=null, msgSize=525350, estimatedKeysCnt=1690216, size=2, parts=[1, 2], 
> super=GridCacheGroupIdMessage [grpId=-1831596270]]]
>  org.apache.ignite.IgniteException: Runtime failure on row: Row@33b6805c[ 
> key: xxxx [idHash=773709078, hash=-630455542, ...], val: xxxx 
> [idHash=1309051286, hash=-1321165334, ver: GridCacheVersion 
> [topVer=135435024, order=1523963943331, nodeOrder=4] ]
>  at 
> org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree.doPut(BPlusTree.java:2102)
>  ~[ignite-core-2.4.4.b1.jar:2.4.4.b1]
>  at 
> org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree.putx(BPlusTree.java:2049)
>  ~[ignite-core-2.4.4.b1.jar:2.4.4.b1]
>  at 
> org.apache.ignite.internal.processors.query.h2.database.H2TreeIndex.putx(H2TreeIndex.java:247)
>  ~[ignite-indexing-2.4.4.b1.jar:2.4.4.b1]
>  at 
> org.apache.ignite.internal.processors.query.h2.opt.GridH2Table.update(GridH2Table.java:454)
>  ~[ignite-indexing-2.4.4.b1.jar:2.4.4.b1]
>  at 
> org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.store(IgniteH2Indexing.java:653)
>  ~[ignite-indexing-2.4.4.b1.jar:2.4.4.b1]
>  at 
> org.apache.ignite.internal.processors.query.GridQueryProcessor.store(GridQueryProcessor.java:1866)
>  ~[ignite-core-2.4.4.b1.jar:2.4.4.b1]
>  at 
> org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager.store(GridCacheQueryManager.java:407)
>  ~[ignite-core-2.4.4.b1.jar:2.4.4.b1]
>  at 
> org.apache.ignite.internal.processors.cache.IgniteCacheOffheapManagerImpl$CacheDataStoreImpl.finishUpdate(IgniteCacheOffheapManagerImpl.java:1391)
>  ~[ignite-core-2.4.4.b1.jar:2.4.4.b1]
>  at 
> org.apache.ignite.internal.processors.cache.IgniteCacheOffheapManagerImpl$CacheDataStoreImpl.invoke(IgniteCacheOffheapManagerImpl.java:1255)
>  ~[ignite-core-2.4.4.b1.jar:2.4.4.b1]
>  at 
> org.apache.ignite.internal.processors.cache.persistence.GridCacheOffheapManager$GridCacheDataStore.invoke(GridCacheOffheapManager.java:1451)
>  ~[ignite-core-2.4.4.b1.jar:2.4.4.b1]
>  at 
> org.apache.ignite.internal.processors.cache.IgniteCacheOffheapManagerImpl.invoke(IgniteCacheOffheapManagerImpl.java:352)
>  ~[ignite-core-2.4.4.b1.jar:2.4.4.b1]
>  at 
> org.apache.ignite.internal.processors.cache.GridCacheMapEntry.storeValue(GridCacheMapEntry.java:3527)
>  ~[ignite-core-2.4.4.b1.jar:2.4.4.b1]
>  at 
> org.apache.ignite.internal.processors.cache.GridCacheMapEntry.initialValue(GridCacheMapEntry.java:2735)
>  ~[ignite-core-2.4.4.b1.jar:2.4.4.b1]
>  at 
> org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionDemander.preloadEntry(GridDhtPartitionDemander.java:823)
>  ~[ignite-core-2.4.4.b1.jar:2.4.4.b1]
>  at 
> org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionDemander.handleSupplyMessage(GridDhtPartitionDemander.java:704)
>  ~[ignite-core-2.4.4.b1.jar:2.4.4.b1]
>  at 
> org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPreloader.handleSupplyMessage(GridDhtPreloader.java:347)
>  ~[ignite-core-2.4.4.b1.jar:2.4.4.b1]
>  at 
> org.apache.ignite.internal.processors.cache.GridCachePartitionExchangeManager$5.apply(GridCachePartitionExchangeManager.java:365)
>  ~[ignite-core-2.4.4.b1.jar:2.4.4.b1]
>  at 
> org.apache.ignite.internal.processors.cache.GridCachePartitionExchangeManager$5.apply(GridCachePartitionExchangeManager.java:355)
>  ~[ignite-core-2.4.4.b1.jar:2.4.4.b1]
>  at 
> org.apache.ignite.internal.processors.cache.GridCacheIoManager.processMessage(GridCacheIoManager.java:1054)
>  [ignite-core-2.4.4.b1.jar:2.4.4.b1]
>  at 
> org.apache.ignite.internal.processors.cache.GridCacheIoManager.onMessage0(GridCacheIoManager.java:579)
>  [ignite-core-2.4.4.b1.jar:2.4.4.b1]
>  at 
> org.apache.ignite.internal.processors.cache.GridCacheIoManager.access$700(GridCacheIoManager.java:99)
>  [ignite-core-2.4.4.b1.jar:2.4.4.b1]
>  at 
> org.apache.ignite.internal.processors.cache.GridCacheIoManager$OrderedMessageListener.onMessage(GridCacheIoManager.java:1603)
>  [ignite-core-2.4.4.b1.jar:2.4.4.b1]
>  at 
> org.apache.ignite.internal.managers.communication.GridIoManager.invokeListener(GridIoManager.java:1555)
>  [ignite-core-2.4.4.b1.jar:2.4.4.b1]
>  at 
> org.apache.ignite.internal.managers.communication.GridIoManager.access$4100(GridIoManager.java:126)
>  [ignite-core-2.4.4.b1.jar:2.4.4.b1]
>  at 
> org.apache.ignite.internal.managers.communication.GridIoManager$GridCommunicationMessageSet.unwind(GridIoManager.java:2751)
>  [ignite-core-2.4.4.b1.jar:2.4.4.b1]
>  at 
> org.apache.ignite.internal.managers.communication.GridIoManager.unwindMessageSet(GridIoManager.java:1515)
>  [ignite-core-2.4.4.b1.jar:2.4.4.b1]
>  at 
> org.apache.ignite.internal.managers.communication.GridIoManager.access$4400(GridIoManager.java:126)
>  [ignite-core-2.4.4.b1.jar:2.4.4.b1]
>  at 
> org.apache.ignite.internal.managers.communication.GridIoManager$10.run(GridIoManager.java:1484)
>  [ignite-core-2.4.4.b1.jar:2.4.4.b1]
>  at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>  [?:1.8.0_151]
>  at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>  [?:1.8.0_151]
>  at java.lang.Thread.run(Thread.java:748) [?:1.8.0_151]
>  Caused by: java.lang.IllegalStateException: Failed to get page IO instance 
> (page content is corrupted)
>  at 
> org.apache.ignite.internal.processors.cache.persistence.tree.io.IOVersions.forVersion(IOVersions.java:83)
>  ~[ignite-core-2.4.4.b1.jar:2.4.4.b1]
>  at 
> org.apache.ignite.internal.processors.cache.persistence.tree.io.IOVersions.forPage(IOVersions.java:95)
>  ~[ignite-core-2.4.4.b1.jar:2.4.4.b1]
>  at 
> org.apache.ignite.internal.processors.cache.persistence.CacheDataRowAdapter.initFromLink(CacheDataRowAdapter.java:148)
>  ~[ignite-core-2.4.4.b1.jar:2.4.4.b1]
>  at 
> org.apache.ignite.internal.processors.cache.persistence.CacheDataRowAdapter.initFromLink(CacheDataRowAdapter.java:102)
>  ~[ignite-core-2.4.4.b1.jar:2.4.4.b1]
>  at 
> org.apache.ignite.internal.processors.query.h2.database.H2RowFactory.getRow(H2RowFactory.java:61)
>  ~[ignite-indexing-2.4.4.b1.jar:2.4.4.b1]
>  at 
> org.apache.ignite.internal.processors.query.h2.database.H2Tree.createRowFromLink(H2Tree.java:149)
>  ~[ignite-indexing-2.4.4.b1.jar:2.4.4.b1]
>  at 
> org.apache.ignite.internal.processors.query.h2.database.io.H2LeafIO.getLookupRow(H2LeafIO.java:67)
>  ~[ignite-indexing-2.4.4.b1.jar:2.4.4.b1]
>  at 
> org.apache.ignite.internal.processors.query.h2.database.io.H2LeafIO.getLookupRow(H2LeafIO.java:33)
>  ~[ignite-indexing-2.4.4.b1.jar:2.4.4.b1]
>  at 
> org.apache.ignite.internal.processors.query.h2.database.H2Tree.getRow(H2Tree.java:167)
>  ~[ignite-indexing-2.4.4.b1.jar:2.4.4.b1]
>  at 
> org.apache.ignite.internal.processors.query.h2.database.H2Tree.getRow(H2Tree.java:46)
>  ~[ignite-indexing-2.4.4.b1.jar:2.4.4.b1]
>  at 
> org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree.getRow(BPlusTree.java:4436)
>  ~[ignite-core-2.4.4.b1.jar:2.4.4.b1]
>  at 
> org.apache.ignite.internal.processors.query.h2.database.H2Tree.compare(H2Tree.java:209)
>  ~[ignite-indexing-2.4.4.b1.jar:2.4.4.b1]
>  at 
> org.apache.ignite.internal.processors.query.h2.database.H2Tree.compare(H2Tree.java:46)
>  ~[ignite-indexing-2.4.4.b1.jar:2.4.4.b1]
>  at 
> org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree.compare(BPlusTree.java:4423)
>  ~[ignite-core-2.4.4.b1.jar:2.4.4.b1]
>  at 
> org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree.findInsertionPoint(BPlusTree.java:4343)
>  ~[ignite-core-2.4.4.b1.jar:2.4.4.b1]
>  at 
> org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree.access$1500(BPlusTree.java:82)
>  ~[ignite-core-2.4.4.b1.jar:2.4.4.b1]
>  at 
> org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree$Search.run0(BPlusTree.java:270)
>  ~[ignite-core-2.4.4.b1.jar:2.4.4.b1]
>  at 
> org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree$GetPageHandler.run(BPlusTree.java:4770)
>  ~[ignite-core-2.4.4.b1.jar:2.4.4.b1]
>  at 
> org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree$GetPageHandler.run(BPlusTree.java:4755)
>  ~[ignite-core-2.4.4.b1.jar:2.4.4.b1]
>  at 
> org.apache.ignite.internal.processors.cache.persistence.tree.util.PageHandler.readPage(PageHandler.java:158)
>  ~[ignite-core-2.4.4.b1.jar:2.4.4.b1]
>  at 
> org.apache.ignite.internal.processors.cache.persistence.DataStructure.read(DataStructure.java:320)
>  ~[ignite-core-2.4.4.b1.jar:2.4.4.b1]
>  at 
> org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree.putDown(BPlusTree.java:2317)
>  ~[ignite-core-2.4.4.b1.jar:2.4.4.b1]
>  at 
> org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree.putDown(BPlusTree.java:2329)
>  ~[ignite-core-2.4.4.b1.jar:2.4.4.b1]
>  at 
> org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree.putDown(BPlusTree.java:2329)
>  ~[ignite-core-2.4.4.b1.jar:2.4.4.b1]
>  at 
> org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree.doPut(BPlusTree.java:2069)
>  ~[ignite-core-2.4.4.b1.jar:2.4.4.b1]
>  ... 30 more
> {noformat}
> Possible cause and reproducer:
> 1) Start partition eviction
> 2) Force kill node (kill -9) after partition file truncate
> 3) Start node again and iterate over index
> The main problem that file truncation is not synchronized with actual 
> checkpoint which can lead to the situation, that after crash recovery we have 
> links in index tree to the data pages which were already removed during file 
> truncation.
> One of the possible solutions is to mark such partition files for deletion 
> and safely truncate them on the next checkpoint.
> This mechanism can be ressurected from ignite-2.0.2.b1 branch.
> See 
> {noformat}
> org/gridgain/grid/internal/processors/cache/database/GridCacheDatabaseSharedManager.java:3059
> org.gridgain.grid.cache.db.GridCacheOffheapManager#destroyCacheDataStore
> {noformat}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to