corrupted double-linked list - Mailing list pgsql-hackers

From Maarten Foqué
Subject corrupted double-linked list
Date
Msg-id 1252511854.2919.35.camel@dornbirn.edch
Whole thread Raw
Responses Re: corrupted double-linked list
List pgsql-hackers
Hello everyone,

I ran into a problem writing a program using libpq, and after postin on
a forum and asking it on the irc channel I was redirected here.

I'll try to keep it simple so you don't have to read to much to start:

The program is asynchronous using libev, using sockets and notifications
to wake up.
Notifications is done with connection conn_async, queries are done using
conn_block with PQexec.
PGresult *res; is defined global.

When a notification arrives, the callback goes something like:

PGresult *res2;

res2 = PQexec(conn_async, "select stuff");  // yes, this is the only
time I use conn_async for a query

for( i<PQntuples(res2))
{if(row[i] values of res2)    call function x
}
PQclear(res2)



function x
{
PGresult *resu;

resu = PQexec(conn_block,"select other stuff");

for(i<PQntuples(resu))send stuff to the clients over the sockets.
PQclear(resu);
}

The program crashes on PQclear(resu) with the following:
*** glibc detected *** ./incident_relay: corrupted double-linked list:
0x09c459c8 ***
======= Backtrace: =========
/lib/libc.so.6[0x63b9aa]
/lib/libc.so.6(cfree+0x90)[0x63f0f0]
/usr/lib/libpq.so.5(PQclear+0x49)[0xae1759]
./incident_relay[0x80507de]
./incident_relay[0x804f5d8]
/usr/local/lib/libev.so.3(ev_loop+0x939)[0x117f89]
./incident_relay[0x8049a4a]
/lib/libc.so.6(__libc_start_main+0xe0)[0x5e8390]
./incident_relay[0x8049311]


I'm no longer using the global res in the function x but resu as I
thought it may have something to do with forgetting a PQclear somewhere
or ...  (although I quadripple checked that by now)


Some system info:
Select version() => "PostgreSQL 8.3.4 on x86_64-unknown-linux-gnu,
compiled by GCC gcc (GCC) 4.3.0 20080428 (Red Hat 4.3.0-8)"  (Fedora 9)

My system (running the program):
Linux 2.6.26.8-57.fc8 #1 SMP Thu Dec 18 19:19:45 EST 2008 i686 athlon
i386 GNU/Linux

Thanks in advance,
Maarten

P.S.: I'm not subscribed to the list.



pgsql-hackers by date:

Previous
From: decibel
Date:
Subject: Re: RfD: more powerful "any" types
Next
From: Tom Lane
Date:
Subject: Re: RfD: more powerful "any" types