Re: Inval reliability, especially for inplace updates

Noah Misch <noah@leadboat.com>

From: Noah Misch <noah@leadboat.com>
To: Alexander Lakhin <exclusion@gmail.com>
Cc: Paul A Jungwirth <pj@illuminatedcomputing.com>, Nitin Motiani <nitinmotiani@google.com>, Andres Freund <andres@anarazel.de>, Ilyasov Ian <ianilyasov@outlook.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>, Surya Poondla <s_poondla@apple.com>
Date: 2025-12-18T18:30:57Z
Lists: pgsql-hackers

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Update .abi-compliance-history for PrepareToInvalidateCacheTuple().

  2. Assert lack of hazardous buffer locks before possible catalog read.

  3. For inplace update, send nontransactional invalidations.

  4. Update .abi-compliance-history for CacheInvalidateHeapTupleInplace().

  5. Revisit cosmetics of "For inplace update, send nontransactional invalidations."

  6. Correct comments of "Fix data loss at inplace update after heap_update()".

  7. Move I/O before the index_update_stats() buffer lock region.

  8. Revert "For inplace update, send nontransactional invalidations."

  9. Revert "WAL-log inplace update before revealing it to other sessions."

  10. Fix inplace update buffer self-deadlock.

  11. Remove duplicate words in comments

  12. At end of recovery, reset all sinval-managed caches.

  13. Fix data loss at inplace update after heap_update().

  14. Remove comment about xl_heap_inplace "AT END OF STRUCT".

  15. Reduce memory consumption for pending invalidation messages.

  16. Add support for streaming to built-in logical replication.

  17. WAL Log invalidations at command end with wal_level=logical.

  18. Introduce logical decoding.

  19. Rename and document some invalidation routines to make it clearer that

On Wed, Dec 17, 2025 at 07:00:00AM +0200, Alexander Lakhin wrote:
> 17.12.2025 05:23, Noah Misch wrote:
> > I pushed the patch bundle to v17-v14.  Thanks for the reviews!  The
> > https://buildfarm.postgresql.org/cgi-bin/show_log.pl?nm=dragonet&dt=2025-12-17%2001%3A34%3A36
> > "double free or corruption (!prev)" likely witnessed a defect in how I
> > back-patched this to v14.  I am looking into it.
> 
> Thank you for working on this!
> 
> Regarding that failure, it's more or less known issue, not related to your
> commit:
> https://wiki.postgresql.org/wiki/Known_Buildfarm_Test_Failures#check-pg_upgrade_fails_on_LLVM-enabled_animals_due_to_double_free_or_corruption
> https://www.postgresql.org/message-id/flat/aPAl27_urHSODwRN%40paquier.xyz

Since v14 dragonet had never failed before, I was ready to assume it was new.
Thank you for highlighting the older issue.  I agree.

Other buildfarm failures have been either abi-compliance-check (expected) or
unrelated, so I've closed https://commitfest.postgresql.org/patch/5091/.  That
finishes the known-reachable inplace update corruption routes.