[
https://issues.apache.org/jira/browse/OAK-3303?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14718350#comment-14718350
]
Michael Dürig commented on OAK-3303:
------------------------------------
bq. take the call to the Thread#start method out of the constructor
+1. My reading of the JLS is that final variables are initialised once the
constructor returns. Now calling {{start}} inside the {{BackgroundThread}}
constructor might cause its {{run}} method to already start *before* the final
variables are properly initialised.
bq. throwing an error when the interval value is 0
You mean inside {{Thread.run}}? I don't think this would do any good as it
would most likely just terminate that thread. IMO we should special case 0 and
have it do what it is supposed to do (i.e. run an iteration). At least this is
what a user of {{BackgroundThread}} would expect when explicitly specifying 0
for the interval.
> FileStore flush thread can get stuck
> ------------------------------------
>
> Key: OAK-3303
> URL: https://issues.apache.org/jira/browse/OAK-3303
> Project: Jackrabbit Oak
> Issue Type: Bug
> Components: segmentmk
> Reporter: Alex Parvulescu
> Assignee: Alex Parvulescu
> Fix For: 1.3.6
>
>
> In some very rare circumstances the flush thread was seen as possibly stuck
> for a while following a restart of the system. This results in data loss on
> restart (the system will roll back to the latest persisted revision on
> restart), and worse off there's no way of extracting the latest head revision
> using the tar files, so recovery is not (yet) possible.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)