On Fri, Oct 29, 2021 at 1:49 PM Andres Freund <andres@anarazel.de> wrote:
> > rmgr: Heap len (rec/tot): 59/ 8115, tx: 2085600, lsn:
> > 2/A0165A70, prev 2/A0165A38, desc: LOCK off 22: xid 2085600: flags 0x00
> > LOCK_ONLY EXCL_LOCK KEYS_UPDATED , blkref #0: rel 1663/19243/19560 blk 540
> > FPW
> > rmgr: Heap len (rec/tot): 54/ 54, tx: 2085600, lsn:
> > 2/A018E858, prev 2/A018D7D8, desc: LOCK off 22: xid 2085600: flags 0x00
> > LOCK_ONLY EXCL_LOCK KEYS_UPDATED , blkref #0: rel 1663/19243/19560 blk 540
> > rmgr: Heap len (rec/tot): 73/ 8237, tx: 2085600, lsn:
> > 2/A018E890, prev 2/A018E858, desc: UPDATE off 22 xmax 2085600 flags 0x03
> > KEYS_UPDATED ; new off 21 xmax 2085600, blkref #0: rel 1663/19243/19560 blk
> > 328 FPW, blkref #1: rel 1663/19243/19560 blk 540
>
> This is also odd. Why are we locking the same row twice, in the same
> transaction?
My guess is that mediawiki is supposed to be usable with at least
MySQL, Postgres, and SQLite, and so uses SELECT FOR UPDATE in ways
that seem excessive to us.
--
Peter Geoghegan