Re: Adding facility for injection points (or probe points?) for more advanced tests
Michael Paquier <michael@paquier.xyz>
From: Michael Paquier <michael@paquier.xyz>
To: Nathan Bossart <nathandbossart@gmail.com>
Cc: Dilip Kumar <dilipbalaut@gmail.com>, Ashutosh Bapat <ashutosh.bapat.oss@gmail.com>, Postgres hackers <pgsql-hackers@lists.postgresql.org>
Date: 2024-01-03T23:53:11Z
Lists: pgsql-hackers
On Tue, Jan 02, 2024 at 11:14:56PM -0600, Nathan Bossart wrote: > Should we specify HASH_FIXED_SIZE, too? This hash table will be in the > main shared memory segment and therefore won't be able to expand too far > beyond the declared maximum size. Good point. > I'm wondering how important it is to cache the callbacks locally. > load_external_function() won't reload an already-loaded library, so AFAICT > this is ultimately just saving a call to dlsym(). This keeps a copy to a callback under the same address space, and I guess that it would matter if the code where a callback is added gets very hot because this means less function pointers. At the end I would keep the cache as the code to handle it is neither complex nor long, while being isolated in its own paths. > I think </library> is supposed to be </literal> here. Okay. > 0003 and 0004 add tests to the test_injection_points module. Is the idea > that we'd add any tests that required injection points here? I think it'd > be better if we could move the tests closer to the logic they're testing, > but perhaps that is difficult because you also need to define the callback > functions somewhere. Hm... Yeah. Agreed that the final result should not have these tests in the module test_injection_points. What I was thinking here is to move 002_invalid_checkpoint_after_promote.pl to src/test/recovery/ and pull the module with the callbacks with an EXTRA_INSTALL. -- Michael
Commits
-
ci: Enable injection points in builds
- 183b6f73b04e 17.0 landed
-
Fix two memcpy() bugs in the new injection point code
- 0eb23285a257 17.0 landed
-
Add test module injection_points
- 49cd2b93d7db 17.0 landed
-
Add backend support for injection points
- d86d20f0ba79 17.0 landed
-
Refactor code checking for file existence
- e72a37528dda 17.0 landed