GiST concurrency commited - Mailing list pgsql-hackers

From Teodor Sigaev
Subject GiST concurrency commited
Date
Msg-id 42BFF5BC.70006@sigaev.ru
Whole thread Raw
Responses Re: GiST concurrency commited
VACUUM/t_ctid bug (was Re: GiST concurrency commited)
List pgsql-hackers
Have we list named something like 'test focusing for 8.1'? If it exists then 
GiST concurrency and recovery testing should be added to it. Especially, 
recovery after crash. Of course, now Oleg and me going to begin a large test 
program.


While I'm running test with concurrent select/insert/update/delete/vacuum/vacuum 
full I found, that sometimes postgres crashes in index_beginscan_internal on 
FunctionCall3, because structure 'procedure' becomes zeroed. As I understand, 
LockRelation can invalidate part of Relation structure. So, I moved 
GET_REL_PROCEDURE after LockRelation. It seems to me, this patch should be 
backpatched or it's needed another fixing. This problem was 2-4 times per 
million statements executing by 4 flows.

And there is one more problem: it caused approximatly one time per 2-4 million 
statements, I got traps:
TRAP: FailedAssertion("!((*curpage)->offsets_used == num_tuples)", File: 
"vacuum.c", Line: 2766)
LOG:  server process (PID 15847) was terminated by signal 6
Sorry, but I couldn't debug this trap and my knowledge about this piece of code 
is very limited. Postgres didn't create a core file. I don't believe this 
problem is in touch with my GiST framework, becouse it is about heap pages. I 
suspect trap occurs while concurrent vacuum, but I am not sure.

PS
My concurrency testing scripts:
http://www.sigaev.ru/gist/
concur.pl - generator of SQL statements
concur.sh - simple wrapper about concur.pl which reinit db, makes db and table.


-- 
Teodor Sigaev                                   E-mail: teodor@sigaev.ru
  WWW: http://www.sigaev.ru/
 


pgsql-hackers by date:

Previous
From: Andrew Dunstan
Date:
Subject: Re: How two perform TPC-H test on postgresql-8.0.2
Next
From: Dave Cramer
Date:
Subject: Re: accessing postgres conf from stored procedure