github geoserver/geoserver-cloud v2.28.5.2
GeoServer Cloud 2.28.5.2

3 hours ago

Maintenance release of the 2.28.x line. Most of the fixes concern pods in a cluster drifting apart after a change made on one of them: the change was applied locally and never reached, or was ignored by, the other pods. The rest are two pgconfig backend bugs, a tile layer leak on the data directory backend, and dependency updates.

Cluster consistency

  • Users, groups and roles created or edited on one pod (for example through the Web UI) now reach the other pods, including the REST API, without a restart. #978, fixes #702
  • Changing the default style of a layer takes effect on pods that had already rendered it. The eviction triggered by a remote modification event skipped the per-resource layer list used by lookups by name. #987, fixes #781
  • Modifying a layer group with default styles produced a bus event dropped by the receiving pods, which left their catalog caches, tile layers and data directory replicas stale. #991, fixes #986
  • Deleting a layer deletes its tile layer, drops its cached tiles and evicts it from the other services. A regression from #914 left the tile layer configuration behind on the data directory backend, tied to a removed layer id and still holding the layer name. Clients recreating layers by DELETE followed by POST accumulated one orphan per round, each contending for the name with the tile layer of the recreated layer. #1007, with regression coverage in #1013

REST API

  • POSTing a layer group without <style> elements no longer fails with a NullPointerException. The layer group gets default styles assigned before reaching the catalog. #982

pgconfig backend

  • A layer referencing a style from another workspace keeps the style's own workspace. The row mapper adopted the queried object's workspace, and the style came back renamed as <layerWorkspace>:<styleName>. Note however this is not an intended use case. Upstream GeoServer allows referencing cross-workspace styles by accident. #993, by @jurgispods
  • Cascade layer deletes and layer group queries no longer fail with IllegalStateException: Recursive update from the catalog cache. Loading a nested layer group re-entered the cache's compute function, forbidden by the backing ConcurrentHashMap. The loader now runs outside of it, and a value loaded before a concurrent eviction of its key is not cached, otherwise a pod would keep serving a stale object after a remote event. #997, by @jurgispods

Dependencies

  • cloud-dependencies-bom 1.1.0: AWS SDK 2.41.32 -> 2.54.16, Azure SDK BOM 1.3.3 -> 1.3.8 (azure-storage-blob 12.35.0), google-cloud-storage 2.67.0 -> 2.73.0. #1017
  • log4j 2.21.1 -> 2.25.3, the version pinned by GeoTools 34.x. #1010
  • Jackson pinned to 2.19.4, as required by spring-cloud-starter-netflix-eureka-client 3.1.8 (EOL, no further releases). 3dcc884

Testing

  • Acceptance tests updated to python-geoservercloud 0.8.14: missing GWC tile layers and gridsets are reported as not found when GeoServer answers 500, cascaded WMS and WMTS layers are updated with a single PUT instead of DELETE plus POST, and the database URL forces the psycopg2 driver. #1015

Full Changelog: v2.28.5.1...v2.28.5.2

Don't miss a new geoserver-cloud release

NewReleases is sending notifications on new releases.