hadoop-common-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Steve Loughran (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HADOOP-12321) Make JvmPauseMonitor to AbstractService
Date Mon, 14 Sep 2015 09:14:46 GMT

    [ https://issues.apache.org/jira/browse/HADOOP-12321?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14743207#comment-14743207

Steve Loughran commented on HADOOP-12321:

Its maven race conditions surfacing —if there is >1 simultaneous build then the artifacts
may not be synchronized. Looks like a hadoop-common JAR from a different build was picked

The test failures in MAPREDUCE-6462 *are* related.

They are easy to fix; if you do that then you can resubmit the entire patch under all three
JIRAs as I did, so as to get the builds and tests across all the components

> Make JvmPauseMonitor to AbstractService
> ---------------------------------------
>                 Key: HADOOP-12321
>                 URL: https://issues.apache.org/jira/browse/HADOOP-12321
>             Project: Hadoop Common
>          Issue Type: New Feature
>    Affects Versions: 2.8.0
>            Reporter: Steve Loughran
>            Assignee: Sunil G
>         Attachments: 0001-HADOOP-12321.patch, 0002-HADOOP-12321.patch, HADOOP-12321-003.patch
>   Original Estimate: 1h
>  Remaining Estimate: 1h
> The new JVM pause monitor has been written with its own start/stop lifecycle which has
already proven brittle to both ordering of operations and, even after HADOOP-12313, is not
thread safe (both start and stop are potentially re-entrant).
> It also requires every class which supports the monitor to add another field and perform
the lifecycle operations in its own lifecycle, which, for all Yarn services, is the YARN app
lifecycle (as implemented in Hadoop common)
> Making the  monitor a subclass of {{AbstractService}} and moving the init/start &
stop operations in {{serviceInit()}}, {{serviceStart()}} & {{serviceStop()}} methods will
fix the concurrency and state model issues, and make it trivial to add as a child to any YARN
service which subclasses {{CompositeService}} (most the NM and RM apps) will be able to hook
up the monitor simply by creating one in the ctor and adding it as a child.

This message was sent by Atlassian JIRA

View raw message