all lists on lists.proxmox.com
 help / color / mirror / Atom feed
From: Dominik Csapak <d.csapak@proxmox.com>
To: "Raphaël Flores" <raphael.flores@inrae.fr>, pve-devel@lists.proxmox.com
Subject: Re: [PATCH] fix #8292: ui: node: StatusView: do not mutate the class-level items array
Date: Thu, 5 Nov 2026 13:26:55 +0100	[thread overview]
Message-ID: <9f4c7322-016f-4563-9365-023753718930@proxmox.com> (raw)
In-Reply-To: <0c0f6a2b-b475-4f41-9342-c0d4ae94becc@inrae.fr>

Hi,

thanks for your contribution

The patch itself looks good, but did you see
https://pve.proxmox.com/wiki/Developer_Documentation ?

especially the part about signing a CLA?

We'd need that before we apply patches of yours.

best regards
Dominik

On 11/5/26 12:44 PM, Raphaël Flores wrote:
> The repository status widget is appended to `items` in initComponent, but
> `items` is declared at class level, so every instance of 
> PVE.node.StatusView
> receives the very same array. Each instantiation therefore left one more
> config object in that shared array: the k-th display of a node's Summary 
> page
> constructed k pmxNodeInfoRepoStatus widgets instead of one, and all but 
> one of
> them were never destroyed (they stay registered in Ext.ComponentManager, 
> with
> no DOM node, and are not freed by the cycle collector).
> 
> The node view is rebuilt on every display of the summary panel, so the 
> waste
> grows quadratically with navigation: 322 displays left 52 004 live widget
> instances and 208 322 ExtJS components behind, while the DOM stayed flat.
> 
> Build a per-instance array instead of pushing onto the shared one.
> 
> Signed-off-by: Raphaël Flores <raphael.flores@inrae.fr>
> ---
>   www/manager6/node/StatusView.js | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/www/manager6/node/StatusView.js b/www/manager6/node/ 
> StatusView.js
> index 0046f5d5..08d68a95 100644
> --- a/www/manager6/node/StatusView.js
> +++ b/www/manager6/node/StatusView.js
> @@ -157,7 +157,7 @@ Ext.define('PVE.node.StatusView', {
>               nodetab: 'aptrepositories',
>           });
> 
> -        me.items.push({
> +        me.items = me.items.concat({
>               xtype: 'pmxNodeInfoRepoStatus',
>               itemId: 'repositoryStatus',
>               product: 'Proxmox VE',





      reply	other threads:[~2026-11-05 12:27 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-11-04 16:08 [PATCH] fix #8292: ui: node: StatusView: do not mutate the class-level items array Raphaël Flores
2026-11-05 12:26 ` Dominik Csapak [this message]

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=9f4c7322-016f-4563-9365-023753718930@proxmox.com \
    --to=d.csapak@proxmox.com \
    --cc=pve-devel@lists.proxmox.com \
    --cc=raphael.flores@inrae.fr \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal