You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@nifi.apache.org by "David Handermann (Jira)" <ji...@apache.org> on 2022/12/16 02:12:00 UTC

[jira] [Created] (NIFI-10989) Intermittent Failures in TestHashContent

David Handermann created NIFI-10989:
---------------------------------------

             Summary: Intermittent Failures in TestHashContent
                 Key: NIFI-10989
                 URL: https://issues.apache.org/jira/browse/NIFI-10989
             Project: Apache NiFi
          Issue Type: Bug
            Reporter: David Handermann
            Assignee: David Handermann


The {{TestHashContent.testSHA1}} method fails intermittently on GitHub automated builds, and also fails consistently when running as an individual test class with the following error:

{noformat}
Error:  Tests run: 3, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 0.063 s <<< FAILURE! - in org.apache.nifi.processors.standard.TestHashContent
Error:  org.apache.nifi.processors.standard.TestHashContent.testSHA1  Time elapsed: 0.016 s  <<< FAILURE!
org.opentest4j.AssertionFailedError:
Processor has 1 validation failures:
'Hash Algorithm' validated against 'SHA-1' is invalid because Given value not found in allowed set 'SHA3-512, SHA-384, SHA, SHA3-384, SHA-224, SHA-512/256, SHA-256, MD2, SHA-512/224, SHA3-256, SHA-512, MD5, SHA3-224'
{noformat}

The problem is the result of {{Security.getAlgorithms("MessageDigest")}} returning different results in different scenarios. The standard JDK returns {{SHA}} but the Bouncy Castle Security Provider returns {{SHA-1}}. In some Maven builds, other classes invoke {{Security.addProvider(new BouncyCastleProvider())}} which changes the registered security providers for the entire Java Runtime. This allows the current test method to run successfully. In scenarios where the Bouncy Castle Provider is not registered, the test fails.

The {{HashContent}} Processor is deprecated in favor of {{CryptographicHashContent}} and will be removed in subsequent major releases. Although one solution would involve registering the Bouncy Castle Provider, removing the test method avoids intermittent failures and simplifies future maintenance with impending removal the Processor.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)