Dear Geomesa support,
         
        we currently run Geomesa
            in a Filesystem (FS) environment on a S3 bucket store using
         
        ·        
              Geomesa
            2.2.0
        ·        
              Geomesa
            FS 2.11 data store (parquet storage)
         
        On request,
            geo-referenced data is written to the data store. The
            corresponding GeoMesaFeatureWriter is instantiated using
            getFeatureWriteAppend.
         
        After a while –
            especially in case when the number of requests increase - it
            happens that we receive an ArrayIndexOutOfBoundsException,
            in detail
         
        Apr 24, 2019 7:10:03 AM
            org.apache.catalina.core.StandardWrapperValve invoke
        SEVERE: Servlet.service() for
            servlet [dispatcherServlet] in context with path [] threw
            exception [Request processing failed; nested exception is
            java.lang.ArrayIndexOutOfBoundsException: Index 2 out of
            bounds for length 2] with root cause
        java.lang.ArrayIndexOutOfBoundsException:
            Index 2 out of bounds for length 2
             at
org.apache.parquet.io.MessageColumnIO$MessageColumnIORecordConsumer.addLong(MessageColumnIO.java:443)
             at
org.locationtech.geomesa.parquet.AttributeWriter$LongWriter.write(AttributeWriter.scala:113)
             at
org.locationtech.geomesa.parquet.AttributeWriter$AbstractAttributeWriter.apply(AttributeWriter.scala:67)
             at
org.locationtech.geomesa.parquet.jobs.SimpleFeatureWriteSupport.writeFields(SimpleFeatureWriteSupport.scala:58)
             at
org.locationtech.geomesa.parquet.jobs.SimpleFeatureWriteSupport.write(SimpleFeatureWriteSupport.scala:43)
             at
org.locationtech.geomesa.parquet.jobs.SimpleFeatureWriteSupport.write(SimpleFeatureWriteSupport.scala:21)
             at
org.apache.parquet.hadoop.InternalParquetRecordWriter.write(InternalParquetRecordWriter.java:123)
             at
            org.apache.parquet.hadoop.ParquetWriter.write(ParquetWriter.java:292)
             at
org.locationtech.geomesa.parquet.ParquetFileSystemStorage$ParquetFileSystemWriter.write(ParquetFileSystemStorage.scala:86)
             at
org.locationtech.geomesa.parquet.ParquetFileSystemStorage$$anon$1.org$locationtech$geomesa$fs$storage$common$MetadataObservingFileSystemWriter$$super$write(ParquetFileSystemStorage.scala:39)
             at
org.locationtech.geomesa.fs.storage.common.MetadataObservingFileSystemWriter$class.write(MetadataObservingFileSystemWriter.scala:24)
             at
org.locationtech.geomesa.parquet.ParquetFileSystemStorage$$anon$1.write(ParquetFileSystemStorage.scala:39)
             at
org.locationtech.geomesa.fs.FileSystemFeatureStore$$anon$1.write(FileSystemFeatureStore.scala:75)
             at
org.geotools.data.store.EventContentFeatureWriter.write(EventContentFeatureWriter.java:122)
             at
org.geotools.data.InProcessLockingManager$1.write(InProcessLockingManager.java:304)
             at
com.athena.vcc.geomesaservice.geomesa.datastore.GeoMesaFeatureWriter.write(GeoMesaFeatureWriter.java:81)
             at
com.athena.vcc.geomesaservice.geomesa.datastore.GeoMesaFileSystemDataStore.insert(GeoMesaFileSystemDataStore.java:130)
             at
com.athena.vcc.geomesaservice.geomesa.GeoMesaFacade.saveNetworkPerformanceEvents(GeoMesaFacade.java:72)
             at
com.athena.vcc.geomesaservice.rest.StorageController.saveNetworkPerformanceEvents(StorageController.java:80)
             at
            jdk.internal.reflect.GeneratedMethodAccessor102.invoke(Unknown
            Source)
             at
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
             at
            java.base/java.lang.reflect.Method.invoke(Method.java:566)
             at
org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:189)
             at
org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:138)
             at
org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)
             at
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)
             at
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:800)
             at
org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
             at
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1038)
             at
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:942)
             at
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1005)
             at
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:908)
             at
            javax.servlet.http.HttpServlet.service(HttpServlet.java:660)
             at
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:882)
             at
            javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
             at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
             at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
             at
            org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
             at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
             at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
             at
org.springframework.boot.actuate.web.trace.servlet.HttpTraceFilter.doFilterInternal(HttpTraceFilter.java:90)
             at
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
             at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
             at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
             at
org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)
             at
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
             at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
             at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
             at
org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:92)
             at
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
             at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
             at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
             at
org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:93)
             at
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
             at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
             at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
             at
org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.filterAndRecordMetrics(WebMvcMetricsFilter.java:117)
             at
org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:106)
             at
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
             at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
             at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
             at
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)
             at
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
             at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
             at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
             at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
             at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
             at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490)
             at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
             at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
             at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
             at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
             at
org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)
             at
org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
             at
org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:834)
             at
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1417)
             at
org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
             at
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
             at
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
             at
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
             at
            java.base/java.lang.Thread.run(Thread.java:834)
         
        From
            this point every call to the storage wirte fails according
            the exception above. However from time to time the behaviour
            recovers itself until the next period of above exception.
         
        Did
            you already see this issue before or do you have any ideas
            how isolate the issue? Any suggestions are welcome.
         
        Thank
            you and best regards
            
            Siegmar Züfle
            
            Daimler AG
            RD/AFC
        Onboard
            Crowd Functions for Automated Driving
            HPC: 059-G006
        Gebäude 738,
            Zimmer 3.132
        Hanns-Klemm-Str.
          45
            D-71034 Böblingen 
            
            email: siegmar.zuefle@xxxxxxxxxxx