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

Ariel Weisberg commented on CASSANDRA-13370:
--------------------------------------------

Sorry to keep changing my mind. Still digesting the fact that we can fix just 
this one test and keep using /dev/urandom. I checked and we don't use seeding 
of SecureRandom outside of this test. So I propose going with your original 
solution of using SHA1PRNG, seeding it the way the test does so that the test 
is deterministic as originally intended, and not changing anything in build.xml.

||Code|utests||
|[3.11|https://github.com/apache/cassandra/compare/cassandra-3.11...aweisberg:cassandra-13370-3.11?expand=1]|[utests|https://cassci.datastax.com/view/Dev/view/aweisberg/job/aweisberg-cassandra-13370-3.11-testall/1/]|

> unittest CipherFactoryTest failed on MacOS
> ------------------------------------------
>
>                 Key: CASSANDRA-13370
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-13370
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Testing
>            Reporter: Jay Zhuang
>            Assignee: Jay Zhuang
>            Priority: Minor
>             Fix For: 3.11.x, 4.x
>
>         Attachments: 13370-trunk.txt, 13370-trunk-update.txt
>
>
> Seems like MacOS(El Capitan) doesn't allow writing to {{/dev/urandom}}:
> {code}
> $ echo 1 > /dev/urandom
> echo: write error: operation not permitted
> {code}
> Which is causing CipherFactoryTest failed:
> {code}
> $ ant test -Dtest.name=CipherFactoryTest
> ...
>     [junit] Testsuite: org.apache.cassandra.security.CipherFactoryTest
>     [junit] Testsuite: org.apache.cassandra.security.CipherFactoryTest Tests 
> run: 7, Failures: 0, Errors: 7, Skipped: 0, Time elapsed: 2.184 sec
>     [junit]
>     [junit] Testcase: 
> buildCipher_SameParams(org.apache.cassandra.security.CipherFactoryTest):  
> Caused an ERROR
>     [junit] setSeed() failed
>     [junit] java.security.ProviderException: setSeed() failed
>     [junit]     at 
> sun.security.provider.NativePRNG$RandomIO.implSetSeed(NativePRNG.java:472)
>     [junit]     at 
> sun.security.provider.NativePRNG$RandomIO.access$300(NativePRNG.java:331)
>     [junit]     at 
> sun.security.provider.NativePRNG.engineSetSeed(NativePRNG.java:214)
>     [junit]     at 
> java.security.SecureRandom.getDefaultPRNG(SecureRandom.java:209)
>     [junit]     at java.security.SecureRandom.<init>(SecureRandom.java:190)
>     [junit]     at 
> org.apache.cassandra.security.CipherFactoryTest.setup(CipherFactoryTest.java:50)
>     [junit] Caused by: java.io.IOException: Operation not permitted
>     [junit]     at java.io.FileOutputStream.writeBytes(Native Method)
>     [junit]     at java.io.FileOutputStream.write(FileOutputStream.java:313)
>     [junit]     at 
> sun.security.provider.NativePRNG$RandomIO.implSetSeed(NativePRNG.java:470)
> ...
> {code}
> I'm able to reproduce the issue on two Mac machines. But not sure if it's 
> affecting all other developers.
> {{-Djava.security.egd=file:/dev/urandom}} was introduced in:
> CASSANDRA-9581
> I would suggest to revert the 
> [change|https://github.com/apache/cassandra/commit/ae179e45327a133248c06019f87615c9cf69f643]
>  as {{pig-test}} is removed ([pig is no longer 
> supported|https://github.com/apache/cassandra/commit/56cfc6ea35d1410f2f5a8ae711ae33342f286d79]).
> Or adding a condition for MacOS in build.xml.
> [~aweisberg] [~jasobrown] any thoughts?



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to