[Geoserver-devel] [JIRA] (GEOS-9604) Filter in Tile Layer page makes Geoserver unusable

padmafes FES created an issue

GeoServer / BugGEOS-9604

Filter in Tile Layer page makes Geoserver unusable

Issue Type:

BugBug

Affects Versions:

2.12.2

Assignee:

Unassigned

Components:

GWC

Created:

02/May/20 3:02 PM

Environment:

OS: Ubuntu 16.04
Apache Tomcat 9
Geoserver 2.12.2

Priority:

HighHigh

Reporter:

padmafes FES

Our Geoserver is hosted on AWS with Data Directory on Elastic File System so it may be shared between multiple instances with Geoserver

Running a Filter operation in Tile layers page hangs. Layers are not filtered but it completely locks Geoserver.

  • Layers cannot be previewed
  • Styles, Workspaces, Stores, Layers cannot be edited

Things come back up after a restart but running a filter on tile layer page is simply a blocker to use Geoserver.

Error seen while editing styles or layers is:

2020-04-26 23:28:03,077 ERROR [geoserver.web] - Error occurred saving the style
java.lang.RuntimeException: Failed to upgrade lock from read to write state, please re-try the configuration operation
at org.geoserver.GeoServerConfigurationLock.tryUpgradeLock(GeoServerConfigurationLock.java:159)
at org.geoserver.catalog.LockingCatalogFacade.invoke(LockingCatalogFacade.java:34)
at com.sun.proxy.$Proxy24.save(Unknown Source)
at org.geoserver.catalog.impl.CatalogImpl.save(CatalogImpl.java:1458)
at org.geoserver.security.SecureCatalogImpl.save(SecureCatalogImpl.java:1397)
at org.geoserver.catalog.impl.AbstractFilteredCatalog.save(AbstractFilteredCatalog.java:765)
at org.geoserver.catalog.impl.AbstractCatalogDecorator.save(AbstractCatalogDecorator.java:497)
at org.geoserver.wms.web.data.StyleEditPage.onStyleFormSubmit(StyleEditPage.java:123)
at org.geoserver.wms.web.data.AbstractStylePage$1.onSubmit(AbstractStylePage.java:141)
at org.apache.wicket.markup.html.form.Form.delegateSubmit(Form.java:1315)
at org.apache.wicket.markup.html.form.Form.process(Form.java:976)
at org.apache.wicket.markup.html.form.Form.onFormSubmitted(Form.java:797)
at org.apache.wicket.ajax.form.AjaxFormSubmitBehavior.onEvent(AjaxFormSubmitBehavior.java:171)
at org.apache.wicket.ajax.AjaxEventBehavior.respond(AjaxEventBehavior.java:155)
at org.apache.wicket.ajax.AbstractDefaultAjaxBehavior.onRequest(AbstractDefaultAjaxBehavior.java:601)
at sun.reflect.GeneratedMethodAccessor694.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.wicket.RequestListenerInterface.internalInvoke(RequestListenerInterface.java:258)
at org.apache.wicket.RequestListenerInterface.invoke(RequestListenerInterface.java:241)
at org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.invokeListener(ListenerInterfaceRequestHandler.java:248)
at org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.respond(ListenerInterfaceRequestHandler.java:234)
at org.apache.wicket.core.request.handler.RequestSettingRequestHandler.respond(RequestSettingRequestHandler.java:78)
at org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:895)
at org.apache.wicket.request.RequestHandlerStack.execute(RequestHandlerStack.java:64)
at org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:265)
at org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:222)
at org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:293)
at org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:261)
at org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:203)
at org.apache.wicket.protocol.http.WicketServlet.doPost(WicketServlet.java:159)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:660)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
at org.springframework.web.servlet.mvc.ServletWrappingController.handleRequestInternal(ServletWrappingController.java:157)
at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:174)
at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:50)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:963)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:897)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)

The java thread dump shows

“http-nio-8080-exec-37” #393 daemon prio=5 os_prio=0 tid=0x00007f4e940ac800 nid=0x71da waiting for monitor entry [0x00007f4e2faaa000]
java.lang.Thread.State: BLOCKED (on object monitor)
at org.geoserver.catalog.ResourcePool.getCacheableFeatureType(ResourcePool.java:958)

  • waiting to lock <0x0000000700a3bec0> (a org.geoserver.catalog.ResourcePool$FeatureTypeCache)
    at org.geoserver.catalog.ResourcePool.tryGetFeatureType(ResourcePool.java:949)
    at org.geoserver.catalog.ResourcePool.getFeatureType(ResourcePool.java:935)
    at org.geoserver.catalog.ResourcePool.getFeatureType(ResourcePool.java:930)
    at org.geoserver.catalog.impl.FeatureTypeInfoImpl.getFeatureType(FeatureTypeInfoImpl.java:121)
    at sun.reflect.GeneratedMethodAccessor330.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.geoserver.catalog.impl.ModificationProxy.invoke(ModificationProxy.java:147)
    at com.sun.proxy.$Proxy33.getFeatureType(Unknown Source)
    at org.geoserver.web.CatalogIconFactory.getSpecificLayerIcon(CatalogIconFactory.java:121)
    at org.geoserver.gwc.web.GWCIconFactory.getSpecificLayerIcon(GWCIconFactory.java:60)
    at org.geoserver.gwc.web.layer.CachedLayerProvider$1.getPropertyValue(CachedLayerProvider.java:45)
    at org.geoserver.gwc.web.layer.CachedLayerProvider$1.getPropertyValue(CachedLayerProvider.java:39)
    at org.geoserver.web.wicket.GeoServerDataProvider.filterByKeywords(GeoServerDataProvider.java:257)
    at org.geoserver.web.wicket.GeoServerDataProvider.getFilteredItems(GeoServerDataProvider.java:220)
    at org.geoserver.web.wicket.GeoServerDataProvider.size(GeoServerDataProvider.java:234)
    at org.geoserver.web.wicket.GeoServerTablePanel$PagerDelegate.updateMatched(GeoServerTablePanel.java:617)
    at org.geoserver.web.wicket.GeoServerTablePanel.updateFilter(GeoServerTablePanel.java:542)
    at org.geoserver.web.wicket.GeoServerTablePanel.access$000(GeoServerTablePanel.java:54)
    at org.geoserver.web.wicket.GeoServerTablePanel$8.onSubmit(GeoServerTablePanel.java:476)
    at org.apache.wicket.ajax.markup.html.form.AjaxButton$1.onSubmit(AjaxButton.java:113)
    at org.apache.wicket.ajax.form.AjaxFormSubmitBehavior$AjaxFormSubmitter.onSubmit(AjaxFormSubmitBehavior.java:215)
    at org.apache.wicket.markup.html.form.Form.delegateSubmit(Form.java:1309)
    at org.apache.wicket.markup.html.form.Form.process(Form.java:976)
    at org.apache.wicket.markup.html.form.Form.onFormSubmitted(Form.java:797)
    at org.apache.wicket.ajax.form.AjaxFormSubmitBehavior.onEvent(AjaxFormSubmitBehavior.java:171)
    at org.apache.wicket.ajax.AjaxEventBehavior.respond(AjaxEventBehavior.java:155)
    at org.apache.wicket.ajax.AbstractDefaultAjaxBehavior.onRequest(AbstractDefaultAjaxBehavior.java:601)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.apache.wicket.RequestListenerInterface.internalInvoke(RequestListenerInterface.java:258)
    at org.apache.wicket.RequestListenerInterface.invoke(RequestListenerInterface.java:241)
    at org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.invokeListener(ListenerInterfaceRequestHandler.java:248)

Add Comment

Add Comment

Get Jira notifications on your phone! Download the Jira Cloud app for Android or iOS


This message was sent by Atlassian Jira (v1001.0.0-SNAPSHOT#100125-sha1:e76aa5f)

Atlassian logo