Skip to content

Commit 0b3d96f

Browse files
authored
fix: DH-20446: JS API should close session on disconnect (#7598)
This includes a config property to disable the feature in case it turns out there is a bug later.
1 parent a123651 commit 0b3d96f

File tree

1 file changed

+9
-0
lines changed

1 file changed

+9
-0
lines changed

web/client-api/src/main/java/io/deephaven/web/client/api/WorkerConnection.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@
3939
import io.deephaven.javascript.proto.dhinternal.io.deephaven_core.proto.partitionedtable_pb_service.PartitionedTableServiceClient;
4040
import io.deephaven.javascript.proto.dhinternal.io.deephaven_core.proto.session_pb.ExportRequest;
4141
import io.deephaven.javascript.proto.dhinternal.io.deephaven_core.proto.session_pb.ExportResponse;
42+
import io.deephaven.javascript.proto.dhinternal.io.deephaven_core.proto.session_pb.HandshakeRequest;
4243
import io.deephaven.javascript.proto.dhinternal.io.deephaven_core.proto.session_pb.PublishRequest;
4344
import io.deephaven.javascript.proto.dhinternal.io.deephaven_core.proto.session_pb.ReleaseRequest;
4445
import io.deephaven.javascript.proto.dhinternal.io.deephaven_core.proto.session_pb.TerminationNotificationRequest;
@@ -618,6 +619,14 @@ public void forceClose() {
618619
DomGlobal.clearTimeout(scheduledAuthUpdate);
619620
scheduledAuthUpdate = null;
620621
}
622+
623+
// Allow this to be disabled in case races are possible that break this.
624+
// Flag is temporary, as long as we're sure there are no ill effects from the feature.
625+
ConfigValue disableCloseOnDisconnect = getServerConfigValue("web.disableCloseSessionOnDisconnect");
626+
if (disableCloseOnDisconnect == null || !disableCloseOnDisconnect.hasStringValue()) {
627+
sessionServiceClient.closeSession(new HandshakeRequest(), metadata());
628+
}
629+
metadata().delete(FLIGHT_AUTH_HEADER_NAME);
621630
}
622631

623632
public void setSessionTimeoutMs(double sessionTimeoutMs) {

0 commit comments

Comments
 (0)