You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "ASF GitHub Bot (JIRA)" <ji...@apache.org> on 2018/10/02 09:43:00 UTC

[jira] [Commented] (IGNITE-9761) Deadlock SegmentArchivedStorage <-> SegmentLockStorage

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

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

GitHub user akalash opened a pull request:

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

    IGNITE-9761 fixed deadlock SegmentArchivedStorage <-> SegmentLockStorage

    

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

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

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

    https://github.com/apache/ignite/pull/4890.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 #4890
    
----
commit 963a12009b4e9dbf97441a40020eaee850bf507f
Author: Anton Kalashnikov <ka...@...>
Date:   2018-10-02T09:41:59Z

    IGNITE-9761 fixed deadlock SegmentArchivedStorage <-> SegmentLockStorage

----


> Deadlock SegmentArchivedStorage <-> SegmentLockStorage
> ------------------------------------------------------
>
>                 Key: IGNITE-9761
>                 URL: https://issues.apache.org/jira/browse/IGNITE-9761
>             Project: Ignite
>          Issue Type: Bug
>            Reporter: Anton Kalashnikov
>            Assignee: Anton Kalashnikov
>            Priority: Major
>
> {noformat}
> Found one Java-level deadlock:
> =============================
> "wal-file-archiver%cache.IgniteClusterActivateDeactivateTestWithPersistence2-#11729%cache.IgniteClusterActivateDeactivateTestWithPersistence2%":
>   waiting to lock monitor 0x00007fa33c0121e8 (object 0x00000000f7142560, a org.apache.ignite.internal.processors.cache.persistence.wal.aware.SegmentLockStorage),
>   which is held by "exchange-worker-#11646%cache.IgniteClusterActivateDeactivateTestWithPersistence2%"
> "exchange-worker-#11646%cache.IgniteClusterActivateDeactivateTestWithPersistence2%":
>   waiting to lock monitor 0x00007fa3503b6058 (object 0x00000000f7142578, a org.apache.ignite.internal.processors.cache.persistence.wal.aware.SegmentArchivedStorage),
>   which is held by "wal-file-archiver%cache.IgniteClusterActivateDeactivateTestWithPersistence2-#11729%cache.IgniteClusterActivateDeactivateTestWithPersistence2%"
> Java stack information for the threads listed above:
> ===================================================
> "wal-file-archiver%cache.IgniteClusterActivateDeactivateTestWithPersistence2-#11729%cache.IgniteClusterActivateDeactivateTestWithPersistence2%":
>     at org.apache.ignite.internal.processors.cache.persistence.wal.aware.SegmentLockStorage.locked(SegmentLockStorage.java:41)
>     - waiting to lock <0x00000000f7142560> (a org.apache.ignite.internal.processors.cache.persistence.wal.aware.SegmentLockStorage)
>     at org.apache.ignite.internal.processors.cache.persistence.wal.aware.SegmentArchivedStorage.markAsMovedToArchive(SegmentArchivedStorage.java:101)
>     - locked <0x00000000f7142578> (a org.apache.ignite.internal.processors.cache.persistence.wal.aware.SegmentArchivedStorage)
>     at org.apache.ignite.internal.processors.cache.persistence.wal.aware.SegmentAware.markAsMovedToArchive(SegmentAware.java:91)
>     at org.apache.ignite.internal.processors.cache.persistence.wal.FileWriteAheadLogManager$FileArchiver.body(FileWriteAheadLogManager.java:1643)
>     at org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:110)
>     at java.lang.Thread.run(Thread.java:748)
> "exchange-worker-#11646%cache.IgniteClusterActivateDeactivateTestWithPersistence2%":
>     at org.apache.ignite.internal.processors.cache.persistence.wal.aware.SegmentArchivedStorage.onSegmentUnlocked(SegmentArchivedStorage.java:135)
>     - waiting to lock <0x00000000f7142578> (a org.apache.ignite.internal.processors.cache.persistence.wal.aware.SegmentArchivedStorage)
>     at org.apache.ignite.internal.processors.cache.persistence.wal.aware.SegmentArchivedStorage$$Lambda$2/2113450692.accept(Unknown Source)
>     at org.apache.ignite.internal.processors.cache.persistence.wal.aware.SegmentObservable.lambda$notifyObservers$0(SegmentObservable.java:44)
>     at org.apache.ignite.internal.processors.cache.persistence.wal.aware.SegmentObservable$$Lambda$6/688404745.accept(Unknown Source)
>     at java.util.ArrayList.forEach(ArrayList.java:1257)
>     at org.apache.ignite.internal.processors.cache.persistence.wal.aware.SegmentObservable.notifyObservers(SegmentObservable.java:44)
>     - locked <0x00000000f7142560> (a org.apache.ignite.internal.processors.cache.persistence.wal.aware.SegmentLockStorage)
>     at org.apache.ignite.internal.processors.cache.persistence.wal.aware.SegmentLockStorage.releaseWorkSegment(SegmentLockStorage.java:74)
>     - locked <0x00000000f7142560> (a org.apache.ignite.internal.processors.cache.persistence.wal.aware.SegmentLockStorage)
>     at org.apache.ignite.internal.processors.cache.persistence.wal.aware.SegmentAware.releaseWorkSegment(SegmentAware.java:226)
>     at org.apache.ignite.internal.processors.cache.persistence.wal.io.LockedReadFileInput.ensure(LockedReadFileInput.java:81)
>     at org.apache.ignite.internal.processors.cache.persistence.wal.serializer.RecordV1Serializer.readSegmentHeader(RecordV1Serializer.java:260)
>     at org.apache.ignite.internal.processors.cache.persistence.wal.AbstractWalRecordsIterator.initReadHandle(AbstractWalRecordsIterator.java:381)
>     at org.apache.ignite.internal.processors.cache.persistence.wal.FileWriteAheadLogManager$RecordsIterator.initReadHandle(FileWriteAheadLogManager.java:2942)
>     at org.apache.ignite.internal.processors.cache.persistence.wal.FileWriteAheadLogManager$RecordsIterator.advanceSegment(FileWriteAheadLogManager.java:3024)
>     at org.apache.ignite.internal.processors.cache.persistence.wal.AbstractWalRecordsIterator.advance(AbstractWalRecordsIterator.java:163)
>     at org.apache.ignite.internal.processors.cache.persistence.wal.FileWriteAheadLogManager$RecordsIterator.<init>(FileWriteAheadLogManager.java:2916)
>     at org.apache.ignite.internal.processors.cache.persistence.wal.FileWriteAheadLogManager$RecordsIterator.<init>(FileWriteAheadLogManager.java:2832)
>     at org.apache.ignite.internal.processors.cache.persistence.wal.FileWriteAheadLogManager.replay(FileWriteAheadLogManager.java:861)
>     at org.apache.ignite.internal.processors.cache.persistence.GridCacheDatabaseSharedManager.applyLastUpdates(GridCacheDatabaseSharedManager.java:2230)
>     at org.apache.ignite.internal.processors.cache.persistence.GridCacheDatabaseSharedManager.restoreState(GridCacheDatabaseSharedManager.java:1584)
>     at org.apache.ignite.internal.processors.cache.persistence.GridCacheDatabaseSharedManager.beforeExchange(GridCacheDatabaseSharedManager.java:1322)
>     at org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionsExchangeFuture.distributedExchange(GridDhtPartitionsExchangeFuture.java:1236)
>     at org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionsExchangeFuture.init(GridDhtPartitionsExchangeFuture.java:756)
>     at org.apache.ignite.internal.processors.cache.GridCachePartitionExchangeManager$ExchangeWorker.body0(GridCachePartitionExchangeManager.java:2568)
>     at org.apache.ignite.internal.processors.cache.GridCachePartitionExchangeManager$ExchangeWorker.body(GridCachePartitionExchangeManager.java:2448)
>     at org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:110)
>     at java.lang.Thread.run(Thread.java:748)
> Found 1 deadlock.
> {noformat}



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