Обсуждение: AllocSetAlloc() error message
Can someone shed some light on this error message for me (please).
This is a 7.2.3 debug level 2 output, and my config is
2003-02-06 16:15:44 [645] ERROR: Memory exhausted in
AllocSetAlloc(1073741820)
vacuum_mem = 1048576 # 1 Meg
Based on the source code src/backend/utils/mmgr/aset.c this is more like
a warning than an error.
/opt/intransa/postgresql/bin/postmaster child[645]: starting with
(postgres -d2 -v131072 -p storageprocessor )
2003-02-06 16:15:44 [645] DEBUG: InitPostgres
2003-02-06 16:15:44 [645] DEBUG: StartTransactionCommand
2003-02-06 16:15:44 [645] DEBUG: query: VACUUM ANALYZE
2003-02-06 16:15:44 [645] DEBUG: ProcessUtility: VACUUM ANALYZE
2003-02-06 16:15:44 [645] DEBUG: --Relation pg_type--
TopMemoryContext: 24600 total in 3 blocks; 16520 free (5 chunks); 8080 used
TopTransactionContext: 8192 total in 1 blocks; 8176 free (0 chunks); 16 used
DeferredTriggerXact: 0 total in 0 blocks; 0 free (0 chunks); 0 used
TransactionCommandContext: 8192 total in 1 blocks; 8080 free (14
chunks); 112 used
QueryContext: 8192 total in 1 blocks; 7504 free (1 chunks); 688 used
Vacuum: 8192 total in 1 blocks; 6736 free (0 chunks); 1456 used
DeferredTriggerSession: 0 total in 0 blocks; 0 free (0 chunks); 0 used
PortalMemory: 8192 total in 1 blocks; 8176 free (0 chunks); 16 used
CacheMemoryContext: 253952 total in 5 blocks; 82264 free (10 chunks);
171688 used
pg_type_typname_index: 1024 total in 1 blocks; 680 free (0 chunks); 344 used
pg_type_oid_index: 1024 total in 1 blocks; 680 free (0 chunks); 344 used
pg_index_indrelid_index: 1024 total in 1 blocks; 680 free (0 chunks);
344 used
pg_shadow_usesysid_index: 1024 total in 1 blocks; 680 free (0 chunks);
344 used
pg_shadow_usename_index: 1024 total in 1 blocks; 680 free (0 chunks);
344 used
pg_trigger_tgrelid_index: 1024 total in 1 blocks; 680 free (0 chunks);
344 used
pg_class_oid_index: 1024 total in 1 blocks; 680 free (0 chunks); 344 used
pg_amop_opc_strategy_index: 1024 total in 1 blocks; 392 free (0 chunks);
632 used
pg_amproc_opc_procnum_index: 1024 total in 1 blocks; 392 free (0
chunks); 632 used
pg_class_relname_index: 1024 total in 1 blocks; 680 free (0 chunks); 344
used
pg_operator_oid_index: 1024 total in 1 blocks; 680 free (0 chunks); 344 used
pg_index_indexrelid_index: 1024 total in 1 blocks; 680 free (0 chunks);
344 used
pg_attribute_relid_attnum_index: 1024 total in 1 blocks; 392 free (0
chunks); 632 used
MdSmgr: 8192 total in 1 blocks; 6120 free (0 chunks); 2072 used
DynaHash: 8192 total in 1 blocks; 7216 free (0 chunks); 976 used
DynaHashTable: 8192 total in 1 blocks; 6112 free (0 chunks); 2080 used
DynaHashTable: 8192 total in 1 blocks; 4560 free (0 chunks); 3632 used
DynaHashTable: 8192 total in 1 blocks; 4560 free (0 chunks); 3632 used
DynaHashTable: 8192 total in 1 blocks; 3024 free (0 chunks); 5168 used
DynaHashTable: 8192 total in 1 blocks; 8176 free (0 chunks); 16 used
DynaHashTable: 8192 total in 1 blocks; 8176 free (0 chunks); 16 used
DynaHashTable: 8192 total in 1 blocks; 8176 free (0 chunks); 16 used
DynaHashTable: 8192 total in 1 blocks; 8176 free (0 chunks); 16 used
DynaHashTable: 8192 total in 1 blocks; 8176 free (0 chunks); 16 used
ErrorContext: 8192 total in 1 blocks; 8176 free (0 chunks); 16 used
2003-02-06 16:15:44 [645] ERROR: Memory exhausted in
AllocSetAlloc(1073741820)
2003-02-06 16:15:44 [645] DEBUG: AbortCurrentTransaction
2003-02-06 16:15:44 [645] DEBUG: proc_exit(0)
2003-02-06 16:15:44 [645] DEBUG: shmem_exit(0)
2003-02-06 16:15:44 [645] DEBUG: exit(0)
2003-02-06 16:15:44 [3843] DEBUG: StartTransactionCommand
2003-02-06 16:15:44 [3843] DEBUG: query: SELECT count(*) from AlertsTable
2003-02-06 16:15:44 [3843] DEBUG: ProcessQuery
2003-02-06 16:15:44 [3808] DEBUG: reaping dead processes
2003-02-06 16:15:44 [3808] DEBUG: child process (pid 645) exited with
exit code 0
2003-02-06 16:15:44 [3843] DEBUG: CommitTransactionCommand
2003-02-06 16:15:44 [3843] DEBUG: StartTransactionCommand
2003-02-06 16:15:44 [3843] DEBUG: query: INSERT INTO AlertsTable
VALUES ('00:06:5B:0F:40
Medi Montaseri <medi.montaseri@intransa.com> writes:
> Can someone shed some light on this error message for me (please).
> This is a 7.2.3 debug level 2 output, and my config is
> 2003-02-06 16:15:44 [645] ERROR: Memory exhausted in
> AllocSetAlloc(1073741820)
I think this is a corrupt-data problem: you've probably got a
variable-length datum whose length word is munged to look like a
ridicuously large value. You should be scanning the table to see
where the bad data is.
regards, tom lane
Should I be looking for an exsessively large table or column ? Most (99%) of my tables are text fields, but small values (less than 1024 bytes).... Perhaps I should dump the data and go after it with a perl script.... Also this happend around a VACUUM-ing job....is there any relation there ? Also should I drop my other work and chase this or this is more of warning than an error.... Thanks Tom Lane wrote: >Medi Montaseri <medi.montaseri@intransa.com> writes: > > >>Can someone shed some light on this error message for me (please). >>This is a 7.2.3 debug level 2 output, and my config is >> >> > > > >>2003-02-06 16:15:44 [645] ERROR: Memory exhausted in >>AllocSetAlloc(1073741820) >> >> > >I think this is a corrupt-data problem: you've probably got a >variable-length datum whose length word is munged to look like a >ridicuously large value. You should be scanning the table to see >where the bad data is. > > regards, tom lane > >
Medi Montaseri <medi.montaseri@intransa.com> writes:
> Also this happend around a VACUUM-ing job....is there any relation there ?
Who knows?
> Also should I drop my other work and chase this or this is more of
> warning than an error....
Corrupt data in a system catalog sounds like a sign of impending doom
to me. I'd suggest taking it seriously...
regards, tom lane