Hello, we have:

Tomcat/8.5.83
Windows Server 2016
java.version=11.0.12
java.vendor=Azul Systems, Inc.
sun.arch.data.model=64

Sometimes Tomcat fails to start our application because of this error:

06:45:58.230 ERR> (Catalina-startStop-1) 
(org.apache.catalina.startup.HostConfig#deployDescriptors) Error waiting for 
multi-thread deployment of deployment descriptors to complete
java.util.concurrent.ExecutionException: java.lang.InternalError: Unexpected 
CryptoAPI failure generating seed
                             at 
java.base/java.util.concurrent.FutureTask.report(FutureTask.java:122)
                             at 
java.base/java.util.concurrent.FutureTask.get(FutureTask.java:191)
                             at 
org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:594)
                             at 
org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:472)
                             at 
org.apache.catalina.startup.HostConfig.start(HostConfig.java:1610)
                             at 
org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:318)
                             at 
org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123)
                             at 
org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:423)
                             at 
org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:366)
                             at 
org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:962)
                             at 
org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:833)
                             at 
org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
                             at 
org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1427)
                             at 
org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1417)
                             at 
java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
                             at 
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
                             at 
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
                             at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.lang.InternalError: Unexpected CryptoAPI failure generating seed
                             at 
java.base/sun.security.provider.NativeSeedGenerator.getSeedBytes(NativeSeedGenerator.java:62)
                             at 
java.base/sun.security.provider.SeedGenerator.generateSeed(SeedGenerator.java:144)
                             at 
java.base/sun.security.provider.SecureRandom$SeederHolder.<clinit>(SecureRandom.java:204)
                             at 
java.base/sun.security.provider.SecureRandom.engineNextBytes(SecureRandom.java:222)
                             at 
java.base/java.security.SecureRandom.nextBytes(SecureRandom.java:751)
                             at 
java.base/java.security.SecureRandom.next(SecureRandom.java:808)
                             at 
java.base/java.util.Random.nextInt(Random.java:329)
                             at 
org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom(SessionIdGeneratorBase.java:290)
                             at 
org.apache.catalina.util.SessionIdGeneratorBase.getRandomBytes(SessionIdGeneratorBase.java:222)
                             at 
org.apache.catalina.util.StandardSessionIdGenerator.generateSessionId(StandardSessionIdGenerator.java:34)
                             at 
org.apache.catalina.util.SessionIdGeneratorBase.generateSessionId(SessionIdGeneratorBase.java:214)
                             at 
org.apache.catalina.util.SessionIdGeneratorBase.startInternal(SessionIdGeneratorBase.java:310)
                             at 
org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
                             at 
org.apache.catalina.session.ManagerBase.startInternal(ManagerBase.java:670)
                             at 
org.apache.catalina.session.StandardManager.startInternal(StandardManager.java:352)
                             at 
org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
                             at 
org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5250)
                             at 
org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
                             at 
org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:753)
                             at 
org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:727)
                             at 
org.apache.catalina.core.StandardHost.addChild(StandardHost.java:695)
                             at 
org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:673)
                             at 
org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1881)
                             at 
java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
                             ... 4 more

I googled and Java is calling Windows function and it fails.
There seems to be no fix for this problem.
Does anyone have any idea what is happening, and how to workaround?

-Harri

Reply via email to