Re: ERROR: invalid memory alloc request size
От | Alvaro Herrera |
---|---|
Тема | Re: ERROR: invalid memory alloc request size |
Дата | |
Msg-id | 20051027141601.GD880@surnet.cl обсуждение исходный текст |
Ответ на |
Re: ERROR: invalid memory alloc request size |
Ответы |
Re: ERROR: invalid memory alloc request size |
Список | pgsql-hackers |
Matteo Beccati wrote: > #2 0x0827b5cf in MemoryContextAlloc (context=0x856bcc8, > size=4278026492) at mcxt.c:505 > __func__ = "MemoryContextAlloc" > #3 0x080b6a16 in GetMultiXactIdMembers (multi=320306, xids=0xbfbfaba4) > at multixact.c:935 > pageno = 156 > prev_pageno = 156 > entryno = 819 > slotno = 2 > offptr = (MultiXactOffset *) 0x286536ac > offset = 4235201 > length = -4235201 > i = 138425096 > nextMXact = 320308 > tmpMXact = 320307 > nextOffset = 4235265 > ptr = (TransactionId *) 0xbfbfab78 Whoa. length = *offptr - offset, which means that the datum stored at offptr is 0. I think the problem is that CreateMultiXactId calls GetNewMultiXactId and then RecordNewMultiXact, and the lock is released between the calls. So one backend could try to read the offset before another one had the time to finish writing it. -- Alvaro Herrera Developer, http://www.PostgreSQL.org "No single strategy is always right (Unless the boss says so)" (Larry Wall)
В списке pgsql-hackers по дате отправления: