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: [EMAIL PROTECTED]
                                                   WWW: http://www.sigaev.ru/

---------------------------(end of broadcast)---------------------------
TIP 9: In versions below 8.0, the planner will ignore your desire to
      choose an index scan if your joining column's datatypes do not
      match

Reply via email to