macavity
Overview
| ID | Extension | Bin | Lib | Load | Create | Trust | Reloc | Schema |
|---|---|---|---|---|---|---|---|---|
| 5215 | macavity | No | Yes | No | Yes | No | Yes | - |
Testing release; destructive crash action affects the entire instance. Disposable test clusters only.
Version
| Type | Repo | Version | PG Ver | Package | Deps |
|---|---|---|---|---|---|
| EXT | PIGSTY | 0.2.0 | 1817161514 | macavity | - |
| RPM | PIGSTY | 0.2.0 | 1817161514 | macavity_$v | - |
| DEB | PIGSTY | 0.2.0 | 1817161514 | postgresql-$v-macavity | - |
| OS / PG | PG18 | PG17 | PG16 | PG15 | PG14 |
|---|---|---|---|---|---|
| el8.x86_64 | PIGSTY 0.2.0 el8.x86_64.pg18 : macavity_18 macavity_18-0.2.0-1PGSTY.el8.x86_64.rpm
| PIGSTY 0.2.0 el8.x86_64.pg17 : macavity_17 macavity_17-0.2.0-1PGSTY.el8.x86_64.rpm
| PIGSTY 0.2.0 el8.x86_64.pg16 : macavity_16 macavity_16-0.2.0-1PGSTY.el8.x86_64.rpm
| N/A | N/A |
| el8.aarch64 | PIGSTY 0.2.0 el8.aarch64.pg18 : macavity_18 macavity_18-0.2.0-1PGSTY.el8.aarch64.rpm
| PIGSTY 0.2.0 el8.aarch64.pg17 : macavity_17 macavity_17-0.2.0-1PGSTY.el8.aarch64.rpm
| PIGSTY 0.2.0 el8.aarch64.pg16 : macavity_16 macavity_16-0.2.0-1PGSTY.el8.aarch64.rpm
| N/A | N/A |
| el9.x86_64 | PIGSTY 0.2.0 el9.x86_64.pg18 : macavity_18 macavity_18-0.2.0-1PGSTY.el9.x86_64.rpm
| PIGSTY 0.2.0 el9.x86_64.pg17 : macavity_17 macavity_17-0.2.0-1PGSTY.el9.x86_64.rpm
| PIGSTY 0.2.0 el9.x86_64.pg16 : macavity_16 macavity_16-0.2.0-1PGSTY.el9.x86_64.rpm
| N/A | N/A |
| el9.aarch64 | PIGSTY 0.2.0 el9.aarch64.pg18 : macavity_18 macavity_18-0.2.0-1PGSTY.el9.aarch64.rpm
| PIGSTY 0.2.0 el9.aarch64.pg17 : macavity_17 macavity_17-0.2.0-1PGSTY.el9.aarch64.rpm
| PIGSTY 0.2.0 el9.aarch64.pg16 : macavity_16 macavity_16-0.2.0-1PGSTY.el9.aarch64.rpm
| N/A | N/A |
| el10.x86_64 | PIGSTY 0.2.0 el10.x86_64.pg18 : macavity_18 macavity_18-0.2.0-1PGSTY.el10.x86_64.rpm
| PIGSTY 0.2.0 el10.x86_64.pg17 : macavity_17 macavity_17-0.2.0-1PGSTY.el10.x86_64.rpm
| PIGSTY 0.2.0 el10.x86_64.pg16 : macavity_16 macavity_16-0.2.0-1PGSTY.el10.x86_64.rpm
| N/A | N/A |
| el10.aarch64 | PIGSTY 0.2.0 el10.aarch64.pg18 : macavity_18 macavity_18-0.2.0-1PGSTY.el10.aarch64.rpm
| PIGSTY 0.2.0 el10.aarch64.pg17 : macavity_17 macavity_17-0.2.0-1PGSTY.el10.aarch64.rpm
| PIGSTY 0.2.0 el10.aarch64.pg16 : macavity_16 macavity_16-0.2.0-1PGSTY.el10.aarch64.rpm
| N/A | N/A |
| d12.x86_64 | PIGSTY 0.2.0 d12.x86_64.pg18 : postgresql-18-macavity postgresql-18-macavity_0.2.0-1PGSTY~bookworm_amd64.deb
| PIGSTY 0.2.0 d12.x86_64.pg17 : postgresql-17-macavity postgresql-17-macavity_0.2.0-1PGSTY~bookworm_amd64.deb
| PIGSTY 0.2.0 d12.x86_64.pg16 : postgresql-16-macavity postgresql-16-macavity_0.2.0-1PGSTY~bookworm_amd64.deb
| N/A | N/A |
| d12.aarch64 | PIGSTY 0.2.0 d12.aarch64.pg18 : postgresql-18-macavity postgresql-18-macavity_0.2.0-1PGSTY~bookworm_arm64.deb
| PIGSTY 0.2.0 d12.aarch64.pg17 : postgresql-17-macavity postgresql-17-macavity_0.2.0-1PGSTY~bookworm_arm64.deb
| PIGSTY 0.2.0 d12.aarch64.pg16 : postgresql-16-macavity postgresql-16-macavity_0.2.0-1PGSTY~bookworm_arm64.deb
| N/A | N/A |
| d13.x86_64 | PIGSTY 0.2.0 d13.x86_64.pg18 : postgresql-18-macavity postgresql-18-macavity_0.2.0-1PGSTY~trixie_amd64.deb
| PIGSTY 0.2.0 d13.x86_64.pg17 : postgresql-17-macavity postgresql-17-macavity_0.2.0-1PGSTY~trixie_amd64.deb
| PIGSTY 0.2.0 d13.x86_64.pg16 : postgresql-16-macavity postgresql-16-macavity_0.2.0-1PGSTY~trixie_amd64.deb
| N/A | N/A |
| d13.aarch64 | PIGSTY 0.2.0 d13.aarch64.pg18 : postgresql-18-macavity postgresql-18-macavity_0.2.0-1PGSTY~trixie_arm64.deb
| PIGSTY 0.2.0 d13.aarch64.pg17 : postgresql-17-macavity postgresql-17-macavity_0.2.0-1PGSTY~trixie_arm64.deb
| PIGSTY 0.2.0 d13.aarch64.pg16 : postgresql-16-macavity postgresql-16-macavity_0.2.0-1PGSTY~trixie_arm64.deb
| N/A | N/A |
| u22.x86_64 | PIGSTY 0.2.0 u22.x86_64.pg18 : postgresql-18-macavity postgresql-18-macavity_0.2.0-1PGSTY~jammy_amd64.deb
| PIGSTY 0.2.0 u22.x86_64.pg17 : postgresql-17-macavity postgresql-17-macavity_0.2.0-1PGSTY~jammy_amd64.deb
| PIGSTY 0.2.0 u22.x86_64.pg16 : postgresql-16-macavity postgresql-16-macavity_0.2.0-1PGSTY~jammy_amd64.deb
| N/A | N/A |
| u22.aarch64 | PIGSTY 0.2.0 u22.aarch64.pg18 : postgresql-18-macavity postgresql-18-macavity_0.2.0-1PGSTY~jammy_arm64.deb
| PIGSTY 0.2.0 u22.aarch64.pg17 : postgresql-17-macavity postgresql-17-macavity_0.2.0-1PGSTY~jammy_arm64.deb
| PIGSTY 0.2.0 u22.aarch64.pg16 : postgresql-16-macavity postgresql-16-macavity_0.2.0-1PGSTY~jammy_arm64.deb
| N/A | N/A |
| u24.x86_64 | PIGSTY 0.2.0 u24.x86_64.pg18 : postgresql-18-macavity postgresql-18-macavity_0.2.0-1PGSTY~noble_amd64.deb
| PIGSTY 0.2.0 u24.x86_64.pg17 : postgresql-17-macavity postgresql-17-macavity_0.2.0-1PGSTY~noble_amd64.deb
| PIGSTY 0.2.0 u24.x86_64.pg16 : postgresql-16-macavity postgresql-16-macavity_0.2.0-1PGSTY~noble_amd64.deb
| N/A | N/A |
| u24.aarch64 | PIGSTY 0.2.0 u24.aarch64.pg18 : postgresql-18-macavity postgresql-18-macavity_0.2.0-1PGSTY~noble_arm64.deb
| PIGSTY 0.2.0 u24.aarch64.pg17 : postgresql-17-macavity postgresql-17-macavity_0.2.0-1PGSTY~noble_arm64.deb
| PIGSTY 0.2.0 u24.aarch64.pg16 : postgresql-16-macavity postgresql-16-macavity_0.2.0-1PGSTY~noble_arm64.deb
| N/A | N/A |
| u26.x86_64 | PIGSTY 0.2.0 u26.x86_64.pg18 : postgresql-18-macavity postgresql-18-macavity_0.2.0-1PGSTY~resolute_amd64.deb
| PIGSTY 0.2.0 u26.x86_64.pg17 : postgresql-17-macavity postgresql-17-macavity_0.2.0-1PGSTY~resolute_amd64.deb
| PIGSTY 0.2.0 u26.x86_64.pg16 : postgresql-16-macavity postgresql-16-macavity_0.2.0-1PGSTY~resolute_amd64.deb
| N/A | N/A |
| u26.aarch64 | PIGSTY 0.2.0 u26.aarch64.pg18 : postgresql-18-macavity postgresql-18-macavity_0.2.0-1PGSTY~resolute_arm64.deb
| PIGSTY 0.2.0 u26.aarch64.pg17 : postgresql-17-macavity postgresql-17-macavity_0.2.0-1PGSTY~resolute_arm64.deb
| PIGSTY 0.2.0 u26.aarch64.pg16 : postgresql-16-macavity postgresql-16-macavity_0.2.0-1PGSTY~resolute_arm64.deb
| N/A | N/A |
Build
You can build the RPM / DEB packages for macavity using pig build:
Install
You can install macavity directly. First, make sure the PGDG and PIGSTY repositories are added and enabled:
Install the extension using pig or apt/yum/dnf:
Create Extension:
Usage
Sources:
macavity 0.2.0 provides deterministic fault injection for disposable PostgreSQL test clusters. Upstream tests PostgreSQL 16–18 on Linux; PostgreSQL 19+ and other platforms are not validated, and Windows crash injection is unsupported. The crash action can disconnect every session and force crash recovery.
Event workflow
Registry and upgrade
Each session keeps multiple events with stable IDs, separate counters and states armed, completed or disarmed. macavity_arm returns an integer event ID; its single-ID overload re-arms a completed or disarmed event. macavity_status returns zero or more event rows. macavity_disarm retains event history; macavity_reset clears it and restarts IDs.
Points are executor_start, executor_end, before_commit and before_abort; actions are error, delay and crash. Delay lasts one second. Abort-time error injection is rejected. At a shared hit, delay precedes crash, then error, with IDs breaking ties.
Creation requires a superuser; no shared preload is needed. Only point enumeration is granted to PUBLIC. Upgrading with ALTER EXTENSION macavity UPDATE recreates functions with changed signatures: restore explicit grants, update callers and reconnect old sessions. Current Pigsty package fields still refer to 0.1.0.
Was this page helpful?
Thanks—your feedback helps us improve this page.
What got in the way? (optional)