Cheolsoo Park created PIG-4068:
----------------------------------

             Summary: ObjectCache cause ClassCastException
                 Key: PIG-4068
                 URL: https://issues.apache.org/jira/browse/PIG-4068
             Project: Pig
          Issue Type: Sub-task
          Components: tez
            Reporter: Cheolsoo Park
            Assignee: Cheolsoo Park
             Fix For: 0.14.0


Here is stack trace-
{code}
2014-07-23 20:19:41,503 INFO [TezChild] 
org.apache.tez.runtime.task.TezTaskRunner: Encounted an error while executing 
task: attempt_1405989231017_0003_1_10_000087_2
java.lang.ClassCastException: java.lang.Boolean cannot be cast to java.util.Map
    at 
org.apache.pig.backend.hadoop.executionengine.tez.PigProcessor.collectSample(PigProcessor.java:345)
    at 
org.apache.pig.backend.hadoop.executionengine.tez.PigProcessor.initializeInputs(PigProcessor.java:255)
    at 
org.apache.pig.backend.hadoop.executionengine.tez.PigProcessor.run(PigProcessor.java:183)
    at 
org.apache.tez.runtime.LogicalIOProcessorRuntimeTask.run(LogicalIOProcessorRuntimeTask.java:315)
    at 
org.apache.tez.runtime.task.TezTaskRunner$TaskRunnerCallable$1.run(TezTaskRunner.java:180)
    at 
org.apache.tez.runtime.task.TezTaskRunner$TaskRunnerCallable$1.run(TezTaskRunner.java:172)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAs(Subject.java:415)
    at 
org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1548)
    at 
org.apache.tez.runtime.task.TezTaskRunner$TaskRunnerCallable.call(TezTaskRunner.java:172)
    at 
org.apache.tez.runtime.task.TezTaskRunner$TaskRunnerCallable.call(TezTaskRunner.java:167)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:745)
{code}
The problem is that {{PigProcessor.collectSample()}} and 
{{POPartitionRearrangeTez.init()}} use the same cache key for different objects 
(Map vs. Boolean)-
{code:title=PigProcessor.java}
String quantileMapCacheKey = "sample-" + sampleVertex  + ".cached";
sampleMap = (Map<String, 
Object>)ObjectCache.getInstance().retrieve(quantileMapCacheKey);{code}
{code:title=POPartitionRearrangeTez.java}
String isCachedKey = "sample-" + PigProcessor.sampleVertex + ".cached";
...
cache.cache(isCachedKey, Boolean.TRUE);
{code}



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to