[Geoserver-devel] Add a WMS GetMap timeout option

Hello,

I propose to add a format parameter (format_options=timeout:) to the WMS RenderedImageMapOutputFormat that allows users to specify a timeout on individual requests (As opposed to the global WMS configuration maxRenderingTime option.

In conjunction with this, I would like to add an exceptions option to return a partial image if rendering is interrupted.

I have prototyped some of this functionality locally, and it seems viable.

Torben

On Fri, Apr 17, 2015 at 6:05 PM, Torben Barsballe <
tbarsballe@anonymised.com> wrote:

Hello,

I propose to add a format parameter (format_options=timeout:<timeout>) to
the WMS RenderedImageMapOutputFormat that allows users to specify a timeout
on individual requests (As opposed to the global WMS configuration *maxRenderingTime
*option.

In conjunction with this, I would like to add an exceptions
<http://docs.geoserver.org/stable/en/user/services/wms/reference.html#exceptions&gt;
option to return a partial image if rendering is interrupted.

I have prototyped some of this functionality locally, and it seems viable.

Sounds like an interesting improvement, provided the code uses the lowest
between the globally configured limit and the user provided one.
Allowing users to go beyond the admin configured limit is just going to
make it too easy to mount a DOS attack on the cheap.

Cheers
Andrea

--

GeoServer Professional Services from the experts! Visit
http://goo.gl/NWWaa2 for more information.

Ing. Andrea Aime
@geowolf
Technical Lead

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it

*AVVERTENZE AI SENSI DEL D.Lgs. 196/2003*

Le informazioni contenute in questo messaggio di posta elettronica e/o
nel/i file/s allegato/i sono da considerarsi strettamente riservate. Il
loro utilizzo è consentito esclusivamente al destinatario del messaggio,
per le finalità indicate nel messaggio stesso. Qualora riceviate questo
messaggio senza esserne il destinatario, Vi preghiamo cortesemente di
darcene notizia via e-mail e di procedere alla distruzione del messaggio
stesso, cancellandolo dal Vostro sistema. Conservare il messaggio stesso,
divulgarlo anche in parte, distribuirlo ad altri soggetti, copiarlo, od
utilizzarlo per finalità diverse, costituisce comportamento contrario ai
principi dettati dal D.Lgs. 196/2003.

The information in this message and/or attachments, is intended solely for
the attention and use of the named addressee(s) and may be confidential or
proprietary in nature or covered by the provisions of privacy act
(Legislative Decree June, 30 2003, no.196 - Italy's New Data Protection
Code).Any use not in accord with its purpose, any disclosure, reproduction,
copying, distribution, or either dissemination, either whole or partial, is
strictly forbidden except previous formal approval of the named
addressee(s). If you are not the intended recipient, please contact
immediately the sender by telephone, fax or e-mail and delete the
information in this message that has been received in error. The sender
does not give any warranty or accept liability as the content, accuracy or
completeness of sent messages and accepts no responsibility for changes
made after they were sent or for other risks which arise as a result of
e-mail transmission, viruses, etc.

-------------------------------------------------------

Yes, the code I am writing uses the minimum of the two, as long as both are nonzero.

Torben

···

On Fri, Apr 17, 2015 at 9:12 AM, Andrea Aime <andrea.aime@anonymised.com> wrote:

On Fri, Apr 17, 2015 at 6:05 PM, Torben Barsballe <tbarsballe@anonymised.com> wrote:

Hello,

I propose to add a format parameter (format_options=timeout:) to the WMS RenderedImageMapOutputFormat that allows users to specify a timeout on individual requests (As opposed to the global WMS configuration maxRenderingTime option.

In conjunction with this, I would like to add an exceptions option to return a partial image if rendering is interrupted.

I have prototyped some of this functionality locally, and it seems viable.

Sounds like an interesting improvement, provided the code uses the lowest between the globally configured limit and the user provided one.
Allowing users to go beyond the admin configured limit is just going to make it too easy to mount a DOS attack on the cheap.

Cheers
Andrea

==

GeoServer Professional Services from the experts! Visit
http://goo.gl/NWWaa2 for more information.

==

Ing. Andrea Aime

@geowolf
Technical Lead

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it

AVVERTENZE AI SENSI DEL D.Lgs. 196/2003

Le informazioni contenute in questo messaggio di posta elettronica e/o nel/i file/s allegato/i sono da considerarsi strettamente riservate. Il loro utilizzo è consentito esclusivamente al destinatario del messaggio, per le finalità indicate nel messaggio stesso. Qualora riceviate questo messaggio senza esserne il destinatario, Vi preghiamo cortesemente di darcene notizia via e-mail e di procedere alla distruzione del messaggio stesso, cancellandolo dal Vostro sistema. Conservare il messaggio stesso, divulgarlo anche in parte, distribuirlo ad altri soggetti, copiarlo, od utilizzarlo per finalità diverse, costituisce comportamento contrario ai principi dettati dal D.Lgs. 196/2003.

The information in this message and/or attachments, is intended solely for the attention and use of the named addressee(s) and may be confidential or proprietary in nature or covered by the provisions of privacy act (Legislative Decree June, 30 2003, no.196 - Italy’s New Data Protection Code).Any use not in accord with its purpose, any disclosure, reproduction, copying, distribution, or either dissemination, either whole or partial, is strictly forbidden except previous formal approval of the named addressee(s). If you are not the intended recipient, please contact immediately the sender by telephone, fax or e-mail and delete the information in this message that has been received in error. The sender does not give any warranty or accept liability as the content, accuracy or completeness of sent messages and accepts no responsibility for changes made after they were sent or for other risks which arise as a result of e-mail transmission, viruses, etc.


I have moved my prototype implementation of a timeout format option into GeoServer as part of the RenderedImageMapOutputFormat. (Pull Request here: https://github.com/geoserver/geoserver/pull/1055 ).

Changes:

  • Added a “timeout” format option to the RenderedImageMapOutputFormat. Allows users to specify a timeout in ms. The renderer will use the nonzero minimum of this timout and the WMS global timeout.
  • Moved the actual rendering out to a seperate thread. This means that if we reach the timeout, we can return immedialtly, and let GeoServer clean up the renderer on its own time, rather than waiting for the current request to finish.

There is one bit of code that I am a bit leery of adding. The clean up process for the renderer will forcibly terminate the thread (Thread.stop()) if it does not end itself after 1000 ms of being asked to. This helps keep geoserver running quickly after timing out a large request, but leads to its own complications. I feel like there are two options here:

  • Keep as-is. Means we are using Thread.stop(), which may result in memory leaks, headless exceptions, etc.
  • Allow the renderer to stop itself, even if it takes a while. If geoserver gets a large number of massive requests, could lead to all resources being used waiting for the renderers to clean up after themselves.

I am currently getting two test failures that I cannot explain:

Failed tests: testParameterizedStyle(org.geoserver.wms.featureinfo.GetFeatureInfoJSONTest): expected:<[1]> but was:<[0]>
testParameterizedStyle(org.geoserver.wms.wms_1_1_1.GetFeatureInfoTest): expected:<[1]> but was:<[0]>

My change does not touch anything related to getFeatureInfo or styles, yet these tests fail on my branch but pass on master. Any ideas?

I am also currently looking into adding an exceptions format that allows returning of a partial image if a GetMap fails during timeout.

Feedback is welcome.

Torben

···

On Fri, Apr 17, 2015 at 9:15 AM, Torben Barsballe <tbarsballe@anonymised.com> wrote:

Yes, the code I am writing uses the minimum of the two, as long as both are nonzero.

Torben

On Fri, Apr 17, 2015 at 9:12 AM, Andrea Aime <andrea.aime@anonymised.com> wrote:

On Fri, Apr 17, 2015 at 6:05 PM, Torben Barsballe <tbarsballe@anonymised.com3839…> wrote:

Hello,

I propose to add a format parameter (format_options=timeout:) to the WMS RenderedImageMapOutputFormat that allows users to specify a timeout on individual requests (As opposed to the global WMS configuration maxRenderingTime option.

In conjunction with this, I would like to add an exceptions option to return a partial image if rendering is interrupted.

I have prototyped some of this functionality locally, and it seems viable.

Sounds like an interesting improvement, provided the code uses the lowest between the globally configured limit and the user provided one.
Allowing users to go beyond the admin configured limit is just going to make it too easy to mount a DOS attack on the cheap.

Cheers
Andrea

==

GeoServer Professional Services from the experts! Visit
http://goo.gl/NWWaa2 for more information.

==

Ing. Andrea Aime

@geowolf
Technical Lead

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it

AVVERTENZE AI SENSI DEL D.Lgs. 196/2003

Le informazioni contenute in questo messaggio di posta elettronica e/o nel/i file/s allegato/i sono da considerarsi strettamente riservate. Il loro utilizzo è consentito esclusivamente al destinatario del messaggio, per le finalità indicate nel messaggio stesso. Qualora riceviate questo messaggio senza esserne il destinatario, Vi preghiamo cortesemente di darcene notizia via e-mail e di procedere alla distruzione del messaggio stesso, cancellandolo dal Vostro sistema. Conservare il messaggio stesso, divulgarlo anche in parte, distribuirlo ad altri soggetti, copiarlo, od utilizzarlo per finalità diverse, costituisce comportamento contrario ai principi dettati dal D.Lgs. 196/2003.

The information in this message and/or attachments, is intended solely for the attention and use of the named addressee(s) and may be confidential or proprietary in nature or covered by the provisions of privacy act (Legislative Decree June, 30 2003, no.196 - Italy’s New Data Protection Code).Any use not in accord with its purpose, any disclosure, reproduction, copying, distribution, or either dissemination, either whole or partial, is strictly forbidden except previous formal approval of the named addressee(s). If you are not the intended recipient, please contact immediately the sender by telephone, fax or e-mail and delete the information in this message that has been received in error. The sender does not give any warranty or accept liability as the content, accuracy or completeness of sent messages and accepts no responsibility for changes made after they were sent or for other risks which arise as a result of e-mail transmission, viruses, etc.


I am currently getting two test failures that I cannot explain:

Failed tests:
testParameterizedStyle(org.geoserver.wms.featureinfo.GetFeatureInfoJSONTest):
expected:<[1]> but was:<[0]>

testParameterizedStyle(org.geoserver.wms.wms_1_1_1.GetFeatureInfoTest):
expected:<[1]> but was:<[0]>

My change does not touch anything related to getFeatureInfo or styles, yet
these tests fail on my branch but pass on master. Any ideas?

I found a fix for these - turned out I was missing a few environment
variables in the rendering thread. Fixed; PR now passes all test cases.

I have now added a new WMS exception format (EXCEPTIONS=application/vnd.gs.wms_partial) to return a partial image in the case a getMap request throws an exception while rendering. Exceptions of this format extends ServiceException to store the rendered WebMap inside the exception.

Also added documentation updates for both new features (timeout vender option and partial map exception format.

All of this is on the same PR: https://github.com/geoserver/geoserver/pull/1055

Comments, criticism, and review of these changes is welcome.

Torben

···

On Wed, May 13, 2015 at 10:51 AM, Torben Barsballe <tbarsballe@anonymised.com> wrote:

I am currently getting two test failures that I cannot explain:

Failed tests: testParameterizedStyle(org.geoserver.wms.featureinfo.GetFeatureInfoJSONTest): expected:<[1]> but was:<[0]>
testParameterizedStyle(org.geoserver.wms.wms_1_1_1.GetFeatureInfoTest): expected:<[1]> but was:<[0]>

My change does not touch anything related to getFeatureInfo or styles, yet these tests fail on my branch but pass on master. Any ideas?

I found a fix for these - turned out I was missing a few environment variables in the rendering thread. Fixed; PR now passes all test cases.

Well I like the creativity behind “EXCEPTIONS=application/vnd.gs.wms_partial” (vs “EXCEPTIONS=application/vnd.ogc.se_blank”).

I am tempted to call it vnd.gs.se_partial so it is clear it is still a service exception. What is the HTTP status code when returning this partial image?

One thing I do not like about the OGC protocols is their ability to return an HTTP 200 Service Exception document, I think they are gradually in the process of fixing this for recent specifications.

···

On 13 May 2015 at 14:45, Torben Barsballe <tbarsballe@anonymised.com> wrote:

I have now added a new WMS exception format (EXCEPTIONS=application/vnd.gs.wms_partial) to return a partial image in the case a getMap request throws an exception while rendering. Exceptions of this format extends ServiceException to store the rendered WebMap inside the exception.

Also added documentation updates for both new features (timeout vender option and partial map exception format.

All of this is on the same PR: https://github.com/geoserver/geoserver/pull/1055

Comments, criticism, and review of these changes is welcome.

Torben


One dashboard for servers and applications across Physical-Virtual-Cloud
Widest out-of-the-box monitoring support with 50+ applications
Performance metrics, stats and reports that give you Actionable Insights
Deep dive visibility with transaction tracing using APM Insight.
http://ad.doubleclick.net/ddm/clk/290420510;117567292;y


Geoserver-devel mailing list
Geoserver-devel@anonymised.comsts.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel


Jody Garnett

On Wed, May 13, 2015 at 10:51 AM, Torben Barsballe <tbarsballe@anonymised.com> wrote:

I am currently getting two test failures that I cannot explain:

Failed tests: testParameterizedStyle(org.geoserver.wms.featureinfo.GetFeatureInfoJSONTest): expected:<[1]> but was:<[0]>
testParameterizedStyle(org.geoserver.wms.wms_1_1_1.GetFeatureInfoTest): expected:<[1]> but was:<[0]>

My change does not touch anything related to getFeatureInfo or styles, yet these tests fail on my branch but pass on master. Any ideas?

I found a fix for these - turned out I was missing a few environment variables in the rendering thread. Fixed; PR now passes all test cases.

As with all other service exceptions, the return code is HTTP 200. I agree that this is suboptimal.

I am fine with vnd.gs.se_partial if you think that is better, I went with vnd.gs.wms_partial because this Exception format is only valid for WMS requests, wherease we can get ServiceExceptions from any OGC service.

Torben

···

On Wed, May 13, 2015 at 2:54 PM, Jody Garnett <jody.garnett@anonymised.com> wrote:

Well I like the creativity behind “EXCEPTIONS=application/vnd.gs.wms_partial” (vs “EXCEPTIONS=application/vnd.ogc.se_blank”).

I am tempted to call it vnd.gs.se_partial so it is clear it is still a service exception. What is the HTTP status code when returning this partial image?

One thing I do not like about the OGC protocols is their ability to return an HTTP 200 Service Exception document, I think they are gradually in the process of fixing this for recent specifications.


Jody Garnett

On 13 May 2015 at 14:45, Torben Barsballe <tbarsballe@anonymised.com> wrote:

I have now added a new WMS exception format (EXCEPTIONS=application/vnd.gs.wms_partial) to return a partial image in the case a getMap request throws an exception while rendering. Exceptions of this format extends ServiceException to store the rendered WebMap inside the exception.

Also added documentation updates for both new features (timeout vender option and partial map exception format.

All of this is on the same PR: https://github.com/geoserver/geoserver/pull/1055

Comments, criticism, and review of these changes is welcome.

Torben


One dashboard for servers and applications across Physical-Virtual-Cloud
Widest out-of-the-box monitoring support with 50+ applications
Performance metrics, stats and reports that give you Actionable Insights
Deep dive visibility with transaction tracing using APM Insight.
http://ad.doubleclick.net/ddm/clk/290420510;117567292;y


Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

On Wed, May 13, 2015 at 10:51 AM, Torben Barsballe <tbarsballe@anonymised.com> wrote:

I am currently getting two test failures that I cannot explain:

Failed tests: testParameterizedStyle(org.geoserver.wms.featureinfo.GetFeatureInfoJSONTest): expected:<[1]> but was:<[0]>
testParameterizedStyle(org.geoserver.wms.wms_1_1_1.GetFeatureInfoTest): expected:<[1]> but was:<[0]>

My change does not touch anything related to getFeatureInfo or styles, yet these tests fail on my branch but pass on master. Any ideas?

I found a fix for these - turned out I was missing a few environment variables in the rendering thread. Fixed; PR now passes all test cases.

On Wed, May 13, 2015 at 11:54 PM, Jody Garnett <jody.garnett@anonymised.com>
wrote:

Well I like the creativity behind
"EXCEPTIONS=application/vnd.gs.wms_partial" (vs
"EXCEPTIONS=application/vnd.ogc.se_blank").

I am tempted to call it vnd.gs.se_partial so it is clear it is still a
service exception. What is the HTTP status code when returning this partial
image?

One thing I do not like about the OGC protocols is their ability to return
an HTTP 200 Service Exception document, I think they are gradually in the
process of fixing this for recent specifications.

Yep, the only one that mandates HTTP return codes other than 200, which we
implement, is WCS 2.0.
I guess we'll have to wait for WMS 2.0, WFS 3.0 to get them in those
protocols too (WPS 2.0 might have them though).

I did experiment years ago with forcing them on the old protocols, but
browsers and clients disliked them quite a bit
(IE would not display the service exceptions anymore, I believe some
clients did not handle the exceptions properly if the code was not 200, but
I don't remember anymore which one was doing what).

Cheers
Andrea

--

GeoServer Professional Services from the experts! Visit
http://goo.gl/NWWaa2 for more information.

Ing. Andrea Aime
@geowolf
Technical Lead

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it

*AVVERTENZE AI SENSI DEL D.Lgs. 196/2003*

Le informazioni contenute in questo messaggio di posta elettronica e/o
nel/i file/s allegato/i sono da considerarsi strettamente riservate. Il
loro utilizzo è consentito esclusivamente al destinatario del messaggio,
per le finalità indicate nel messaggio stesso. Qualora riceviate questo
messaggio senza esserne il destinatario, Vi preghiamo cortesemente di
darcene notizia via e-mail e di procedere alla distruzione del messaggio
stesso, cancellandolo dal Vostro sistema. Conservare il messaggio stesso,
divulgarlo anche in parte, distribuirlo ad altri soggetti, copiarlo, od
utilizzarlo per finalità diverse, costituisce comportamento contrario ai
principi dettati dal D.Lgs. 196/2003.

The information in this message and/or attachments, is intended solely for
the attention and use of the named addressee(s) and may be confidential or
proprietary in nature or covered by the provisions of privacy act
(Legislative Decree June, 30 2003, no.196 - Italy's New Data Protection
Code).Any use not in accord with its purpose, any disclosure, reproduction,
copying, distribution, or either dissemination, either whole or partial, is
strictly forbidden except previous formal approval of the named
addressee(s). If you are not the intended recipient, please contact
immediately the sender by telephone, fax or e-mail and delete the
information in this message that has been received in error. The sender
does not give any warranty or accept liability as the content, accuracy or
completeness of sent messages and accepts no responsibility for changes
made after they were sent or for other risks which arise as a result of
e-mail transmission, viruses, etc.

-------------------------------------------------------

On Wed, May 13, 2015 at 1:09 AM, Torben Barsballe <
tbarsballe@anonymised.com> wrote:

I have moved my prototype implementation of a timeout format option into
GeoServer as part of the RenderedImageMapOutputFormat. (Pull Request here:
https://github.com/geoserver/geoserver/pull/1055 ).

Changes:

   - Added a "timeout" format option to the RenderedImageMapOutputFormat.
   Allows users to specify a timeout in ms. The renderer will use the nonzero
   minimum of this timout and the WMS global timeout.
   - Moved the actual rendering out to a seperate thread. This means that
   if we reach the timeout, we can return immedialtly, and let GeoServer clean
   up the renderer on its own time, rather than waiting for the current
   request to finish.

There is one bit of code that I am a bit leery of adding. The clean up
process for the renderer will forcibly terminate the thread (Thread.stop())
if it does not end itself after 1000 ms of being asked to. This helps keep
geoserver running quickly after timing out a large request, but leads to
its own complications. I feel like there are two options here:

   - Keep as-is. Means we are using Thread.stop(), which may result in
   memory leaks, headless exceptions, etc.
   - Allow the renderer to stop itself, even if it takes a while. If
   geoserver gets a large number of massive requests, could lead to all
   resources being used waiting for the renderers to clean up after themselves.

Please avoid doing this, we already have one level of thread handling
inside the renderer, please do not add another,
let's find ways to actually stop the rendering if necessary.
For raster based big renders, it could be poisoning the JAI chain somehow,
for large db queries, it could be passing
a timeout hint in the Query objects.

As you said, if we accumulate too many of these large requests waiting to
stop in the background, it will kill the server,
and make control-flow useless (as it will think those requests are still
running).

Cheers
Andrea

--

GeoServer Professional Services from the experts! Visit
http://goo.gl/NWWaa2 for more information.

Ing. Andrea Aime
@geowolf
Technical Lead

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it

*AVVERTENZE AI SENSI DEL D.Lgs. 196/2003*

Le informazioni contenute in questo messaggio di posta elettronica e/o
nel/i file/s allegato/i sono da considerarsi strettamente riservate. Il
loro utilizzo è consentito esclusivamente al destinatario del messaggio,
per le finalità indicate nel messaggio stesso. Qualora riceviate questo
messaggio senza esserne il destinatario, Vi preghiamo cortesemente di
darcene notizia via e-mail e di procedere alla distruzione del messaggio
stesso, cancellandolo dal Vostro sistema. Conservare il messaggio stesso,
divulgarlo anche in parte, distribuirlo ad altri soggetti, copiarlo, od
utilizzarlo per finalità diverse, costituisce comportamento contrario ai
principi dettati dal D.Lgs. 196/2003.

The information in this message and/or attachments, is intended solely for
the attention and use of the named addressee(s) and may be confidential or
proprietary in nature or covered by the provisions of privacy act
(Legislative Decree June, 30 2003, no.196 - Italy's New Data Protection
Code).Any use not in accord with its purpose, any disclosure, reproduction,
copying, distribution, or either dissemination, either whole or partial, is
strictly forbidden except previous formal approval of the named
addressee(s). If you are not the intended recipient, please contact
immediately the sender by telephone, fax or e-mail and delete the
information in this message that has been received in error. The sender
does not give any warranty or accept liability as the content, accuracy or
completeness of sent messages and accepts no responsibility for changes
made after they were sent or for other risks which arise as a result of
e-mail transmission, viruses, etc.

-------------------------------------------------------

On Thu, May 14, 2015 at 3:13 PM, Andrea Aime <andrea.aime@anonymised.com>
wrote:

As you said, if we accumulate too many of these large requests waiting to
stop in the background, it will kill the server,
and make control-flow useless (as it will think those requests are still
running).

Typo there, I meant, it will think those requests are completed when they
are still running and sucking resources (including memory, the graphics
object will retain the BufferedImage in memory, even if you try to dispose
it)

Cheers
Andrea

--

GeoServer Professional Services from the experts! Visit
http://goo.gl/NWWaa2 for more information.

Ing. Andrea Aime
@geowolf
Technical Lead

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it

*AVVERTENZE AI SENSI DEL D.Lgs. 196/2003*

Le informazioni contenute in questo messaggio di posta elettronica e/o
nel/i file/s allegato/i sono da considerarsi strettamente riservate. Il
loro utilizzo è consentito esclusivamente al destinatario del messaggio,
per le finalità indicate nel messaggio stesso. Qualora riceviate questo
messaggio senza esserne il destinatario, Vi preghiamo cortesemente di
darcene notizia via e-mail e di procedere alla distruzione del messaggio
stesso, cancellandolo dal Vostro sistema. Conservare il messaggio stesso,
divulgarlo anche in parte, distribuirlo ad altri soggetti, copiarlo, od
utilizzarlo per finalità diverse, costituisce comportamento contrario ai
principi dettati dal D.Lgs. 196/2003.

The information in this message and/or attachments, is intended solely for
the attention and use of the named addressee(s) and may be confidential or
proprietary in nature or covered by the provisions of privacy act
(Legislative Decree June, 30 2003, no.196 - Italy's New Data Protection
Code).Any use not in accord with its purpose, any disclosure, reproduction,
copying, distribution, or either dissemination, either whole or partial, is
strictly forbidden except previous formal approval of the named
addressee(s). If you are not the intended recipient, please contact
immediately the sender by telephone, fax or e-mail and delete the
information in this message that has been received in error. The sender
does not give any warranty or accept liability as the content, accuracy or
completeness of sent messages and accepts no responsibility for changes
made after they were sent or for other risks which arise as a result of
e-mail transmission, viruses, etc.

-------------------------------------------------------

This has been sitting on master without issue for over a month, so I am going to backport to the 2.7.x branch.

Torben.

···

On Thu, May 14, 2015 at 6:16 AM, Andrea Aime <andrea.aime@anonymised.com> wrote:

On Thu, May 14, 2015 at 3:13 PM, Andrea Aime <andrea.aime@anonymised.com> wrote:

Typo there, I meant, it will think those requests are completed when they are still running and sucking resources (including memory, the graphics object will retain the BufferedImage in memory, even if you try to dispose it)

Cheers

Andrea

==

GeoServer Professional Services from the experts! Visit
http://goo.gl/NWWaa2 for more information.

==

Ing. Andrea Aime

@geowolf
Technical Lead

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it

AVVERTENZE AI SENSI DEL D.Lgs. 196/2003

Le informazioni contenute in questo messaggio di posta elettronica e/o nel/i file/s allegato/i sono da considerarsi strettamente riservate. Il loro utilizzo è consentito esclusivamente al destinatario del messaggio, per le finalità indicate nel messaggio stesso. Qualora riceviate questo messaggio senza esserne il destinatario, Vi preghiamo cortesemente di darcene notizia via e-mail e di procedere alla distruzione del messaggio stesso, cancellandolo dal Vostro sistema. Conservare il messaggio stesso, divulgarlo anche in parte, distribuirlo ad altri soggetti, copiarlo, od utilizzarlo per finalità diverse, costituisce comportamento contrario ai principi dettati dal D.Lgs. 196/2003.

The information in this message and/or attachments, is intended solely for the attention and use of the named addressee(s) and may be confidential or proprietary in nature or covered by the provisions of privacy act (Legislative Decree June, 30 2003, no.196 - Italy’s New Data Protection Code).Any use not in accord with its purpose, any disclosure, reproduction, copying, distribution, or either dissemination, either whole or partial, is strictly forbidden except previous formal approval of the named addressee(s). If you are not the intended recipient, please contact immediately the sender by telephone, fax or e-mail and delete the information in this message that has been received in error. The sender does not give any warranty or accept liability as the content, accuracy or completeness of sent messages and accepts no responsibility for changes made after they were sent or for other risks which arise as a result of e-mail transmission, viruses, etc.


As you said, if we accumulate too many of these large requests waiting to stop in the background, it will kill the server,

and make control-flow useless (as it will think those requests are still running).

Thanks!

···

On 10 July 2015 at 13:52, Torben Barsballe <tbarsballe@anonymised.com> wrote:

This has been sitting on master without issue for over a month, so I am going to backport to the 2.7.x branch.

Torben.


Don’t Limit Your Business. Reach for the Cloud.
GigeNET’s Cloud Solutions provide you with the tools and support that
you need to offload your IT needs and focus on growing your business.
Configured For All Businesses. Start Your Cloud Today.
https://www.gigenetcloud.com/


Geoserver-devel mailing list
Geoserver-devel@anonymised.comsts.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel


Jody Garnett

On Thu, May 14, 2015 at 6:16 AM, Andrea Aime <andrea.aime@anonymised.com> wrote:

On Thu, May 14, 2015 at 3:13 PM, Andrea Aime <andrea.aime@anonymised.com> wrote:

Typo there, I meant, it will think those requests are completed when they are still running and sucking resources (including memory, the graphics object will retain the BufferedImage in memory, even if you try to dispose it)

Cheers

Andrea

==

GeoServer Professional Services from the experts! Visit
http://goo.gl/NWWaa2 for more information.

==

Ing. Andrea Aime

@geowolf
Technical Lead

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it

AVVERTENZE AI SENSI DEL D.Lgs. 196/2003

Le informazioni contenute in questo messaggio di posta elettronica e/o nel/i file/s allegato/i sono da considerarsi strettamente riservate. Il loro utilizzo è consentito esclusivamente al destinatario del messaggio, per le finalità indicate nel messaggio stesso. Qualora riceviate questo messaggio senza esserne il destinatario, Vi preghiamo cortesemente di darcene notizia via e-mail e di procedere alla distruzione del messaggio stesso, cancellandolo dal Vostro sistema. Conservare il messaggio stesso, divulgarlo anche in parte, distribuirlo ad altri soggetti, copiarlo, od utilizzarlo per finalità diverse, costituisce comportamento contrario ai principi dettati dal D.Lgs. 196/2003.

The information in this message and/or attachments, is intended solely for the attention and use of the named addressee(s) and may be confidential or proprietary in nature or covered by the provisions of privacy act (Legislative Decree June, 30 2003, no.196 - Italy’s New Data Protection Code).Any use not in accord with its purpose, any disclosure, reproduction, copying, distribution, or either dissemination, either whole or partial, is strictly forbidden except previous formal approval of the named addressee(s). If you are not the intended recipient, please contact immediately the sender by telephone, fax or e-mail and delete the information in this message that has been received in error. The sender does not give any warranty or accept liability as the content, accuracy or completeness of sent messages and accepts no responsibility for changes made after they were sent or for other risks which arise as a result of e-mail transmission, viruses, etc.


As you said, if we accumulate too many of these large requests waiting to stop in the background, it will kill the server,

and make control-flow useless (as it will think those requests are still running).