This was originally posted to the geoserver-users mailing list on 12/7/2017 with the subject “Concurrency issues with WCS”. No response was received as of time of writing this issue.
Running Geoserver 2.10.4 with a Postgres/PostGIS database.
Configured ImageMosaic extension with a Netcdf store.
I’m seeing errors when multiple requests are being processed for the same CoverageID, and either a scalingFactor is applied or a outputCrs/subsettingCrs is specified. Issues don’t seem related to each other, but they only come up when multiple requests are being handled concurrently.
Sample request parameters (CoverageId removed but it is the same for all requests):
- (Good) geoserver/wcs?service=WCS&version=2.0.1&request=GetCoverage&subset=Lat(“0”,“90”)&subset=Long(“60”,“150”)&format=application/x-netcdf4
- (Random scaling error): geoserver/wcs?service=WCS&version=2.0.1&request=GetCoverage&subset=Lat(“0”,“90”)&subset=Long(“60”,“150”)&format=application/x-netcdf4&scaleFactor=0.4
- (Random CRS error): geoserver/wcs?service=WCS&version=2.0.1&request=GetCoverage&subset=Lat(“0”,“90”)&subset=Long(“60”,“150”)&format=application/x-netcdf4&outputCrs=http://www.opengis.net/def/crs/EPSG/0/4052
My tests involve sending 5 requests at the same time, each with a slightly different subset on Lat/Long. For #1 above, all responses are correct.
For #2 above, sometimes 2/5 return an exceptionreport, sometimes 3/5.
For #3 above, only 1/5 request works, the other 4 return an “invalidCrs” exception report.
Note that all requests return the expected responses only if a single request is sent at a time.
Any help will be appreciated.
scaleFactor causes following exception on most requests:
2017-12-07 21:01:44,636 ERROR [geoserver.ows] -
org.geoserver.wcs2_0.exception.WCS20Exception: Failed to read the coverage
at org.geoserver.wcs2_0.GetCoverage.run(GetCoverage.java:305)
at org.geoserver.wcs2_0.DefaultWebCoverageService20.getCoverage(DefaultWebCoverageService20.java:138)
…
Caused by: java.lang.NullPointerException
at org.geoserver.wcs2_0.ScalingPolicy$2.scale(ScalingPolicy.java:136)
at org.geoserver.wcs2_0.GetCoverage.handleScaling(GetCoverage.java:1503)
at org.geoserver.wcs2_0.GetCoverage.setupCoverage(GetCoverage.java:380)
at org.geoserver.wcs2_0.GetCoverage.run(GetCoverage.java:293)
... 112 more
outputCrs causes following exception on all but 1 request:
2017-12-07 21:07:40,380 DEBUG [geoserver.wcs2_0] - Added extension outputCrs
2017-12-07 21:07:40,380 ERROR [geoserver.ows] -
org.geoserver.wcs2_0.exception.WCS20Exception: Invalid outputCrs
HTTPcode:404
at org.geoserver.wcs2_0.GetCoverage.extractCRSInternal(GetCoverage.java:1085)
at org.geoserver.wcs2_0.GetCoverage.extractOutputCRS(GetCoverage.java:1047)
at org.geoserver.wcs2_0.GetCoverage.parseGridCoverageRequest(GetCoverage.java:551)
at org.geoserver.wcs2_0.GetCoverage.run(GetCoverage.java:244)
at org.geoserver.wcs2_0.DefaultWebCoverageService20.getCoverage(DefaultWebCoverageService20.java:138)
…
Caused by: org.opengis.referencing.NoSuchAuthorityCodeException: No code "EPSG:4052" from authority "European Petroleum Survey Group" found for object of type "IdentifiedObject".
at org.geotools.referencing.factory.AbstractAuthorityFactory.noSuchAuthorityCode(AbstractAuthorityFactory.java:952)
at org.geotools.referencing.factory.PropertyAuthorityFactory.getWKT(PropertyAuthorityFactory.java:316)
at org.geotools.referencing.factory.PropertyAuthorityFactory.createCoordinateReferenceSystem(PropertyAuthorityFactory.java:390)
at org.geotools.referencing.factory.BufferedAuthorityFactory.createCoordinateReferenceSystem(BufferedAuthorityFactory.java:783)
at org.geotools.referencing.factory.AuthorityFactoryAdapter.createCoordinateReferenceSystem(AuthorityFactoryAdapter.java:802)
at org.geotools.referencing.factory.AuthorityFactoryAdapter.createCoordinateReferenceSystem(AuthorityFactoryAdapter.java:802)
at org.geoserver.wcs2_0.GetCoverage.extractCRSInternal(GetCoverage.java:1083)
... 115 more
|