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

Reply via email to