Re: Failing assertions in indxpath.c, placeholder.c and brin_minmax.c

Peter Geoghegan <pg@heroku.com>

From: Peter Geoghegan <pg@heroku.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Andreas Seltenreich <seltenreich@gmx.de>, Pg Hackers <pgsql-hackers@postgresql.org>, Alvaro Herrera <alvherre@alvh.no-ip.org>, Michael Paquier <michael.paquier@gmail.com>
Date: 2015-07-26T22:15:37Z
Lists: pgsql-hackers
On Sun, Jul 26, 2015 at 7:07 AM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> Andreas Seltenreich <seltenreich@gmx.de> writes:
>> when running my random query generator contraption[1] against the
>> regression database of 9.5 or master, it occasionally triggers one of
>> the following three assertions.
>
> Very very cool tool!  Please keep doing that testing.

The SQLite people have been using a tool like this for some time.
They've also had luck finding bugs with a generic fuzz-testing tool
called "american fuzzy lop" (yes, seriously, that's what it's called),
which apparently is the state of the art.

I myself ran that tool against Postgres. I didn't spend enough time to
tweak it in a way that might have been effective. I also didn't figure
out a way to make iterations fast enough for the tool to be effective,
because I was invoking Postgres in single-user mode. I might pick it
up again in the future, but probably for a more targeted case.

-- 
Peter Geoghegan


Commits

  1. Fix broken assertion in BRIN code

  2. Support flattening of empty-FROM subqueries and one-row VALUES tables.

  3. Fix resource leak pointed out by Coverity.

  4. Add missing volatile qualifier.

  5. Remove dependency on wsock32.lib in favor of ws2_32

  6. Check interrupts during logical decoding more frequently.

  7. Fix contrib/pg_upgrade/test.sh for $PWD containing spaces.

  8. Secure Unix-domain sockets of "make check" temporary clusters.

  9. Adjust 9.4 release notes.

  10. Improve predtest.c's ability to reason about operator expressions.

  11. Fix pg_restore's processing of old-style BLOB COMMENTS data.

  12. Improve tuplestore's error messages for I/O failures.

  13. Remove unnecessary output expressions from unflattened subqueries.

  14. Stamp 9.4beta1.