[ 
https://issues.apache.org/jira/browse/IGNITE-10263?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andrew Mashenkov updated IGNITE-10263:
--------------------------------------
    Description: 
 

Vacuum.cleanup() can fails on cctx.gate().enter() if cache is stopped 
concurrently.
ctx.gate().enter() method fails with IllegalStateException and we've got 
stacktrace in log for every cache partition.

Replacing enter() with enterIfNotStopped() resolves the issue.

  was:
The issue can be easily reproduced with IgniteCacheIncrementTxTest in Mvcc mode.

 

Vacuum.cleanup() fails on cctx.gate().enter() if cache is stopped concurrently.

ctx.gate().enter() method fails with IllegalStateException right after readLock 
has been taken.
 So, this lock will be never released and prevent writeLock being taken on node 
stop.

Replacing enter() with enterIfNotStopped() resolves the issue, but most likely 
we should release readLock on failure inside gateway.enter().


> MVCC: Concurrent cache stop can cause vacuum failure.
> -----------------------------------------------------
>
>                 Key: IGNITE-10263
>                 URL: https://issues.apache.org/jira/browse/IGNITE-10263
>             Project: Ignite
>          Issue Type: Bug
>          Components: cache, mvcc
>            Reporter: Andrew Mashenkov
>            Assignee: Andrew Mashenkov
>            Priority: Minor
>              Labels: Hanging
>
>  
> Vacuum.cleanup() can fails on cctx.gate().enter() if cache is stopped 
> concurrently.
> ctx.gate().enter() method fails with IllegalStateException and we've got 
> stacktrace in log for every cache partition.
> Replacing enter() with enterIfNotStopped() resolves the issue.



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

Reply via email to