kartoza/docker-geoserver

Geoserver cluster is not copying new styles

krishnaglodha opened this issue · 11 comments

What is the bug or the crash?

I recently created cluster of 3 geoservers


geobroker:
    image: rmohr/activemq:5.15.9
    restart: on-failure
    healthcheck:
      test: curl --fail -s http://localhost:8161 || exit 1
      interval: 20s
      timeout: 10s
      retries: 10
    networks:
      - nginx_network
  gs-node1:
    image: kartoza/geoserver:2.20.0
    build:
      context: .
      dockerfile: Dockerfile
    volumes:
      - ./data_dir_shared/:/opt/geoserver/data_dir_shared
    ports:
      - "8081:8080"
    environment:
      - BROKER_URL=tcp://geobroker:61616
      - GEOSERVER_ADMIN_PASSWORD=geoserver
      - GEOSERVER_ADMIN_USER=admin
      - GEOSERVER_DATA_DIR=/opt/geoserver/data_dir_shared
      - RESET_ADMIN_CREDENTIALS=TRUE
      - READONLY=disabled
      - CLUSTER_DURABILITY=false
      - CLUSTERING=true
      - TOGGLE_MASTER=true
      - TOGGLE_SLAVE=false
      - SSL_MODE=allow
      - RANDOMSTRING=23bd87cfa327d47e-node1
      - INSTANCE_STRING=ac3bcba2fa7d989678a01ef4facc4173010cd8b40d2e5f5a8d18d5f863ca976f-node1
      - EXISTING_DATA_DIR=true
    restart: on-failure
    depends_on:
      geobroker:
        condition: service_healthy
    healthcheck:
      test: curl --fail -s http://localhost:8080/ || exit 1
      interval: 1m30s
      timeout: 10s
      retries: 3
    networks:
      - nginx_network
  gs-node2:
    image: kartoza/geoserver:2.20.0
    build:
      context: .
      dockerfile: Dockerfile
    volumes:
      - ./data_dir_shared/:/opt/geoserver/data_dir_shared
    ports:
      - "8082:8080"
    environment:
      - BROKER_URL=tcp://geobroker:61616
      - GEOSERVER_ADMIN_PASSWORD=geoserver
      - GEOSERVER_ADMIN_USER=admin
      - GEOSERVER_DATA_DIR=/opt/geoserver/data_dir_shared
      - RESET_ADMIN_CREDENTIALS=TRUE
      - READONLY=disabled
      - CLUSTER_DURABILITY=false
      - CLUSTERING=True
      - TOGGLE_MASTER=false
      - TOGGLE_SLAVE=true
      - EMBEDDED_BROKER=disabled
      - SSL_MODE=allow
      - RANDOMSTRING=23bd87cfa327d47e-node2
      - INSTANCE_STRING=ac3bcba2fa7d989678a01ef4facc4173010cd8b40d2e5f5a8d18d5f863ca976f-node2
      - EXISTING_DATA_DIR=true
    restart: on-failure
    depends_on:
      gs-node1:
        condition: service_healthy
      geobroker:
        condition: service_healthy
    healthcheck:
      test: curl --fail -s http://localhost:8080/ || exit 1
      interval: 1m30s
      timeout: 10s
      retries: 3
    networks:
      - nginx_network
  gs-node3:
    image: kartoza/geoserver:2.20.0
    build:
      context: .
      dockerfile: Dockerfile
    volumes:
      - ./data_dir_shared/:/opt/geoserver/data_dir_shared
    ports:
      - "8083:8080"
    environment:
      - BROKER_URL=tcp://geobroker:61616
      - GEOSERVER_ADMIN_PASSWORD=geoserver
      - GEOSERVER_ADMIN_USER=admin
      - GEOSERVER_DATA_DIR=/opt/geoserver/data_dir_shared
      - RESET_ADMIN_CREDENTIALS=TRUE
      - READONLY=disabled
      - CLUSTER_DURABILITY=false
      - CLUSTERING=True
      - TOGGLE_MASTER=false
      - TOGGLE_SLAVE=true
      - EMBEDDED_BROKER=disabled
      - SSL_MODE=allow
      - RANDOMSTRING=23bd87cfa327d47e-node3
      - INSTANCE_STRING=ac3bcba2fa7d989678a01ef4facc4173010cd8b40d2e5f5a8d18d5f863ca976f-node3
      - EXISTING_DATA_DIR=true
    restart: on-failure
    depends_on:
      gs-node1:
        condition: service_healthy
      gs-node2:
        condition: service_healthy
      geobroker:
        condition: service_healthy
    healthcheck:
      test: curl --fail -s http://localhost:8080/ || exit 1
      interval: 1m30s
      timeout: 10s
      retries: 3
    networks:
      - nginx_network

I can see workspaces, stores and layers are getting reflected correctly, but problem is with styles,
I'm getting following error


nic-cl-gs-node1-1   | 30 Mar 03:32:44 INFO [cluster.impl] - Using brokerURI: tcp://geobroker:61616
nic-cl-gs-node1-1   | 30 Mar 03:32:44 INFO [geoserver.cluster] - Creating an instance of: class org.geoserver.cluster.impl.handlers.configuration.JMSGeoServerHandlerSPI
nic-cl-gs-node1-1   | 30 Mar 03:32:44 INFO [cluster.impl] - Using brokerURI: tcp://geobroker:61616
nic-cl-gs-node1-1   | 30 Mar 03:32:44 INFO [geoserver.cluster] - Creating an instance of: class org.geoserver.cluster.impl.handlers.DocumentFileHandlerSPI
nic-cl-gs-node1-1   | 30 Mar 03:32:44 INFO [geoserver.cluster] - Creating an instance of: class org.geoserver.cluster.impl.handlers.catalog.JMSCatalogStylesFileHandlerSPI
nic-cl-gs-node1-1   | 30 Mar 03:32:44 WARN [catalog.impl] - Catalog listener threw exception handling event.
nic-cl-gs-node1-1   | java.lang.NoClassDefFoundError: org/jdom2/JDOMException
nic-cl-gs-node1-1   |   at java.base/java.lang.Class.getDeclaredMethods0(Native Method)
nic-cl-gs-node1-1   |   at java.base/java.lang.Class.privateGetDeclaredMethods(Class.java:3166)
nic-cl-gs-node1-1   |   at java.base/java.lang.Class.getDeclaredMethod(Class.java:2473)
nic-cl-gs-node1-1   |   at com.thoughtworks.xstream.core.util.SerializationMembers.getMethod(SerializationMembers.java:183)
nic-cl-gs-node1-1   |   at com.thoughtworks.xstream.core.util.SerializationMembers.getMethod(SerializationMembers.java:168)
nic-cl-gs-node1-1   |   at com.thoughtworks.xstream.core.util.SerializationMembers.getRRMethod(SerializationMembers.java:199)
nic-cl-gs-node1-1   |   at com.thoughtworks.xstream.core.util.SerializationMembers.callWriteReplace(SerializationMembers.java:97)
nic-cl-gs-node1-1   |   at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.marshal(AbstractReflectionConverter.java:78)
nic-cl-gs-node1-1   |   at com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:69)
nic-cl-gs-node1-1   |   at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:58)
nic-cl-gs-node1-1   |   at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:43)
nic-cl-gs-node1-1   |   at com.thoughtworks.xstream.core.TreeMarshaller.start(TreeMarshaller.java:82)
nic-cl-gs-node1-1   |   at com.thoughtworks.xstream.core.AbstractTreeMarshallingStrategy.marshal(AbstractTreeMarshallingStrategy.java:37)
nic-cl-gs-node1-1   |   at com.thoughtworks.xstream.XStream.marshal(XStream.java:1320)
nic-cl-gs-node1-1   |   at com.thoughtworks.xstream.XStream.marshal(XStream.java:1309)
nic-cl-gs-node1-1   |   at com.thoughtworks.xstream.XStream.toXML(XStream.java:1282)
nic-cl-gs-node1-1   |   at com.thoughtworks.xstream.XStream.toXML(XStream.java:1269)
nic-cl-gs-node1-1   |   at org.geoserver.cluster.impl.handlers.DocumentFileHandler.serialize(DocumentFileHandler.java:39)
nic-cl-gs-node1-1   |   at org.geoserver.cluster.impl.handlers.DocumentFileHandler.serialize(DocumentFileHandler.java:19)
nic-cl-gs-node1-1   |   at org.geoserver.cluster.JMSPublisher.publish(JMSPublisher.java:63)
nic-cl-gs-node1-1   |   at org.geoserver.cluster.server.JMSCatalogListener.handleAddEvent(JMSCatalogListener.java:118)
nic-cl-gs-node1-1   |   at org.geoserver.catalog.impl.CatalogImpl.event(CatalogImpl.java:1873)
nic-cl-gs-node1-1   |   at org.geoserver.catalog.impl.CatalogImpl.fireAdded(CatalogImpl.java:1826)
nic-cl-gs-node1-1   |   at org.geoserver.catalog.impl.CatalogImpl.added(CatalogImpl.java:1804)
nic-cl-gs-node1-1   |   at org.geoserver.catalog.impl.CatalogImpl.add(CatalogImpl.java:1625)
nic-cl-gs-node1-1   |   at org.geoserver.security.SecureCatalogImpl.add(SecureCatalogImpl.java:1320)
nic-cl-gs-node1-1   |   at org.geoserver.catalog.impl.AbstractFilteredCatalog.add(AbstractFilteredCatalog.java:636)
nic-cl-gs-node1-1   |   at org.geoserver.catalog.impl.AbstractCatalogDecorator.add(AbstractCatalogDecorator.java:573)
nic-cl-gs-node1-1   |   at org.geoserver.wms.web.data.StyleNewPage.onStyleFormSubmit(StyleNewPage.java:78)
nic-cl-gs-node1-1   |   at org.geoserver.wms.web.data.AbstractStylePage$1.onSubmit(AbstractStylePage.java:228)
nic-cl-gs-node1-1   |   at org.apache.wicket.markup.html.form.Form.delegateSubmit(Form.java:1318)
nic-cl-gs-node1-1   |   at org.apache.wicket.markup.html.form.Form.process(Form.java:976)
nic-cl-gs-node1-1   |   at org.apache.wicket.markup.html.form.Form.onFormSubmitted(Form.java:797)
nic-cl-gs-node1-1   |   at org.apache.wicket.ajax.form.AjaxFormSubmitBehavior.onEvent(AjaxFormSubmitBehavior.java:174)
nic-cl-gs-node1-1   |   at org.apache.wicket.ajax.AjaxEventBehavior.respond(AjaxEventBehavior.java:155)
nic-cl-gs-node1-1   |   at org.apache.wicket.ajax.AbstractDefaultAjaxBehavior.onRequest(AbstractDefaultAjaxBehavior.java:601)
nic-cl-gs-node1-1   |   at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
nic-cl-gs-node1-1   |   at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
nic-cl-gs-node1-1   |   at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
nic-cl-gs-node1-1   |   at java.base/java.lang.reflect.Method.invoke(Method.java:566)
nic-cl-gs-node1-1   |   at org.apache.wicket.RequestListenerInterface.internalInvoke(RequestListenerInterface.java:258)
nic-cl-gs-node1-1   |   at org.apache.wicket.RequestListenerInterface.invoke(RequestListenerInterface.java:241)
nic-cl-gs-node1-1   |   at org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.invokeListener(ListenerInterfaceRequestHandler.java:248)
nic-cl-gs-node1-1   |   at org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.respond(ListenerInterfaceRequestHandler.java:234)
nic-cl-gs-node1-1   |   at org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:895)
nic-cl-gs-node1-1   |   at org.apache.wicket.request.RequestHandlerStack.execute(RequestHandlerStack.java:64)
nic-cl-gs-node1-1   |   at org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:265)
nic-cl-gs-node1-1   |   at org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:222)
nic-cl-gs-node1-1   |   at org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:293)
nic-cl-gs-node1-1   |   at org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:261)
nic-cl-gs-node1-1   |   at org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:203)
nic-cl-gs-node1-1   |   at org.apache.wicket.protocol.http.WicketServlet.doPost(WicketServlet.java:159)
nic-cl-gs-node1-1   |   at javax.servlet.http.HttpServlet.service(HttpServlet.java:681)
nic-cl-gs-node1-1   |   at javax.servlet.http.HttpServlet.service(HttpServlet.java:764)
nic-cl-gs-node1-1   |   at org.springframework.web.servlet.mvc.ServletWrappingController.handleRequestInternal(ServletWrappingController.java:166)
nic-cl-gs-node1-1   |   at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:177)
nic-cl-gs-node1-1   |   at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:52)
nic-cl-gs-node1-1   |   at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1040)
nic-cl-gs-node1-1   |   at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:943)
nic-cl-gs-node1-1   |   at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
nic-cl-gs-node1-1   |   at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)
nic-cl-gs-node1-1   |   at javax.servlet.http.HttpServlet.service(HttpServlet.java:681)
nic-cl-gs-node1-1   |   at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
nic-cl-gs-node1-1   |   at javax.servlet.http.HttpServlet.service(HttpServlet.java:764)
nic-cl-gs-node1-1   |   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227)
nic-cl-gs-node1-1   |   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
nic-cl-gs-node1-1   |   at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
nic-cl-gs-node1-1   |   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
nic-cl-gs-node1-1   |   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
nic-cl-gs-node1-1   |   at org.apache.catalina.filters.CorsFilter.handleNonCORS(CorsFilter.java:357)
nic-cl-gs-node1-1   |   at org.apache.catalina.filters.CorsFilter.doFilter(CorsFilter.java:176)
nic-cl-gs-node1-1   |   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
nic-cl-gs-node1-1   |   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
nic-cl-gs-node1-1   |   at org.geoserver.filters.ThreadLocalsCleanupFilter.doFilter(ThreadLocalsCleanupFilter.java:28)
nic-cl-gs-node1-1   |   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
nic-cl-gs-node1-1   |   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
nic-cl-gs-node1-1   |   at org.geoserver.filters.SpringDelegatingFilter$Chain.doFilter(SpringDelegatingFilter.java:73)
nic-cl-gs-node1-1   |   at org.geoserver.flow.controller.IpBlacklistFilter.doFilter(IpBlacklistFilter.java:89)
nic-cl-gs-node1-1   |   at org.geoserver.filters.SpringDelegatingFilter$Chain.doFilter(SpringDelegatingFilter.java:70)
nic-cl-gs-node1-1   |   at org.geoserver.monitor.MonitorFilter.doFilter(MonitorFilter.java:90)
nic-cl-gs-node1-1   |   at org.geoserver.filters.SpringDelegatingFilter$Chain.doFilter(SpringDelegatingFilter.java:70)
nic-cl-gs-node1-1   |   at org.geoserver.ows.HTTPHeadersCollector.doFilter(HTTPHeadersCollector.java:48)
nic-cl-gs-node1-1   |   at org.geoserver.filters.SpringDelegatingFilter$Chain.doFilter(SpringDelegatingFilter.java:70)
nic-cl-gs-node1-1   |   at org.geoserver.filters.SpringDelegatingFilter.doFilter(SpringDelegatingFilter.java:43)
nic-cl-gs-node1-1   |   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
nic-cl-gs-node1-1   |   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
nic-cl-gs-node1-1   |   at org.geoserver.platform.AdvancedDispatchFilter.doFilter(AdvancedDispatchFilter.java:39)
nic-cl-gs-node1-1   |   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
nic-cl-gs-node1-1   |   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
nic-cl-gs-node1-1   |   at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:320)
nic-cl-gs-node1-1   |   at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:71)
nic-cl-gs-node1-1   |   at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:127)
nic-cl-gs-node1-1   |   at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:91)
nic-cl-gs-node1-1   |   at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:75)
nic-cl-gs-node1-1   |   at org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:92)
nic-cl-gs-node1-1   |   at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
nic-cl-gs-node1-1   |   at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:71)
nic-cl-gs-node1-1   |   at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:119)
nic-cl-gs-node1-1   |   at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:75)
nic-cl-gs-node1-1   |   at org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:92)
nic-cl-gs-node1-1   |   at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
nic-cl-gs-node1-1   |   at org.geoserver.security.filter.GeoServerAnonymousAuthenticationFilter.doFilter(GeoServerAnonymousAuthenticationFilter.java:53)
nic-cl-gs-node1-1   |   at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
nic-cl-gs-node1-1   |   at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:71)
nic-cl-gs-node1-1   |   at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:200)
nic-cl-gs-node1-1   |   at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:75)
nic-cl-gs-node1-1   |   at org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:92)
nic-cl-gs-node1-1   |   at org.geoserver.security.filter.GeoServerUserNamePasswordAuthenticationFilter.doFilter(GeoServerUserNamePasswordAuthenticationFilter.java:122)
nic-cl-gs-node1-1   |   at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
nic-cl-gs-node1-1   |   at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:71)
nic-cl-gs-node1-1   |   at org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:158)
nic-cl-gs-node1-1   |   at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:75)
nic-cl-gs-node1-1   |   at org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:92)
nic-cl-gs-node1-1   |   at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
nic-cl-gs-node1-1   |   at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:71)
nic-cl-gs-node1-1   |   at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105)
nic-cl-gs-node1-1   |   at org.geoserver.security.filter.GeoServerSecurityContextPersistenceFilter$1.doFilter(GeoServerSecurityContextPersistenceFilter.java:52)
nic-cl-gs-node1-1   |   at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:75)
nic-cl-gs-node1-1   |   at org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:92)
nic-cl-gs-node1-1   |   at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
nic-cl-gs-node1-1   |   at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:215)
nic-cl-gs-node1-1   |   at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:178)
nic-cl-gs-node1-1   |   at org.geoserver.security.GeoServerSecurityFilterChainProxy.doFilter(GeoServerSecurityFilterChainProxy.java:142)
nic-cl-gs-node1-1   |   at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:358)
nic-cl-gs-node1-1   |   at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:271)
nic-cl-gs-node1-1   |   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
nic-cl-gs-node1-1   |   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
nic-cl-gs-node1-1   |   at org.geoserver.filters.LoggingFilter.doFilter(LoggingFilter.java:102)
nic-cl-gs-node1-1   |   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
nic-cl-gs-node1-1   |   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
nic-cl-gs-node1-1   |   at org.geoserver.filters.XFrameOptionsFilter.doFilter(XFrameOptionsFilter.java:77)
nic-cl-gs-node1-1   |   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
nic-cl-gs-node1-1   |   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
nic-cl-gs-node1-1   |   at org.geoserver.filters.GZIPFilter.doFilter(GZIPFilter.java:48)
nic-cl-gs-node1-1   |   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
nic-cl-gs-node1-1   |   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
nic-cl-gs-node1-1   |   at org.geoserver.filters.SessionDebugFilter.doFilter(SessionDebugFilter.java:49)
nic-cl-gs-node1-1   |   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
nic-cl-gs-node1-1   |   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
nic-cl-gs-node1-1   |   at org.geoserver.filters.FlushSafeFilter.doFilter(FlushSafeFilter.java:42)
nic-cl-gs-node1-1   |   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
nic-cl-gs-node1-1   |   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
nic-cl-gs-node1-1   |   at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
nic-cl-gs-node1-1   |   at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
nic-cl-gs-node1-1   |   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
nic-cl-gs-node1-1   |   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
nic-cl-gs-node1-1   |   at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197)
nic-cl-gs-node1-1   |   at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
nic-cl-gs-node1-1   |   at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:540)
nic-cl-gs-node1-1   |   at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135)
nic-cl-gs-node1-1   |   at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
nic-cl-gs-node1-1   |   at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:687)
nic-cl-gs-node1-1   |   at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
nic-cl-gs-node1-1   |   at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357)
nic-cl-gs-node1-1   |   at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:382)
nic-cl-gs-node1-1   |   at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
nic-cl-gs-node1-1   |   at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:893)
nic-cl-gs-node1-1   |   at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1726)
nic-cl-gs-node1-1   |   at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
nic-cl-gs-node1-1   |   at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
nic-cl-gs-node1-1   |   at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
nic-cl-gs-node1-1   |   at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
nic-cl-gs-node1-1   |   at java.base/java.lang.Thread.run(Thread.java:829)
nic-cl-gs-node1-1   | Caused by: java.lang.ClassNotFoundException: org.jdom2.JDOMException
nic-cl-gs-node1-1   |   at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1407)
nic-cl-gs-node1-1   |   at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1215)
nic-cl-gs-node1-1   |   ... 163 more
nic-cl-nginx-1      | 172.23.0.1 - admin [30/Mar/2023:03:32:45 +0000] "POST /geoserver/web/wicket/bookmarkable/org.geoserver.wms.web.data.StyleNewPage?4-2.IBehaviorListener.0-save&wicket-ajax=true&wicket-ajax-baseurl=wicket%2Fbookmarkable%2Forg.geoserver.wms.web.data.StyleNewPage%3F4 HTTP/1.1" 200 119 "http://localhost/geoserver/web/wicket/bookmarkable/org.geoserver.wms.web.data.StyleNewPage?4" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36" "-"
nic-cl-nginx-1      | 172.23.0.1 - admin [30/Mar/2023:03:32:45 +0000] "GET /geoserver/web/wicket/bookmarkable/org.geoserver.wms.web.data.StylePage HTTP/1.1" 200 6329 "http://localhost/geoserver/web/wicket/bookmarkable/org.geoserver.wms.web.data.StyleNewPage?4" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36" "-"

What might be the reason ?

Steps to reproduce the issue

Create docker-compose as per above above configuration

Versions

2.20.0

Additional context

No response

@NyakudyaA any clue about this issue?

Hi @NyakudyaA , we have figured the issue, and to solve it we manually need to put JDOM.jar file in geoserver lib library, please let us know if I should move ahead and raise PR for same

Please go ahead and raise a PR

Hello krishnaglodha,
Adding the jdom library did not fixe the issue for me

@ze-ahmed You can try using the image, kartoza/geoserver:pr-567-2.23.2. I tested it on my side and it works without issue, I see in the logs a bunch of warnings but nothing to prevent the function working

checked the issue, it's not working on AWS ECS but when using @krishnaglodha image (geobeyond/geoserver:2.20.6.patched => Can't use this image on production as I don't have acces to the source code) it works well.

flykoh commented

i think thae cause of that problem is mising jar files that docker can not find while spin up
2023-11-06 09:47:15 --2023-11-06 06:47:15-- https://download.jar-download.com/cache_jars/org.jdom/jdom2/2.0.6.1/jar_files.zip 2023-11-06 09:47:15 Resolving download.jar-download.com (download.jar-download.com)... 104.21.30.50, 172.67.150.151, 2606:4700:3037::6815:1e32, ... 2023-11-06 09:47:15 Connecting to download.jar-download.com (download.jar-download.com)|104.21.30.50|:443... connected. 2023-11-06 09:47:15 HTTP request sent, awaiting response... 404 Not Found 2023-11-06 09:47:15 2023-11-06 06:47:15 ERROR 404: Not Found.

@flykoh That URL sometimes works and it sometimes does not work. Maybe a better fix is to download the file and add it to build_data, then replace the logic to download with just copying it when CLUSTERING=TRUE. Maybe you can do a PR with this change

flykoh commented

@flykoh That URL sometimes works and it sometimes does not work. Maybe a better fix is to download the file and add it to build_data, then replace the logic to download with just copying it when CLUSTERING=TRUE. Maybe you can do a PR with this change

I downloaded the file and unzipped it in lib and the style still not copied to clusters