phoenix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Samarth Jain (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (PHOENIX-1143) Prevent race condition between creating phoenix connection and closing phoenix driver/connection query services.
Date Wed, 06 Aug 2014 01:08:13 GMT

     [ https://issues.apache.org/jira/browse/PHOENIX-1143?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Samarth Jain updated PHOENIX-1143:
----------------------------------

    Attachment: PHOENIX-1143-3.0.patch

Patch for fixing the race condition when the PhoenixDriver or a ConnectionQueryServicesImpl
instance is closed and a PhoenixConnection is requested using them. 

Summary of changes:
1) ConnectionQueryServicesImpl.java - calls are wrapped now with a ClosedChecker inner class
that uses a ReadWriteReentrantLock to guard against invoking a method that uses cluster when
the ConnectionQueryServices instance is closed or being closed. The performance impact of
using the lock should be minimal as the reads will be primarily uncontended. Only when the
ConnectionQueryServices instance is closing is when the readers will be blocked. 

2) PhoenixDriver and PhoenixTestDriver - now call checkClosed() before returning a connection
back to the caller in connect(). 

[~jamestaylor] - let me know if the patch looks good. I will upload patches for 4.0/master
branches then. Thanks!

> Prevent race condition between creating phoenix connection and closing phoenix driver/connection
query services.
> ----------------------------------------------------------------------------------------------------------------
>
>                 Key: PHOENIX-1143
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-1143
>             Project: Phoenix
>          Issue Type: Bug
>            Reporter: Samarth Jain
>            Assignee: Samarth Jain
>             Fix For: 5.0.0, 3.1, 4.1
>
>         Attachments: PHOENIX-1143-3.0.patch
>
>
> {code}
> java.lang.NullPointerException
> Thrown-StackTrace: at org.apache.phoenix.jdbc.PhoenixConnection.<init>(PhoenixConnection.java:178)
> at org.apache.phoenix.query.ConnectionQueryServicesImpl.connect(ConnectionQueryServicesImpl.java:513)
> at org.apache.phoenix.jdbc.PhoenixEmbeddedDriver.connect(PhoenixEmbeddedDriver.java:116)
> {code}



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Mime
View raw message