geowave icon indicating copy to clipboard operation
geowave copied to clipboard

NoSuchMethodError during Ingest localToGw

Open michaeljfazio opened this issue 5 years ago • 1 comments

I've started to encounter this error when attempting to ingest data locally for a particular dataset which up until now has been working.

Exception in thread "main" java.lang.NoSuchMethodError: com.google.common.math.LongMath.saturatedAdd(JJ)J
        at com.google.common.collect.Streams.concat(Streams.java:155)
        at org.locationtech.geowave.core.store.metadata.AdapterIndexMappingStoreImpl.addAdapterIndexMapping(AdapterIndexMappingStoreImpl.java:79)
        at org.locationtech.geowave.core.store.base.BaseDataStore.internalAddIndices(BaseDataStore.java:1148)
        at org.locationtech.geowave.core.store.base.BaseDataStore.addType(BaseDataStore.java:1167)
        at org.locationtech.geowave.core.store.ingest.LocalIngestRunData$IndexWriterFactory.create(LocalIngestRunData.java:132)
        at org.locationtech.geowave.core.store.ingest.LocalIngestRunData$IndexWriterFactory.create(LocalIngestRunData.java:126)
        at org.apache.commons.pool2.BaseKeyedPooledObjectFactory.makeObject(BaseKeyedPooledObjectFactory.java:62)
        at org.apache.commons.pool2.impl.GenericKeyedObjectPool.create(GenericKeyedObjectPool.java:1041)
        at org.apache.commons.pool2.impl.GenericKeyedObjectPool.borrowObject(GenericKeyedObjectPool.java:357)
        at org.apache.commons.pool2.impl.GenericKeyedObjectPool.borrowObject(GenericKeyedObjectPool.java:279)
        at org.locationtech.geowave.core.store.ingest.LocalIngestRunData.getIndexWriter(LocalIngestRunData.java:102)
        at org.locationtech.geowave.core.store.ingest.AbstractLocalFileIngestDriver.ingestData(AbstractLocalFileIngestDriver.java:274)
        at org.locationtech.geowave.core.store.ingest.AbstractLocalFileIngestDriver.processFileSingleThreaded(AbstractLocalFileIngestDriver.java:208)
        at org.locationtech.geowave.core.store.ingest.AbstractLocalFileIngestDriver.processFile(AbstractLocalFileIngestDriver.java:153)
        at org.locationtech.geowave.core.store.ingest.AbstractLocalFileIngestDriver.processFile(AbstractLocalFileIngestDriver.java:38)
        at org.locationtech.geowave.core.store.ingest.LocalPluginFileVisitor.visitFile(LocalPluginFileVisitor.java:128)
        at org.locationtech.geowave.core.store.ingest.LocalPluginFileVisitor.visitFile(LocalPluginFileVisitor.java:36)
        at java.nio.file.Files.walkFileTree(Files.java:2670)
        at java.nio.file.Files.walkFileTree(Files.java:2742)
        at org.locationtech.geowave.core.store.ingest.AbstractLocalFileDriver.processInput(AbstractLocalFileDriver.java:126)
        at org.locationtech.geowave.core.store.ingest.AbstractLocalFileIngestDriver.runOperation(AbstractLocalFileIngestDriver.java:72)
        at org.locationtech.geowave.core.ingest.operations.LocalToGeowaveCommand.computeResults(LocalToGeowaveCommand.java:175)
        at org.locationtech.geowave.core.ingest.operations.LocalToGeowaveCommand.execute(LocalToGeowaveCommand.java:73)
        at org.locationtech.geowave.core.cli.GeoWaveMain.run(GeoWaveMain.java:70)
        at org.locationtech.geowave.core.cli.GeoWaveMain.main(GeoWaveMain.java:41)

Strangely enough, if I change the number of threads to be greater than 1 then, the ingestion starts fine without any errors (later it runs out of memory but that seems to be unrelated).

michaeljfazio avatar May 19 '20 07:05 michaeljfazio

Seems that this also only happens if the index im attempting to write to, was recreated with the same name at some point (I had issued a geowave index delete) on it before recreating it.

michaeljfazio avatar May 19 '20 08:05 michaeljfazio