Hi, Laurenz! Thanks for the report. I tried to fix the patch in the attachment. --- Regards, Rachitskiy Andrey
пт, 24 июл. 2026 г. в 11:04, Laurenz Albe <[email protected]>: > When I build with meson/ninja with pretty much everything enabled > and dtrace, I get the following warning: > > [40/2412] Generating src/include/utils/probes.h.tmp with a custom command > Warning: /usr/bin/dtrace:.dtrace-temp.cf7b554c.d:68: syntax error near: > probe smgr__md__read__start > > Warning: Proceeding as if --no-pyparsing was given. > > I don't get the warning when I build with configure/make. > > "git bisect" identifies the following commit as culprit: > > ca326e903d "Clean up read() return type" by Peter E. > > I don't know enough about dtrace to track this down, but I think it > should be fixed. > > The involved software (all standard Fedora 43): > > - dtrace version 5.5 > - meson 1.8.5 > - ninja 1.13.1 > > Yours, > Laurenz Albe > > >
From 825b68047d516fc5ab3c54916e211075a08988fa Mon Sep 17 00:00:00 2001 From: Andrey Rachitskiy <[email protected]> Date: Fri, 24 Jul 2026 11:17:45 +0500 Subject: [PATCH 1/1] Fix SystemTap dtrace warning for smgr probe argument types Commits ca326e903d and 1f8c504e308 widened the byte-count arguments of smgr__md__read__done and smgr__md__write__done to "long long int". SystemTap's dtrace(1) pyparsing grammar rejects that multi-word type and falls back with a warning (misreported near the previous probe). Use "long" instead, which matches ssize_t on our LP64 DTrace platforms and is already used elsewhere in probes.d. Author: Andrey Rachitskiy <[email protected]> Reported-by: Laurenz Albe <[email protected]> Discussion: https://postgr.es/m/[email protected] --- doc/src/sgml/monitoring.sgml | 4 ++-- src/backend/utils/probes.d | 6 ++++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/doc/src/sgml/monitoring.sgml b/doc/src/sgml/monitoring.sgml index 074a821a68e..be820040434 100644 --- a/doc/src/sgml/monitoring.sgml +++ b/doc/src/sgml/monitoring.sgml @@ -8595,7 +8595,7 @@ FROM pg_stat_get_backend_idset() AS backendid; </row> <row> <entry><literal>smgr-md-read-done</literal></entry> - <entry><literal>(ForkNumber, BlockNumber, Oid, Oid, Oid, int, int, int)</literal></entry> + <entry><literal>(ForkNumber, BlockNumber, Oid, Oid, Oid, int, long, long)</literal></entry> <entry>Probe that fires when a block read is complete. arg0 and arg1 contain the fork and block numbers of the page. arg2, arg3, and arg4 contain the tablespace, database, and relation OIDs @@ -8617,7 +8617,7 @@ FROM pg_stat_get_backend_idset() AS backendid; </row> <row> <entry><literal>smgr-md-write-done</literal></entry> - <entry><literal>(ForkNumber, BlockNumber, Oid, Oid, Oid, int, int, int)</literal></entry> + <entry><literal>(ForkNumber, BlockNumber, Oid, Oid, Oid, int, long, long)</literal></entry> <entry>Probe that fires when a block write is complete. arg0 and arg1 contain the fork and block numbers of the page. arg2, arg3, and arg4 contain the tablespace, database, and relation OIDs diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d index 2d8f12cbe30..c11d8d49581 100644 --- a/src/backend/utils/probes.d +++ b/src/backend/utils/probes.d @@ -13,6 +13,8 @@ * * NOTE: Do not use system-provided typedefs (e.g. uintptr_t, uint32_t, etc) * in probe definitions, as they cause compilation errors on macOS. + * Also avoid "long long": SystemTap's dtrace(1) rejects it. Use "long" + * for 64-bit quantities on our LP64 DTrace platforms. */ #define LocalTransactionId unsigned int #define LWLockMode int @@ -83,9 +85,9 @@ provider postgresql { probe twophase__checkpoint__done(); probe smgr__md__read__start(ForkNumber, BlockNumber, Oid, Oid, Oid, int); - probe smgr__md__read__done(ForkNumber, BlockNumber, Oid, Oid, Oid, int, long long int, long long int); + probe smgr__md__read__done(ForkNumber, BlockNumber, Oid, Oid, Oid, int, long, long); probe smgr__md__write__start(ForkNumber, BlockNumber, Oid, Oid, Oid, int); - probe smgr__md__write__done(ForkNumber, BlockNumber, Oid, Oid, Oid, int, long long int, long long int); + probe smgr__md__write__done(ForkNumber, BlockNumber, Oid, Oid, Oid, int, long, long); probe wal__insert(unsigned char, unsigned char); probe wal__switch(); -- 2.53.0
