On Fri, Mar 15, 2024 at 11:23:31AM +0200, Heikki Linnakangas wrote: > For the gin test, a single "SELECT injection_points_attach_local()" at the > top of the test file would be most convenient. > > If I have to do "SELECT > injection_points_condition('gin-finish-incomplete-split', :'datname');" for > every injection point in the test, I will surely forget it sometimes.
So will I, most likely.. The odds never play in favor of hackers. I have a few more tests in mind that can be linked to a specific backend with SQL queries, but I've not been able to get back to it yet. > Wrt. the spinlock and shared memory handling, I think this would be simpler > if you could pass some payload in the InjectionPointAttach() call, which > would be passed back to the callback function: > > In this case, the payload would be the "slot index" in shared memory. > > Or perhaps always allocate, say, 1024 bytes of working area for every > attached injection point that the test module can use any way it wants. Like > for storing extra conditions, or for the wakeup counter stuff in > injection_wait(). A fixed size working area is a little crude, but would be > very handy in practice. Perhaps. I am not sure that we need more than the current signature, all that can just be handled in some module-specific shmem area. The key is to be able to link a point name to some state related to it. Using a hash table would be more efficient, but performance wise a array is not going to matter as there will most likely never be more than 8 points. 4 is already a lot, just doubling that on safety ground. > It would be nice to automatically detach all the injection points on process > exit. You wouldn't always want that, but I think most tests hold a session > open throughout the test, and for those it would be handy. Linking all the points to a PID with a injection_points_attach_local() that switches a static flag while registering a before_shmem_exit() to do an automated cleanup sounds like the simplest approach to me based on what I'm reading on this thread. (Just saw the buildfarm storm, wow.) -- Michael
signature.asc
Description: PGP signature