Description:
I configured a raster overlay layer in my mapfile, using a remote WMS hillshade service on top of a basemap. The overlay is combined with the base layer using a COMPOSITE block (COMPOP "multiply").
Here is the relevant layer configuration:
LAYER
NAME "Hillshade_Overlay"
PROCESSING "RESAMPLE=AVERAGE"
PROCESSING "OVERSAMPLE_RATIO=1"
PROJECTION
"init=epsg:2180"
END
TYPE RASTER
STATUS DEFAULT
CONNECTION "https://mapy.geoportal.gov.pl/wss/service/PZGIK/NMT/GRID1/WMS/ShadedRelief?"
CONNECTIONTYPE WMS
METADATA
"wms_srs" "EPSG:2180"
"wms_name" "Raster"
"wms_server_version" "1.3.0"
"wms_format" "image/png"
"wms_transparent" "TRUE"
"wms_essential" "1"
END
COMPOSITE
COMPOP "multiply"
OPACITY 70
END
END
Observed behavior:
When the remote WMS fails to deliver a tile (e.g. due to server overload), the base layer is still rendered, but without the overlay.
This happens even though "wms_essential" "1" is set.
Expected behavior:
With "wms_essential" "1", no tile should be rendered at all if the overlay WMS fails.
If I remove the COMPOSITE block, the behavior is as expected: MapServer returns an error instead of rendering the base layer without overlay.
Environment:
mapserv -v
MapServer version 8.4.0 PROJ version 9.4 GDAL version 3.11 OUTPUT=PNG OUTPUT=JPEG OUTPUT=KML SUPPORTS=PROJ SUPPORTS=AGG SUPPORTS=FREETYPE SUPPORTS=CAIRO SUPPORTS=ICONV SUPPORTS=FRIBIDI SUPPORTS=WMS_SERVER SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT SUPPORTS=WCS_SERVER SUPPORTS=OGCAPI_SERVER SUPPORTS=FASTCGI SUPPORTS=THREADS SUPPORTS=GEOS SUPPORTS=PBF INPUT=JPEG INPUT=POSTGIS INPUT=OGR INPUT=GDAL INPUT=SHAPEFILE INPUT=FLATGEOBUF
Ubuntu 24.04 LTS
Summary:
It seems that wms_essential=1 is ignored when the layer is used with COMPOSITE. Instead of blocking output, MapServer silently renders the base layer without the overlay.
Description:
I configured a raster overlay layer in my mapfile, using a remote WMS hillshade service on top of a basemap. The overlay is combined with the base layer using a COMPOSITE block (COMPOP "multiply").
Here is the relevant layer configuration:
Observed behavior:
When the remote WMS fails to deliver a tile (e.g. due to server overload), the base layer is still rendered, but without the overlay.
This happens even though "wms_essential" "1" is set.
Expected behavior:
With "wms_essential" "1", no tile should be rendered at all if the overlay WMS fails.
If I remove the COMPOSITE block, the behavior is as expected: MapServer returns an error instead of rendering the base layer without overlay.
Environment:
Ubuntu 24.04 LTS
Summary:
It seems that wms_essential=1 is ignored when the layer is used with COMPOSITE. Instead of blocking output, MapServer silently renders the base layer without the overlay.