What features in 9.4 need more beta testing for recovery?

I've applied my partial-write testing harness to several scenarios in 9.4.
 So far its found a recovery bug for gin indexes, a recovery bug for btree,
a vacuum bug for btree indexes (with foreign keys, but that is not relevant
to the bug), and nothing of interest for gist index, although it only
tested "where text_array @@ to_tsquery(?)" queries.

It also implicitly tested the xlog parallel write slots thing, as that is
common code to all recovery.

I also applied the foreign key test retroactively to 9.3, and it quickly
re-found the multixact bugs up until commit 9a57858f1103b89a5674.  The test
was designed only with the knowledge that the bugs involved foreign keys
and the consumption of multixacts.   I had no deeper knowledge of the
details of those bugs when designing the test, so I have a reasonable
amount of confidence that this could have found them in real time had I
bothered to try to test the feature during the previous beta cycle.

So, what else in 9.4 needs testing for recovery from crashes in general or
partial-writes in particular?

One thing is that I want to find a way to drive multixact in fast forward,
so that the freezing cycle gets a good workout. Currently I can't consume
enough of them to make them wrap around within the time frame of a test.

It looks like jsonb stuff only makes new operators for use by existing
indexes types, so probably is not a high risk for recovery bugs.  I will
probably try to test it anyway as a way to become more familiar with the
feature.  I don't really know about the logical streaming stuff.

These are the recent threads on hackers.  The first one has a link to the
harness variant which is set up for the foreign key testing.

"9.4 btree index corruption"
"9.4 checksum error in recovery with btree index"
"9.4 checksum errors in recovery with gin index"

Cheers,

Jeff

Reply via email to