Fire global checkpoint sync under system context
The global checkpoint sync action should fire under the system context since it is not a user-facing management action. Relates #26984
This commit is contained in:
parent
cee9640c20
commit
f81ee225ff
|
@ -35,6 +35,7 @@ import org.elasticsearch.cluster.node.DiscoveryNode;
|
||||||
import org.elasticsearch.cluster.service.ClusterService;
|
import org.elasticsearch.cluster.service.ClusterService;
|
||||||
import org.elasticsearch.common.inject.Inject;
|
import org.elasticsearch.common.inject.Inject;
|
||||||
import org.elasticsearch.common.settings.Settings;
|
import org.elasticsearch.common.settings.Settings;
|
||||||
|
import org.elasticsearch.common.util.concurrent.ThreadContext;
|
||||||
import org.elasticsearch.index.shard.IndexShard;
|
import org.elasticsearch.index.shard.IndexShard;
|
||||||
import org.elasticsearch.index.shard.IndexShardClosedException;
|
import org.elasticsearch.index.shard.IndexShardClosedException;
|
||||||
import org.elasticsearch.index.shard.ShardId;
|
import org.elasticsearch.index.shard.ShardId;
|
||||||
|
@ -80,13 +81,18 @@ public class GlobalCheckpointSyncAction extends TransportReplicationAction<
|
||||||
}
|
}
|
||||||
|
|
||||||
public void updateGlobalCheckpointForShard(final ShardId shardId) {
|
public void updateGlobalCheckpointForShard(final ShardId shardId) {
|
||||||
execute(
|
final ThreadContext threadContext = threadPool.getThreadContext();
|
||||||
new Request(shardId),
|
try (ThreadContext.StoredContext ignore = threadContext.stashContext()) {
|
||||||
ActionListener.wrap(r -> {}, e -> {
|
threadContext.markAsSystemContext();
|
||||||
if (ExceptionsHelper.unwrap(e, AlreadyClosedException.class, IndexShardClosedException.class) == null) {
|
execute(
|
||||||
logger.info(new ParameterizedMessage("{} global checkpoint sync failed", shardId), e);
|
new Request(shardId),
|
||||||
}
|
ActionListener.wrap(r -> {
|
||||||
}));
|
}, e -> {
|
||||||
|
if (ExceptionsHelper.unwrap(e, AlreadyClosedException.class, IndexShardClosedException.class) == null) {
|
||||||
|
logger.info(new ParameterizedMessage("{} global checkpoint sync failed", shardId), e);
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
Loading…
Reference in New Issue