Thread: Race condition in org.postgresql.jdbc1.AbstractJdbc1Statement?

Race condition in org.postgresql.jdbc1.AbstractJdbc1Statement?

From
jao@geophile.com
Date:
Cursor and statement names include the value of m_preparedCount:

    m_statementName = "JDBC_STATEMENT_" + m_preparedCount++;

and

    m_cursorName = "JDBC_CURS_" + m_preparedCount++;

m_preparedCount is static, and it looks like m_preparedCount++ should
be synchronized:

    // m_preparedCount is used for naming of auto-cursors and must
    // be synchronized so that multiple threads using the same
    // connection don't stomp over each others cursors.
    private static int m_preparedCount = 1;
    private synchronized static int next_preparedCount()
    {
        return m_preparedCount++;
    }

But next_preparedCount() is not used.

Should the creation of statement and cursor names use next_preparedCount()
instead of using m_preparedCount directly?

Jack Orenstein


----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.

Re: Race condition in

From
Dave Cramer
Date:
This code has been removed from the current CVS head.

Which version of the code are you looking at ?

Dave
On Thu, 2004-08-26 at 13:27, jao@geophile.com wrote:
> Cursor and statement names include the value of m_preparedCount:
>
>     m_statementName = "JDBC_STATEMENT_" + m_preparedCount++;
>
> and
>
>     m_cursorName = "JDBC_CURS_" + m_preparedCount++;
>
> m_preparedCount is static, and it looks like m_preparedCount++ should
> be synchronized:
>
>     // m_preparedCount is used for naming of auto-cursors and must
>     // be synchronized so that multiple threads using the same
>     // connection don't stomp over each others cursors.
>     private static int m_preparedCount = 1;
>     private synchronized static int next_preparedCount()
>     {
>         return m_preparedCount++;
>     }
>
> But next_preparedCount() is not used.
>
> Should the creation of statement and cursor names use next_preparedCount()
> instead of using m_preparedCount directly?
>
> Jack Orenstein
>
>
> ----------------------------------------------------------------
> This message was sent using IMP, the Internet Messaging Program.
>
> ---------------------------(end of broadcast)---------------------------
> TIP 2: you can get off all lists at once with the unregister command
>     (send "unregister YourEmailAddressHere" to majordomo@postgresql.org)
>
--
Dave Cramer
519 939 0336
ICQ # 14675561
www.postgresintl.com


Re: Race condition in org.postgresql.jdbc1.AbstractJdbc1Statement?

From
jao@geophile.com
Date:
Quoting Dave Cramer <pg@fastcrypt.com>:

> This code has been removed from the current CVS head.
>
> Which version of the code are you looking at ?

Oops, sorry, it's 7.4.1.

Jack Orenstein


----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.

Re: Race condition in

From
Dave Cramer
Date:
Jack,

7.4.1 is quite old now, upgrading is advisable. We really don't
backpatch that far back.

Dave
On Thu, 2004-08-26 at 14:31, jao@geophile.com wrote:
> Quoting Dave Cramer <pg@fastcrypt.com>:
>
> > This code has been removed from the current CVS head.
> >
> > Which version of the code are you looking at ?
>
> Oops, sorry, it's 7.4.1.
>
> Jack Orenstein
>
>
> ----------------------------------------------------------------
> This message was sent using IMP, the Internet Messaging Program.
>
--
Dave Cramer
519 939 0336
ICQ # 14675561
www.postgresintl.com


Re: Race condition in

From
Kris Jurka
Date:

On Thu, 26 Aug 2004, Dave Cramer wrote:

> 7.4.1 is quite old now, upgrading is advisable. We really don't
> backpatch that far back.
>

Yes, we do (or at least should).  The 7.4 branch is the production version
and should be maintained.  Even once 8.0 is released, the 7.4 series
server will be around for a while.  The 8.0 driver has a number of major
changes to it that make automatically saying "use the 8.0 driver with a
7.4 server" not a great idea.  Specifically I'm thinking about the use of
prepared statements on the unnamed portal and when they get planned.

I've fixed this on the 7.4 branch as this was apparently accidentally
removed when merging a patch.

Kris Jurka

Re: Race condition in

From
Dave Cramer
Date:
You are absolutely correct, for some reason, I thought he had indicated
it was 7.1.4 :(

Dave
On Mon, 2004-09-13 at 04:09, Kris Jurka wrote:
> On Thu, 26 Aug 2004, Dave Cramer wrote:
>
> > 7.4.1 is quite old now, upgrading is advisable. We really don't
> > backpatch that far back.
> >
>
> Yes, we do (or at least should).  The 7.4 branch is the production version
> and should be maintained.  Even once 8.0 is released, the 7.4 series
> server will be around for a while.  The 8.0 driver has a number of major
> changes to it that make automatically saying "use the 8.0 driver with a
> 7.4 server" not a great idea.  Specifically I'm thinking about the use of
> prepared statements on the unnamed portal and when they get planned.
>
> I've fixed this on the 7.4 branch as this was apparently accidentally
> removed when merging a patch.
>
> Kris Jurka
--
Dave Cramer
519 939 0336
ICQ # 14675561
www.postgresintl.com