Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rollup prints DEPENDENCY_RELEASED error to console when groupings are added #6056

Closed
mofojed opened this issue Sep 11, 2024 · 3 comments · Fixed by #6060
Closed

Rollup prints DEPENDENCY_RELEASED error to console when groupings are added #6056

mofojed opened this issue Sep 11, 2024 · 3 comments · Fixed by #6060
Assignees
Labels
bug Something isn't working triage

Comments

@mofojed
Copy link
Member

mofojed commented Sep 11, 2024

Description

Seems to be introduced with the JS API refactoring changes, though unsure if this is because we were misusing the API prior somehow.

Steps to reproduce

  1. Create a basic table:
from deephaven import empty_table
t = empty_table(1000).update(["X=i%2", "Y=i%5", "Z=i"])
  1. From the table Rollup Rows menu, double-click "X" to add a grouping, then double-click "Y" to add another grouping

Expected results
2. Rollup table should appear, no error printed to console

Actual results
2. Rollup table appears correctly, but there is an error printed to the worker console:

qtp287859212-102 | i.d.s.s.SessionState | Internal Error '7667113d-4283-4fea-82fb-f22ab0f8305b' dependency released by user.
qtp287859212-102     | i.d.s.s.SessionService    | io.grpc.StatusRuntimeException: FAILED_PRECONDITION: Export in state DEPENDENCY_RELEASED (related parent export id: 9)
	at io.grpc.Status.asRuntimeException(Status.java:537)
	at io.grpc.protobuf.StatusProto.toStatusRuntimeException(StatusProto.java:52)
	at io.deephaven.proto.util.Exceptions.statusRuntimeException(Exceptions.java:14)
	at io.deephaven.server.session.SessionState.lambda$toErrorHandler$3(SessionState.java:1351)
	at io.deephaven.server.session.SessionState$ExportObject.setWork(SessionState.java:716)
	at io.deephaven.server.session.SessionState$ExportBuilder.submit(SessionState.java:1520)
	at io.deephaven.server.session.SessionState$ExportBuilder.submit(SessionState.java:1536)
	at io.deephaven.server.arrow.ArrowFlightUtil$DoExchangeMarshaller$SubscriptionRequestHandler.handleMessage(ArrowFlightUtil.java:707)
	at io.deephaven.server.arrow.ArrowFlightUtil$DoExchangeMarshaller.onNext(ArrowFlightUtil.java:447)
	at io.deephaven.server.arrow.ArrowFlightUtil$DoExchangeMarshaller.onNext(ArrowFlightUtil.java:349)
	at io.grpc.stub.ServerCalls$StreamingServerCallHandler$StreamingServerCallListener.onMessage(ServerCalls.java:262)
	at io.grpc.ForwardingServerCallListener.onMessage(ForwardingServerCallListener.java:33)
	at io.deephaven.server.session.SessionServiceGrpcImpl$SessionServiceCallListener.lambda$onMessage$0(SessionServiceGrpcImpl.java:432)
	at io.deephaven.server.session.SessionServiceGrpcImpl.rpcWrapper(SessionServiceGrpcImpl.java:481)
	at io.deephaven.server.session.SessionServiceGrpcImpl$SessionServiceCallListener.onMessage(SessionServiceGrpcImpl.java:432)
	at io.grpc.internal.ServerCallImpl$ServerStreamListenerImpl.messagesAvailableInternal(ServerCallImpl.java:329)
	at io.grpc.internal.ServerCallImpl$ServerStreamListenerImpl.messagesAvailable(ServerCallImpl.java:314)
	at io.grpc.internal.ServerImpl$JumpToApplicationThreadServerStreamListener$1MessagesAvailable.runInContext(ServerImpl.java:833)
	at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37)
	at io.grpc.internal.SerializeReentrantCallsDirectExecutor.execute(SerializeReentrantCallsDirectExecutor.java:49)
	at io.grpc.internal.ServerImpl$JumpToApplicationThreadServerStreamListener.messagesAvailable(ServerImpl.java:841)
	at io.grpc.internal.AbstractStream$TransportState.messagesAvailable(AbstractStream.java:183)
	at io.grpc.internal.MessageDeframer.processBody(MessageDeframer.java:413)
	at io.grpc.internal.MessageDeframer.deliver(MessageDeframer.java:276)
	at io.grpc.internal.MessageDeframer.deframe(MessageDeframer.java:178)
	at io.grpc.internal.AbstractStream$TransportState.deframe(AbstractStream.java:211)
	at io.grpc.internal.AbstractServerStream$TransportState.inboundDataReceived(AbstractServerStream.java:262)
	at io.grpc.servlet.web.websocket.AbstractWebsocketStreamImpl$WebsocketTransportState.inboundDataReceived(AbstractWebsocketStreamImpl.java:38)
	at io.grpc.servlet.web.websocket.AbstractWebsocketStreamImpl.lambda$inboundDataReceived$1(AbstractWebsocketStreamImpl.java:115)
	at io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:133)
	at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:31)
	at io.grpc.internal.SerializingExecutor.schedule(SerializingExecutor.java:102)
	at io.grpc.internal.SerializingExecutor.execute(SerializingExecutor.java:95)
	at io.grpc.servlet.web.websocket.AbstractWebsocketStreamImpl$WebsocketTransportState.runOnTransportThread(AbstractWebsocketStreamImpl.java:52)
	at io.grpc.servlet.web.websocket.AbstractWebsocketStreamImpl.inboundDataReceived(AbstractWebsocketStreamImpl.java:114)
	at io.grpc.servlet.web.websocket.MultiplexedWebSocketServerStream.onMessage(MultiplexedWebSocketServerStream.java:223)
	at io.grpc.servlet.web.websocket.AbstractWebSocketServerStream.lambda$onOpen$0(AbstractWebSocketServerStream.java:128)
	at org.eclipse.jetty.websocket.jakarta.common.messages.AbstractDecodedMessageSink.invoke(AbstractDecodedMessageSink.java:61)
	at org.eclipse.jetty.websocket.jakarta.common.messages.DecodedBinaryMessageSink.onWholeMessage(DecodedBinaryMessageSink.java:60)
	at org.eclipse.jetty.websocket.core.internal.messages.ByteBufferMessageSink.accept(ByteBufferMessageSink.java:60)
	at org.eclipse.jetty.websocket.jakarta.common.messages.AbstractDecodedMessageSink.accept(AbstractDecodedMessageSink.java:80)
	at org.eclipse.jetty.websocket.jakarta.common.JakartaWebSocketFrameHandler.acceptMessage(JakartaWebSocketFrameHandler.java:602)
	at org.eclipse.jetty.websocket.jakarta.common.JakartaWebSocketFrameHandler.onBinary(JakartaWebSocketFrameHandler.java:650)
	at org.eclipse.jetty.websocket.jakarta.common.JakartaWebSocketFrameHandler.onFrame(JakartaWebSocketFrameHandler.java:244)
	at org.eclipse.jetty.websocket.core.internal.WebSocketCoreSession$IncomingAdaptor.lambda$onFrame$1(WebSocketCoreSession.java:671)
	at org.eclipse.jetty.server.handler.ContextHandler.handle(ContextHandler.java:1466)
	at org.eclipse.jetty.server.handler.ContextHandler.handle(ContextHandler.java:1485)
	at org.eclipse.jetty.websocket.core.server.internal.AbstractHandshaker$1.handle(AbstractHandshaker.java:212)
	at org.eclipse.jetty.websocket.core.internal.WebSocketCoreSession$IncomingAdaptor.onFrame(WebSocketCoreSession.java:671)
	at org.eclipse.jetty.websocket.core.AbstractExtension.nextIncomingFrame(AbstractExtension.java:145)
	at org.eclipse.jetty.websocket.core.internal.PerMessageDeflateExtension.nextIncomingFrame(PerMessageDeflateExtension.java:236)
	at org.eclipse.jetty.websocket.core.internal.DemandingFlusher.emitFrame(DemandingFlusher.java:145)
	at org.eclipse.jetty.websocket.core.internal.PerMessageDeflateExtension$IncomingFlusher.inflate(PerMessageDeflateExtension.java:487)
	at org.eclipse.jetty.websocket.core.internal.PerMessageDeflateExtension$IncomingFlusher.handle(PerMessageDeflateExtension.java:413)
	at org.eclipse.jetty.websocket.core.internal.DemandingFlusher.process(DemandingFlusher.java:169)
	at org.eclipse.jetty.util.IteratingCallback.processing(IteratingCallback.java:243)
	at org.eclipse.jetty.util.IteratingCallback.succeeded(IteratingCallback.java:369)
	at org.eclipse.jetty.websocket.core.internal.DemandingFlusher.onFrame(DemandingFlusher.java:104)
	at org.eclipse.jetty.websocket.core.internal.PerMessageDeflateExtension.onFrame(PerMessageDeflateExtension.java:93)
	at org.eclipse.jetty.websocket.core.internal.ExtensionStack.onFrame(ExtensionStack.java:120)
	at org.eclipse.jetty.websocket.core.internal.WebSocketCoreSession.onFrame(WebSocketCoreSession.java:481)
	at org.eclipse.jetty.websocket.core.internal.WebSocketConnection.onFrame(WebSocketConnection.java:271)
	at org.eclipse.jetty.websocket.core.internal.WebSocketConnection.fillAndParse(WebSocketConnection.java:464)
	at org.eclipse.jetty.websocket.core.internal.WebSocketConnection.onFillable(WebSocketConnection.java:349)
	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:314)
	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:100)
	at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53)
	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:421)
	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:390)
	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:277)
	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.run(AdaptiveExecutionStrategy.java:199)
	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:411)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:969)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.doRunJob(QueuedThreadPool.java:1194)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1149)
	at java.base/java.lang.Thread.run(Thread.java:829)

Additional details and attachments
image

Added support logs with the JS API printing debug statements as well to help:
2024-09-11-163428_support_logs.zip

Versions

@mofojed mofojed added bug Something isn't working triage labels Sep 11, 2024
@mofojed
Copy link
Member Author

mofojed commented Sep 11, 2024

Seeing a few errors in the debug logs:

dh-core.js:29526 Uncaught (in promise) TypeError: Cannot read properties of null (reading 'ticket_0')
    at Object.$lambda$23_0 (dh-core.js:29526:107)
    at Function.onInvoke_188 (dh-core.js:30501:17)
    at lambda (dh-core.js:193:22)

Full log:

16:46:26.119 LogProxy.js:80 Asked to remove an event listener which wasn't present, ignoring.
isEnabled.console.warn @ LogProxy.js:80
overrideMethod @ console.js:288
warn @ dh-core.js:35349
$removeEventListener @ dh-core.js:12268
$remove @ dh-core.js:12918
$internalClose @ dh-core.js:28578
accept_32 @ dh-core.js:15373
$forEach_2 @ dh-core.js:23465
$close_0 @ dh-core.js:14108
close_49 @ dh-core.js:14966
close @ IrisGridTableModelTemplate.js:320
close @ IrisGridProxyModel.js:110
componentWillUnmount @ IrisGridPanel.js:328
Zde @ react-dom.production.min.js:224
W2e @ react-dom.production.min.js:231
QQe @ react-dom.production.min.js:256
e.unstable_runWithPriority @ scheduler.production.min.js:18
Rv @ react-dom.production.min.js:122
q0 @ react-dom.production.min.js:252
NP @ react-dom.production.min.js:243
(anonymous) @ react-dom.production.min.js:123
e.unstable_runWithPriority @ scheduler.production.min.js:18
Rv @ react-dom.production.min.js:122
D2e @ react-dom.production.min.js:123
ip @ react-dom.production.min.js:122
mm @ react-dom.production.min.js:237
$ue @ react-dom.production.min.js:170
(anonymous) @ DashboardLayout.js:165
emit @ EventEmitter.js:70
removeReactChild @ LayoutManager.js:318
_destroy @ ReactComponentHandler.js:92
emit @ EventEmitter.js:70
_$destroy @ Component.js:78
removeChild @ AbstractContentItem.js:127
removeChild @ Stack.js:113
close @ Component.js:50
close @ ItemContainer.js:128
_onCloseClick @ Tab.js:208
dispatch @ jquery.js:5135
On.handle @ jquery.js:4939
16:46:26.120 LogProxy.js:66 Closing tree table JsTreeTable {map_0: {…}, columnsByName: HashMap, keyColumns_0: Array(2), filters: ArrayList, sorts: ArrayList, …}
16:46:26.148 LogProxy.js:66 Releasing state ClientTableState {sorts: ArrayList, conditions: ArrayList, dropColumns_0: ArrayList, viewColumns: ArrayList, filters: ArrayList, …} TableTicket{ticket=101,11,0,0,0, state=EXPORTED, isConnected=true}
16:46:28.150 LogProxy.js:66 innerGetTable t  started
16:46:28.151 LogProxy.js:66 performing fetch for  t  /  ClientTableState {sorts: ArrayList, conditions: ArrayList, dropColumns_0: ArrayList, viewColumns: ArrayList, filters: ArrayList, …}  (TableTicket{ticket=101,19,0,0,0, state=PENDING, isConnected=true} )
16:46:28.164 LogProxy.js:66 CTS ClientTableState {sorts: ArrayList, conditions: ArrayList, dropColumns_0: ArrayList, viewColumns: ArrayList, filters: ArrayList, …}  set size; was  Long_0 {value_0: -1}  is now  Long_0 {value_0: 1000}
16:46:28.164 LogProxy.js:66 CTS immediate size update  Long_0 {value_0: 1000}  actives:  Map(0) {size: 0}
16:46:28.165 LogProxy.js:66 innerGetTable t  succeeded  ClientTableState {sorts: ArrayList, conditions: ArrayList, dropColumns_0: ArrayList, viewColumns: ArrayList, filters: ArrayList, …}
16:46:28.165 LogProxy.js:66 Table  JsTable_0 {map_0: {…}, subscriptions: HashMap, subscriptionId: 6, workerConnection: WorkerConnection, onClosed: ArrayList, …}  size changed from  -1  to  1000
16:46:28.185 LogProxy.js:73 [DownloadServiceWorkerUtils] Download service worker is active.
16:46:28.197 LogProxy.js:73 [TableSaver] found active service worker
16:46:32.394 LogProxy.js:73 [IrisGrid] Rollup change {columns: Array(1), showConstituents: true, showNonAggregatedColumns: true}
16:46:32.402 LogProxy.js:66 Unretainment TableViewportSubscription {map_0: {…}, status_0: AbstractTableSubscription$Status, reader: WebBarrageStreamReader, state: ClientTableState, connection: WorkerConnection, …}  releasing  ClientTableState{handle=TableTicket{ticket=101,19,0,0,0, state=EXPORTED, isConnected=true}, resolution=RUNNING, active=1, paused=0, retainers=1, size=1000, tableDef=io.deephaven.web.client.api.barrage.def.InitialTableDefinition@28, rowFormatColumn=undefined} 
16:46:32.411 LogProxy.js:66 Unretainment TableViewportSubscription {map_0: {…}, status_0: AbstractTableSubscription$Status, reader: WebBarrageStreamReader, state: ClientTableState, connection: WorkerConnection, …}  releasing  ClientTableState{handle=TableTicket{ticket=101,19,0,0,0, state=EXPORTED, isConnected=true}, resolution=RUNNING, active=1, paused=0, retainers=1, size=1000, tableDef=io.deephaven.web.client.api.barrage.def.InitialTableDefinition@28, rowFormatColumn=undefined} 
16:46:32.489 LogProxy.js:66 CTS ClientTableState {sorts: ArrayList, conditions: ArrayList, dropColumns_0: ArrayList, viewColumns: ArrayList, filters: ArrayList, …}  set size; was  Long_0 {value_0: -1}  is now  Long_0 {value_0: 0}
16:46:32.489 LogProxy.js:66 Queuing size changed until RUNNING STATE;  Long_0 {value_0: 0}
16:46:32.489 LogProxy.js:66 Firing queued size change event ( 0 )
16:46:32.489 LogProxy.js:66 Table  JsTable_0 {map_0: {…}, subscriptions: HashMap, subscriptionId: 7, workerConnection: WorkerConnection, onClosed: ArrayList, …}  size changed from  -1  to  0
16:46:32.493 LogProxy.js:66 Sending tree table request JsTreeTable {map_0: {…}, columnsByName: HashMap, keyColumns_0: Array(1), filters: ArrayList, sorts: ArrayList, …} ZRQAAAA= BitSet {array: Array(1)} RangeSet {sortedRanges: ArrayList_1, cardinality: Array(0), firstWrongCacheEntry: 0} false
16:46:32.493 LogProxy.js:66 CTS ClientTableState {sorts: ArrayList, conditions: ArrayList, dropColumns_0: ArrayList, viewColumns: ArrayList, filters: ArrayList, …}  set size; was  Long_0 {value_0: -1}  is now  Long_0 {value_0: 0}
16:46:32.494 LogProxy.js:66 CTS immediate size update  Long_0 {value_0: 0}  actives:  Map(0) {size: 0}
16:46:32.500 LogProxy.js:66 CTS ClientTableState {sorts: ArrayList, conditions: ArrayList, dropColumns_0: ArrayList, viewColumns: ArrayList, filters: ArrayList, …}  set size; was  Long_0 {value_0: 0}  is now  Long_0 {value_0: 3}
16:46:32.500 LogProxy.js:66 CTS immediate size update  Long_0 {value_0: 3}  actives:  Map(0) {size: 0}
16:46:32.500 LogProxy.js:66 tree table response arrived JsTreeTable$TreeSubscription$TreeViewportDataImpl {this$11: JsTreeTable$TreeSubscription, subscription: WebBarrageSubscription$RedirectedImpl, rowStyleColumn: -1, columns_1: Array(3), added_0: JsRangeSet, …}
16:46:36.558 LogProxy.js:73 [IrisGrid] Rollup change {columns: Array(2), showConstituents: true, showNonAggregatedColumns: true}
16:46:36.585 LogProxy.js:66 Unretainment JsTreeTable$TreeSubscription {this$01: JsTreeTable, map_0: {…}, status_0: AbstractTableSubscription$Status, reader: WebBarrageStreamReader, state: ClientTableState, …}  releasing  ClientTableState{handle=TableTicket{ticket=101,22,0,0,0, state=EXPORTED, isConnected=true}, resolution=RUNNING, active=0, paused=0, retainers=1, size=3, tableDef=io.deephaven.web.client.api.barrage.def.InitialTableDefinition@29, rowFormatColumn=undefined} 
16:46:36.586 LogProxy.js:66 Releasing state ClientTableState {sorts: ArrayList, conditions: ArrayList, dropColumns_0: ArrayList, viewColumns: ArrayList, filters: ArrayList, …} TableTicket{ticket=101,22,0,0,0, state=EXPORTED, isConnected=true}
16:46:36.621 LogProxy.js:66 Closing tree table JsTreeTable {map_0: {…}, columnsByName: HashMap, keyColumns_0: Array(1), filters: ArrayList, sorts: ArrayList, …}
16:46:36.645 LogProxy.js:66 Sending tree table request JsTreeTable {map_0: {…}, columnsByName: HashMap, keyColumns_0: Array(1), filters: ArrayList, sorts: ArrayList, …} ZRQAAAA= BitSet {array: Array(1)} RangeSet {sortedRanges: ArrayList_1, cardinality: Array(0), firstWrongCacheEntry: 0} false
16:46:36.645 LogProxy.js:66 Sending tree table request JsTreeTable {map_0: {…}, columnsByName: HashMap, keyColumns_0: Array(1), filters: ArrayList, sorts: ArrayList, …} ZRQAAAA= BitSet {array: Array(1)} RangeSet {sortedRanges: ArrayList_1, cardinality: Array(0), firstWrongCacheEntry: 0} false
16:46:36.646 LogProxy.js:66 Sending tree table request JsTreeTable {map_0: {…}, columnsByName: HashMap, keyColumns_0: Array(1), filters: ArrayList, sorts: ArrayList, …} ZRQAAAA= BitSet {array: Array(1)} RangeSet {sortedRanges: ArrayList_1, cardinality: Array(0), firstWrongCacheEntry: 0}cardinality: [___clazz: Class, castableTypeMap: {…}, __elementTypeId$: 14, __elementTypeCategory$: 14, typeMarker: ƒ]firstWrongCacheEntry: 0sortedRanges: ArrayList_1 {array: Array(1)}[[Prototype]]: Object false
16:46:36.654 dh-core.js:29526 Uncaught (in promise) TypeError: Cannot read properties of null (reading 'ticket_0')
    at Object.$lambda$23_0 (dh-core.js:29526:107)
    at Function.onInvoke_188 (dh-core.js:30501:17)
    at lambda (dh-core.js:193:22)
$lambda$23_0 @ dh-core.js:29526
onInvoke_188 @ dh-core.js:30501
lambda @ dh-core.js:193
Promise.then
$replaceSubscription @ dh-core.js:29696
applySort_1 @ dh-core.js:29818
set sort @ IrisGridTableModelTemplate.js:987
set @ IrisGridProxyModel.js:105
(anonymous) @ IrisGridModelUpdater.js:59
iu @ useOnChange.js:11
_i @ IrisGridModelUpdater.js:54
gue @ react-dom.production.min.js:157
_P @ react-dom.production.min.js:180
t5e @ react-dom.production.min.js:269
X2e @ react-dom.production.min.js:250
YQe @ react-dom.production.min.js:250
Ey @ react-dom.production.min.js:250
NP @ react-dom.production.min.js:243
(anonymous) @ react-dom.production.min.js:123
e.unstable_runWithPriority @ scheduler.production.min.js:18
Rv @ react-dom.production.min.js:122
D2e @ react-dom.production.min.js:123
ip @ react-dom.production.min.js:122
Vye @ react-dom.production.min.js:292
HZe @ react-dom.production.min.js:73
16:46:36.654 dh-core.js:29526 Uncaught (in promise) TypeError: Cannot read properties of null (reading 'ticket_0')
    at Object.$lambda$23_0 (dh-core.js:29526:107)
    at Function.onInvoke_188 (dh-core.js:30501:17)
    at lambda (dh-core.js:193:22)
$lambda$23_0 @ dh-core.js:29526
onInvoke_188 @ dh-core.js:30501
lambda @ dh-core.js:193
Promise.then
$replaceSubscription @ dh-core.js:29696
setViewport_2 @ dh-core.js:29972
applyBufferedViewport @ IrisGridTreeTableModel.js:91
X.me.leading @ IrisGridTableModelTemplate.js:256
p @ index.js:160
E @ index.js:240
(anonymous) @ IrisGridTableModelTemplate.js:243
p @ index.js:160
h @ index.js:170
E @ index.js:235
(anonymous) @ IrisGridProxyModel.js:62
(anonymous) @ IrisGridModelUpdater.js:75
iu @ useOnChange.js:11
_i @ IrisGridModelUpdater.js:74
gue @ react-dom.production.min.js:157
_P @ react-dom.production.min.js:180
t5e @ react-dom.production.min.js:269
X2e @ react-dom.production.min.js:250
YQe @ react-dom.production.min.js:250
Ey @ react-dom.production.min.js:250
NP @ react-dom.production.min.js:243
(anonymous) @ react-dom.production.min.js:123
e.unstable_runWithPriority @ scheduler.production.min.js:18
Rv @ react-dom.production.min.js:122
D2e @ react-dom.production.min.js:123
ip @ react-dom.production.min.js:122
Vye @ react-dom.production.min.js:292
HZe @ react-dom.production.min.js:73
16:46:36.654 dh-core.js:29526 Uncaught (in promise) TypeError: Cannot read properties of null (reading 'ticket_0')
    at Object.$lambda$23_0 (dh-core.js:29526:107)
    at Function.onInvoke_188 (dh-core.js:30501:17)
    at lambda (dh-core.js:193:22)
$lambda$23_0 @ dh-core.js:29526
onInvoke_188 @ dh-core.js:30501
lambda @ dh-core.js:193
Promise.then
close_52 @ dh-core.js:29843
close @ IrisGridTableModelTemplate.js:320
setModel @ IrisGridProxyModel.js:135
(anonymous) @ IrisGridProxyModel.js:171
Promise.then
setNextModel @ IrisGridProxyModel.js:169
set rollupConfig @ IrisGridProxyModel.js:289
set @ IrisGridProxyModel.js:103
(anonymous) @ IrisGridModelUpdater.js:79
iu @ useOnChange.js:11
_i @ IrisGridModelUpdater.js:77
gue @ react-dom.production.min.js:157
_P @ react-dom.production.min.js:180
t5e @ react-dom.production.min.js:269
X2e @ react-dom.production.min.js:250
YQe @ react-dom.production.min.js:250
Ey @ react-dom.production.min.js:250
NP @ react-dom.production.min.js:243
(anonymous) @ react-dom.production.min.js:123
e.unstable_runWithPriority @ scheduler.production.min.js:18
Rv @ react-dom.production.min.js:122
D2e @ react-dom.production.min.js:123
ip @ react-dom.production.min.js:122
Vye @ react-dom.production.min.js:292
HZe @ react-dom.production.min.js:73
16:46:36.654 dh-core.js:29526 Uncaught (in promise) TypeError: Cannot read properties of null (reading 'ticket_0')
    at Object.$lambda$23_0 (dh-core.js:29526:107)
    at Function.onInvoke_188 (dh-core.js:30501:17)
    at lambda (dh-core.js:193:22)
$lambda$23_0 @ dh-core.js:29526
onInvoke_188 @ dh-core.js:30501
lambda @ dh-core.js:193
16:46:36.654 dh-core.js:29526 Uncaught (in promise) TypeError: Cannot read properties of null (reading 'ticket_0')
    at Object.$lambda$23_0 (dh-core.js:29526:107)
    at Function.onInvoke_188 (dh-core.js:30501:17)
    at lambda (dh-core.js:193:22)
$lambda$23_0 @ dh-core.js:29526
onInvoke_188 @ dh-core.js:30501
lambda @ dh-core.js:193
16:46:36.654 dh-core.js:29526 Uncaught (in promise) TypeError: Cannot read properties of null (reading 'ticket_0')
    at Object.$lambda$23_0 (dh-core.js:29526:107)
    at Function.onInvoke_188 (dh-core.js:30501:17)
    at lambda (dh-core.js:193:22)
$lambda$23_0 @ dh-core.js:29526
onInvoke_188 @ dh-core.js:30501
lambda @ dh-core.js:193
16:46:36.668 LogProxy.js:66 CTS ClientTableState {sorts: ArrayList, conditions: ArrayList, dropColumns_0: ArrayList, viewColumns: ArrayList, filters: ArrayList, …}  set size; was  Long_0 {value_0: -1}  is now  Long_0 {value_0: 0}
16:46:36.668 LogProxy.js:66 Queuing size changed until RUNNING STATE;  Long_0 {value_0: 0}
16:46:36.669 LogProxy.js:66 Firing queued size change event ( 0 )
16:46:36.669 LogProxy.js:66 Table  JsTable_0 {map_0: {…}, subscriptions: HashMap, subscriptionId: 8, workerConnection: WorkerConnection, onClosed: ArrayList, …}  size changed from  -1  to  0
16:46:36.682 LogProxy.js:66 Sending tree table request JsTreeTable {map_0: {…}, columnsByName: HashMap, keyColumns_0: Array(2), filters: ArrayList, sorts: ArrayList, …} ZRcAAAA= BitSet {array: Array(1)} RangeSet {sortedRanges: ArrayList_1, cardinality: Array(0), firstWrongCacheEntry: 0} false
16:46:36.683 LogProxy.js:66 CTS ClientTableState {sorts: ArrayList, conditions: ArrayList, dropColumns_0: ArrayList, viewColumns: ArrayList, filters: ArrayList, …}  set size; was  Long_0 {value_0: -1}  is now  Long_0 {value_0: 0}
16:46:36.683 LogProxy.js:66 CTS immediate size update  Long_0 {value_0: 0}  actives:  Map(0) {size: 0}
16:46:36.692 LogProxy.js:66 CTS ClientTableState {sorts: ArrayList, conditions: ArrayList, dropColumns_0: ArrayList, viewColumns: ArrayList, filters: ArrayList, …}  set size; was  Long_0 {value_0: 0}  is now  Long_0 {value_0: 3}
16:46:36.692 LogProxy.js:66 CTS immediate size update  Long_0 {value_0: 3}  actives:  Map(0) {size: 0}
16:46:36.693 LogProxy.js:66 tree table response arrived JsTreeTable$TreeSubscription$TreeViewportDataImpl {this$11: JsTreeTable$TreeSubscription, subscription: WebBarrageSubscription$RedirectedImpl, rowStyleColumn: -1, columns_1: Array(3), added_0: JsRangeSet, …}
16:46:36.693 LogProxy.js:80 [IrisGridTreeTableModel] Missing key data for virtual column 0 1 0 JsTreeTable$TreeSubscription$TreeRowImpl {this$11: JsTreeTable$TreeSubscription, subscription: WebBarrageSubscription$RedirectedImpl, rowStyleColumn: -1, index_0: 0}
isEnabled.console.warn @ LogProxy.js:80
extractViewportRow @ IrisGridTreeTableModel.js:121
extractViewportData @ IrisGridTableModelTemplate.js:933
copyViewportData @ IrisGridTableModelTemplate.js:862
handleTableUpdate @ IrisGridTableModelTemplate.js:380
$lambda$3 @ dh-core.js:12239
onInvoke_9 @ dh-core.js:12958
lambda @ dh-core.js:193
$fireEvent_0 @ dh-core.js:12222
$handleUpdate @ dh-core.js:29478
$lambda$26 @ dh-core.js:29541
onEvent_19 @ dh-core.js:30536
lambda @ dh-core.js:193
$lambda$3 @ dh-core.js:12239
onInvoke_9 @ dh-core.js:12958
lambda @ dh-core.js:193
$fireEvent_0 @ dh-core.js:12222
notifyUpdate_1 @ dh-core.js:30211
$onDataChanged @ dh-core.js:28007
onDataChanged @ dh-core.js:28151
applyUpdates_0 @ dh-core.js:22055
$onFlightData @ dh-core.js:28024
apply_135 @ dh-core.js:28178
lambda @ dh-core.js:193
(anonymous) @ dh-internal.js:1
(anonymous) @ dh-internal.js:1
(anonymous) @ dh-internal.js:1
e.rawOnMessage @ dh-internal.js:1
(anonymous) @ dh-internal.js:1
e.onTransportChunk @ dh-internal.js:1
$onMessage @ dh-core.js:24427
handleEvent_2 @ dh-core.js:24571
16:46:36.779 LogProxy.js:66 Unretainment JsTreeTable$TreeSubscription {this$01: JsTreeTable, map_0: {…}, status_0: AbstractTableSubscription$Status, reader: WebBarrageStreamReader, state: ClientTableState, …}  releasing  ClientTableState{handle=TableTicket{ticket=101,26,0,0,0, state=EXPORTED, isConnected=true}, resolution=RUNNING, active=0, paused=0, retainers=1, size=3, tableDef=io.deephaven.web.client.api.barrage.def.InitialTableDefinition@2a, rowFormatColumn=undefined} 
16:46:36.780 LogProxy.js:66 Releasing state ClientTableState {sorts: ArrayList, conditions: ArrayList, dropColumns_0: ArrayList, viewColumns: ArrayList, filters: ArrayList, …} TableTicket{ticket=101,26,0,0,0, state=EXPORTED, isConnected=true}
16:46:36.780 LogProxy.js:66 Sending tree table request JsTreeTable {map_0: {…}, columnsByName: HashMap, keyColumns_0: Array(2), filters: ArrayList, sorts: ArrayList, …} ZRcAAAA= BitSet {array: Array(1)} RangeSet {sortedRanges: ArrayList_1, cardinality: Array(0), firstWrongCacheEntry: 0} false
16:46:36.782 LogProxy.js:66 CTS ClientTableState {sorts: ArrayList, conditions: ArrayList, dropColumns_0: ArrayList, viewColumns: ArrayList, filters: ArrayList, …}  set size; was  Long_0 {value_0: -1}  is now  Long_0 {value_0: 0}
16:46:36.782 LogProxy.js:66 CTS immediate size update  Long_0 {value_0: 0}  actives:  Map(0) {size: 0}
16:46:36.786 LogProxy.js:87 Export in state DEPENDENCY_RELEASED (related parent export id: 26)
isEnabled.console.error @ LogProxy.js:87
overrideMethod @ console.js:288
$failureHandled @ dh-core.js:12203
$fail @ dh-core.js:27966
$onStreamEnd @ dh-core.js:28031
onStreamEnd_0 @ dh-core.js:30215
apply_136 @ dh-core.js:28191
lambda @ dh-core.js:193
(anonymous) @ dh-internal.js:1
(anonymous) @ dh-internal.js:1
(anonymous) @ dh-internal.js:1
e.rawOnEnd @ dh-internal.js:1
e.onTransportEnd @ dh-internal.js:1
$onMessage @ dh-core.js:24429
handleEvent_2 @ dh-core.js:24571
16:46:36.786 LogProxy.js:87 Export in state DEPENDENCY_RELEASED (related parent export id: 26)
isEnabled.console.error @ LogProxy.js:87
overrideMethod @ console.js:288
$failureHandled @ dh-core.js:12203
onStreamEnd_0 @ dh-core.js:30217
apply_136 @ dh-core.js:28191
lambda @ dh-core.js:193
(anonymous) @ dh-internal.js:1
(anonymous) @ dh-internal.js:1
(anonymous) @ dh-internal.js:1
e.rawOnEnd @ dh-internal.js:1
e.onTransportEnd @ dh-internal.js:1
$onMessage @ dh-core.js:24429
handleEvent_2 @ dh-core.js:24571

@mofojed
Copy link
Member Author

mofojed commented Sep 12, 2024

@mofojed mofojed transferred this issue from deephaven/web-client-ui Sep 12, 2024
@niloc132
Copy link
Member

The issue has to do with changing the viewport - we're re-creating the viewport instead of just adjusting it, and part of the creation process is letting the old table reference be released on the server.

This fix will improve tree performance, since (like tables) we will no longer create new subscriptions for each scroll change.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working triage
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants