java.security.SecureRandom

Google Groups | whatever | 5 years ago
  1. 0

    Java and slow connection using Axis

    Google Groups | 5 years ago | whatever
    java.security.SecureRandom
  2. 0

    is java.util.UUID thread safe?

    Stack Overflow | 5 years ago | Abhishek Gayakwad
    java.security.SecureRandom
  3. 0

    Have encountered some reports of slow slave performance on a Unix master using many slaves where the thread dumps show all but one slave connection thread waiting for a single lock, which is held by a thread that looks like this: {code:none} "Pipe writer thread: ..." - Thread ... java.lang.Thread.State: RUNNABLE at sun.security.provider.NativePRNG$RandomIO.implNextBytes(NativePRNG.java:255) - locked <598aec0c> (a java.lang.Object) at sun.security.provider.NativePRNG$RandomIO.access$200(NativePRNG.java:108) at sun.security.provider.NativePRNG.engineNextBytes(NativePRNG.java:97) at java.security.SecureRandom.nextBytes(SecureRandom.java:433) - locked <329129da> (a java.security.SecureRandom) at java.security.SecureRandom.next(SecureRandom.java:455) at java.util.Random.nextInt(Random.java:189) at com.trilead.ssh2.transport.TransportConnection.sendMessage(TransportConnection.java:154) {code} From what I can tell neither the Jenkins SSH Slaves plugin nor the Trilead SSH library are to blame, as they produce a different {{SecureRandom}} instance for each slave. Rather it is {{NativePRNG}} (the default implementation on typical Linux installations among others) which uses a global lock, to synchronize access to {{/dev/random}} and {{/dev/urandom}}; and {{random}} can block waiting for sufficient entropy to accumulate. It might help for the SSH Slaves plugin to offer a {{java.security.SecureRandom}} based on {{sun.security.provider.SecureRandom}}, which does not acquire a global lock to process connection data. (It may take longer to set up a connection, since it needs to seed the random-number generator based on thread activity.) Unconfirmed workarounds: * Edit the JRE's {{$JAVA_HOME/lib/security/java.security}} to comment out the line {{securerandom.source=file}}{{:/dev/urandom}} (should switch back to the generic implementation) * Running {{-Djava.security.egd=file}}{{:/dev/./urandom}} (should force use of {{urandom}} which is supposed to be nonblocking)

    Jenkins JIRA | 3 years ago | Jesse Glick
    java.security.SecureRandom
  4. Speed up your debug routine!

    Automated exception search integrated into your IDE

    Root Cause Analysis

    1. java.security.SecureRandom

      No message provided

      at java.security.SecureRandom.next()
    2. Java RT
      File.createTempFile
      1. java.security.SecureRandom.next(SecureRandom.java:455)
      2. java.util.Random.nextLong(Random.java:284)
      3. java.io.File.generateFile(File.java:1682)
      4. java.io.File.createTempFile(File.java:1791)
      5. java.io.File.createTempFile(File.java:1828)
      5 frames
    3. Axis Web Services
      Stub._createCall
      1. org.apache.axis.MessageContext.<init>(MessageContext.java:319)
      2. org.apache.axis.client.Call.<init>(Call.java:327)
      3. org.apache.axis.client.Service.createCall(Service.java:559)
      4. org.apache.axis.client.Stub._createCall(Stub.java:435)
      4 frames
    4. com.yantra.interop
      WebServiceTester.main
      1. com.yantra.interop.services.webservices.rpc.ejb.YIFWebServiceSoapBindingStub.createCall(YIFWebServiceSoapBindingStub.java:16526)
      2. com.yantra.interop.services.webservices.rpc.ejb.YIFWebServiceSoapBindingStub.findInventory(YIFWebServiceSoapBindingStub.java:32312)
      3. com.yantra.interop.services.webservices.rpc.ejb.WebServiceTester.main(WebServiceTester.java:46)
      3 frames