[PATCH] Free memory allocated by waitonlock_error_callback()

From: Aleksander Alekseev <aleksander(at)tigerdata(dot)com>
To: PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Cc: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Subject: [PATCH] Free memory allocated by waitonlock_error_callback()
Date: 2025-09-19 11:16:46
Message-ID: CAJ7c6TNv5aDTkQT6muB0tmP5rVLdV5xKjgD74SZn+u1Yd=SXXg@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi,

Currently waitonlock_error_callback() allocates memory in ErrorContext
and doesn't explicitly free it. Valgrind is not happy about it and
generates multiple reports like this:

```
2,048 bytes in 2 blocks are definitely lost in loss record 1,097 of 1,165
at 0x999539: palloc (mcxt.c:1389)
by 0x9DCBFD: initStringInfoInternal (stringinfo.c:45)
by 0x9DCC9D: initStringInfo (stringinfo.c:99)
by 0x73A807: waitonlock_error_callback (lock.c:2027)
by 0x94E1DE: errfinish (elog.c:510)
by 0x750394: ProcSleep (proc.c:1614)
by 0x73A720: WaitOnLock (lock.c:1979)
by 0x7391C2: LockAcquireExtended (lock.c:1221)
by 0x738360: LockAcquire (lock.c:814)
by 0x741064: VirtualXactLock (lock.c:4844)
by 0x3E9D93: WaitForOlderSnapshots (indexcmds.c:492)
by 0x3F155B: ReindexRelationConcurrently (indexcmds.c:4216)
```

I propose adding pfree().

waitonlock_error_callback() was added in:

```
commit f727b63e810724c7187f38b2580b2915bdbc3c9c
Author: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Date: Fri Aug 29 15:43:34 2025 -0400

Provide error context when an error is thrown within WaitOnLock().
```

--
Best regards,
Aleksander Alekseev

Attachment Content-Type Size
v1-0001-Free-memory-allocated-by-waitonlock_error_callbac.patch text/x-patch 734 bytes

Browse pgsql-hackers by date

  From Date Subject
Next Message David Rowley 2025-09-19 11:37:48 Re: Fix typo in comment of match_orclause_to_indexcol()
Previous Message David Rowley 2025-09-19 11:14:37 Re: Fix typo in comment of match_orclause_to_indexcol()