Davor,

the XSLT is applied after the response has been encoded to XML. The size of the response will be affected by maxFeatures/count but not I think by the database fetch size. Pagination is applied at the WFS level with startIndex (WFS 2.0, supported in GeoServer WFS 1.1.0 as an extension).

The stack trace of the failing request will help us investigate the problem.

Kind regards,
Ben.

On 20/12/17 22:59, Davor Racic wrote:
Hi Ben & Nuno, thank you for your suggestions.

things seem a little bit clearer. We are testing INSPIRE download service,
not an application, so we assume that someone can and should be able to
download/transfer whole set of data (cca 130000 features). I suppose some
sort of pagination should be done by Geoserver itself in background when
data PG store is configured with some value set on "fetch size", and
suppose that this XLST post-processing is done page by page after each
fetch? In our case, that property was missing in app-schema store
definition. We are testing this at the moment.

Best regards
Davor

sri, 20. pro 2017. u 00:12 Ben Caradoc-Davies <b...@transient.nz> napisao je:

Davor,

GeoServer uses XSLT to post-process WFS responses (and halve the number
of database queries). Do you have the other end of the stack trace so we
can see the origin and confirm this as the cause? Try *reducing* your
stack size to make the trace shorter.

It looks like this failure might be caused by the Xalan XSLT embedded in
the JVM standard library using Quicksort to sort an array of integers.
Quicksort is a terrible algorithm because its worst-case performance is
O(n**2):
https://en.wikipedia.org/wiki/Quicksort

Some Quicksort implementations can exhibit this behaviour when the input
is already sorted, already reverse-sorted, or all inputs are the same
(first two criteria combined). Recursive implementations will then use
O(n**2) time and stack.

Heapsort is often preferred because its worst-case performance is O(n
log n):
https://en.wikipedia.org/wiki/Heapsort

Kind regards,
Ben.

On 20/12/17 03:41, Davor Racic wrote:
I'm using Geoserver 2.11.dev and app-schema plugin. WFS max request limit
is set to 1mil features. When serving large WFS 2.0 requests (over 100000
fetures) from app-schema store (PostGIS backend) requests fail with
error:

19 pro 09:49:48 ERROR [geoserver.ows] -
java.lang.StackOverflowError
         at

com.sun.org.apache.xalan.internal.xsltc.util.IntegerArray.quicksort(IntegerArray.java:162)

         at

com.sun.org.apache.xalan.internal.xsltc.util.IntegerArray.quicksort(IntegerArray.java:163)

         at

com.sun.org.apache.xalan.internal.xsltc.util.IntegerArray.quicksort(IntegerArray.java:163)

         at

com.sun.org.apache.xalan.internal.xsltc.util.IntegerArray.quicksort(IntegerArray.java:163)
         ...

Serving smaller set of features (<100000) doesn't cause any error. When I
set maximum thread stack size for JAVA in JAVA_OPTS to -Xss4096K, errors
disappear, but I'm still wondering why this setting is necessary. Any
idea?
Can something like reprojection cause this?

Best regards
Davor




------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot



_______________________________________________
Geoserver-users mailing list

Please make sure you read the following two resources before posting to
this list:
- Earning your support instead of buying it, but Ian Turton:
http://www.ianturton.com/talks/foss4g.html#/
- The GeoServer user list posting guidelines:
http://geoserver.org/comm/userlist-guidelines.html

If you want to request a feature or an improvement, also see this:
https://github.com/geoserver/geoserver/wiki/Successfully-requesting-and-integrating-new-features-and-improvements-in-GeoServer


Geoserver-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users


--
Ben Caradoc-Davies <b...@transient.nz>
Director
Transient Software Limited <https://transient.nz/>
New Zealand




------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot



_______________________________________________
Geoserver-users mailing list

Please make sure you read the following two resources before posting to this 
list:
- Earning your support instead of buying it, but Ian Turton: 
http://www.ianturton.com/talks/foss4g.html#/
- The GeoServer user list posting guidelines: 
http://geoserver.org/comm/userlist-guidelines.html

If you want to request a feature or an improvement, also see this: 
https://github.com/geoserver/geoserver/wiki/Successfully-requesting-and-integrating-new-features-and-improvements-in-GeoServer


Geoserver-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users


--
Ben Caradoc-Davies <b...@transient.nz>
Director
Transient Software Limited <https://transient.nz/>
New Zealand

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Geoserver-users mailing list

Please make sure you read the following two resources before posting to this 
list:
- Earning your support instead of buying it, but Ian Turton: 
http://www.ianturton.com/talks/foss4g.html#/
- The GeoServer user list posting guidelines: 
http://geoserver.org/comm/userlist-guidelines.html

If you want to request a feature or an improvement, also see this: 
https://github.com/geoserver/geoserver/wiki/Successfully-requesting-and-integrating-new-features-and-improvements-in-GeoServer


Geoserver-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users

Reply via email to