5ffd1110e9
The region allocator marks freed regions "Condemned" before actually freeing them. Condemned regions are associated with a transaction; before they can be reused / coalesced the transaction that condemned them must complete. The region allocator used "TisActiveTransaction(xid)" to determine whether a given transaction had completed. The problem is that Stasis now reuses transaction id's, and condemned regions were never reclaimed in practice. A transaction fingerprint is a unique identifier (currently transaction id, rec_lsn) that can be used to distinguish transactions that did not execute concurrently. I considered an alternative design based upon end-of-transaction actions. This would have worked as well, but would have been a more invasive change. |
||
---|---|---|
.. | ||
2pc | ||
cht | ||
dfa | ||
lladd-old | ||
messages | ||
monotree | ||
pobj | ||
stasis | ||
.cvsignore | ||
check_check.c | ||
check_impl.h | ||
check_includes.h | ||
check_setup.h | ||
CMakeLists.txt | ||
Makefile.am | ||
README.coredumps |
To obtain a coredump from a test that crashes, run this command: export CK_FORK=no This will prevent check from forking on each test, so that you can obtain a normal core dump.