Re: NULL pointer dereference in syslogger with load_libraries() and -DEXEC_BACKEND at startup
Euler Taveira <euler@eulerto.com>
From: "Euler Taveira" <euler@eulerto.com>
To: Álvaro Herrera <alvherre@kurilemu.de>, "Michael Paquier" <michael@paquier.xyz>
Cc: "Kyotaro Horiguchi" <horikyota.ntt@gmail.com>,
pgsql-hackers@lists.postgresql.org
Date: 2026-05-26T15:39:01Z
Lists: pgsql-hackers
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Fix syslogger NULL-pointer-dereference in EXEC_BACKEND
- fb23cc7e81db 19 (unreleased) landed
-
Assign "backend" type earlier during process start-up
- 0c8e082fba8d 19 (unreleased) cited
Attachments
- 0001-syslogger-try-to-write-messages-only-after-setup.patch (text/x-patch) patch 0001
On Tue, May 26, 2026, at 8:09 AM, Alvaro Herrera wrote: > On 2026-May-26, Michael Paquier wrote: > >> This issue is different, it is a Postgres logic bug, so adding an >> exception like the one you are suggesting is just a shortcut hiding >> the real issue: the log file is not ready yet, but the syslogger is >> invoked at a point when it thinks the log file exists. > > I think we can solve this easily by flipping a new Boolean value at the > same point were MyBackendType was previously set. The attached POC > fixes the scenario you described; can you confirm? It needs some > additional comments, of course. > It fixes the issue for me. However, I'm wondering if we can avoid adding a new boolean for it. We already have redirection_done that guarantees the syslogger is working properly. Couldn't we use it? (SysLogger_Start() opens the file -- logfile_open -- and a few lines below it sets the redirection_done. If we adopt this approach, a comment should be added to avoid breaking it in the future.) > (There is one more place in elog.c where we check that MyBackendType is > _not_ B_LOGGER, but I think that one is correct as-is; and I'm wondering > if that would behave correctly before 0c8e082fba8d.) > Yes. The redirection_done guarantees that the file is open. PS> this patch does not allow writes to syslogger as soon as possible like your patch but it seems acceptable to me. -- Euler Taveira EDB https://www.enterprisedb.com/