One more thing you can try...

The default value for <journal-max-io> is 4096 so you could specify
something smaller than that, e.g. <journal-max-io>2048</journal-max-io>.
This value is used in the call to io_queue_init.


Justin

On Fri, Nov 22, 2019 at 11:06 AM Justin Bertram <jbert...@apache.org> wrote:

> You could also work-around this issue by specifying
> <journal-type>NIO</journal-type> in your broker.xml. The <journal-type>
> defaults to ASYNCIO which will use the native libaio for best performance.
>
>
> Justin
>
> On Fri, Nov 22, 2019 at 11:04 AM Justin Bertram <jbert...@apache.org>
> wrote:
>
>> The last bit of Java code before entering the JNI code is here [1].  The
>> JNI code [2] attempts to invoke io_queue_init [3] from libaio which results
>> in the "Resource temporarily unavailable" error. So it appears there's
>> something environmental which is preventing libaio from doing its work. My
>> searching indicates you can run "cat /proc/sys/fs/aio-max-nr" to inspect
>> the maximum number of allowable concurrent requests and potentially
>> increase this value to resolve the issue.
>>
>>
>> Justin
>>
>> [1]
>> https://github.com/apache/activemq-artemis-native/blob/master/src/main/java/org/apache/activemq/artemis/nativo/jlibaio/LibaioContext.java#L161
>> [2]
>> https://github.com/apache/activemq-artemis-native/blob/master/src/main/c/org_apache_activemq_artemis_nativo_jlibaio_LibaioContext.c#L528
>> [3]
>> https://manpages.debian.org/testing/libaio-dev/io_queue_init.2.en.html
>>
>> On Fri, Nov 22, 2019 at 8:12 AM Ehsan Zaery Moghaddam <
>> zaerymoghad...@gmail.com> wrote:
>>
>>> Hi
>>>
>>> We're using WildFly 18 which is using ActiveMQ 2.10.1. Since a few days
>>> ago, we're getting the following exception whenever we try to start the
>>> WildFly on some of our servers. It seems to be on some random servers,
>>> but
>>> those that have this issue, continuously throw the same exception. It's
>>> from the JNI part of the artemis component.
>>>
>>> We tried running a fresh installation of WildFly and even tried to use
>>> the
>>> older version that we had before (WildFly 13) without deploying any
>>> application but nothing changed. So it shouldn't be related to the
>>> ActiveMQ
>>> or WildFly but it's also not clear for us what that part of the code is
>>> trying to do with file system. So I thought maybe you guys can help us in
>>> this regard.
>>>
>>> The artemis component is using libaio linux library (as mentioned in
>>> their
>>> GitHub page). So we checked if we had any update on that library on given
>>> servers and we find out that it didn't get any update since few months
>>> ago.
>>>
>>> Any help would be really appreciated.
>>>
>>> WildFly 18 startup exception:
>>>
>>> 2019-11-21 12:15:47,076 INFO                          [ServerService
>>> Thread
>>> Pool -- 72] [server] AMQ221000: live Message Broker is starting with
>>> configuration Broker Configuration
>>>
>>> (clustered=true,journalDirectory=/opt/wildfly/standalone/data/activemq/journal,bindingsDirectory=/opt/wildfly/standalone/data/activemq/bindings,largeMessagesDirectory=/opt/wildfly/standalone/data/active
>>>
>>> mq/largemessages,pagingDirectory=/opt/wildfly/standalone/data/activemq/paging)
>>> 2019-11-21 12:15:47,145 INFO                          [ServerService
>>> Thread
>>> Pool -- 72] [server] AMQ221012: Using AIO Journal
>>> 2019-11-21 12:15:47,209 INFO                          [MSC service thread
>>> 1-3] [GlobalComponentRegistry] ISPN000128: Infinispan version: Infinispan
>>> 'Infinity Minus ONE +2' 9.4.16.Final
>>> 2019-11-21 12:15:47,283 INFO                          [ServerService
>>> Thread
>>> Pool -- 72] [server] AMQ221043: Protocol module found: [artemis-server].
>>> Adding protocol support for: CORE
>>> 2019-11-21 12:15:47,284 INFO                          [ServerService
>>> Thread
>>> Pool -- 72] [server] AMQ221043: Protocol module found:
>>> [artemis-amqp-protocol]. Adding protocol support for: AMQP
>>> 2019-11-21 12:15:47,284 INFO                          [ServerService
>>> Thread
>>> Pool -- 72] [server] AMQ221043: Protocol module found:
>>> [artemis-hornetq-protocol]. Adding protocol support for: HORNETQ
>>> 2019-11-21 12:15:47,285 INFO                          [ServerService
>>> Thread
>>> Pool -- 72] [server] AMQ221043: Protocol module found:
>>> [artemis-stomp-protocol]. Adding protocol support for: STOMP
>>> 2019-11-21 12:15:47,361 ERROR                         [ServerService
>>> Thread
>>> Pool -- 72] [server] AMQ224000: Failure in initialisation:
>>> java.lang.RuntimeException: Cannot initialize queue:Resource temporarily
>>> unavailable
>>>         at
>>>
>>> org.apache.activemq.artemis.nativo.jlibaio.LibaioContext.newContext(Native
>>> Method)
>>>         at
>>>
>>> org.apache.activemq.artemis.nativo.jlibaio.LibaioContext.<init>(LibaioContext.java:161)
>>>         at
>>>
>>> org.apache.activemq.artemis.core.io.aio.AIOSequentialFileFactory.start(AIOSequentialFileFactory.java:260)
>>>         at
>>>
>>> org.apache.activemq.artemis.core.journal.impl.JournalImpl.start(JournalImpl.java:2456)
>>>         at
>>>
>>> org.apache.activemq.artemis.core.persistence.impl.journal.AbstractJournalStorageManager.start(AbstractJournalStorageManager.java:1586)
>>>         at
>>>
>>> org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.initialisePart1(ActiveMQServerImpl.java:2824)
>>>         at
>>>
>>> org.apache.activemq.artemis.core.server.impl.LiveOnlyActivation.run(LiveOnlyActivation.java:64)
>>>         at
>>>
>>> org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.internalStart(ActiveMQServerImpl.java:600)
>>>         at
>>>
>>> org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.start(ActiveMQServerImpl.java:527)
>>>         at
>>>
>>> org.apache.activemq.artemis.jms.server.impl.JMSServerManagerImpl.start(JMSServerManagerImpl.java:373)
>>>         at
>>>
>>> org.wildfly.extension.messaging.activemq.jms.JMSService.doStart(JMSService.java:211)
>>>         at
>>>
>>> org.wildfly.extension.messaging.activemq.jms.JMSService.access$000(JMSService.java:65)
>>>         at
>>>
>>> org.wildfly.extension.messaging.activemq.jms.JMSService$1.run(JMSService.java:100)
>>>         at
>>> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
>>>         at java.util.concurrent.FutureTask.run(FutureTask.java:266)
>>>         at
>>>
>>> org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
>>>         at
>>>
>>> org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:1982)
>>>         at
>>>
>>> org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1486)
>>>         at
>>>
>>> org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1377)
>>>         at java.lang.Thread.run(Thread.java:748)
>>>         at org.jboss.threads.JBossThread.run(JBossThread.java:485)
>>>
>>> 2019-11-21 12:15:47,365 ERROR                         [ServerService
>>> Thread
>>> Pool -- 72] [fail] MSC000001: Failed to start service
>>> jboss.messaging-activemq.default.jms.manager:
>>> org.jboss.msc.service.StartException in service
>>> jboss.messaging-activemq.default.jms.manager: java.lang.RuntimeException:
>>> Cannot initialize queue:Resource temporarily unavailable
>>>         at
>>>
>>> org.wildfly.extension.messaging.activemq.jms.JMSService.lambda$doStart$0(JMSService.java:147)
>>>         at
>>>
>>> org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.callActivationFailureListeners(ActiveMQServerImpl.java:2224)
>>>         at
>>>
>>> org.apache.activemq.artemis.core.server.impl.LiveOnlyActivation.run(LiveOnlyActivation.java:83)
>>>         at
>>>
>>> org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.internalStart(ActiveMQServerImpl.java:600)
>>>         at
>>>
>>> org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.start(ActiveMQServerImpl.java:527)
>>>         at
>>>
>>> org.apache.activemq.artemis.jms.server.impl.JMSServerManagerImpl.start(JMSServerManagerImpl.java:373)
>>>         at
>>>
>>> org.wildfly.extension.messaging.activemq.jms.JMSService.doStart(JMSService.java:211)
>>>         at
>>>
>>> org.wildfly.extension.messaging.activemq.jms.JMSService.access$000(JMSService.java:65)
>>>         at
>>>
>>> org.wildfly.extension.messaging.activemq.jms.JMSService$1.run(JMSService.java:100)
>>>         at
>>> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
>>>         at java.util.concurrent.FutureTask.run(FutureTask.java:266)
>>>         at
>>>
>>> org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
>>>         at
>>>
>>> org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:1982)
>>>         at
>>>
>>> org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1486)
>>>         at
>>>
>>> org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1377)
>>>         at java.lang.Thread.run(Thread.java:748)
>>>         at org.jboss.threads.JBossThread.run(JBossThread.java:485)
>>> Caused by: java.lang.RuntimeException: Cannot initialize queue:Resource
>>> temporarily unavailable
>>>         at
>>>
>>> org.apache.activemq.artemis.nativo.jlibaio.LibaioContext.newContext(Native
>>> Method)
>>>         at
>>>
>>> org.apache.activemq.artemis.nativo.jlibaio.LibaioContext.<init>(LibaioContext.java:161)
>>>         at
>>>
>>> org.apache.activemq.artemis.core.io.aio.AIOSequentialFileFactory.start(AIOSequentialFileFactory.java:260)
>>>         at
>>>
>>> org.apache.activemq.artemis.core.journal.impl.JournalImpl.start(JournalImpl.java:2456)
>>>         at
>>>
>>> org.apache.activemq.artemis.core.persistence.impl.journal.AbstractJournalStorageManager.start(AbstractJournalStorageManager.java:1586)
>>>         at
>>>
>>> org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.initialisePart1(ActiveMQServerImpl.java:2824)
>>>         at
>>>
>>> org.apache.activemq.artemis.core.server.impl.LiveOnlyActivation.run(LiveOnlyActivation.java:64)
>>>         ... 14 more
>>>
>>> Regards
>>> Ehsan
>>>
>>

Reply via email to