[
https://issues.apache.org/jira/browse/HBASE-30397?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
huginn updated HBASE-30397:
---------------------------
Description:
What happens
When ReplicationSourceShipper.clearWALEntryBatch is interrupted while waiting
for the shipper and reader threads to stop, the warning log contains an extra
unresolved placeholder in the message.
When it happens
During replication source shutdown or termination, if the wait in
clearWALEntryBatch is interrupted before both threads stop.
Impact
The replication cleanup behavior is unchanged, but the incomplete warning makes
the log harder to read and obscures the intended shutdown context.
Root cause
In
hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceShipper.java,
the InterruptedException branch uses a message with three placeholders but
passes the exception as the final Throwable argument. SLF4J treats a final
Throwable specially and excludes it from placeholder substitution, so only the
peer ID and thread name fill placeholders.
Proposed fix
Remove the final placeholder and keep the InterruptedException as the final
Throwable argument. This makes the two placeholders match the peer ID and
thread name while preserving the full exception stack trace.
Reproduction
Trigger an interruption while clearWALEntryBatch is waiting for the shipper and
reader threads to stop, then inspect the warning log. Validation is limited to
source review and logging behavior; no unit test is included for this
logging-only change.
was:
What happens
When ReplicationSourceShipper.clearWALEntryBatch is interrupted while waiting
for the shipper and reader threads to stop, the warning log can leave its final
placeholder unresolved instead of including the interruption value in the
message.
When it happens
During replication source shutdown or termination, if the wait in
clearWALEntryBatch is interrupted before both threads stop.
Impact
The warning is incomplete and makes it harder to identify the interruption that
prevented cleanup from completing.
Root cause
In
hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceShipper.java,
the InterruptedException branch passes the exception as the last argument to a
message with three placeholders. SLF4J treats a final Throwable specially, so
the last placeholder is not populated as intended.
Proposed fix
Format the interrupted exception explicitly with e.toString() for the final
placeholder, preserving the peer ID and thread name in the warning message.
Reproduction
Testing evidence will be added by the reporter.
> Correct interrupted log message in ReplicationSourceShipper.clearWALEntryBatch
> ------------------------------------------------------------------------------
>
> Key: HBASE-30397
> URL: https://issues.apache.org/jira/browse/HBASE-30397
> Project: HBase
> Issue Type: Bug
> Reporter: huginn
> Priority: Major
> Labels: pull-request-available
>
> What happens
> When ReplicationSourceShipper.clearWALEntryBatch is interrupted while waiting
> for the shipper and reader threads to stop, the warning log contains an extra
> unresolved placeholder in the message.
> When it happens
> During replication source shutdown or termination, if the wait in
> clearWALEntryBatch is interrupted before both threads stop.
> Impact
> The replication cleanup behavior is unchanged, but the incomplete warning
> makes the log harder to read and obscures the intended shutdown context.
> Root cause
> In
> hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceShipper.java,
> the InterruptedException branch uses a message with three placeholders but
> passes the exception as the final Throwable argument. SLF4J treats a final
> Throwable specially and excludes it from placeholder substitution, so only
> the peer ID and thread name fill placeholders.
> Proposed fix
> Remove the final placeholder and keep the InterruptedException as the final
> Throwable argument. This makes the two placeholders match the peer ID and
> thread name while preserving the full exception stack trace.
> Reproduction
> Trigger an interruption while clearWALEntryBatch is waiting for the shipper
> and reader threads to stop, then inspect the warning log. Validation is
> limited to source review and logging behavior; no unit test is included for
> this logging-only change.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)