Skip to content
Snippets Groups Projects
Select Git revision
  • benchmark-tools
  • postgres-lambda
  • master default
  • REL9_4_25
  • REL9_5_20
  • REL9_6_16
  • REL_10_11
  • REL_11_6
  • REL_12_1
  • REL_12_0
  • REL_12_RC1
  • REL_12_BETA4
  • REL9_4_24
  • REL9_5_19
  • REL9_6_15
  • REL_10_10
  • REL_11_5
  • REL_12_BETA3
  • REL9_4_23
  • REL9_5_18
  • REL9_6_14
  • REL_10_9
  • REL_11_4
23 results

postgres-lambda-diff

  • Clone with SSH
  • Clone with HTTPS
  • user avatar
    Tom Lane authored
    A "break" statement erroneously left behind by commit a1c1af2a
    caused TopoSort to do the wrong thing if a lock's wait list
    contained multiple members of the same locking group.
    
    Because parallel workers don't normally need any locks not already
    taken by their leader, this is very hard --- maybe impossible ---
    to hit in production.  Still, if it did happen, the queries involved
    in an otherwise-resolvable deadlock would block until canceled.
    
    In addition to removing the bogus "break", add an Assert showing
    that the conflicting uses of the beforeConstraints[] array (for both
    counts and flags) don't overlap, and add some commentary explaining
    why not; because it's not obvious without explanation, IMHO.
    
    Original report and patch from Rui Hai Jiang; additional assert
    and commentary by me.  Back-patch to 9.6 where the bug came in.
    
    Discussion: https://postgr.es/m/CAEri+mLd3bpHLyW+a9pSe1y=aEkeuJpwBSwvo-+m4n7-ceRmXw@mail.gmail.com
    0dcb1c6c
    History
    Name Last commit Last update