At 2026-02-03 10:13:53, "Chao Li" <[email protected]> wrote: > > >> On Feb 3, 2026, at 09:58, [email protected] wrote: >> >> Hi hackers, >> >> There is a misuse of macro when we output directory information in >> KillExistingWALSummaries(), pg_resetwal.c. Which should be WALSUMMARYDIR >> instead of ARCHSTATDIR. >> >> Best regards, >> Tianchen >> Zhang<v1-0001-Fix-incorrect-directory-macro-in-KillExistingWALS.patch> > >Indeed a bug. Looking at the code: > >``` >/* > * Remove existing WAL summary files > */ >static void >KillExistingWALSummaries(void) >{ > DIR *xldir; > > xldir = opendir(WALSUMMARYDIR); > if (xldir == NULL) > pg_fatal("could not open directory \"%s\": %m", WALSUMMARYDIR); > ... > > if (errno) > pg_fatal("could not read directory \"%s\": %m", WALSUMMARYDIR); > > if (closedir(xldir)) > pg_fatal("could not close directory \"%s\": %m", ARCHSTATDIR); > <<=== It should really be WALSUMMARYDIR >} >``` > >I guess closedir() is hard to fail, that’s why the problem has not been >noticed earlier. > >The patch is straightforward and looks correct. > >Best regards, >-- >Chao Li (Evan) >HighGo Software Co., Ltd. >https://www.highgo.com/ > >
As the discussion above, I've updated the patch to v2 that also undefines the function-scoped marco at the end of corresponding fuctions. Best regards, Tianchen Zhang
v2-0001-Fix-incorrect-directory-macro-in-KillExistingWALS.patch
Description: Binary data
