| From: | Thomas Munro <thomas(dot)munro(at)gmail(dot)com> |
|---|---|
| To: | PostgreSQL mailing lists <pgsql-bugs(at)lists(dot)postgresql(dot)org> |
| Cc: | Karen Talarico <karen(dot)talarico(at)swarm64(dot)com> |
| Subject: | Re: BUG #16925: ERROR: invalid DSA memory alloc request size 1073741824 CONTEXT: parallel worker |
| Date: | 2021-03-17 13:06:32 |
| Message-ID: | CA+hUKGJWKafbqQ3+uByP-Ydb4poX+0DPJCTh3bbcneJkbLKV1w@mail.gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-bugs |
On Sat, Mar 13, 2021 at 11:59 PM Thomas Munro <thomas(dot)munro(at)gmail(dot)com> wrote:
> > > 2021-03-12 19:45:37.352 CET [316243] ERROR: XX000: invalid DSA memory alloc
> > > request size 1073741824
After an off-list exchange with Karen and colleague who ran this with
the ERROR changed to a PANIC and examined the smoldering core, the
problem turns out to be a failure to keep the hashtable bucket array
<= MaxAllocSize in one code path. Although commit 86a2218e fixed
another version of that problem a while ago, it can still be
exceeded... by one byte... when we expand from one batch to many.
Will propose a fix.
dbuckets = Min(dbuckets,
MaxAllocSize / sizeof(dsa_pointer_atomic));
new_nbuckets = (int) dbuckets;
new_nbuckets = Max(new_nbuckets, 1024);
new_nbuckets = 1 << my_log2(new_nbuckets);
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Michael Paquier | 2021-03-17 22:27:31 | Re: BUG #16927: Postgres can`t access WAL files |
| Previous Message | Ярослав Пашинский | 2021-03-17 08:34:05 | Re: BUG #16927: Postgres can`t access WAL files |