Uploaded image for project: 'JBoss Enterprise Application Platform'
  1. JBoss Enterprise Application Platform
  2. JBEAP-13016

Server hangs on boot with FIPS Bouncy Castle Provider

    XMLWordPrintable

Details

    • Bug
    • Resolution: Won't Do
    • Trivial
    • None
    • 7.1.0.CR1
    • Security
    • None

    Description

      It happens to me on RHEL7 (vmg126) server doesn't start (hangs)

      From stacktrace it was obvious server hangs on reading a file

      thread.dump
      1445 "MSC service thread 1-2" #13 prio=5 os_prio=0 tid=0x00007fafe8001000 nid=0x67db runnable [0x00007fb024144000]
      1446    java.lang.Thread.State: RUNNABLE
      1447         at java.io.FileInputStream.readBytes(Native Method)
      1448         at java.io.FileInputStream.read(FileInputStream.java:255)
      1449         at sun.security.provider.SeedGenerator$URLSeedGenerator.getSeedBytes(SeedGenerator.java:539)
      1450         at sun.security.provider.SeedGenerator.generateSeed(SeedGenerator.java:144)
      1451         at sun.security.provider.SecureRandom.engineGenerateSeed(SecureRandom.java:139)
      1452         at java.security.SecureRandom.generateSeed(SecureRandom.java:533)
      1453         at org.bouncycastle.jcajce.provider.BouncyCastleFipsProvider.getDefaultSecureRandom(Unknown Source)
      1454         - locked <0x00000000e0525a30> (a org.bouncycastle.jcajce.provider.BouncyCastleFipsProvider)
      1455         at org.bouncycastle.jcajce.provider.ProvRandom$1.createInstance(Unknown Source)
      1456         at org.bouncycastle.jcajce.provider.BouncyCastleFipsProvider$BcService.newInstance(Unknown Source)
      1457         at sun.security.jca.GetInstance.getInstance(GetInstance.java:236)
      1458         at sun.security.jca.GetInstance.getInstance(GetInstance.java:164)
      1459         at java.security.SecureRandom.getInstance(SecureRandom.java:288)
      1460         at java.security.SecureRandom.getDefaultPRNG(SecureRandom.java:205)
      1461         at java.security.SecureRandom.<init>(SecureRandom.java:162)
      1462         at io.undertow.server.session.SecureRandomSessionIdGenerator.<init>(SecureRandomSessionIdGenerator.java:35)
      1463         at org.wildfly.extension.undertow.RemoteHttpInvokerService.start(RemoteHttpInvokerService.java:47)
      1464         at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:2032)
      1465         at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1955)
      1466         at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
      1467         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
      1468         at java.lang.Thread.run(Thread.java:748)
      
      
       111 "ServerService Thread Pool -- 58" #77 prio=5 os_prio=0 tid=0x00007fafe05f4800 nid=0x6827 waiting for monitor entry [0x00007fafde018000]
       112    java.lang.Thread.State: BLOCKED (on object monitor)
       113         at org.bouncycastle.jcajce.provider.BouncyCastleFipsProvider.getServices(Unknown Source)
       114         - waiting to lock <0x00000000e0525a30> (a org.bouncycastle.jcajce.provider.BouncyCastleFipsProvider)
       115         at java.security.SecureRandom.getPrngAlgorithm(SecureRandom.java:559)
       116         at java.security.SecureRandom.getDefaultPRNG(SecureRandom.java:194)
       117         at java.security.SecureRandom.<init>(SecureRandom.java:162)
       118         at java.util.UUID$Holder.<clinit>(UUID.java:96)
       119         at java.util.UUID.randomUUID(UUID.java:142)
       120         at com.arjuna.ats.internal.arjuna.utils.UuidProcessId.<clinit>(UuidProcessId.java:68)
       121         at org.jboss.as.txn.subsystem.TransactionSubsystemAdd.performCoreEnvironmentBootTime(TransactionSubsystemAdd.java:393)
       122         at org.jboss.as.txn.subsystem.TransactionSubsystemAdd.performBoottime(TransactionSubsystemAdd.java:247)
       123         at org.jboss.as.controller.AbstractBoottimeAddStepHandler.performBoottime(AbstractBoottimeAddStepHandler.java:157)
       124         at org.jboss.as.controller.AbstractBoottimeAddStepHandler.performRuntime(AbstractBoottimeAddStepHandler.java:116)
       125         at org.jboss.as.controller.AbstractAddStepHandler$1.execute(AbstractAddStepHandler.java:151)
       126         at org.jboss.as.controller.AbstractOperationContext.executeStep(AbstractOperationContext.java:976)
       127         at org.jboss.as.controller.AbstractOperationContext.processStages(AbstractOperationContext.java:722)
       128         at org.jboss.as.controller.AbstractOperationContext.executeOperation(AbstractOperationContext.java:446)
       129         at org.jboss.as.controller.ParallelBootOperationStepHandler$ParallelBootTask.run(ParallelBootOperationStepHandler.java:386)
       130         at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
       131         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
       132         at java.lang.Thread.run(Thread.java:748)
       133         at org.jboss.threads.JBossThread.run(JBossThread.java:320)
      

      Based on [1] describing similar problem it turns out vmg126 has "corrupted" /dev/random, as reading from it in shell also hangs.

      [hudson@vmg126 fips]$ cat /dev/random
      ���K�;�<HANGS_FOREVER>
      

      Main reason for filling this JIRA is use it for reference. But I wonder if this issue can be somehow workarounded on EAP level?

      [1] http://bugs.java.com/view_bug.do?bug_id=4820090

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              mchoma@redhat.com Martin Choma
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: