deephaven / deephaven-core

Deephaven Community Core
Other
257 stars 80 forks source link

NPE in chunk copying downstream of merge (0.24.2) #3938

Closed rcaudy closed 1 year ago

rcaudy commented 1 year ago
EFAULT.refreshThread | rumentedTableListenerBase | Uncaught exception for entry= PublishToKafka, added.size()=80846, modified.size()=1948, removed.size()=80590, shifted.size()=1, modifiedColumnSet={count}:
java.lang.NullPointerException: null
        at java.lang.System.arraycopy(System.java:-2)
        at io.deephaven.chunk.WritableLongChunk.copyFromTypedArray(WritableLongChunk.java:162)
        at io.deephaven.chunk.WritableLongChunk.copyFromArray(WritableLongChunk.java:155)
        at io.deephaven.engine.table.impl.sources.LongArraySource.lambda$fillChunk$2(LongArraySource.java:377)
        at io.deephaven.engine.rowset.RowSequence.lambda$forAllRowKeyRanges$1(RowSequence.java:182)
        at io.deephaven.engine.rowset.impl.ShiftedRowSequence.lambda$forEachRowKeyRange$1(ShiftedRowSequence.java:177)
        at io.deephaven.engine.rowset.impl.sortedranges.SortedRangesRowSequence.forEachRowKeyRange(SortedRangesRowSequence.java:305)
        at io.deephaven.engine.rowset.impl.ShiftedRowSequence.forEachRowKeyRange(ShiftedRowSequence.java:177)
        at io.deephaven.engine.rowset.RowSequence.forAllRowKeyRanges(RowSequence.java:181)
        at io.deephaven.engine.table.impl.sources.LongArraySource.fillChunk(LongArraySource.java:353)
        at io.deephaven.engine.table.impl.DefaultChunkSource.getChunkByFilling(DefaultChunkSource.java:44)
        at io.deephaven.engine.table.impl.sources.ArrayBackedColumnSource.getChunk(ArrayBackedColumnSource.java:567)
        at io.deephaven.temp.c_5ac5ae78cc1a86e00a834b32ad0ae30382c7bbf191ea5b49179458a45a3ce4cbv61_0.Formula.fillChunk(Formula.java:124)
        at io.deephaven.engine.table.impl.select.Formula.getChunk(Formula.java:161)
        at io.deephaven.engine.table.impl.sources.ViewColumnSource.getChunk(ViewColumnSource.java:204)
        at io.deephaven.temp.c_34de4fc10f64ca43c50544f94a6ce6b767b91afda7f073e076e7b65cc612235bv61_0.Formula.fillChunk(Formula.java:122)
        at io.deephaven.engine.table.impl.sources.ViewColumnSource.fillChunk(ViewColumnSource.java:219)
        at io.deephaven.engine.table.impl.sources.UnionColumnSource$FillContext.fillChunkAppend(UnionColumnSource.java:372)
        at io.deephaven.engine.table.impl.sources.UnionColumnSource.fillChunkFromMultipleSources(UnionColumnSource.java:493)
        at io.deephaven.engine.table.impl.sources.UnionColumnSource.getChunk(UnionColumnSource.java:558)
        at io.deephaven.kafka.publish.SimpleKeyOrValueSerializer.handleChunk(SimpleKeyOrValueSerializer.java:30)
        at io.deephaven.kafka.publish.PublishToKafka.publishMessages(PublishToKafka.java:142)
        at io.deephaven.kafka.publish.PublishToKafka$PublishListener.onUpdate(PublishToKafka.java:265)
        at io.deephaven.engine.table.impl.InstrumentedTableUpdateListener$Notification.lambda$run$0(InstrumentedTableUpdateListener.java:37)
        at io.deephaven.engine.table.impl.InstrumentedTableListenerBase$NotificationBase.doRunInternal(InstrumentedTableListenerBase.java:283)
        at io.deephaven.engine.table.impl.InstrumentedTableListenerBase$NotificationBase.doRun(InstrumentedTableListenerBase.java:261)
        at io.deephaven.engine.table.impl.InstrumentedTableUpdateListener$Notification.run(InstrumentedTableUpdateListener.java:37)
        at io.deephaven.engine.updategraph.UpdateGraphProcessor.runNotification(UpdateGraphProcessor.java:1285)
        at io.deephaven.engine.updategraph.UpdateGraphProcessor$QueueNotificationProcessor.doWork(UpdateGraphProcessor.java:1461)
        at io.deephaven.engine.updategraph.UpdateGraphProcessor.flushNormalNotificationsAndCompleteCycle(UpdateGraphProcessor.java:1164)
        at io.deephaven.engine.updategraph.UpdateGraphProcessor.flushNotificationsAndCompleteCycle(UpdateGraphProcessor.java:1109)
        at io.deephaven.engine.updategraph.UpdateGraphProcessor.lambda$doRefresh$11(UpdateGraphProcessor.java:1744)
        at io.deephaven.util.locks.FunctionalLock.doLocked(FunctionalLock.java:33)
        at io.deephaven.engine.updategraph.UpdateGraphProcessor.doRefresh(UpdateGraphProcessor.java:1732)
        at io.deephaven.engine.updategraph.UpdateGraphProcessor.refreshAllTables(UpdateGraphProcessor.java:1719)
        at io.deephaven.engine.updategraph.UpdateGraphProcessor.refreshTablesAndFlushNotifications(UpdateGraphProcessor.java:1573)
        at io.deephaven.engine.updategraph.UpdateGraphProcessor.lambda$new$3(UpdateGraphProcessor.java:270)
        at org.jpy.PyLib.callAndReturnObject(PyLib.java:-2)
        at org.jpy.PyObject.call(PyObject.java:449)
        at io.deephaven.server.console.python.DebuggingInitializer.lambda$createInitializer$0(DebuggingInitializer.java:30)
        at java.lang.Thread.run(Thread.java:833)
rcaudy commented 1 year ago

A similar stack trace on 0.25.2:

aph-updateExecutor-4 | rumentedTableListenerBase | Uncaught exception for entry= PublishToKafka, added.size()=10525, modified.size()=1663, removed.size()=30953, shifted.size()=1, modifiedColumnSet={count}:
io.deephaven.engine.table.impl.select.FormulaEvaluationException: In formula: bin = (long)((bucket.getEpochSecond()))
        at io.deephaven.temp.c_e4d5c94e8e0fb35d207205a9831096c6c8a2fc15b2bf623adf1e947f2649601av61_0.Formula.applyFormulaPerItem(Formula.java:163)
        at io.deephaven.temp.c_e4d5c94e8e0fb35d207205a9831096c6c8a2fc15b2bf623adf1e947f2649601av61_0.Formula.lambda$fillChunkHelper$4(Formula.java:152)
        at io.deephaven.engine.rowset.RowSequence.lambda$forAllRowKeys$0(RowSequence.java:175)
        at io.deephaven.engine.rowset.impl.ShiftedRowSequence.lambda$forEachRowKey$0(ShiftedRowSequence.java:172)
        at io.deephaven.engine.rowset.impl.sortedranges.SortedRangesRowSequence.forEachRowKey(SortedRangesRowSequence.java:238)
        at io.deephaven.engine.rowset.impl.ShiftedRowSequence.forEachRowKey(ShiftedRowSequence.java:172)
        at io.deephaven.engine.rowset.RowSequence.forAllRowKeys(RowSequence.java:174)
        at io.deephaven.temp.c_e4d5c94e8e0fb35d207205a9831096c6c8a2fc15b2bf623adf1e947f2649601av61_0.Formula.fillChunkHelper(Formula.java:150)
        at io.deephaven.temp.c_e4d5c94e8e0fb35d207205a9831096c6c8a2fc15b2bf623adf1e947f2649601av61_0.Formula.fillChunk(Formula.java:127)
        at io.deephaven.engine.table.impl.select.Formula.getChunk(Formula.java:161)
        at io.deephaven.engine.table.impl.sources.ViewColumnSource.getChunk(ViewColumnSource.java:204)
        at io.deephaven.temp.c_ab7a0bc19adf276b1e56b7a1b8b7b8b0853d42fcbcbaa1ff23bf3092c1f81ef7v61_0.Formula.fillChunk(Formula.java:125)
        at io.deephaven.engine.table.impl.select.Formula.getChunk(Formula.java:161)
        at io.deephaven.engine.table.impl.sources.ViewColumnSource.getChunk(ViewColumnSource.java:204)
        at io.deephaven.engine.table.impl.sources.UnionColumnSource$GetContext.getChunk(UnionColumnSource.java:423)
        at io.deephaven.engine.table.impl.sources.UnionColumnSource.getChunk(UnionColumnSource.java:555)
        at io.deephaven.kafka.publish.SimpleKeyOrValueSerializer.handleChunk(SimpleKeyOrValueSerializer.java:30)
        at io.deephaven.kafka.publish.PublishToKafka.publishMessages(PublishToKafka.java:141)
        at io.deephaven.kafka.publish.PublishToKafka$PublishListener.onUpdate(PublishToKafka.java:264)
        at io.deephaven.engine.table.impl.InstrumentedTableUpdateListener$Notification.lambda$run$0(InstrumentedTableUpdateListener.java:37)
        at io.deephaven.engine.table.impl.InstrumentedTableListenerBase$NotificationBase.doRunInternal(InstrumentedTableListenerBase.java:297)
        at io.deephaven.engine.table.impl.InstrumentedTableListenerBase$NotificationBase.doRun(InstrumentedTableListenerBase.java:275)
        at io.deephaven.engine.table.impl.InstrumentedTableUpdateListener$Notification.run(InstrumentedTableUpdateListener.java:37)
        at io.deephaven.engine.updategraph.impl.PeriodicUpdateGraph.runNotification(PeriodicUpdateGraph.java:1288)
        at io.deephaven.engine.updategraph.impl.PeriodicUpdateGraph$ConcurrentNotificationProcessor.processSatisfiedNotifications(PeriodicUpdateGraph.java:1339)
        at io.deephaven.engine.updategraph.impl.PeriodicUpdateGraph$NotificationProcessorThreadFactory.lambda$newThread$0(PeriodicUpdateGraph.java:1868)
        at org.jpy.PyLib.callAndReturnObject(PyLib.java:-2)
        at org.jpy.PyObject.call(PyObject.java:449)
        at io.deephaven.server.console.python.DebuggingInitializer.lambda$createInitializer$0(DebuggingInitializer.java:30)
        at java.lang.Thread.run(Thread.java:833)
caused by:
java.lang.NullPointerException: Cannot invoke "java.time.Instant.getEpochSecond()" because "<parameter1>" is null
        at io.deephaven.temp.c_e4d5c94e8e0fb35d207205a9831096c6c8a2fc15b2bf623adf1e947f2649601av61_0.Formula.applyFormulaPerItem(Formula.java:161)
        at io.deephaven.temp.c_e4d5c94e8e0fb35d207205a9831096c6c8a2fc15b2bf623adf1e947f2649601av61_0.Formula.lambda$fillChunkHelper$4(Formula.java:152)
        at io.deephaven.engine.rowset.RowSequence.lambda$forAllRowKeys$0(RowSequence.java:175)
        at io.deephaven.engine.rowset.impl.ShiftedRowSequence.lambda$forEachRowKey$0(ShiftedRowSequence.java:172)
        at io.deephaven.engine.rowset.impl.sortedranges.SortedRangesRowSequence.forEachRowKey(SortedRangesRowSequence.java:238)
        at io.deephaven.engine.rowset.impl.ShiftedRowSequence.forEachRowKey(ShiftedRowSequence.java:172)
        at io.deephaven.engine.rowset.RowSequence.forAllRowKeys(RowSequence.java:174)
        at io.deephaven.temp.c_e4d5c94e8e0fb35d207205a9831096c6c8a2fc15b2bf623adf1e947f2649601av61_0.Formula.fillChunkHelper(Formula.java:150)
        at io.deephaven.temp.c_e4d5c94e8e0fb35d207205a9831096c6c8a2fc15b2bf623adf1e947f2649601av61_0.Formula.fillChunk(Formula.java:127)
        at io.deephaven.engine.table.impl.select.Formula.getChunk(Formula.java:161)
        at io.deephaven.engine.table.impl.sources.ViewColumnSource.getChunk(ViewColumnSource.java:204)
        at io.deephaven.temp.c_ab7a0bc19adf276b1e56b7a1b8b7b8b0853d42fcbcbaa1ff23bf3092c1f81ef7v61_0.Formula.fillChunk(Formula.java:125)
        at io.deephaven.engine.table.impl.select.Formula.getChunk(Formula.java:161)
        at io.deephaven.engine.table.impl.sources.ViewColumnSource.getChunk(ViewColumnSource.java:204)
        at io.deephaven.engine.table.impl.sources.UnionColumnSource$GetContext.getChunk(UnionColumnSource.java:423)
        at io.deephaven.engine.table.impl.sources.UnionColumnSource.getChunk(UnionColumnSource.java:555)
        at io.deephaven.kafka.publish.SimpleKeyOrValueSerializer.handleChunk(SimpleKeyOrValueSerializer.java:30)
        at io.deephaven.kafka.publish.PublishToKafka.publishMessages(PublishToKafka.java:141)
        at io.deephaven.kafka.publish.PublishToKafka$PublishListener.onUpdate(PublishToKafka.java:264)
        at io.deephaven.engine.table.impl.InstrumentedTableUpdateListener$Notification.lambda$run$0(InstrumentedTableUpdateListener.java:37)
        at io.deephaven.engine.table.impl.InstrumentedTableListenerBase$NotificationBase.doRunInternal(InstrumentedTableListenerBase.java:297)
        at io.deephaven.engine.table.impl.InstrumentedTableListenerBase$NotificationBase.doRun(InstrumentedTableListenerBase.java:275)
        at io.deephaven.engine.table.impl.InstrumentedTableUpdateListener$Notification.run(InstrumentedTableUpdateListener.java:37)
        at io.deephaven.engine.updategraph.impl.PeriodicUpdateGraph.runNotification(PeriodicUpdateGraph.java:1288)
        at io.deephaven.engine.updategraph.impl.PeriodicUpdateGraph$ConcurrentNotificationProcessor.processSatisfiedNotifications(PeriodicUpdateGraph.java:1339)
        at io.deephaven.engine.updategraph.impl.PeriodicUpdateGraph$NotificationProcessorThreadFactory.lambda$newThread$0(PeriodicUpdateGraph.java:1868)
        at org.jpy.PyLib.callAndReturnObject(PyLib.java:-2)
        at org.jpy.PyObject.call(PyObject.java:449)
        at io.deephaven.server.console.python.DebuggingInitializer.lambda$createInitializer$0(DebuggingInitializer.java:30)
        at java.lang.Thread.run(Thread.java:833)
aph-updateExecutor-4 | .AsyncClientErrorNotifier | Error in table update: io.deephaven.engine.table.impl.select.FormulaEvaluationException: In formula: bin = (long)((bucket.getEpochSecond()))
        at io.deephaven.temp.c_e4d5c94e8e0fb35d207205a9831096c6c8a2fc15b2bf623adf1e947f2649601av61_0.Formula.applyFormulaPerItem(Formula.java:163)
        at io.deephaven.temp.c_e4d5c94e8e0fb35d207205a9831096c6c8a2fc15b2bf623adf1e947f2649601av61_0.Formula.lambda$fillChunkHelper$4(Formula.java:152)
        at io.deephaven.engine.rowset.RowSequence.lambda$forAllRowKeys$0(RowSequence.java:175)
        at io.deephaven.engine.rowset.impl.ShiftedRowSequence.lambda$forEachRowKey$0(ShiftedRowSequence.java:172)
        at io.deephaven.engine.rowset.impl.sortedranges.SortedRangesRowSequence.forEachRowKey(SortedRangesRowSequence.java:238)
        at io.deephaven.engine.rowset.impl.ShiftedRowSequence.forEachRowKey(ShiftedRowSequence.java:172)
        at io.deephaven.engine.rowset.RowSequence.forAllRowKeys(RowSequence.java:174)
        at io.deephaven.temp.c_e4d5c94e8e0fb35d207205a9831096c6c8a2fc15b2bf623adf1e947f2649601av61_0.Formula.fillChunkHelper(Formula.java:150)
        at io.deephaven.temp.c_e4d5c94e8e0fb35d207205a9831096c6c8a2fc15b2bf623adf1e947f2649601av61_0.Formula.fillChunk(Formula.java:127)
        at io.deephaven.engine.table.impl.select.Formula.getChunk(Formula.java:161)
        at io.deephaven.engine.table.impl.sources.ViewColumnSource.getChunk(ViewColumnSource.java:204)
        at io.deephaven.temp.c_ab7a0bc19adf276b1e56b7a1b8b7b8b0853d42fcbcbaa1ff23bf3092c1f81ef7v61_0.Formula.fillChunk(Formula.java:125)
        at io.deephaven.engine.table.impl.select.Formula.getChunk(Formula.java:161)
        at io.deephaven.engine.table.impl.sources.ViewColumnSource.getChunk(ViewColumnSource.java:204)
        at io.deephaven.engine.table.impl.sources.UnionColumnSource$GetContext.getChunk(UnionColumnSource.java:423)
        at io.deephaven.engine.table.impl.sources.UnionColumnSource.getChunk(UnionColumnSource.java:555)
        at io.deephaven.kafka.publish.SimpleKeyOrValueSerializer.handleChunk(SimpleKeyOrValueSerializer.java:30)
        at io.deephaven.kafka.publish.PublishToKafka.publishMessages(PublishToKafka.java:141)
        at io.deephaven.kafka.publish.PublishToKafka$PublishListener.onUpdate(PublishToKafka.java:264)
        at io.deephaven.engine.table.impl.InstrumentedTableUpdateListener$Notification.lambda$run$0(InstrumentedTableUpdateListener.java:37)
        at io.deephaven.engine.table.impl.InstrumentedTableListenerBase$NotificationBase.doRunInternal(InstrumentedTableListenerBase.java:297)
        at io.deephaven.engine.table.impl.InstrumentedTableListenerBase$NotificationBase.doRun(InstrumentedTableListenerBase.java:275)
        at io.deephaven.engine.table.impl.InstrumentedTableUpdateListener$Notification.run(InstrumentedTableUpdateListener.java:37)
        at io.deephaven.engine.updategraph.impl.PeriodicUpdateGraph.runNotification(PeriodicUpdateGraph.java:1288)
        at io.deephaven.engine.updategraph.impl.PeriodicUpdateGraph$ConcurrentNotificationProcessor.processSatisfiedNotifications(PeriodicUpdateGraph.java:1339)
        at io.deephaven.engine.updategraph.impl.PeriodicUpdateGraph$NotificationProcessorThreadFactory.lambda$newThread$0(PeriodicUpdateGraph.java:1868)
        at org.jpy.PyLib.callAndReturnObject(PyLib.java:-2)
        at org.jpy.PyObject.call(PyObject.java:449)
        at io.deephaven.server.console.python.DebuggingInitializer.lambda$createInitializer$0(DebuggingInitializer.java:30)
        at java.lang.Thread.run(Thread.java:833)
caused by:
java.lang.NullPointerException: Cannot invoke "java.time.Instant.getEpochSecond()" because "<parameter1>" is null
        at io.deephaven.temp.c_e4d5c94e8e0fb35d207205a9831096c6c8a2fc15b2bf623adf1e947f2649601av61_0.Formula.applyFormulaPerItem(Formula.java:161)
        at io.deephaven.temp.c_e4d5c94e8e0fb35d207205a9831096c6c8a2fc15b2bf623adf1e947f2649601av61_0.Formula.lambda$fillChunkHelper$4(Formula.java:152)
        at io.deephaven.engine.rowset.RowSequence.lambda$forAllRowKeys$0(RowSequence.java:175)
        at io.deephaven.engine.rowset.impl.ShiftedRowSequence.lambda$forEachRowKey$0(ShiftedRowSequence.java:172)
        at io.deephaven.engine.rowset.impl.sortedranges.SortedRangesRowSequence.forEachRowKey(SortedRangesRowSequence.java:238)
        at io.deephaven.engine.rowset.impl.ShiftedRowSequence.forEachRowKey(ShiftedRowSequence.java:172)
        at io.deephaven.engine.rowset.RowSequence.forAllRowKeys(RowSequence.java:174)
        at io.deephaven.temp.c_e4d5c94e8e0fb35d207205a9831096c6c8a2fc15b2bf623adf1e947f2649601av61_0.Formula.fillChunkHelper(Formula.java:150)
        at io.deephaven.temp.c_e4d5c94e8e0fb35d207205a9831096c6c8a2fc15b2bf623adf1e947f2649601av61_0.Formula.fillChunk(Formula.java:127)
        at io.deephaven.engine.table.impl.select.Formula.getChunk(Formula.java:161)
        at io.deephaven.engine.table.impl.sources.ViewColumnSource.getChunk(ViewColumnSource.java:204)
        at io.deephaven.temp.c_ab7a0bc19adf276b1e56b7a1b8b7b8b0853d42fcbcbaa1ff23bf3092c1f81ef7v61_0.Formula.fillChunk(Formula.java:125)
        at io.deephaven.engine.table.impl.select.Formula.getChunk(Formula.java:161)
        at io.deephaven.engine.table.impl.sources.ViewColumnSource.getChunk(ViewColumnSource.java:204)
        at io.deephaven.engine.table.impl.sources.UnionColumnSource$GetContext.getChunk(UnionColumnSource.java:423)
        at io.deephaven.engine.table.impl.sources.UnionColumnSource.getChunk(UnionColumnSource.java:555)
        at io.deephaven.kafka.publish.SimpleKeyOrValueSerializer.handleChunk(SimpleKeyOrValueSerializer.java:30)
        at io.deephaven.kafka.publish.PublishToKafka.publishMessages(PublishToKafka.java:141)
        at io.deephaven.kafka.publish.PublishToKafka$PublishListener.onUpdate(PublishToKafka.java:264)
        at io.deephaven.engine.table.impl.InstrumentedTableUpdateListener$Notification.lambda$run$0(InstrumentedTableUpdateListener.java:37)
        at io.deephaven.engine.table.impl.InstrumentedTableListenerBase$NotificationBase.doRunInternal(InstrumentedTableListenerBase.java:297)
        at io.deephaven.engine.table.impl.InstrumentedTableListenerBase$NotificationBase.doRun(InstrumentedTableListenerBase.java:275)
        at io.deephaven.engine.table.impl.InstrumentedTableUpdateListener$Notification.run(InstrumentedTableUpdateListener.java:37)
        at io.deephaven.engine.updategraph.impl.PeriodicUpdateGraph.runNotification(PeriodicUpdateGraph.java:1288)
        at io.deephaven.engine.updategraph.impl.PeriodicUpdateGraph$ConcurrentNotificationProcessor.processSatisfiedNotifications(PeriodicUpdateGraph.java:1339)
        at io.deephaven.engine.updategraph.impl.PeriodicUpdateGraph$NotificationProcessorThreadFactory.lambda$newThread$0(PeriodicUpdateGraph.java:1868)
        at org.jpy.PyLib.callAndReturnObject(PyLib.java:-2)
        at org.jpy.PyObject.call(PyObject.java:449)
        at io.deephaven.server.console.python.DebuggingInitializer.lambda$createInitializer$0(DebuggingInitializer.java:30)
        at java.lang.Thread.run(Thread.java:833)   
rcaudy commented 1 year ago

I'm suspicious that there may be spurious shifts.