[ 
https://issues.apache.org/jira/browse/CASSANDRA-13121?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16407393#comment-16407393
 ] 

Patrick Bannister edited comment on CASSANDRA-13121 at 5/13/18 1:56 AM:
------------------------------------------------------------------------

I've developed a patch for 3.0. The same changes should also work for 3.11.

To effectively test the patch, I recommend using the 
TestDeprecatedRepairNotifications dtest available in the CASSANDRA-13121 branch 
of https://github.com/ptbannister/cassandra-dtest. There's a pull request in 
for this dtest, but right now it's only available in my fork.


was (Author: ptbannister):
I've developed a patch for 3.0. The same changes should also work for 3.11.

To effectively test the patch, I recommend using the 
TestDeprecatedRepairNotifications dtest available in the CASSANDRA-13121 branch 
of [https://github.com/ptbannister/cassandra-dtest|[http://example.com].] 
There's a pull request in for this dtest, but right now it's only available in 
my fork.

> repair progress message breaks legacy JMX support
> -------------------------------------------------
>
>                 Key: CASSANDRA-13121
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-13121
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Streaming and Messaging
>            Reporter: Scott Bale
>            Assignee: Patrick Bannister
>            Priority: Minor
>              Labels: jmx, lhf, notifications, repair
>             Fix For: 3.0.x, 3.11.x
>
>         Attachments: 13121-3.0.txt
>
>
> The error progress message in {{RepairRunnable}} is not compliant with the 
> {{LegacyJMXProgressSupport}} class, which uses a regex to match on the text 
> of a progress event. Therefore, actual failures slip through as successes if 
> using legacy JMX for repairs.
> In {{RepairRunnable}}
> {code}
>     protected void fireErrorAndComplete(String tag, int progressCount, int 
> totalProgress, String message)
>     {
>         fireProgressEvent(tag, new ProgressEvent(ProgressEventType.ERROR, 
> progressCount, totalProgress, message));
>         fireProgressEvent(tag, new ProgressEvent(ProgressEventType.COMPLETE, 
> progressCount, totalProgress, String.format("Repair command #%d finished with 
> error", cmd)));
>     }
> {code}
> Note the {{"Repair command #%d finished with error"}}
> See 
> https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/repair/RepairRunnable.java#L109
> In {{LegacyJMXProgressSupport}}:
> {code}
>     protected static final Pattern SESSION_FAILED_MATCHER = 
> Pattern.compile("Repair session .* for range .* failed with error .*");
>     protected static final Pattern SESSION_SUCCESS_MATCHER = 
> Pattern.compile("Repair session .* for range .* finished");
> {code}
> See 
> https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/utils/progress/jmx/LegacyJMXProgressSupport.java#L38
> Legacy JMX support was introduced for CASSANDRA-11430 (version 2.2.6) and the 
> bug was introduced as part of CASSANDRA-12279 (version 2.2.8).



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

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org

Reply via email to