GitHub user liming01 opened a pull request:
https://github.com/apache/incubator-hawq/pull/1141
HAWQ-1342. Fixed QE process hang in shared input scan on segment node
The basic idea for this kinds of hung problem is to:
(1) The error thrown segment will invoke rollback the whole transaction,
and all related fd will be closed during transaction end.
(2) The other segment just act as before, when wait for select(), it will
loop until the specific fd is closed, then the code will run until process
interrupt (the rollback transaction will send cancel signal) again in other
place afterward.
So some previous fix (HAWQ-166, HAWQ-1282) will be changed accordingly.
(1) HAWQ-166: we don't need to skip sending info
(2) HAWQ-1282:
- we don't need to close the fd, it will be closed automatically during
transaction end.
- we just end loop if we find the related FD has already been closed.
Signed-off-by: Amy Bai <[email protected]>
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/liming01/incubator-hawq mli/HAWQ-1342
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/incubator-hawq/pull/1141.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #1141
----
commit a87d52a0671a7a794c3be84eecea14591625eba6
Author: Ming Li <[email protected]>
Date: 2017-02-23T05:22:56Z
HAWQ-1342. Fixed QE process hang in shared input scan on segment node
The basic idea for this kinds of hung problem is to:
(1) The error thrown segment will invoke rollback the whole transaction,
and all related fd will be closed during transaction end.
(2) The other segment just act as before, when wait for select(), it will
loop until the specific fd is closed, then the code will run until process
interrupt (the rollback transaction will send cancel signal) again in other
place afterward.
So some previous fix (HAWQ-166, HAWQ-1282) will be changed accordingly.
Signed-off-by: Amy Bai <[email protected]>
----
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---