{"push_id":3124044708,"size":8,"distinct_size":1,"ref":"refs/heads/commitfest/21/1689","head":"3ba6dd21e387c92e0782b6fc502003f44f628484","before":"4cd10954647eb5b5d2e946fb098b8438bc2f6355","commits":[{"sha":"6d8727f95e7043d52ea8f6d62f7bcf81fdeaa658","author":{"name":"Michael Paquier","email":"17b9e1c64588c7fa6419b4d29dc1f4426279ba01@paquier.xyz"},"message":"Ensure cleanup of orphan archive status files\n\nWhen a WAL segment is recycled, its \".ready\" and \".done\" status files\nget also automatically removed, however this is not done in a durable\nmanner.  Hence, in a subsequent crash, it could be possible that a\n\".ready\" status file is still around with its corresponding segment\nalready gone.\n\nIf the backend reaches such a state, the archive command would most\nlikely complain about a segment non-existing and would keep retrying,\ncausing WAL segments to bloat pg_wal/, potentially making Postgres crash\nhard when running out of space.\n\nAs status files are removed after each individual segment, using\ndurable_unlink() does not completely close the window either, as a crash\ncould happen between the moment the WAL segment is recycled and the\nmoment its status files are removed.  This has also some performance\nimpact with the additional fsync() calls needed to make the removal in a\ndurable manner.  Doing the cleanup at recovery is not cost-free either\nas this makes crash recovery potentially take longer than necessary.\n\nSo, instead, as per an idea of Stephen Frost, make the archiver aware of\norphan status files and remove them on-the-fly if the corresponding\nsegment goes missing.  Removal failures follow a model close to what\nhappens for WAL segments, where multiple attempts are done before giving\nup temporarily, and where a successful orphan removal makes the archiver\nmove immediately to the next WAL segment thought as ready to be\narchived.\n\nAuthor: Michael Paquier\nReviewed-by: Nathan Bossart, Andres Freund, Stephen Frost, Kyotaro\nHoriguchi\nDiscussion: https://postgr.es/m/20180928032827.GF1500@paquier.xyz","distinct":false,"url":"https://api.github.com/repos/postgresql-cfbot/postgresql/commits/6d8727f95e7043d52ea8f6d62f7bcf81fdeaa658"},{"sha":"96c702c1edbde8a3f5013bd0ac6c25c85710258d","author":{"name":"Stephen Frost","email":"d3eaa418a359156a10c6383b2e3a44959960ecf6@snowman.net"},"message":"Remove dead code in toast_fetch_datum_slice\n\nIn toast_fetch_datum_slice(), we Assert() that what is passed in isn't\ncompressed, but we then later had a check to see what the length of if\nwhat was passed in is compressed.  That later check is rather confusing\nsince toast_fetch_datum_slice() is only ever called with non-compressed\ndatums and the Assert() earlier makes it clear that one shouldn't be\npassing in compressed datums.\n\nAdd a comment to make it clear that toast_fetch_datum_slice() is just\nfor non-compressed datums, and remove the dead code.","distinct":false,"url":"https://api.github.com/repos/postgresql-cfbot/postgresql/commits/96c702c1edbde8a3f5013bd0ac6c25c85710258d"},{"sha":"2d7eeb1b14925fd4ba6d2d7012636489570eaee8","author":{"name":"Stephen Frost","email":"d3eaa418a359156a10c6383b2e3a44959960ecf6@snowman.net"},"message":"Add additional partition tests to pg_dump\n\nThis adds a few tests for non-inherited constraints.\n\nAuthor: Amit Langote\nDiscussion: https://postgr.es/m/20181208001735.GT3415%40tamriel.snowman.net","distinct":false,"url":"https://api.github.com/repos/postgresql-cfbot/postgresql/commits/2d7eeb1b14925fd4ba6d2d7012636489570eaee8"},{"sha":"eeeb1dfc87fafe1cf4332c09692779662a95511e","author":{"name":"Stephen Frost","email":"d3eaa418a359156a10c6383b2e3a44959960ecf6@snowman.net"},"message":"Add pg_dump test for empty OP class\n\nThis adds a pg_dump test for an empty operator class.\n\nAuthor: Michael Paquier\nDiscussion: https://postgr.es/m/20181208011142.GU3415@tamriel.snowman.net","distinct":false,"url":"https://api.github.com/repos/postgresql-cfbot/postgresql/commits/eeeb1dfc87fafe1cf4332c09692779662a95511e"},{"sha":"b7a29695f744c3140350a4f1bb8511e950acc086","author":{"name":"Tom Lane","email":"ffeaa947aef224da9ba99b6a18bdd74288df0e3e@sss.pgh.pa.us"},"message":"Make TupleDescInitBuiltinEntry throw error for unsupported types.\n\nPreviously, it would just pass back a partially-uninitialized tupdesc,\nwhich doesn't seem like a safe or useful behavior.\n\nBackpatch to v10 where this code came in.\n\nDiscussion: https://postgr.es/m/30830.1544384975@sss.pgh.pa.us","distinct":false,"url":"https://api.github.com/repos/postgresql-cfbot/postgresql/commits/b7a29695f744c3140350a4f1bb8511e950acc086"},{"sha":"e28649a67f56ee1f7c1a55dc3dee4a1e467430a4","author":{"name":"Tom Lane","email":"ffeaa947aef224da9ba99b6a18bdd74288df0e3e@sss.pgh.pa.us"},"message":"Doc: remove obsolete reference to recursive expression evaluation.\n\nJohn Naylor\n\nDiscussion: https://postgr.es/m/CAJVSVGUPH-0q5feP4v9b+Y8K3HGTn3bEd5KV7VbyUj-oFdSLzA@mail.gmail.com","distinct":false,"url":"https://api.github.com/repos/postgresql-cfbot/postgresql/commits/e28649a67f56ee1f7c1a55dc3dee4a1e467430a4"},{"sha":"001bb9f3ed05e7c370151f7aad3a83447c52c157","author":{"name":"Tom Lane","email":"ffeaa947aef224da9ba99b6a18bdd74288df0e3e@sss.pgh.pa.us"},"message":"Add stack depth checks to key recursive functions in backend/nodes/*.c.\n\nAlthough copyfuncs.c has a check_stack_depth call in its recursion,\nequalfuncs.c, outfuncs.c, and readfuncs.c lacked one.  This seems\nunwise.\n\nLikewise fix planstate_tree_walker(), in branches where that exists.\n\nDiscussion: https://postgr.es/m/30253.1544286631@sss.pgh.pa.us","distinct":false,"url":"https://api.github.com/repos/postgresql-cfbot/postgresql/commits/001bb9f3ed05e7c370151f7aad3a83447c52c157"},{"sha":"3ba6dd21e387c92e0782b6fc502003f44f628484","author":{"name":"Commitfest Bot","email":"b9e638e07cc2e2abf56c9c0cad7954f2e3bc1641@cputube.org"},"message":"[CF 21/1689] Psql patch to show access methods info\n\nThis commit was automatically generated by cfbot at commitfest.cputube.org.\nIt is based on patches submitted to the PostgreSQL mailing lists and\nregistered in the PostgreSQL Commitfest application.\n\nThis branch will be overwritten each time a new patch version is posted to\nthe email thread, and also periodically to check for bitrot caused by changes\non the master branch.\n\nCommitfest entry: https://commitfest.postgresql.org/21/1689\nPatch(es): https://www.postgresql.org/message-id/70e94e339dd0fa2be5d3eebec68da7bf@postgrespro.ru\nAuthor(s): Alik Khilazhev, Sergey Cherkashin","distinct":true,"url":"https://api.github.com/repos/postgresql-cfbot/postgresql/commits/3ba6dd21e387c92e0782b6fc502003f44f628484"}]}
{"actor":{"display_login":"postgresql-cfbot"}}