Bug related to out of memory condition

Поиск
Список
Период
Сортировка
От Jeff Davis
Тема Bug related to out of memory condition
Дата
Msg-id 1161655387.18892.29.camel@dogma.v10.wvs
обсуждение исходный текст
Список pgsql-hackers
This behavior exists in 8.1.4 and CVS HEAD. 

I list below my preexisting schema, a set of commands that behave as I
expect (and result in an ERROR), and a similar set of commands that do
not behave as I expect (and result in a PANIC). Note the position of
"BEGIN" in each.

This is quite finicky behavior. Apparently the columns in the "crashme"
table have a significant effect on the results. If you have trouble
reproducing this, I can give more system details. However, it behaves
this way on a fresh install of CVS HEAD, and it's 100% reproducible (for
me, anyway).

Regards,Jeff Davis

------- EXISTING SCHEMA -------------

CREATE TABLE r1( i INT PRIMARY KEY );
INSERT INTO r1 VALUES(1);
CREATE TABLE r2( i INT PRIMARY KEY );
INSERT INTO r2 VALUES(1);
CREATE TABLE r3( i INT PRIMARY KEY );
INSERT INTO r3 VALUES(1);
CREATE TABLE r4( i INT PRIMARY KEY );
INSERT INTO r4 VALUES(1);

First, here is the correct behavior:

-------- CORRECT BEHAVIOR -----------

crashme=> CREATE TABLE crashme (
crashme(>   attr1    SERIAL8 PRIMARY KEY,
crashme(>   attr2    TIMESTAMPTZ DEFAULT NOW(),
crashme(>   attr3    TIMESTAMPTZ,
crashme(>   attr4    INT REFERENCES r1(i),
crashme(>   attr5    INT REFERENCES r2(i),
crashme(>   attr6    INT REFERENCES r3(i),
crashme(>   attr7    INT REFERENCES r4(i),
crashme(>   attr8    TEXT
crashme(> );
NOTICE:  CREATE TABLE will create implicit sequence "crashme_attr1_seq"
for serial column "crashme.attr1"
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index
"crashme_pkey" for table "crashme"
CREATE TABLE
crashme=> BEGIN;
BEGIN
crashme=> INSERT INTO crashme
(attr1,attr2,attr3,attr4,attr5,attr6,attr7,attr8) SELECT NEXTVAL
('crashme_attr1_seq'),NOW(),NOW(),1,1,1,1,'t1' FROM generate_series
(1,5000000);
ERROR:  out of memory
DETAIL:  Failed on request of size 32.
crashme=>

----------- UNEXPECTED BEHAVIOR ------------------

crashme=> BEGIN;
BEGIN
crashme=> CREATE TABLE crashme (
crashme(>   attr1    SERIAL8 PRIMARY KEY,
crashme(>   attr2    TIMESTAMPTZ DEFAULT NOW(),
crashme(>   attr3    TIMESTAMPTZ,
crashme(>   attr4    INT REFERENCES r1(i),
crashme(>   attr5    INT REFERENCES r2(i),
crashme(>   attr6    INT REFERENCES r3(i),
crashme(>   attr7    INT REFERENCES r4(i),
crashme(>   attr8    TEXT
crashme(> );
NOTICE:  CREATE TABLE will create implicit sequence "crashme_attr1_seq"
for serial column "crashme.attr1"
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index
"crashme_pkey" for table "crashme"
CREATE TABLE
crashme=> INSERT INTO crashme
(attr1,attr2,attr3,attr4,attr5,attr6,attr7,attr8) SELECT NEXTVAL
('crashme_attr1_seq'),NOW(),NOW(),1,1,1,1,'t1' FROM generate_series
(1,5000000);
WARNING:  AbortTransaction while in ABORT state
WARNING:  AbortTransaction while in ABORT state
WARNING:  AbortTransaction while in ABORT state
ERROR:  out of memory
DETAIL:  Failed on request of size 32.
ERROR:  out of memory
DETAIL:  Failed on request of size 27.
ERROR:  out of memory
DETAIL:  Failed on request of size 27.
ERROR:  out of memory
DETAIL:  Failed on request of size 27.
ERROR:  out of memory
DETAIL:  Failed on request of size 24.
PANIC:  ERRORDATA_STACK_SIZE exceeded
server closed the connection unexpectedly       This probably means the server terminated abnormally       before or
whileprocessing the request.
 
The connection to the server was lost. Attempting reset: Failed.
!>




В списке pgsql-hackers по дате отправления:

Предыдущее
От: Alvaro Herrera
Дата:
Сообщение: Re: [PATCHES] smartvacuum() instead of autovacuum
Следующее
От: Bruce Momjian
Дата:
Сообщение: Replication documentation addition