From: | markw <markw(at)mohawksoft(dot)com> |
---|---|
To: | pgsql-odbc(at)postgresql(dot)org |
Subject: | Threading crash using ODBC |
Date: | 2002-11-15 16:21:58 |
Message-ID: | 3DD51F26.7050201@mohawksoft.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-odbc |
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
The ExecResult function looks like this:
SQLRESULT MSqlODBC::ExecResult(char *sql)
{
TRACE_FUNCT("ExecResult");
unsigned long err;
HSTMT hstmt;
TRACE_STR(sql);
err = SQLAllocStmt(m_hdbc, &hstmt);
if(err != SQL_SUCCESS)
{
fprintf(stderr, "Could not get Stmt\n");
return NULL;
}
err = SQLPrepare(hstmt, (SQLCHAR *)sql, SQL_NTS);
if(err != SQL_SUCCESS)
{
fprintf(stderr, "Could not Prepare Statement [%s]\n", sql);
return NULL;
}
err = SQLExecute(hstmt);
if(err != SQL_SUCCESS)
{
fprintf(stderr, "Could not ExecDirect\n");
SQLFreeStmt(hstmt, SQL_DROP);
hstmt = NULL;
}
return (SQLRESULT)build_result(hstmt);
}
From | Date | Subject | |
---|---|---|---|
Next Message | Bożena Potempa | 2002-11-15 16:24:43 | PostgreSQL+ Beta bug? |
Previous Message | Mihai Gheorghiu | 2002-11-14 18:39:47 | Error when accessing from MSAccess95 |