[ 
https://issues.apache.org/jira/browse/PIG-4922?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15317267#comment-15317267
 ] 

Rohini Palaniswamy commented on PIG-4922:
-----------------------------------------

{code}
Found one Java-level deadlock:
=============================
"TezChild":
  waiting to lock monitor 0x00007fbe097278b8 (object 0x00000000c034d2a0, a 
java.util.LinkedList),
  which is held by "Service Thread"
"Service Thread":
  waiting to lock monitor 0x00007fbdec6468d8 (object 0x00000000f029ef28, a 
java.util.ArrayList),
  which is held by "TezChild"

Java stack information for the threads listed above:
===================================================
"TezChild":
        at 
org.apache.pig.impl.util.SpillableMemoryManager.registerSpillable(SpillableMemoryManager.java:378)
        - waiting to lock <0x00000000c034d2a0> (a java.util.LinkedList)
        at 
org.apache.pig.data.DefaultAbstractBag.markSpillableIfNecessary(DefaultAbstractBag.java:129)
        at 
org.apache.pig.data.DefaultAbstractBag.add(DefaultAbstractBag.java:118)
        at org.apache.pig.data.BinInterSedes.readBag(BinInterSedes.java:242)
        at org.apache.pig.data.BinInterSedes.readDatum(BinInterSedes.java:354)
        at org.apache.pig.data.BinInterSedes.readDatum(BinInterSedes.java:318)
        at 
org.apache.pig.data.BinInterSedes.addColsToTuple(BinInterSedes.java:664)
        at org.apache.pig.data.BinSedesTuple.readFields(BinSedesTuple.java:48)
        at 
org.apache.pig.data.InternalSortedBag$SortedDataBagIterator.addToQueue(InternalSortedBag.java:314)
        at 
org.apache.pig.data.InternalSortedBag$SortedDataBagIterator.preMerge(InternalSortedBag.java:388)
        at 
org.apache.pig.data.InternalSortedBag$SortedDataBagIterator.<init>(InternalSortedBag.java:201)
        - locked <0x00000000f029ef28> (a java.util.ArrayList)
        at 
org.apache.pig.data.InternalSortedBag.iterator(InternalSortedBag.java:149)
        at 
org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POSort.getNextTuple(POSort.java:294)
        at 
org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator.processInput(PhysicalOperator.java:305)
        at 
org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POLimit.getNextTuple(POLimit.java:121)
        at 
org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator.getNextDataBag(PhysicalOperator.java:411)
        at 
org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POProject.processInputBag(POProject.java:566)
        at 
org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.PORelationToExprProject.getNextDataBag(PORelationToExprProject.java:106)
        at 
org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POProject.processInputBag(POProject.java:566)
        at 
org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POProject.getNextDataBag(POProject.java:231)
        at 
org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator.getNext(PhysicalOperator.java:335)
        at 
org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POForEach.processPlan(POForEach.java:389)
        at 
org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POForEach.getNextTuple(POForEach.java:309)
        at 
org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator.processInput(PhysicalOperator.java:305)
        at 
org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POLocalRearrange.getNextTuple(POLocalRearrange.java:287)
        at 
org.apache.pig.backend.hadoop.executionengine.tez.plan.operator.POLocalRearrangeTez.getNextTuple(POLocalRearrangeTez.java:127)
        at 
org.apache.pig.backend.hadoop.executionengine.tez.runtime.PigProcessor.runPipeline(PigProcessor.java:369)
        at 
org.apache.pig.backend.hadoop.executionengine.tez.runtime.PigProcessor.run(PigProcessor.java:234)
        at 
org.apache.tez.runtime.LogicalIOProcessorRuntimeTask.run(LogicalIOProcessorRuntimeTask.java:362)
        at 
org.apache.tez.runtime.task.TezTaskRunner$TaskRunnerCallable$1.run(TezTaskRunner.java:179)
        at 
org.apache.tez.runtime.task.TezTaskRunner$TaskRunnerCallable$1.run(TezTaskRunner.java:171)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAs(Subject.java:422)
        at 
org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1679)
        at 
org.apache.tez.runtime.task.TezTaskRunner$TaskRunnerCallable.callInternal(TezTaskRunner.java:171)
        at 
org.apache.tez.runtime.task.TezTaskRunner$TaskRunnerCallable.callInternal(TezTaskRunner.java:167)
        at org.apache.tez.common.CallableWithNdc.call(CallableWithNdc.java:36)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)
"Service Thread":
        at 
org.apache.pig.data.DefaultAbstractBag.getMemorySize(DefaultAbstractBag.java:164)
        - waiting to lock <0x00000000f029ef28> (a java.util.ArrayList)
        at 
org.apache.pig.impl.util.SpillableMemoryManager.handleNotification(SpillableMemoryManager.java:244)
        - locked <0x00000000c034d2a0> (a java.util.LinkedList)
        - locked <0x00000000c034d2c0> (a java.lang.Object)
        at 
sun.management.NotificationEmitterSupport.sendNotification(NotificationEmitterSupport.java:156)
        at sun.management.MemoryImpl.createNotification(MemoryImpl.java:168)
        at 
sun.management.MemoryPoolImpl$CollectionSensor.triggerAction(MemoryPoolImpl.java:329)
        at sun.management.Sensor.trigger(Sensor.java:137)

Found 1 deadlock.
{code}

> Deadlock between SpillableMemoryManager and 
> InternalSortedBag$SortedDataBagIterator
> -----------------------------------------------------------------------------------
>
>                 Key: PIG-4922
>                 URL: https://issues.apache.org/jira/browse/PIG-4922
>             Project: Pig
>          Issue Type: Bug
>            Reporter: Rohini Palaniswamy
>            Assignee: Rohini Palaniswamy
>             Fix For: 0.17.0, 0.16.1
>
>
>   This one ran into a deadlock, when the data was really huge and 
> InternalSortedBag was reading spilled data from disk.
> {code}
> grpd = FOREACH (GROUP data BY $0){
>     sorted = ORDER data BY timestamp DESC;
>     latest = LIMIT sorted 1;
>     GENERATE latest;
> };
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to