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

Steve Loughran updated YARN-530:
--------------------------------

    Attachment: YARN-530-021.patch

This patch manages all the MR services properly -the change was trivial, once 
tracked down. Rather than synchronize on the service itself for state changes, 
we synchronize on a specific {{stateChangeLock}} -ensures that this doesn't 
create any locks elsewhere.

When applied on its own, the YARN changes will successfully run all the 
MapReduce tests except for two in {{TestStagingCleanup}} which are actually due 
to {{ContainerLauncherRouter}} not checking {{containerLauncher}} for nullness 
before stopping -and the shutdown hook calling it in INITED state, not STARTED 
-i.e. is due to the stop() code not being robust enough to stop when not 
started. That's fixed in the main MapReduce patch, because it does add the null 
reference checks
{code}
testDeletionofStagingOnKill(org.apache.hadoop.mapreduce.v2.app.TestStagingCleanup)
  Time elapsed: 57 sec  <<< ERROR!
java.lang.NullPointerException
        at 
org.apache.hadoop.mapreduce.v2.app.MRAppMaster$ContainerLauncherRouter.stop(MRAppMaster.java:865)
        at 
org.apache.hadoop.yarn.service.ServiceOperations.stop(ServiceOperations.java:51)
        at 
org.apache.hadoop.yarn.service.ServiceOperations.stopQuietly(ServiceOperations.java:79)
        at 
org.apache.hadoop.yarn.service.CompositeService.stop(CompositeService.java:135)
        at 
org.apache.hadoop.yarn.service.CompositeService.serviceStop(CompositeService.java:108)
        at 
org.apache.hadoop.yarn.service.AbstractService.stop(AbstractService.java:216)
        at 
org.apache.hadoop.mapreduce.v2.app.MRAppMaster$MRAppMasterShutdownHook.run(MRAppMaster.java:1350)
        at 
org.apache.hadoop.mapreduce.v2.app.TestStagingCleanup.testDeletionofStagingOnKill(TestStagingCleanup.java:167)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at junit.framework.TestCase.runTest(TestCase.java:168)
        at junit.framework.TestCase.runBare(TestCase.java:134)
        at junit.framework.TestResult$1.protect(TestResult.java:110)
        at junit.framework.TestResult.runProtected(TestResult.java:128)
        at junit.framework.TestResult.run(TestResult.java:113)
        at junit.framework.TestCase.run(TestCase.java:124)
        at junit.framework.TestSuite.runTest(TestSuite.java:243)
        at junit.framework.TestSuite.run(TestSuite.java:238)
        at 
org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:83)
        at 
org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:252)
        at 
org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:141)
        at 
org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:112)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at 
org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189)
        at 
org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165)
        at 
org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)
        at 
org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115)
        at 
org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75)
{code}
                
> Define Service model strictly, implement AbstractService for robust 
> subclassing, migrate yarn-common services
> -------------------------------------------------------------------------------------------------------------
>
>                 Key: YARN-530
>                 URL: https://issues.apache.org/jira/browse/YARN-530
>             Project: Hadoop YARN
>          Issue Type: Sub-task
>    Affects Versions: 2.0.4-alpha
>            Reporter: Steve Loughran
>            Assignee: Steve Loughran
>         Attachments: YARN-117-019.patch, YARN-117changes.pdf, 
> YARN-530-005.patch, YARN-530-008.patch, YARN-530-009.patch, 
> YARN-530-010.patch, YARN-530-011.patch, YARN-530-012.patch, 
> YARN-530-013.patch, YARN-530-014.patch, YARN-530-015.patch, 
> YARN-530-016.patch, YARN-530-017.patch, YARN-530-018.patch, 
> YARN-530-019.patch, YARN-530-020.patch, YARN-530-021.patch, YARN-530-2.patch, 
> YARN-530-3.patch, YARN-530.4.patch, YARN-530.patch
>
>
> # Extend the YARN {{Service}} interface as discussed in YARN-117
> # Implement the changes in {{AbstractService}} and {{FilterService}}.
> # Migrate all services in yarn-common to the more robust service model, test.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to