Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [geomesa-users] ArrayIndexOutOfBoundException in AttributeWriter

Title: Default Disclaimer Daimler AG
Hello,

No one has reported that issue before - is it possible that you are using a feature writer in multiple threads? A feature writer is single threaded, so if you share writers across requests you may get errors. The FSDS will cache, then periodically flush and re-create writers to ensure that there are not too many or too large files being written, so that is likely what is causing the error to reset periodically. See https://www.geomesa.org/documentation/user/filesystem/configuration.html#geomesa-fs-writer-partition-timeout for details on the timeout.

Thanks,

Emilio

On 4/29/19 8:51 AM, siegmar.zuefle@xxxxxxxxxxx wrote:

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

 


If you are not the addressee, please inform us immediately that you have received this e-mail by mistake, and delete it. We thank you for your support.


_______________________________________________
geomesa-users mailing list
geomesa-users@xxxxxxxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.locationtech.org/mailman/listinfo/geomesa-users


Back to the top