Alex Behm
e00130e39a
IMPALA-2368: Prevent double Reset() with nested subplans.
...
ExecNode::Reset() is not idempotent. It always requires a preceding
call to ExecNode::Open(). The bug was that with nested subplans the
following situation could lead to calling Reset() on the same exec
node multiple times resulting in a DCHECK or crash depending on node
being reset. The scenario is illustrated as follows.
Example Plan:
01:subplan
05:nested-loop join
02:singular row src
04:subplan
...
arbitrary exec node tree
...
03:unnest
00:scan
Sequence of calls leading to double Reset():
1. Node 04 calls Reset() on its child(1)
2. Node 04 returns from GetNext() without calling Open() on its child(1)
3. Node 01 calls Reset() on its child(1)
The problem was that SubplanNode::Reset() of node 04 used to call Reset()
on its child(1) even though child(1) had not been opened yet.
The fix is to only call Reset() on child(1) if it has been opened.
Change-Id: I1d6f5f893c9b773c05dc6cbfe99de9f74e47a888
Reviewed-on: http://gerrit.cloudera.org:8080/916
Reviewed-by: Alex Behm <alex.behm@cloudera.com >
Tested-by: Internal Jenkins
2015-09-27 15:13:28 -07:00
..
2015-09-23 11:07:42 -07:00
2015-09-23 09:42:17 +00:00
2015-08-22 09:26:35 +00:00
2014-09-26 16:56:40 -07:00
2015-09-23 10:38:59 -07:00
2015-08-25 09:52:18 +00:00
2014-09-26 12:28:03 -07:00
2014-09-26 12:24:07 -07:00
2015-03-07 09:51:27 +00:00
2015-04-21 19:27:50 +00:00
2015-08-13 09:38:30 +00:00
2015-04-21 19:27:50 +00:00
2015-07-31 12:13:37 +00:00
2015-08-26 22:19:33 +00:00
2015-09-22 10:58:33 -07:00
2014-06-09 23:54:09 -07:00
2014-05-16 22:26:11 -07:00
2015-07-16 19:38:17 +00:00
2015-08-22 01:46:26 +00:00
2015-08-22 01:46:26 +00:00
2015-09-22 10:58:34 -07:00
2015-07-16 19:38:17 +00:00
2015-07-16 19:38:17 +00:00
2015-09-27 15:13:25 -07:00
2014-06-11 03:10:11 -07:00
2014-06-11 03:10:11 -07:00
2014-06-11 03:10:11 -07:00
2014-06-11 03:10:11 -07:00
2015-09-22 10:58:33 -07:00
2015-03-03 08:29:13 +00:00
2015-09-02 04:29:41 +00:00
2015-08-28 23:58:36 +00:00
2015-02-23 23:32:41 +00:00
2015-07-16 19:38:17 +00:00
2014-05-08 13:59:00 -07:00
2015-02-23 23:32:41 +00:00
2015-08-22 01:46:26 +00:00
2015-02-23 23:32:41 +00:00
2015-02-23 23:32:41 +00:00
2014-06-24 02:14:27 -07:00
2015-02-23 23:32:41 +00:00
2015-02-23 23:32:41 +00:00
2014-01-08 10:52:36 -08:00
2015-02-23 23:32:41 +00:00
2015-04-21 19:27:50 +00:00
2015-04-21 19:27:50 +00:00
2015-07-15 03:28:36 +00:00
2014-06-24 02:14:27 -07:00
2015-05-05 00:19:12 +00:00
2014-01-08 10:52:14 -08:00
2015-04-23 19:46:31 +00:00
2014-12-02 18:08:09 -08:00
2014-01-08 10:46:49 -08:00
2014-08-29 15:35:21 -07:00
2015-06-11 03:37:18 +00:00
2015-08-22 01:46:26 +00:00
2014-01-08 10:53:51 -08:00
2015-05-27 22:25:12 +00:00
2014-12-02 18:08:09 -08:00
2014-04-18 00:12:12 -07:00
2015-08-22 01:46:26 +00:00
2015-02-23 23:32:41 +00:00
2015-09-11 22:45:39 +00:00
2015-09-23 15:15:55 -07:00
2015-09-10 04:50:31 +00:00
2015-03-11 16:39:39 -07:00
2015-02-23 23:32:41 +00:00
2015-03-11 16:39:39 -07:00
2015-06-05 00:52:14 +00:00
2015-02-27 18:48:56 +00:00
2015-08-25 00:12:52 +00:00
2014-01-08 10:48:09 -08:00
2015-05-16 02:47:01 +00:00
2015-09-24 10:58:57 -07:00
2015-09-02 19:23:54 +00:00
2015-09-02 19:23:54 +00:00
2015-09-02 19:23:54 +00:00
2015-09-02 19:23:54 +00:00
2015-09-02 19:23:54 +00:00
2015-09-22 10:58:33 -07:00
2015-09-27 15:13:27 -07:00
2015-08-22 01:46:26 +00:00
2015-06-27 01:17:50 +00:00
2014-05-08 12:28:53 -07:00
2015-07-14 02:52:02 +00:00
2015-09-08 19:57:55 +00:00
2014-06-24 02:14:27 -07:00
2015-09-14 13:43:01 -07:00
2014-11-19 17:21:36 -08:00
2015-09-14 13:43:01 -07:00
2015-02-23 23:32:41 +00:00
2015-03-03 08:29:13 +00:00
2015-07-16 19:38:17 +00:00
2015-03-05 05:13:50 +00:00
2015-09-22 10:58:32 -07:00
2015-09-22 10:58:32 -07:00
2014-09-05 10:12:55 -07:00
2015-09-23 11:07:42 -07:00
2015-09-27 15:13:28 -07:00
2015-04-02 19:11:00 +00:00
2014-01-08 10:52:02 -08:00
2014-09-26 12:28:03 -07:00
2015-02-23 23:32:41 +00:00
2015-07-16 19:38:17 +00:00
2015-03-11 16:39:39 -07:00
2015-08-19 04:37:39 +00:00
2015-03-11 16:39:39 -07:00
2014-06-12 02:23:20 -07:00
2015-03-11 16:39:39 -07:00
2014-12-16 18:53:16 -08:00
2014-10-06 17:47:37 -07:00
2014-01-08 10:48:09 -08:00
2014-12-02 18:08:09 -08:00
2014-09-18 00:36:03 -07:00
2014-09-18 00:36:03 -07:00
2014-06-20 13:35:10 -07:00
2014-01-08 10:54:01 -08:00
2015-09-03 01:19:43 +00:00