| From: | Matthias van de Meent <boekewurm+postgres(at)gmail(dot)com> |
|---|---|
| To: | "Andreas 'ads' Scherbaum" <ads(at)pgug(dot)de> |
| Cc: | PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org> |
| Subject: | Re: Crash: invalid DSA memory alloc request |
| Date: | 2024-12-12 21:49:35 |
| Message-ID: | CAEze2WhO235HKnc=qCh7GmjXBpL9LDPC6qQk4pvq57cZiDC7Pg@mail.gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
On Thu, 12 Dec 2024 at 22:28, Andreas 'ads' Scherbaum <ads(at)pgug(dot)de> wrote:
>
>
> Hello,
>
> I'm running a couple of large tests, and in this particular test I have
> a few million tables more.
>
> At some point it fails, and I gathered the following trace:
>
>
> 2024-12-12 22:22:55.307 CET [1496210] ERROR: invalid DSA memory alloc
> request size 1073741824
> 2024-12-12 22:22:55.307 CET [1496210] BACKTRACE:
> postgres: ads tabletest [local] CREATE TABLE(+0x15e570)
> [0x6309c379c570]
> postgres: ads tabletest [local] CREATE
> TABLE(dshash_find_or_insert+0x1a4) [0x6309c39882d4]
> postgres: ads tabletest [local] CREATE
> TABLE(pgstat_get_entry_ref+0x440) [0x6309c3b0a530]
It looks like the dshash table used in the pgstats system uses
resize(), which only specifies DSA_ALLOC_ZERO, not DSA_ALLOC_HUGE,
causing issues when the table grows larger than 1 GB.
I expect that error to disappear when you replace the
dsa_allocate0(...) call in dshash.c's resize function with
dsa_allocate_extended(..., DSA_ALLOC_HUGE | DSA_ALLOC_ZERO) as
attached, but haven't tested it due to a lack of database with
millions of relations.
Kind regards,
Matthias van de Meent
| Attachment | Content-Type | Size |
|---|---|---|
| dshash_pgstat_fix.patch | application/octet-stream | 1.1 KB |
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Nathan Bossart | 2024-12-12 22:00:19 | Re: connection establishment versus parallel workers |
| Previous Message | Andres Freund | 2024-12-12 21:38:02 | Re: FileFallocate misbehaving on XFS |