ignite-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (IGNITE-10680) Add the ability to use existing kernel context in standalone WAL iterator
Date Fri, 14 Dec 2018 09:04:00 GMT

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

ASF GitHub Bot commented on IGNITE-10680:

GitHub user alex-plekhanov opened a pull request:


    IGNITE-10680 Add the ability to use existing kernel context in standalone WAL iterator


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

    $ git pull https://github.com/alex-plekhanov/ignite ignite-10680

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


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

    This closes #5669
commit 659cd31cce85aebdc097c20f807d5b1cd4ef476b
Author: Aleksey Plekhanov <plehanov.alex@...>
Date:   2018-12-14T09:01:19Z

    IGNITE-10680 Add the ability to use existing kernel context in standalone WAL iterator


> Add the ability to use existing kernel context in standalone WAL iterator
> -------------------------------------------------------------------------
>                 Key: IGNITE-10680
>                 URL: https://issues.apache.org/jira/browse/IGNITE-10680
>             Project: Ignite
>          Issue Type: Improvement
>    Affects Versions: 2.7
>            Reporter: Aleksey Plekhanov
>            Assignee: Aleksey Plekhanov
>            Priority: Major
>             Fix For: 2.8
> In the current implementation it's only possible to use fake kernel context in standalone
WAL iterator. If we need to use binary meta from the running Ignite node we must specify binary
meta directory in parameters of standalone WAL iterator factory. But there is a possible race
with binary meta files read/write since binary meta received with {{MetadataUpdateProposedMessage}}
can be written to the file and concurrently read from the same file at the same time. This
can lead to assertions like the following:
> {noformat}
> java.lang.AssertionError
> 	at org.apache.ignite.internal.binary.GridBinaryMarshaller.deserialize(GridBinaryMarshaller.java:305)
> 	at org.apache.ignite.internal.binary.BinaryMarshaller.unmarshal0(BinaryMarshaller.java:121)
> 	at org.apache.ignite.marshaller.AbstractNodeNameAwareMarshaller.unmarshal(AbstractNodeNameAwareMarshaller.java:94)
> 	at org.apache.ignite.internal.util.IgniteUtils.unmarshal(IgniteUtils.java:10103)
> 	at org.apache.ignite.internal.processors.cache.binary.BinaryMetadataFileStore.restoreMetadata(BinaryMetadataFileStore.java:117)
> 	at org.apache.ignite.internal.processors.cache.binary.CacheObjectBinaryProcessorImpl.start(CacheObjectBinaryProcessorImpl.java:251)
> 	at org.apache.ignite.internal.processors.cache.persistence.wal.reader.StandaloneGridKernalContext.binaryProcessor(StandaloneGridKernalContext.java:180)
> 	at org.apache.ignite.internal.processors.cache.persistence.wal.reader.StandaloneGridKernalContext.<init>(StandaloneGridKernalContext.java:155)
> 	at org.apache.ignite.internal.processors.cache.persistence.wal.reader.IgniteWalIteratorFactory.prepareSharedCtx(IgniteWalIteratorFactory.java:359)
> 	at org.apache.ignite.internal.processors.cache.persistence.wal.reader.IgniteWalIteratorFactory.iterator(IgniteWalIteratorFactory.java:177)
> {noformat}
> To solve this we can use in standalone WAL iterator existing kernel context of the started
node instead of creating new fake one.

This message was sent by Atlassian JIRA

View raw message