GiST concurrency commited
От | Teodor Sigaev |
---|---|
Тема | GiST concurrency commited |
Дата | |
Msg-id | 42BFF5BC.70006@sigaev.ru обсуждение исходный текст |
Ответы |
Re: GiST concurrency commited
VACUUM/t_ctid bug (was Re: GiST concurrency commited) |
Список | 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 по дате отправления: