hadoop-mapreduce-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Arun C Murthy (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (MAPREDUCE-5166) ConcurrentModificationException in LocalJobRunner
Date Wed, 24 Apr 2013 14:53:16 GMT

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

Arun C Murthy commented on MAPREDUCE-5166:

I had a brief IRC chat with [~tomwhite].

Rather than revert, I propose we do the following ASAP:
# Fix re-use of EMPTY_COUNTERS by using 'new Counters()' everywhere; and implement a RO version
of EMPTY_COUNTERS which throws exceptions on modifications (to be really safe).
# Fix LJR.statusUpdate to do a deep-copy of Counters using Writable.write & Writable.readFields
to simulate the RPC semantics.
# Pray that we don't get bitten by this same issue (lack of copy in RPC layer)... *smile*.
Of course, we need to review all implementations of TaskUmbilical/JobSubmissionProtocol methods
in LJR to verify that Counters is the only problem.

> ConcurrentModificationException in LocalJobRunner
> -------------------------------------------------
>                 Key: MAPREDUCE-5166
>                 URL: https://issues.apache.org/jira/browse/MAPREDUCE-5166
>             Project: Hadoop Map/Reduce
>          Issue Type: Bug
>    Affects Versions: 1.2.0, 2.0.4-alpha
>            Reporter: Gunther Hagleitner
>            Priority: Critical
> With the latest version hive unit tests fail in various places with the following stack
trace. The problem seems related to: MAPREDUCE-2931
> {noformat}
>     [junit] java.util.ConcurrentModificationException
>     [junit] 	at java.util.HashMap$HashIterator.nextEntry(HashMap.java:793)
>     [junit] 	at java.util.HashMap$ValueIterator.next(HashMap.java:822)
>     [junit] 	at org.apache.hadoop.mapred.Counters.incrAllCounters(Counters.java:505)
>     [junit] 	at org.apache.hadoop.mapred.Counters.sum(Counters.java:528)
>     [junit] 	at org.apache.hadoop.mapred.LocalJobRunner$Job.getCurrentCounters(LocalJobRunner.java:490)
>     [junit] 	at org.apache.hadoop.mapred.LocalJobRunner.getJobCounters(LocalJobRunner.java:634)
>     [junit] 	at org.apache.hadoop.mapred.JobClient$NetworkedJob.getCounters(JobClient.java:418)
>     [junit] 	at org.apache.hadoop.hive.ql.exec.HadoopJobExecHelper$ExecDriverTaskHandle.getCounters(HadoopJobExecHelper.java:465)
>     [junit] 	at org.apache.hadoop.hive.ql.exec.HadoopJobExecHelper.progress(HadoopJobExecHelper.java:300)
>     [junit] 	at org.apache.hadoop.hive.ql.exec.HadoopJobExecHelper.progress(HadoopJobExecHelper.java:532)
>     [junit] 	at org.apache.hadoop.hive.ql.exec.ExecDriver.execute(ExecDriver.java:453)
>     [junit] 	at org.apache.hadoop.hive.ql.exec.ExecDriver.main(ExecDriver.java:681)
>     [junit] 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>     [junit] 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>     [junit] 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>     [junit] 	at java.lang.reflect.Method.invoke(Method.java:597)
>     [junit] 	at org.apache.hadoop.util.RunJar.main(RunJar.java:160)
> {noformat}

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

View raw message