Skip to content

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

@mofojed

Description

@mofojed

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

Metadata

Metadata

Assignees

Labels

bugSomething isn't workingjsapirelease blockerA bug/behavior that puts is below the "good enough" threshold to release.

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions