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

Siddharth Seth updated HIVE-9976:
---------------------------------
    Attachment: HIVE-9976.2.patch

Thanks for the review. Updated patch with comments addressed, and some more 
changes.

bq. Not your fault - but there are 2 paths through HiveSplitGenerator.
Moved the methods into SplitGrouper. There's a static cache in there which 
seems a little strange. Will create a follow up jira to investigate this. For 
now I've changed that to a ConcurrentMap since split generation can run in 
parallel.

bq. i see you've fixed calling close consistently on the data input stream. 
maybe use try{}finally there?
Fixed. There was a bug with some of the other conditions which I'd changed. 
Fixed that as well.

bq. it seems you're setting numexpectedevents to 0 first and then turn around 
and call decrement. Why not just set to -1? Also - why atomic integers? as far 
as i can tell all access to these maps is synchronized.
numExpectedEvents is decremented for each column for which a source will send 
events. That's used to track total number of expected events from that source. 
Added a comment for this.
Moved from AtomicIntegers to MutableInt - this was just to avoid re-inserting 
the Integer into the map, and not for thread safety.

bq. does it make sense to make initialize in the pruner private now? (can't be 
used to init anymore - only from the constr). Also, the parameters aren't used 
anymore, right?
Done, along with some other methods.


> Possible race condition in DynamicPartitionPruner for <200ms tasks
> ------------------------------------------------------------------
>
>                 Key: HIVE-9976
>                 URL: https://issues.apache.org/jira/browse/HIVE-9976
>             Project: Hive
>          Issue Type: Bug
>          Components: Tez
>    Affects Versions: 1.0.0
>            Reporter: Gopal V
>            Assignee: Siddharth Seth
>         Attachments: HIVE-9976.1.patch, HIVE-9976.2.patch, 
> llap_vertex_200ms.png
>
>
> Race condition in the DynamicPartitionPruner between 
> DynamicPartitionPruner::processVertex() and 
> DynamicPartitionpruner::addEvent() for tasks which respond with both the 
> result and success in a single heartbeat sequence.
> {code}
> 2015-03-16 07:05:01,589 ERROR [InputInitializer [Map 1] #0] 
> tez.DynamicPartitionPruner: Expecting: 1, received: 0
> 2015-03-16 07:05:01,590 ERROR [Dispatcher thread: Central] impl.VertexImpl: 
> Vertex Input: store_sales initializer failed, 
> vertex=vertex_1424502260528_1113_4_04 [Map 1]
> org.apache.tez.dag.app.dag.impl.AMUserCodeException: 
> org.apache.hadoop.hive.ql.metadata.HiveException: Incorrect event count in 
> dynamic parition pruning
> {code}
> !llap_vertex_200ms.png!
> All 4 upstream vertices of Map 1 need to finish within ~200ms to trigger 
> this, which seems to be consistently happening with LLAP.



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

Reply via email to