[
https://issues.apache.org/jira/browse/HADOOP-3415?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Chris Douglas updated HADOOP-3415:
----------------------------------
Resolution: Invalid
Status: Resolved (was: Patch Available)
This change makes more sense integrated into HADOOP-3628, where the "different
lifecycle" motivation is not hypothetical. I agree with Alejandro; this isn't a
valid bug.
> JobEndNotifier isnt synchronized, doesnt check state before acting
> ------------------------------------------------------------------
>
> Key: HADOOP-3415
> URL: https://issues.apache.org/jira/browse/HADOOP-3415
> Project: Hadoop Core
> Issue Type: Bug
> Components: mapred
> Affects Versions: 0.19.0
> Reporter: Steve Loughran
> Priority: Minor
> Attachments: hadoop-3415.patch
>
>
> JobEndNotifier is pretty hazardous inside.
> 1. the static startNotifier isnt synchronized, and doesnt check for being
> already running before it creates a new worker thread. It should be
> sycnhronized and a no-op if there is a live thread.
> 2. stopNotifier() should be a no-op if already stopped. It MUST NOT call
> thread.interrupt() in such a state, as thread may be null.
> 3. the registerNotification method also assumes that the static queue is non
> null.
> Things would be a lot safer by making this class part of a JobTracker, not a
> singleton with static methods, as then you could more safely make assumptions
> about object state. This would not only eliminate a lot of reentrancy
> problems, but tie the life of the notifier to that of its owner, the
> JobTracker.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.