You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lens.apache.org by Rajat Khandelwal <ra...@gmail.com> on 2016/10/05 07:35:21 UTC
Review Request 52548: LENS-1345: Deadlock in jdbc query status update
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/52548/
-----------------------------------------------------------
Review request for lens.
Bugs: LENS-1345
https://issues.apache.org/jira/browse/LENS-1345
Repository: lens
Description
-------
JDBC query is launched in a thread. On query finish, the thread calls back the query service to update status, which creates a FinishedQuery instance. In the constructor, FinishedQuery is fetching result from the jdbc driver, which waits on the original thread to complete. Basically the thread is waiting for itself.
In the callback, query context is acquired by the thread, and can't be acquired again. Which means that get calls for this query won't return and will stay blocked. This can end up blocking all the grizzly threads.
Diffs
-----
lens-driver-jdbc/src/main/java/org/apache/lens/driver/jdbc/JDBCDriver.java f805ec6ebccd18de3bfcd0f1ab8626f7330dd6f1
lens-server/src/main/java/org/apache/lens/server/query/QueryExecutionServiceImpl.java 87d7cb0d5036bd0de4361cc146404a7fee478bac
lens-server/src/test/java/org/apache/lens/server/query/TestQueryService.java 3f71aef9ca180d834538604925c71d1d87be8e26
Diff: https://reviews.apache.org/r/52548/diff/
Testing
-------
Thanks,
Rajat Khandelwal
Re: Review Request 52548: LENS-1345: Deadlock in jdbc query status
update
Posted by Amareshwari Sriramadasu <am...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/52548/#review151642
-----------------------------------------------------------
lens-server/src/main/java/org/apache/lens/server/query/QueryExecutionServiceImpl.java (line 603)
<https://reviews.apache.org/r/52548/#comment220077>
This should be part of construction time as it is required to be partially fetched in some cases.
lens-server/src/test/java/org/apache/lens/server/query/TestQueryService.java (line 1435)
<https://reviews.apache.org/r/52548/#comment220078>
I feel we should write a better test which reproduces the issue clearly.
- Amareshwari Sriramadasu
On Oct. 5, 2016, 7:35 a.m., Rajat Khandelwal wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/52548/
> -----------------------------------------------------------
>
> (Updated Oct. 5, 2016, 7:35 a.m.)
>
>
> Review request for lens.
>
>
> Bugs: LENS-1345
> https://issues.apache.org/jira/browse/LENS-1345
>
>
> Repository: lens
>
>
> Description
> -------
>
> JDBC query is launched in a thread. On query finish, the thread calls back the query service to update status, which creates a FinishedQuery instance. In the constructor, FinishedQuery is fetching result from the jdbc driver, which waits on the original thread to complete. Basically the thread is waiting for itself.
>
> In the callback, query context is acquired by the thread, and can't be acquired again. Which means that get calls for this query won't return and will stay blocked. This can end up blocking all the grizzly threads.
>
>
> Diffs
> -----
>
> lens-driver-jdbc/src/main/java/org/apache/lens/driver/jdbc/JDBCDriver.java f805ec6ebccd18de3bfcd0f1ab8626f7330dd6f1
> lens-server/src/main/java/org/apache/lens/server/query/QueryExecutionServiceImpl.java 87d7cb0d5036bd0de4361cc146404a7fee478bac
> lens-server/src/test/java/org/apache/lens/server/query/TestQueryService.java 3f71aef9ca180d834538604925c71d1d87be8e26
>
> Diff: https://reviews.apache.org/r/52548/diff/
>
>
> Testing
> -------
>
>
> Thanks,
>
> Rajat Khandelwal
>
>
Re: Review Request 52548: LENS-1345: Deadlock in jdbc query status
update
Posted by Rajat Khandelwal <ra...@gmail.com>.
> On Oct. 7, 2016, 10:50 a.m., Amareshwari Sriramadasu wrote:
> > lens-driver-jdbc/src/main/java/org/apache/lens/driver/jdbc/JDBCDriver.java, line 944
> > <https://reviews.apache.org/r/52548/diff/2/?file=1525427#file1525427line944>
> >
> > Should be not failed?
Yup.
- Rajat
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/52548/#review151758
-----------------------------------------------------------
On Oct. 7, 2016, 5 p.m., Rajat Khandelwal wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/52548/
> -----------------------------------------------------------
>
> (Updated Oct. 7, 2016, 5 p.m.)
>
>
> Review request for lens.
>
>
> Bugs: LENS-1345
> https://issues.apache.org/jira/browse/LENS-1345
>
>
> Repository: lens
>
>
> Description
> -------
>
> JDBC query is launched in a thread. On query finish, the thread calls back the query service to update status, which creates a FinishedQuery instance. In the constructor, FinishedQuery is fetching result from the jdbc driver, which waits on the original thread to complete. Basically the thread is waiting for itself.
>
> In the callback, query context is acquired by the thread, and can't be acquired again. Which means that get calls for this query won't return and will stay blocked. This can end up blocking all the grizzly threads.
>
>
> Diffs
> -----
>
> lens-driver-jdbc/src/main/java/org/apache/lens/driver/jdbc/JDBCDriver.java f805ec6ebccd18de3bfcd0f1ab8626f7330dd6f1
> lens-server-api/src/main/java/org/apache/lens/server/api/driver/AbstractLensDriver.java e4984798751d012f0a9d01980df833c206155546
> lens-server-api/src/main/java/org/apache/lens/server/api/driver/DriverQueryStatus.java 033f6777b4be7a1b6d6cdc350e42a94ade1acbca
> lens-server/src/main/java/org/apache/lens/server/query/QueryExecutionServiceImpl.java 87d7cb0d5036bd0de4361cc146404a7fee478bac
> lens-server/src/test/java/org/apache/lens/server/common/RestAPITestUtil.java 57786e6cad53651b1a3256c0a76437c6e43c2c77
> lens-server/src/test/java/org/apache/lens/server/query/TestQueryService.java 3f71aef9ca180d834538604925c71d1d87be8e26
>
> Diff: https://reviews.apache.org/r/52548/diff/
>
>
> Testing
> -------
>
>
> Thanks,
>
> Rajat Khandelwal
>
>
Re: Review Request 52548: LENS-1345: Deadlock in jdbc query status
update
Posted by Amareshwari Sriramadasu <am...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/52548/#review151758
-----------------------------------------------------------
Fix it, then Ship it!
lens-driver-jdbc/src/main/java/org/apache/lens/driver/jdbc/JDBCDriver.java (line 941)
<https://reviews.apache.org/r/52548/#comment220261>
Should be not failed?
lens-server/src/main/java/org/apache/lens/server/query/QueryExecutionServiceImpl.java (line 580)
<https://reviews.apache.org/r/52548/#comment220262>
null check should not be required as it is in constructor.
- Amareshwari Sriramadasu
On Oct. 6, 2016, 1:54 p.m., Rajat Khandelwal wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/52548/
> -----------------------------------------------------------
>
> (Updated Oct. 6, 2016, 1:54 p.m.)
>
>
> Review request for lens.
>
>
> Bugs: LENS-1345
> https://issues.apache.org/jira/browse/LENS-1345
>
>
> Repository: lens
>
>
> Description
> -------
>
> JDBC query is launched in a thread. On query finish, the thread calls back the query service to update status, which creates a FinishedQuery instance. In the constructor, FinishedQuery is fetching result from the jdbc driver, which waits on the original thread to complete. Basically the thread is waiting for itself.
>
> In the callback, query context is acquired by the thread, and can't be acquired again. Which means that get calls for this query won't return and will stay blocked. This can end up blocking all the grizzly threads.
>
>
> Diffs
> -----
>
> lens-driver-jdbc/src/main/java/org/apache/lens/driver/jdbc/JDBCDriver.java f805ec6ebccd18de3bfcd0f1ab8626f7330dd6f1
> lens-server-api/src/main/java/org/apache/lens/server/api/driver/AbstractLensDriver.java e4984798751d012f0a9d01980df833c206155546
> lens-server-api/src/main/java/org/apache/lens/server/api/driver/DriverQueryStatus.java 033f6777b4be7a1b6d6cdc350e42a94ade1acbca
> lens-server/src/main/java/org/apache/lens/server/query/QueryExecutionServiceImpl.java 87d7cb0d5036bd0de4361cc146404a7fee478bac
> lens-server/src/test/java/org/apache/lens/server/common/RestAPITestUtil.java 57786e6cad53651b1a3256c0a76437c6e43c2c77
> lens-server/src/test/java/org/apache/lens/server/query/TestQueryService.java 3f71aef9ca180d834538604925c71d1d87be8e26
>
> Diff: https://reviews.apache.org/r/52548/diff/
>
>
> Testing
> -------
>
>
> Thanks,
>
> Rajat Khandelwal
>
>
Re: Review Request 52548: LENS-1345: Deadlock in jdbc query status
update
Posted by Rajat Khandelwal <ra...@gmail.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/52548/
-----------------------------------------------------------
(Updated Oct. 9, 2016, 11:54 a.m.)
Review request for lens.
Bugs: LENS-1345
https://issues.apache.org/jira/browse/LENS-1345
Repository: lens
Description
-------
JDBC query is launched in a thread. On query finish, the thread calls back the query service to update status, which creates a FinishedQuery instance. In the constructor, FinishedQuery is fetching result from the jdbc driver, which waits on the original thread to complete. Basically the thread is waiting for itself.
In the callback, query context is acquired by the thread, and can't be acquired again. Which means that get calls for this query won't return and will stay blocked. This can end up blocking all the grizzly threads.
Diffs (updated)
-----
lens-driver-jdbc/src/main/java/org/apache/lens/driver/jdbc/JDBCDriver.java f805ec6ebccd18de3bfcd0f1ab8626f7330dd6f1
lens-driver-jdbc/src/test/java/org/apache/lens/driver/jdbc/TestJdbcDriver.java 6e9086f9e8dc302ad2171d7f5636a24cb79dcb50
lens-server-api/src/main/java/org/apache/lens/server/api/driver/AbstractLensDriver.java e4984798751d012f0a9d01980df833c206155546
lens-server-api/src/main/java/org/apache/lens/server/api/driver/DriverQueryStatus.java 033f6777b4be7a1b6d6cdc350e42a94ade1acbca
lens-server-api/src/main/java/org/apache/lens/server/api/query/QueryContext.java b584c6a6d414a6f0dac509e67c8944dbd2373325
lens-server/src/main/java/org/apache/lens/server/query/QueryExecutionServiceImpl.java 87d7cb0d5036bd0de4361cc146404a7fee478bac
lens-server/src/test/java/org/apache/lens/server/common/RestAPITestUtil.java 57786e6cad53651b1a3256c0a76437c6e43c2c77
lens-server/src/test/java/org/apache/lens/server/query/TestQueryService.java 3f71aef9ca180d834538604925c71d1d87be8e26
Diff: https://reviews.apache.org/r/52548/diff/
Testing
-------
Thanks,
Rajat Khandelwal
Re: Review Request 52548: LENS-1345: Deadlock in jdbc query status
update
Posted by Rajat Khandelwal <ra...@gmail.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/52548/
-----------------------------------------------------------
(Updated Oct. 7, 2016, 10:40 p.m.)
Review request for lens.
Bugs: LENS-1345
https://issues.apache.org/jira/browse/LENS-1345
Repository: lens
Description
-------
JDBC query is launched in a thread. On query finish, the thread calls back the query service to update status, which creates a FinishedQuery instance. In the constructor, FinishedQuery is fetching result from the jdbc driver, which waits on the original thread to complete. Basically the thread is waiting for itself.
In the callback, query context is acquired by the thread, and can't be acquired again. Which means that get calls for this query won't return and will stay blocked. This can end up blocking all the grizzly threads.
Diffs (updated)
-----
lens-driver-jdbc/src/main/java/org/apache/lens/driver/jdbc/JDBCDriver.java f805ec6ebccd18de3bfcd0f1ab8626f7330dd6f1
lens-server-api/src/main/java/org/apache/lens/server/api/driver/AbstractLensDriver.java e4984798751d012f0a9d01980df833c206155546
lens-server-api/src/main/java/org/apache/lens/server/api/driver/DriverQueryStatus.java 033f6777b4be7a1b6d6cdc350e42a94ade1acbca
lens-server-api/src/main/java/org/apache/lens/server/api/query/QueryContext.java b584c6a6d414a6f0dac509e67c8944dbd2373325
lens-server/src/main/java/org/apache/lens/server/query/QueryExecutionServiceImpl.java 87d7cb0d5036bd0de4361cc146404a7fee478bac
lens-server/src/test/java/org/apache/lens/server/common/RestAPITestUtil.java 57786e6cad53651b1a3256c0a76437c6e43c2c77
lens-server/src/test/java/org/apache/lens/server/query/TestQueryService.java 3f71aef9ca180d834538604925c71d1d87be8e26
Diff: https://reviews.apache.org/r/52548/diff/
Testing
-------
Thanks,
Rajat Khandelwal
Re: Review Request 52548: LENS-1345: Deadlock in jdbc query status
update
Posted by Rajat Khandelwal <ra...@gmail.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/52548/
-----------------------------------------------------------
(Updated Oct. 7, 2016, 9:29 p.m.)
Review request for lens.
Bugs: LENS-1345
https://issues.apache.org/jira/browse/LENS-1345
Repository: lens
Description
-------
JDBC query is launched in a thread. On query finish, the thread calls back the query service to update status, which creates a FinishedQuery instance. In the constructor, FinishedQuery is fetching result from the jdbc driver, which waits on the original thread to complete. Basically the thread is waiting for itself.
In the callback, query context is acquired by the thread, and can't be acquired again. Which means that get calls for this query won't return and will stay blocked. This can end up blocking all the grizzly threads.
Diffs (updated)
-----
lens-driver-jdbc/src/main/java/org/apache/lens/driver/jdbc/JDBCDriver.java f805ec6ebccd18de3bfcd0f1ab8626f7330dd6f1
lens-server-api/src/main/java/org/apache/lens/server/api/driver/AbstractLensDriver.java e4984798751d012f0a9d01980df833c206155546
lens-server-api/src/main/java/org/apache/lens/server/api/driver/DriverQueryStatus.java 033f6777b4be7a1b6d6cdc350e42a94ade1acbca
lens-server-api/src/main/java/org/apache/lens/server/api/query/QueryContext.java b584c6a6d414a6f0dac509e67c8944dbd2373325
lens-server/src/main/java/org/apache/lens/server/query/QueryExecutionServiceImpl.java 87d7cb0d5036bd0de4361cc146404a7fee478bac
lens-server/src/test/java/org/apache/lens/server/common/RestAPITestUtil.java 57786e6cad53651b1a3256c0a76437c6e43c2c77
lens-server/src/test/java/org/apache/lens/server/query/TestQueryService.java 3f71aef9ca180d834538604925c71d1d87be8e26
Diff: https://reviews.apache.org/r/52548/diff/
Testing
-------
Thanks,
Rajat Khandelwal
Re: Review Request 52548: LENS-1345: Deadlock in jdbc query status
update
Posted by Rajat Khandelwal <ra...@gmail.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/52548/
-----------------------------------------------------------
(Updated Oct. 7, 2016, 6:15 p.m.)
Review request for lens.
Bugs: LENS-1345
https://issues.apache.org/jira/browse/LENS-1345
Repository: lens
Description
-------
JDBC query is launched in a thread. On query finish, the thread calls back the query service to update status, which creates a FinishedQuery instance. In the constructor, FinishedQuery is fetching result from the jdbc driver, which waits on the original thread to complete. Basically the thread is waiting for itself.
In the callback, query context is acquired by the thread, and can't be acquired again. Which means that get calls for this query won't return and will stay blocked. This can end up blocking all the grizzly threads.
Diffs (updated)
-----
lens-driver-jdbc/src/main/java/org/apache/lens/driver/jdbc/JDBCDriver.java f805ec6ebccd18de3bfcd0f1ab8626f7330dd6f1
lens-server-api/src/main/java/org/apache/lens/server/api/driver/AbstractLensDriver.java e4984798751d012f0a9d01980df833c206155546
lens-server-api/src/main/java/org/apache/lens/server/api/driver/DriverQueryStatus.java 033f6777b4be7a1b6d6cdc350e42a94ade1acbca
lens-server/src/main/java/org/apache/lens/server/query/QueryExecutionServiceImpl.java 87d7cb0d5036bd0de4361cc146404a7fee478bac
lens-server/src/test/java/org/apache/lens/server/common/RestAPITestUtil.java 57786e6cad53651b1a3256c0a76437c6e43c2c77
lens-server/src/test/java/org/apache/lens/server/query/TestQueryService.java 3f71aef9ca180d834538604925c71d1d87be8e26
Diff: https://reviews.apache.org/r/52548/diff/
Testing
-------
Thanks,
Rajat Khandelwal
Re: Review Request 52548: LENS-1345: Deadlock in jdbc query status
update
Posted by Rajat Khandelwal <ra...@gmail.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/52548/
-----------------------------------------------------------
(Updated Oct. 7, 2016, 5 p.m.)
Review request for lens.
Bugs: LENS-1345
https://issues.apache.org/jira/browse/LENS-1345
Repository: lens
Description
-------
JDBC query is launched in a thread. On query finish, the thread calls back the query service to update status, which creates a FinishedQuery instance. In the constructor, FinishedQuery is fetching result from the jdbc driver, which waits on the original thread to complete. Basically the thread is waiting for itself.
In the callback, query context is acquired by the thread, and can't be acquired again. Which means that get calls for this query won't return and will stay blocked. This can end up blocking all the grizzly threads.
Diffs (updated)
-----
lens-driver-jdbc/src/main/java/org/apache/lens/driver/jdbc/JDBCDriver.java f805ec6ebccd18de3bfcd0f1ab8626f7330dd6f1
lens-server-api/src/main/java/org/apache/lens/server/api/driver/AbstractLensDriver.java e4984798751d012f0a9d01980df833c206155546
lens-server-api/src/main/java/org/apache/lens/server/api/driver/DriverQueryStatus.java 033f6777b4be7a1b6d6cdc350e42a94ade1acbca
lens-server/src/main/java/org/apache/lens/server/query/QueryExecutionServiceImpl.java 87d7cb0d5036bd0de4361cc146404a7fee478bac
lens-server/src/test/java/org/apache/lens/server/common/RestAPITestUtil.java 57786e6cad53651b1a3256c0a76437c6e43c2c77
lens-server/src/test/java/org/apache/lens/server/query/TestQueryService.java 3f71aef9ca180d834538604925c71d1d87be8e26
Diff: https://reviews.apache.org/r/52548/diff/
Testing
-------
Thanks,
Rajat Khandelwal
Re: Review Request 52548: LENS-1345: Deadlock in jdbc query status
update
Posted by Rajat Khandelwal <ra...@gmail.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/52548/
-----------------------------------------------------------
(Updated Oct. 6, 2016, 7:24 p.m.)
Review request for lens.
Bugs: LENS-1345
https://issues.apache.org/jira/browse/LENS-1345
Repository: lens
Description
-------
JDBC query is launched in a thread. On query finish, the thread calls back the query service to update status, which creates a FinishedQuery instance. In the constructor, FinishedQuery is fetching result from the jdbc driver, which waits on the original thread to complete. Basically the thread is waiting for itself.
In the callback, query context is acquired by the thread, and can't be acquired again. Which means that get calls for this query won't return and will stay blocked. This can end up blocking all the grizzly threads.
Diffs (updated)
-----
lens-driver-jdbc/src/main/java/org/apache/lens/driver/jdbc/JDBCDriver.java f805ec6ebccd18de3bfcd0f1ab8626f7330dd6f1
lens-server-api/src/main/java/org/apache/lens/server/api/driver/AbstractLensDriver.java e4984798751d012f0a9d01980df833c206155546
lens-server-api/src/main/java/org/apache/lens/server/api/driver/DriverQueryStatus.java 033f6777b4be7a1b6d6cdc350e42a94ade1acbca
lens-server/src/main/java/org/apache/lens/server/query/QueryExecutionServiceImpl.java 87d7cb0d5036bd0de4361cc146404a7fee478bac
lens-server/src/test/java/org/apache/lens/server/common/RestAPITestUtil.java 57786e6cad53651b1a3256c0a76437c6e43c2c77
lens-server/src/test/java/org/apache/lens/server/query/TestQueryService.java 3f71aef9ca180d834538604925c71d1d87be8e26
Diff: https://reviews.apache.org/r/52548/diff/
Testing
-------
Thanks,
Rajat Khandelwal