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