From: Shannon Sterz <s.sterz@proxmox.com>
To: pdm-devel@lists.proxmox.com
Subject: [pdm-devel] [PATCH datacenter-manager/yew-widget-toolkit 0/7] avoid more race conditions on log in
Date: Thu, 27 Nov 2025 16:36:02 +0100 [thread overview]
Message-ID: <20251127153609.440415-1-s.sterz@proxmox.com> (raw)
previously [1] a commit addressed an issue that could log out users
right after they logged in again. this series tries to address several
more races that could have the same effect. to achieve that all requests
need to be aborted once a log out occurs. this should reduce the
possibility that one of these requests ends up in a race with a log in
request. if one of the requests addressed in this series runs with an
invalid ticket in parallel to a login request and finishes after the
login, the user will be kicked out again right after logging in.
hence, all occurrences of `Scope::send_future()` are replaced with
either AsyncAbortGuard or AsyncPool. AsyncAbortGuard is chosen when it's
about a one of requests, whereas AsyncPool is more useful in cases where
several (potentially parallel) requests may occur. these will abort any
requests when they are dropped. so once the login panel is rendered an
all other components are destroyed, the requests will be aborted.
we also need to refactor the DatacenterManagerApp a little bit. it
always gets rendered. so any requests it makes won't be dropped on log
out as it always gets rendered. hence, manually abort all its request
by:
- aborting the Loader for running tasks
- dropping its AsyncPool
- not rendering the AclContext when logged out
[1]: https://git.proxmox.com/?p=proxmox-datacenter-manager.git;a=commit;h=6a14f4571b0a8cf67949a13391671bba7c91c95b
proxmox-yew-widget-toolkit:
Shannon Sterz (1):
loader: add helper to allow aborting a load
src/state/loader.rs | 5 +++++
1 file changed, 5 insertions(+)
proxmox-datacenter-manager:
Shannon Sterz (6):
ui: main: abort running task load on log out
ui: main: move requests into an async pool and drop it on logout
ui: main: only render acl context when we are logged in
ui: resource tree: use an async pool for requests
ui: node status: handle the request via an AsyncAbortGuard
ui: top nav bar: use an abort guard for loading the version
ui/src/administration/node_status.rs | 20 ++++++++++----
ui/src/main.rs | 41 +++++++++++++++++++---------
ui/src/top_nav_bar.rs | 9 ++++--
ui/src/widget/resource_tree.rs | 6 +++-
4 files changed, 54 insertions(+), 22 deletions(-)
Summary over all repositories:
5 files changed, 59 insertions(+), 22 deletions(-)
--
Generated by git-murpp 0.8.1
_______________________________________________
pdm-devel mailing list
pdm-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pdm-devel
next reply other threads:[~2025-11-27 15:36 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-11-27 15:36 Shannon Sterz [this message]
2025-11-27 15:36 ` [pdm-devel] [PATCH yew-widget-toolkit 1/1] loader: add helper to allow aborting a load Shannon Sterz
2025-11-27 18:22 ` [pdm-devel] applied: " Thomas Lamprecht
2025-11-27 15:36 ` [pdm-devel] [PATCH datacenter-manager 1/6] ui: main: abort running task load on log out Shannon Sterz
2025-11-27 15:36 ` [pdm-devel] [PATCH datacenter-manager 2/6] ui: main: move requests into an async pool and drop it on logout Shannon Sterz
2025-11-27 15:36 ` [pdm-devel] [PATCH datacenter-manager 3/6] ui: main: only render acl context when we are logged in Shannon Sterz
2025-11-27 15:36 ` [pdm-devel] [PATCH datacenter-manager 4/6] ui: resource tree: use an async pool for requests Shannon Sterz
2025-11-27 15:36 ` [pdm-devel] [PATCH datacenter-manager 5/6] ui: node status: handle the request via an AsyncAbortGuard Shannon Sterz
2025-11-27 15:36 ` [pdm-devel] [PATCH datacenter-manager 6/6] ui: top nav bar: use an abort guard for loading the version Shannon Sterz
2025-11-27 20:54 ` [pdm-devel] applied: [PATCH datacenter-manager/yew-widget-toolkit 0/7] avoid more race conditions on log in Thomas Lamprecht
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20251127153609.440415-1-s.sterz@proxmox.com \
--to=s.sterz@proxmox.com \
--cc=pdm-devel@lists.proxmox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox