activemq-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (ARTEMIS-351) Report an Exception if a journal file cannot be created rather than blocking forever
Date Tue, 19 Jan 2016 13:25:39 GMT

    [ https://issues.apache.org/jira/browse/ARTEMIS-351?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15106697#comment-15106697
] 

ASF GitHub Bot commented on ARTEMIS-351:
----------------------------------------

Github user andytaylor commented on the pull request:

    https://github.com/apache/activemq-artemis/pull/326#issuecomment-172852039
  
    not quite tom, 
    
    throw ActiveMQJournalBundle.BUNDLE.someException();


> 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)

Mime
View raw message