[
https://issues.apache.org/jira/browse/IGNITE-10556?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16714808#comment-16714808
]
ASF GitHub Bot commented on IGNITE-10556:
-----------------------------------------
GitHub user Jokser opened a pull request:
https://github.com/apache/ignite/pull/5624
IGNITE-10556 Skip records deserialization on recovery
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/gridgain/apache-ignite ignite-10556
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/ignite/pull/5624.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 #5624
----
commit 64f2f9c1c4ef5f60545fd211ef1abb4297284f0e
Author: Pavel Kovalenko <jokserfn@...>
Date: 2018-12-07T14:03:38Z
IGNITE-10556 Remove metastoreOnly flag
Signed-off-by: Pavel Kovalenko <[email protected]>
commit db4ce1a2ede33421624b8d0a71b21fb6f736c573
Author: Pavel Kovalenko <jokserfn@...>
Date: 2018-12-07T15:45:08Z
IGNITE-10556 WIP
Signed-off-by: Pavel Kovalenko <[email protected]>
commit 476077be82bb42bfbdf545b2cf9137d7780d432f
Author: Pavel Kovalenko <jokserfn@...>
Date: 2018-12-10T14:43:33Z
IGNITE-10556 WIP
Signed-off-by: Pavel Kovalenko <[email protected]>
commit c4a305b3109812f68e2431c4818bf11dd2720c03
Author: Pavel Kovalenko <jokserfn@...>
Date: 2018-12-10T14:44:55Z
Merge branch 'master' into ignite-10556
# Conflicts:
#
modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheDatabaseSharedManager.java
----
> Attempt to decrypt data records during read-only metastorage recovery leads
> to NPE
> ----------------------------------------------------------------------------------
>
> Key: IGNITE-10556
> URL: https://issues.apache.org/jira/browse/IGNITE-10556
> Project: Ignite
> Issue Type: Bug
> Components: cache
> Affects Versions: 2.8
> Reporter: Pavel Kovalenko
> Priority: Critical
> Fix For: 2.8
>
>
> Stacktrace:
> {noformat}
> Caused by: java.lang.NullPointerException
> at
> org.apache.ignite.internal.processors.cache.persistence.GridCacheDatabaseSharedManager$RestoreStateContext.lambda$next$0(GridCacheDatabaseSharedManager.java:4795)
> at
> java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:174)
> at
> java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1382)
> at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
> at
> java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
> at
> java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
> at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
> at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)
> at
> org.apache.ignite.internal.processors.cache.persistence.GridCacheDatabaseSharedManager$RestoreStateContext.next(GridCacheDatabaseSharedManager.java:4799)
> at
> org.apache.ignite.internal.processors.cache.persistence.GridCacheDatabaseSharedManager$RestoreLogicalState.next(GridCacheDatabaseSharedManager.java:4926)
> at
> org.apache.ignite.internal.processors.cache.persistence.GridCacheDatabaseSharedManager.applyLogicalUpdates(GridCacheDatabaseSharedManager.java:2370)
> at
> org.apache.ignite.internal.processors.cache.persistence.GridCacheDatabaseSharedManager.readMetastore(GridCacheDatabaseSharedManager.java:733)
> at
> org.apache.ignite.internal.processors.cache.persistence.GridCacheDatabaseSharedManager.notifyMetaStorageSubscribersOnReadyForRead(GridCacheDatabaseSharedManager.java:4493)
> at org.apache.ignite.internal.IgniteKernal.start(IgniteKernal.java:1048)
> ... 20 more
> {noformat}
> It happens because there is no encryption key for that cache group.
> Encryption keys are initialized after read-only metastorage is ready. There
> is a bug in RestoreStateContext which tries to filter out DataEntries in
> DataRecord by group id during read-only metastorage recovery. We should
> explicitly skip such records before filtering. As a possible solution, we
> should provide more flexible records filter to RestoreStateContext if we do
> recovery of read-only metastorage.
> We should also return something more meaningful instead of null if no
> encryption key is found for DataRecord, as it can be a silent problem for
> components iterating over WAL.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)