You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Aleksey Plekhanov (Jira)" <ji...@apache.org> on 2022/09/06 11:53:00 UTC
[jira] [Created] (IGNITE-17635) Checkpoint lock wrongly return true for checkpointLockIsHeldByThread after read lock timeout
Aleksey Plekhanov created IGNITE-17635:
------------------------------------------
Summary: Checkpoint lock wrongly return true for checkpointLockIsHeldByThread after read lock timeout
Key: IGNITE-17635
URL: https://issues.apache.org/jira/browse/IGNITE-17635
Project: Ignite
Issue Type: Bug
Reporter: Aleksey Plekhanov
Assignee: Aleksey Plekhanov
Reproducer:
{code:java}
@Test
public void testLockIsHeldByThreadAfterTimeout() throws Exception {
IgniteEx ignite = startGrid();
ignite.cluster().state(ClusterState.ACTIVE);
GridCacheDatabaseSharedManager db = dbMgr(ignite);
CountDownLatch latch = new CountDownLatch(1);
db.addCheckpointListener(new CheckpointListener() {
@Override public void onMarkCheckpointBegin(Context ctx) {
latch.countDown();
doSleep(200L);
}
@Override public void onCheckpointBegin(Context ctx) {
// No-op.
}
@Override public void beforeCheckpointBegin(Context ctx) {
// No-op.
}
});
db.forceCheckpoint("lock");
latch.await(getTestTimeout(), TimeUnit.MILLISECONDS);
db.checkpointReadLockTimeout(10L);
db.checkpointReadLock();
db.checkpointReadUnlock();
assertFalse(db.checkpointLockIsHeldByThread());
} {code}
After such situation there are some assertions possible, which cause node to shutdown by failure handler:
{noformat}
java.lang.AssertionError: Resolving a task name should not be executed under the checkpoint lock.
at org.apache.ignite.internal.processors.task.GridTaskProcessor.resolveTaskName(GridTaskProcessor.java:524)
at org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtGetSingleFuture.getAsync(GridDhtGetSingleFuture.java:337)
{noformat}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)