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

logout Does Not Close Server Side Session #2256

Open
nbauernfeind opened this issue Oct 15, 2024 · 5 comments
Open

logout Does Not Close Server Side Session #2256

nbauernfeind opened this issue Oct 15, 2024 · 5 comments
Assignees
Labels
bug Something isn't working
Milestone

Comments

@nbauernfeind
Copy link
Member

nbauernfeind commented Oct 15, 2024

As a user, I would like to be able to indicate to the web-ui that I am completely done with my session and that I would like resources cleaned up ASAP.

When I click the configuration wheel, and select logout, I would expect the client to tell the server that it has finished with the session. Forcefully releasing all outstanding objects.

I was able to verify that proactive release is not happening by setting a server-side breakpoint to catch when the session expires, but rather when the session timeout is triggered.

@nbauernfeind nbauernfeind added the bug Something isn't working label Oct 15, 2024
@mattrunyon
Copy link
Collaborator

mattrunyon commented Oct 15, 2024

Do we have "real" sessions in DHC now? I was under the impression there is 1 session that all connections share (when I open the UI in a separate or incognito tab, I can still access the widgets created in another tab)

Or are you talking about JS API exports to the client?

@mattrunyon mattrunyon added the triage Issue requires triage label Oct 15, 2024
@nbauernfeind
Copy link
Member Author

nbauernfeind commented Oct 15, 2024

This "real" session you are referring to is that all clients must share the REPL session (aka Script Session).

Two different tabs cannot communicate with each other. Therefore, they have their own server side session; the session that owns the exports (a gRPC client session). We should at least release exports, but if you release the server side session instead then it will clean up all outstanding exports at once with minimal request by the client. I do not know if the jsapi exposes a method to close/release the client session or not - but if we don't have one, we should have one - and the web-ui should invoke it in this case. (at least, in my opinion this should be a side effect of such a "logout")

@mattrunyon
Copy link
Collaborator

Looks like we don't call anything on the web side except for clearing saved tokens. There is a session.close() in the JS API on IdeSession. Should we calling that and then the JS API should handle closing anything else associated with the session if it doesn't already do that?

@nbauernfeind
Copy link
Member Author

That sounds correct. If session.close() does not propagate to the server, I'll take it up with Colin; but I suspect that it will.

I can easily test from a web-client feature branch (or PR) if that is helpful for you.

@mofojed
Copy link
Member

mofojed commented Oct 22, 2024

Might be related to #1685

@mofojed mofojed removed the triage Issue requires triage label Oct 22, 2024
@mofojed mofojed added this to the Backlog milestone Oct 22, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

4 participants