[ https://issues.apache.org/jira/browse/ARTEMIS-351?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15107094#comment-15107094 ]
ASF GitHub Bot commented on ARTEMIS-351: ---------------------------------------- Github user asfgit closed the pull request at: https://github.com/apache/activemq-artemis/pull/326 > Report an Exception if a journal file cannot be created rather than blocking > forever > ------------------------------------------------------------------------------------ > > Key: ARTEMIS-351 > URL: https://issues.apache.org/jira/browse/ARTEMIS-351 > Project: ActiveMQ Artemis > Issue Type: Improvement > Reporter: Tom Jenkinson > > The architecture of the journal component is such that the next journal file > to create fails (executed async) then the application thread will block > forever in an append call and the journal will become unusable during that > JVM execution. > The error was reported as a warning but the loop is not broken out of after a > recent change (ARTEMIS-321), a callback IO handler will now be invoked and > the business logic can elect to make a decision such as shutdown. > However, if you know that the error may be transient, unless this callback > throws an unhandled exception the journal will remain blocked forever. Even > if an unhandled exception is thrown from your handler to unblock the thread, > there is an issue in that subsequent calls to appendRecord will add the file > name into the queue of files to create every time it is invoked. This can > easily result in the same file name appearing twice in the queue. Once this > happens, the logic to check if a record does not fit in the current file then > it will fit in the next file triggers and an exception is thrown. -- This message was sent by Atlassian JIRA (v6.3.4#6332)