On Feb 26, 2014, at 2:59 AM, Tomas Vondra <tv@xxxxxxxx> wrote:
There were a few triggers auto-created by a foreign key constraint but we removed the constraint, which removed the triggers: munin2=# select * from pg_trigger; tgrelid | tgname | tgfoid | tgtype | tgenabled | tgisinternal | tgconstrrelid | tgconstrindid | tgconstraint | tgdeferrable | tginitdeferred | tgnargs | tgattr | tgargs | tgqual ---------+--------+--------+--------+-----------+--------------+---------------+---------------+--------------+--------------+----------------+---------+--------+--------+-------- (0 rows) The tuple error still exists, however: munin2=# delete from testruns where ctid = '(37069305,4)'; ERROR: tuple concurrently updated munin2=# select id from testruns where ctid = '(37069305,4)'; id ----------- 141908486 (1 row) munin2=# delete from testruns where id = 141908486; ERROR: tuple concurrently updated munin2=# select * from testruns where id = 141908486; ERROR: unexpected chunk number 0 (expected 1) for toast value 155900302 in pg_toast_16822
We're aware that we're shoveling dirt to patch a crack in a large highway. However at the moment we value uptime rather than strict integrity of the data (141mil rows allows some wiggle room), and since we don't modify these rows after they're inserted, I can't imagine how this kind of row corruption can "slowly spread to other parts of the database". ~ john |