Fault injection facility for PostgreSQL developers
I am a Greenplum developer. Since 2013, I have been looking into PostgreSQL source code, hacking it and learning a lot from it and the developer/user community. I look forward to continue this learning and rewarding experience for many more years to come.
No video of the event yet, sorry!
How to write a isolation/TAP test to validate crash recovery such that the server crashes after writing a commit record but before updating CLOG? How to test whether a terminate signal that arrives exactly after writing a PREPARE record is handled correctly?
It is possible to come up with many more scenarios like these where existing test frameworks such as regress/TAP/isolation fall short. A new proposal, fault injectors (https://www.postgresql.org/message-id/flat/CANXE4TdxdESX1jKw48xet-5GvBFVSq%3D4cgNeioTQff372KO45A%40mail.gmail.com), offers such fine grain control over the behavior of a running PostgreSQL process. Faults are points of interest along a code path. Actions such as ERROR/PANIC/sleep/etc. can be set for a fault using a SQL interface. When the fault is hit at run time, the process takes the associated action. Actions can be set or unset using SQL commands. The idea was discussed at 2019 unconference in Ottawa.
As part of the talk, the proposed fault injector framwork will be discussed in detail. We shall see several interesting scenarios that can be easily implemented as regress/isolation tests with fault injectors. We shall also consider one or two scenarios from audience and build a test case using faults during the talk.
- 40 min
- PGConf India, 2020
- Database Engine Developers