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
- Create a basic table:
from deephaven import empty_table
t = empty_table(1000).update(["X=i%2", "Y=i%5", "Z=i"])
- 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

Added support logs with the JS API printing debug statements as well to help:
2024-09-11-163428_support_logs.zip
Versions
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
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:
Additional details and attachments

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