{"push_id":1953742871,"size":5,"distinct_size":1,"ref":"refs/heads/commitfest/14/1098","head":"a18158485e497a606bab5e7b9f03c831ced764f7","before":"23b1b0bacb0dfe5f3488e0dc7242ef3e7753d85e","commits":[{"sha":"7df2c1f8daeb361133ac8bdeaf59ceb0484e315a","author":{"name":"Tom Lane","email":"9ca635a44fdf5aa326758d8d245579b9ae84653c@sss.pgh.pa.us"},"message":"Force rescanning of parallel-aware scan nodes below a Gather[Merge].\n\nThe ExecReScan machinery contains various optimizations for postponing\nor skipping rescans of plan subtrees; for example a HashAgg node may\nconclude that it can re-use the table it built before, instead of\nre-reading its input subtree.  But that is wrong if the input contains\na parallel-aware table scan node, since the portion of the table scanned\nby the leader process is likely to vary from one rescan to the next.\nThis explains the timing-dependent buildfarm failures we saw after\ncommit a2b70c89c.\n\nThe established mechanism for showing that a plan node's output is\npotentially variable is to mark it as depending on some runtime Param.\nHence, to fix this, invent a dummy Param (one that has a PARAM_EXEC\nparameter number, but carries no actual value) associated with each Gather\nor GatherMerge node, mark parallel-aware nodes below that node as dependent\non that Param, and arrange for ExecReScanGather[Merge] to flag that Param\nas changed whenever the Gather[Merge] node is rescanned.\n\nThis solution breaks an undocumented assumption made by the parallel\nexecutor logic, namely that all rescans of nodes below a Gather[Merge]\nwill happen synchronously during the ReScan of the top node itself.\nBut that's fundamentally contrary to the design of the ExecReScan code,\nand so was doomed to fail someday anyway (even if you want to argue\nthat the bug being fixed here wasn't a failure of that assumption).\nA follow-on patch will address that issue.  In the meantime, the worst\nthat's expected to happen is that given very bad timing luck, the leader\nmight have to do all the work during a rescan, because workers think\nthey have nothing to do, if they are able to start up before the eventual\nReScan of the leader's parallel-aware table scan node has reset the\nshared scan state.\n\nAlthough this problem exists in 9.6, there does not seem to be any way\nfor it to manifest there.  Without GatherMerge, it seems that a plan tree\nthat has a rescan-short-circuiting node below Gather will always also\nhave one above it that will short-circuit in the same cases, preventing\nthe Gather from being rescanned.  Hence we won't take the risk of\nback-patching this change into 9.6.  But v10 needs it.\n\nDiscussion: https://postgr.es/m/CAA4eK1JkByysFJNh9M349u_nNjqETuEnY_y1VUc_kJiU0bxtaQ@mail.gmail.com","distinct":false,"url":"https://api.github.com/repos/postgresql-cfbot/postgresql/commits/7df2c1f8daeb361133ac8bdeaf59ceb0484e315a"},{"sha":"7dd015fd303f547520e76d0f1181ba0613e9d497","author":{"name":"CommitFest Bot","email":"aab6a594935fe5db0d690bc154b19f642bfbe9d7@cputube.org"},"message":"Merge branch 'master' of git://git.postgresql.org/git/postgresql","distinct":false,"url":"https://api.github.com/repos/postgresql-cfbot/postgresql/commits/7dd015fd303f547520e76d0f1181ba0613e9d497"},{"sha":"6c2c5bea3cec4c874d1ee225bb6e222055c03d75","author":{"name":"Tom Lane","email":"9ca635a44fdf5aa326758d8d245579b9ae84653c@sss.pgh.pa.us"},"message":"Restore test case from a2b70c89ca1a5fcf6181d3c777d82e7b83d2de1b.\n\nRevert the reversion commits a20aac890 and 9b644745c.  In the wake of\ncommit 7df2c1f8d, we should get stable buildfarm results from this test;\nif not, I'd like to know sooner not later.\n\nDiscussion: https://postgr.es/m/CAA4eK1JkByysFJNh9M349u_nNjqETuEnY_y1VUc_kJiU0bxtaQ@mail.gmail.com","distinct":false,"url":"https://api.github.com/repos/postgresql-cfbot/postgresql/commits/6c2c5bea3cec4c874d1ee225bb6e222055c03d75"},{"sha":"b930c1df2b5e103521702b8455b8674a5fb808f9","author":{"name":"CommitFest Bot","email":"aab6a594935fe5db0d690bc154b19f642bfbe9d7@cputube.org"},"message":"Merge branch 'master' of git://git.postgresql.org/git/postgresql","distinct":false,"url":"https://api.github.com/repos/postgresql-cfbot/postgresql/commits/b930c1df2b5e103521702b8455b8674a5fb808f9"},{"sha":"a18158485e497a606bab5e7b9f03c831ced764f7","author":{"name":"CommitFest Bot","email":"aab6a594935fe5db0d690bc154b19f642bfbe9d7@cputube.org"},"message":"Automatic commit for Commitfest submission #1098.\n\nThis commit was automatically generated and includes a Travis control file\nto tell travis-ci.org what to do with it.  This branch will be overwritten\neach time a new patch version is posted or master changes.\n\nCommitfest entry: https://commitfest.postgresql.org/14/1098\nPatches fetched from: https://www.postgresql.org/message-id/alpine.DEB.2.20.1703311958001.14355%40lancre","distinct":true,"url":"https://api.github.com/repos/postgresql-cfbot/postgresql/commits/a18158485e497a606bab5e7b9f03c831ced764f7"}]}
{"actor":{"display_login":"postgresql-cfbot"}}