Re: Threading crash using ODBC

From: markw <markw(at)mohawksoft(dot)com>
To: Hiroshi Inoue <Inoue(at)tpf(dot)co(dot)jp>
Cc: pgsql-odbc(at)postgresql(dot)org
Subject: Re: Threading crash using ODBC
Date: 2002-11-16 11:53:36
Message-ID: 3DD631C0.5090108@mohawksoft.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-odbc

Hiroshi Inoue wrote:

>markw wrote:
>
>
>>Hiroshi Inoue wrote:
>>
>>
>>
>>>markw wrote:
>>>
>>>
>>>
>>>
>>>>Here's what I have:
>>>>
>>>>I have an application with 1 main thread and a number of worker
>>>>threads.
>>>>At startup, I allocate a number of ODBC connections.
>>>>I have an internal queue that is protected by a mutex.
>>>>When one of the worker threads wants to use the database, it gets
>>>>an un
>>>>occupied SQL connection from the queue.
>>>>
>>>>At startup, I can execte a query just fine. When I try to execute
>>>>a
>>>>query from one of the worker threads, I get a core dump.
>>>>
>>>>I am using UNIX ODBC and the PostgreSQL driver, as shipped with
>>>>RedHat 7.3.
>>>>
>>>>The stack trace looks like this:
>>>>
>>>>0 0x402fba4c in CC_send_query () from /usr/lib/libodbcpsql.so
>>>>(gdb) where
>>>>#0 0x402fba4c in CC_send_query () from /usr/lib/libodbcpsql.so
>>>>#1 0x40314842 in SC_execute () from /usr/lib/libodbcpsql.so
>>>>#2 0x40304c45 in PG_SQLExecute () from /usr/lib/libodbcpsql.so
>>>>#3 0x40304c6b in SQLExecute () from /usr/lib/libodbcpsql.so
>>>>#4 0x402a13f4 in SQLExecute () from /usr/lib/libodbc.so.1
>>>>#5 0x40023d6f in MSqlODBC::ExecResult (this=0x806bfd4,
>>>> sql=0x4037f83c "select value, timeout from msession_sessions
>>>>where
>>>>session = '2b7atuahma6u9igcorr7c6q8ld7ne86o'") at modbcsql.cpp:360
>>>>
>>>>
>>>>
>>>>
>>>It's the driver provided by unixODBC itself.
>>>Please inquire unixODBC team about it.
>>>Or try the (maybe) thread-safe driver on *nix
>>>recently provided at http://odbc.postgresql.org/.
>>>
>>>
>>>
>>Actually, I tracked it down. It may be something that you are
>>interested in, I had my stack set to 64K, when I bumped it up to 256K,
>>the problem went away.
>>
>>Both the unixODBC and PostgreSQL drivers are similar, or at least have
>>a similar origin. The stack utilization deserve at least a little
>>scrutiny.
>>
>>
>
>I've improved a little about the stack utilization of
>our ODBC driver and some applications could work with
>the improvement though I'm not sure if it can work with
>your application.
>
>
well, I'm flexable, and I'm sure it would be helpful to many other
developers, what is a good estimate for thread stack size?

>
>

In response to

Responses

Browse pgsql-odbc by date

  From Date Subject
Next Message Benjamin Scherrey 2002-11-17 20:34:19 Deploying ODBC for Postgres
Previous Message Hiroshi Inoue 2002-11-16 05:06:24 Re: Threading crash using ODBC