[jira] [Assigned] (OAK-6890) Background threads might not be automatically restarted

2017-11-07 Thread Francesco Mari (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-6890?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Francesco Mari reassigned OAK-6890:
---

Assignee: Francesco Mari  (was: Michael Dürig)

> Background threads might not be automatically restarted
> ---
>
> Key: OAK-6890
> URL: https://issues.apache.org/jira/browse/OAK-6890
> Project: Jackrabbit Oak
>  Issue Type: Bug
>  Components: segment-tar
>Reporter: Francesco Mari
>Assignee: Francesco Mari
>Priority: Critical
>  Labels: resilience
> Fix For: 1.8, 1.7.12
>
>
> The background threads used in {{FileStore}} are implemented by wrapping 
> {{Runnable}} instances in {{SafeRunnable}}, and by handing the 
> {{SafeRunnable}} instances over to a {{ScheduledExecutorService}}. 
> The documentation of {{ScheduledExecutorService#scheduleAtFixedRate}} states 
> that "if any execution of the task encounters an exception, subsequent 
> executions are suppressed". But a {{SafeRunnable}} always re-throws any 
> {{Throwable}} that it catches, effectively preventing itself from executing 
> again in the future.
> There is more than one solution to this problem. One of these is to never 
> re-throw any exception. Even if it doesn't always make sense, e.g. in case of 
> an {{OutOfMemoryError}}, never re-throwing an exception would better fulfil 
> the assumption that background threads should always be up and running even 
> in case of error.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Assigned] (OAK-6890) Background threads might not be automatically restarted

2017-11-06 Thread JIRA

 [ 
https://issues.apache.org/jira/browse/OAK-6890?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Michael Dürig reassigned OAK-6890:
--

Assignee: Michael Dürig

> Background threads might not be automatically restarted
> ---
>
> Key: OAK-6890
> URL: https://issues.apache.org/jira/browse/OAK-6890
> Project: Jackrabbit Oak
>  Issue Type: Bug
>  Components: segment-tar
>Reporter: Francesco Mari
>Assignee: Michael Dürig
>  Labels: resilience
> Fix For: 1.8, 1.7.12
>
>
> The background threads used in {{FileStore}} are implemented by wrapping 
> {{Runnable}} instances in {{SafeRunnable}}, and by handing the 
> {{SafeRunnable}} instances over to a {{ScheduledExecutorService}}. 
> The documentation of {{ScheduledExecutorService#scheduleAtFixedRate}} states 
> that "if any execution of the task encounters an exception, subsequent 
> executions are suppressed". But a {{SafeRunnable}} always re-throws any 
> {{Throwable}} that it catches, effectively preventing itself from executing 
> again in the future.
> There is more than one solution to this problem. One of these is to never 
> re-throw any exception. Even if it doesn't always make sense, e.g. in case of 
> an {{OutOfMemoryError}}, never re-throwing an exception would better fulfil 
> the assumption that background threads should always be up and running even 
> in case of error.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)