apache/cassandra · info
Hint dispatch was interrupted
Error message
Hint dispatch was interrupted
What it means
HintsDispatcher's dispatch task waits (awaitUntil) for an outstanding hint delivery to complete. If the waiting thread is interrupted, it logs 'Hint dispatch was interrupted' and returns INTERRUPTED as the dispatch outcome; the hint will be retried later rather than lost.
Source
Thrown at src/java/org/apache/cassandra/hints/HintsDispatcher.java:477
{
this.to = to != null ? to : ACCORD_HINT_ENDPOINT;
this.hintCreationNanoTime = approxTime.translate().fromMillisSinceEpoch(hintCreationTimeMillisSinceEpoch);
if (accordTxnResult != null)
accordTxnResult.addCallback(this);
else
accordOutcome = SUCCESS;
}
Outcome await()
{
boolean timedOut;
try
{
timedOut = !condition.awaitUntil(HINT_REQ.expiresAtNanos(start));
}
catch (InterruptedException e)
{
logger.warn("Hint dispatch was interrupted", e);
return INTERRUPTED;
}
normalOutcome = timedOut ? TIMEOUT : normalOutcome;
return outcome();
}
private Outcome outcome()
{
checkState((normalOutcome != null && accordOutcome != null) || (normalOutcome != SUCCESS || accordOutcome != SUCCESS), "Outcome for both normal and accord hint delivery should be known");
if (normalOutcome == RETRY_DIFFERENT_SYSTEM || accordOutcome == RETRY_DIFFERENT_SYSTEM)
return RETRY_DIFFERENT_SYSTEM;
if (normalOutcome == TIMEOUT || accordOutcome == TIMEOUT)
return TIMEOUT;
if (normalOutcome == FAILURE || accordOutcome == FAILURE)
return FAILURE;
checkState(normalOutcome == SUCCESS && accordOutcome == SUCCESS, "Hint delivery should have been successful");
return SUCCESS;View on GitHub (pinned to 88fd0f6a0e)
Solutions
- No action needed during planned shutdown — hints remain queued and are redelivered after restart.
- If it appears without a shutdown, check for something calling Thread.interrupt() on executor threads; review executor shutdown hooks andrecent restarts.
- Verify the target host recovered and hints eventually flushed: nodetool statushints / check hints directory backlog.
Defensive patterns
Strategy: retry
Try / catch
// Internal path; for operators, treat INTERRUPTED outcome as retryable: // hints are persisted and redelivered automatically; monitor backlog instead of code // nodetool statusbackup / hints metrics: org.apache.cassandra.hints HintsService backlog size
Prevention
- Schedule shutdowns/maintenance to allow hint dispatch to drain beforehand.
- Monitor hints backlog metrics to detect repeated interrupted dispatches.
- Avoid frequent operation-mode changes on nodes with large hint backlogs.
- Ensure target nodes recover promptly so hints don't pile up during flapping.
When it happens
Trigger: Thread interruption during hint delivery wait: node shutdown/decommission draining hint dispatch, hints service stop, or interruptible internal task cancellation.
Common situations: Graceful node shutdown or restart while hints were being dispatched to a recovered peer; decommission/operation mode changes cancelling the hints dispatcher.
Related errors
- hints_directory must not be the same as any data_file_direct
- SSTables import has been aborted
- HintsService is shut down and can't accept new hints
- HintsService is shut down and cannot be restarted
- HintsService has already been shut down
AI-assisted analysis of apache/cassandra@88fd0f6a0e (2026-09-10).
Data as JSON: /api/errors/3842e8a6681acbed.
Report an issue: GitHub.