Movatterモバイル変換


[0]ホーム

URL:



Facebook
Postgres Pro
Facebook
Downloads
E.33. Release 12.17
Prev UpAppendix E. Release NotesHome Next

E.33. Release 12.17

Release date: 2023-11-09

This release contains a variety of fixes from 12.16. For information about new features in major release 12, seeSection E.50.

E.33.1. Migration to Version 12.17

A dump/restore is not required for those running 12.X.

However, if you use GiST indexes, it may be advisable to reindex them; see the fourth changelog entry below.

Also, if you are upgrading from a version earlier than 12.16, seeSection E.34.

E.33.2. Changes

  • Fix handling of unknown-type arguments inDISTINCT"any" aggregate functions (Tom Lane)§

    This error led to atext-type value being interpreted as anunknown-type value (that is, a zero-terminated string) at runtime. This could result in disclosure of server memory following thetext value.

    ThePostgreSQL Project thanks Jingzhou Fu for reporting this problem. (CVE-2023-5868)

  • Detect integer overflow while computing new array dimensions (Tom Lane)§

    When assigning new elements to array subscripts that are outside the current array bounds, an undetected integer overflow could occur in edge cases. Memory stomps that are potentially exploitable for arbitrary code execution are possible, and so is disclosure of server memory.

    ThePostgreSQL Project thanks Pedro Gallegos for reporting this problem. (CVE-2023-5869)

  • Prevent thepg_signal_backend role from signalling background workers and autovacuum processes (Noah Misch, Jelte Fennema-Nio)§§

    The documentation says thatpg_signal_backend cannot issue signals to superuser-owned processes. It was able to signal these background processes, though, because they advertise a role OID of zero. Treat that as indicating superuser ownership. The security implications of cancelling one of these process types are fairly small so far as the core code goes (we'll just start another one), but extensions might add background workers that are more vulnerable.

    Also ensure that theis_superuser parameter is set correctly in such processes. No specific security consequences are known for that oversight, but it might be significant for some extensions.

    ThePostgreSQL Project thanks Hemanth Sandrana and Mahendrakar Srinivasarao for reporting this problem. (CVE-2023-5870)

  • Fix misbehavior during recursive page split in GiST index build (Heikki Linnakangas)§

    Fix a case where the location of a page downlink was incorrectly tracked, and introduce some logic to allow recovering from such situations rather than silently doing the wrong thing. This error could result in incorrect answers from subsequent index searches. It may be advisable to reindex all GiST indexes after installing this update.

  • Fix partition step generation and runtime partition pruning for hash-partitioned tables with multiple partition keys (David Rowley)§§

    Some cases involving anIS NULL condition on one of the partition keys could result in a crash.

  • Fix edge case in btree mark/restore processing of ScalarArrayOpExpr clauses (Peter Geoghegan)§

    When restoring an indexscan to a previously marked position, the code could miss required setup steps if the scan had advanced exactly to the end of the matches for a ScalarArrayOpExpr (that is, anindexcol = ANY(ARRAY[])) clause. This could result in missing some rows that should have been fetched.

  • Fix intra-query memory leak when a set-returning function repeatedly returns zero rows (Tom Lane)§

  • Don't crash ifcursor_to_xmlschema() is applied to a non-data-returning Portal (Boyu Yang)§

  • Throw the intended error ifpgrowlocks() is applied to a partitioned table (David Rowley)§

    Previously, a not-on-point complaintonly heap AM is supported would be raised.

  • Handle invalid indexes more cleanly in assorted SQL functions (Noah Misch)§

    Report an error ifpgstatindex(),pgstatginindex(),pgstathashindex(), orpgstattuple() is applied to an invalid index. Ifbrin_desummarize_range(),brin_summarize_new_values(),brin_summarize_range(), orgin_clean_pending_list() is applied to an invalid index, do nothing except to report a debug-level message. Formerly these functions attempted to process the index, and might fail in strange ways depending on what the failedCREATE INDEX had left behind.

  • Avoid premature memory allocation failure with long inputs toto_tsvector() (Tom Lane)§

  • Fix over-allocation of the constructedtsvector intsvectorrecv() (Denis Erokhin)§

    If the incoming vector includes position data, the binary receive function left wasted space (roughly equal to the size of the position data) in the finishedtsvector. In extreme cases this could lead tomaximum total lexeme length exceeded failures for vectors that were under the length limit when emitted. In any case it could lead to wasted space on-disk.

  • Fix incorrect coding ingtsvector_picksplit() (Alexander Lakhin)§

    This could lead to poor page-split decisions in GiST indexes ontsvector columns.

  • FixCOMMIT AND CHAIN/ROLLBACK AND CHAIN to work properly when there is an unreleased savepoint (Liu Xiang, Tom Lane)§

    Instead of propagating the current transaction's properties to the new transaction, they propagated some previous transaction's properties.

  • Avoid crash inEXPLAIN if a parameter marked to be displayed byEXPLAIN has a NULL boot-time value (Xing Guo, Aleksander Alekseev, Tom Lane)§

    No built-in parameter fits this description, but an extension could define such a parameter.

  • Ensure we have a snapshot while droppingON COMMIT DROP temp tables (Tom Lane)§

    This prevents possible misbehavior if any catalog entries for the temp tables have fields wide enough to require toasting (such as a very complexCHECK condition).

  • Avoid improper response to shutdown signals in child processes just forked bysystem() (Nathan Bossart)§§

    This fix avoids a race condition in which a child process that has been forked off bysystem(), but hasn't yet exec'd the intended child program, might receive and act on a signal intended for the parent server process. That would lead to duplicate cleanup actions being performed, which will not end well.

  • Cope with torn reads ofpg_control in frontend programs (Thomas Munro)§

    On some file systems, readingpg_control may not be an atomic action when the server concurrently writes that file. This is detectable via a bad CRC. Retry a few times to see if the file becomes valid before we report error.

  • Avoid torn reads ofpg_control in relevant SQL functions (Thomas Munro)§

    Acquire the appropriate lock before readingpg_control, to ensure we get a consistent view of that file.

  • Avoid integer overflow when computing size of backend activity string array (Jakub Wartak)§

    On 64-bit machines we will allow values oftrack_activity_query_size large enough to cause 32-bit overflow when multiplied by the allowed number of connections. The code actually allocating the per-backend local array was careless about this though, and allocated the array incorrectly.

  • Track the dependencies of cachedCALL statements, and re-plan them when needed (Tom Lane)§

    DDL commands, such as replacement of a function that has been inlined into aCALL argument, can create the need to re-plan aCALL that has been cached by PL/pgSQL. That was not happening, leading to misbehavior or strange errors such ascache lookup failed.

  • Track nesting depth correctly when inspectingRECORD-type Vars from outer query levels (Richard Guo)§

    This oversight could lead to assertion failures, core dumps, orbogus varno errors.

  • Avoidrecord type has not been registered failure when deparsing a view that contains references to fields of composite constants (Tom Lane)§

  • Allow extracting fields from aRECORD-typeROW() expression (Tom Lane)§

    SQL code that knows that we name such fieldsf1,f2, etc can use those names to extract fields from the expression. This change was originally made in version 13, and is now being back-patched into older branches to support tests for a related bug.

  • Fix error-handling bug inRECORD type cache management (Thomas Munro)§

    An out-of-memory error occurring at just the wrong point could leave behind inconsistent state that would lead to an infinite loop.

  • Fix assertion failure when logical decoding is retried in the same session after an error (Hou Zhijie)§

  • Treat out-of-memory failures as fatal while reading WAL (Michael Paquier)§

    Previously this would be treated as a bogus-data condition, leading to the conclusion that we'd reached the end of WAL, which is incorrect and could lead to inconsistent WAL replay.

  • Fix possible recovery failure due to trying to allocate memory based on a bogus WAL record length field (Thomas Munro, Michael Paquier)§§

  • Ensure that standby-mode WAL recovery reports an error when an invalid page header is found (Yugo Nagata, Kyotaro Horiguchi)§

  • Avoid doing plan cache revalidation of utility statements that do not receive interesting processing during parse analysis (Tom Lane)§

    Aside from saving a few cycles, this prevents failure after a cache invalidation for statements that must not set a snapshot, such asSET TRANSACTION ISOLATION LEVEL.

  • Keep by-referenceattmissingval values in a long-lived context while they are being used (Andrew Dunstan)§

    This avoids possible use of dangling pointers when a tuple slot outlives the tuple descriptor with which its value was constructed.

  • Recalculate the effective value ofsearch_path afterALTER ROLE (Jeff Davis)§§

    This ensures that after renaming a role, the meaning of the special string$user is re-determined.

  • Fix order of operations inGenericXLogFinish (Jeff Davis)§

    This code violated the conditions required for crash safety by writing WAL before marking changed buffers dirty. No core code uses this function, but extensions do (contrib/bloom does, for example).

  • Remove incorrect assertion in PL/Python exception handling (Alexander Lakhin)§

  • Fixpg_restore so that selective restores will include both table-level and column-level ACLs for selected tables (Euler Taveira, Tom Lane)§

    Formerly, only the table-level ACL would get restored if both types were present.

  • Add logic topg_upgrade to check for use ofabstime,reltime, andtinterval data types (Álvaro Herrera)§§

    These obsolete data types were removed inPostgreSQL version 12, so check to make sure they aren't present in an older database before claiming it can be upgraded.

  • Avoid generating invalid temporary slot names inpg_basebackup (Jelte Fennema)§

    This has only been seen to occur when the server connection runs throughpgbouncer.

  • Avoid falsetoo many client connections errors inpgbench on Windows (Noah Misch)§

  • Incontrib/amcheck, do not report interrupted page deletion as corruption (Noah Misch)§

    This fix prevents false-positive reports ofthe first child of leftmost target page is not leftmost of its level,block NNNN is not leftmost orleft link/right link pair in index XXXX not in agreement. They appeared ifamcheck ran after an unfinished btree index page deletion and beforeVACUUM had cleaned things up.

  • Fix failure ofcontrib/btree_gin indexes oninterval columns, when an indexscan using the< or<= operator is performed (Dean Rasheed)§

    Such an indexscan failed to return all the entries it should.

  • Add support for LLVM 16 and 17 (Thomas Munro, Dmitry Dolgov)§§§§

  • Suppress assorted build-time warnings on recentmacOS (Tom Lane)§§

    Xcode 15 (released withmacOS Sonoma) changed the linker's behavior in a way that causes many duplicate-library warnings while buildingPostgreSQL. These were harmless, but they're annoying so avoid citing the same libraries twice. Also remove use of the-multiply_defined suppress linker switch, which apparently has been a no-op for a long time, and is now actively complained of.

  • RemovePHOT (Phoenix Islands Time) from the default timezone abbreviations list (Tom Lane)§

    Presence of this abbreviation in the default list can cause failures on recent Debian and Ubuntu releases, as they no longer install the underlying tzdb entry by default. Since this is a made-up abbreviation for a zone with a total human population of about two dozen, it seems unlikely that anyone will miss it. If someone does, they can put it back via a custom abbreviations file.


Prev Up Next
E.32. Release 12.18 Home E.34. Release 12.16
epubpdf
Go to Postgres Pro Standard 12
By continuing to browse this website, you agree to the use of cookies. Go toPrivacy Policy.

[8]ページ先頭

©2009-2025 Movatter.jp