You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Stefan Miklosovic (Jira)" <ji...@apache.org> on 2021/09/13 12:33:00 UTC

[jira] [Comment Edited] (CASSANDRA-16683) StandaloneVerifier does not fail when unable to verify SSTables, it only fails if Corruption is thrown

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

Stefan Miklosovic edited comment on CASSANDRA-16683 at 9/13/21, 12:32 PM:
--------------------------------------------------------------------------

FYI  test fails for me at least when building 3.11, for offline_tools_test.py::TestOfflineTools::test_sstableverify. It seems like the output was changed from 3.11 to 4 and one test, as written, does not cover it all anymore for both versions.


was (Author: stefan.miklosovic):
FYI  tests fails for me at least when building 3.11, for offline_tools_test.py::TestOfflineTools::test_sstableverify. It seems like the output was changed from 3.11 to 4 and one test, as written, does not cover it all anymore for both versions.

> StandaloneVerifier does not fail when unable to verify SSTables, it only fails if Corruption is thrown
> ------------------------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-16683
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-16683
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Test/dtest/python, Tool/sstable
>            Reporter: David Capwell
>            Assignee: David Capwell
>            Priority: Normal
>             Fix For: 3.0.25, 3.11.11, 4.1, 4.0-rc2, 4.0
>
>          Time Spent: 20m
>  Remaining Estimate: 0h
>
> offline_tools_test.py::TestOfflineTools::test_sstableverify has the following check
> {code}
>        try:
>            (out, error, rc) = node1.run_sstableverify("keyspace1", "standard1", options=['-v'])
>        except ToolError as e:
>            # Process sstableverify output to normalize paths in string to Python casing as above
>            error = re.sub("(?<=Corrupted: ).*", lambda match: os.path.normcase(match.group(0)), str(e))
>            assert re.search("Corrupted: " + sstable1, error)
>            assert e.exit_status == 1, str(e.exit_status)
> {code}
> This checks if the corrupt log is present IFF ToolError is thrown, but does not validate that the error is actually thrown.  I tried calling the same logic before the try to validate and see that it does not fail.  If we fix the test to check for error we also see that the log that is returned to the user does not match 2.2’s behavior but instead returns different logic as digest validation throws IOException, which we do not convert to a CorruptSSTableException (which is the message the test checks for).
> This also shows another big issue, that when the digest fails verify passes



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

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