[
https://issues.apache.org/jira/browse/PIG-4976?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Koji Noguchi updated PIG-4976:
------------------------------
Attachment: PIG-4976-3.patch
Thanks Daniel, but test still hung.
Looking back, I see that I was wrong.
My test reliably fail immediately only when the input was huge, but for small
input, it threw the exception inside
{code:title=ExecutableManager.java}
308 if (inp != null && inp.returnStatus ==
POStatus.STATUS_EOP) {
309 // signal cleanup in ExecutableManager
310 close(); //***
311 return;
312 }
{code}
and the test still hung.
At this point, wondering if we can signal an error at the outside catch block
irrespective of how the ProcessOutputThread may or may not handle the error...
Would something like this work? Attaching a slightly different version on
where to call sendOutput. {{PIG-4976-3.patch}}
> streaming job with store clause stuck if the script fail
> --------------------------------------------------------
>
> Key: PIG-4976
> URL: https://issues.apache.org/jira/browse/PIG-4976
> Project: Pig
> Issue Type: Bug
> Components: impl
> Reporter: Daniel Dai
> Assignee: Daniel Dai
> Fix For: 0.17.0
>
> Attachments: PIG-4976-1.patch, PIG-4976-2.patch, PIG-4976-3.patch
>
>
> When investigating PIG-4972, I also notice Pig job stuck when the perl script
> have syntax error. This happens if we have output clause in stream
> specification (means use a file as staging). The bug exist in both Tez and
> MR, and it is not a regression.
> Here is an example:
> {code}
> define CMD `perl kk.pl` output('foo') ship('kk.pl');
> A = load 'studenttab10k' as (name, age, gpa);
> B = foreach A generate name;
> C = stream B through CMD;
> store C into 'ooo';
> {code}
> kk.pl is any perl script contain a syntax error.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)