OOM in spgist insert
От | Dilip Kumar |
---|---|
Тема | OOM in spgist insert |
Дата | |
Msg-id | CAFiTN-uxP_soPhVG840tRMQTBmtA_f_Y8N51G7DKYYqDh7XN-A@mail.gmail.com обсуждение исходный текст |
Ответы |
Re: OOM in spgist insert
|
Список | pgsql-hackers |
While testing something on spgist I found that at certain point while inserting in spgist it is going for doPickSplit, but even after split is is not able to find a place to insert a tuple and it keeping going in that loop infinitely it seems and finally error out with OOM because in this loop we are continuously allocating memory for the tuple in temp context but since we are never coming out of the loop it is erroring out with OOM. To reproduce load the data from the attached script 'data_load.sql' and run below commands ------Load data before running this using 'data_load.sql' -------Test case start--- create extension spgist_name_ops; select opcname, amvalidate(opc.oid) from pg_opclass opc join pg_am am on am.oid = opcmethod where amname = 'spgist' and opcname = 'name_ops'; -- warning expected here select opcname, amvalidate(opc.oid) from pg_opclass opc join pg_am am on am.oid = opcmethod where amname = 'spgist' and opcname = 'name_ops_old'; create table t(f1 name, f2 integer, f3 text); create index on t using spgist(f1) include(f2, f3); \d+ t_f1_f2_f3_idx insert into t select proname, case when length(proname) % 2 = 0 then pronargs else null end, prosrc from pg_proc_test; ---- Test case end --Memory allocation stack---- #1 0x0000000000bf96c5 in palloc0 (size=9696) at mcxt.c:1133 #2 0x000000000056b24b in spgFormLeafTuple (state=0x7ffedea15b80, heapPtr=0x27df306, datums=0x7ffedea15660, isnulls=0x7ffedea15640) at spgutils.c:892 #3 0x000000000055e15c in doPickSplit (index=0x7fa4b1ddd5c8, state=0x7ffedea15b80, current=0x7ffedea159c0, parent=0x7ffedea159a0, newLeafTuple=0x27df300, level=9, isNulls=false, isNew=true) at spgdoinsert.c:848 #4 0x0000000000561e53 in spgdoinsert (index=0x7fa4b1ddd5c8, state=0x7ffedea15b80, heapPtr=0x27718d8, datums=0x7ffedea15cc0, isnulls=0x7ffedea15ca0) at spgdoinsert.c:2115 -- Regards, Dilip Kumar EnterpriseDB: http://www.enterprisedb.com
Вложения
В списке pgsql-hackers по дате отправления: