From: "Raphaël Flores" <raphael.flores@inrae.fr>
To: Dominik Csapak <d.csapak@proxmox.com>, <pve-devel@lists.proxmox.com>
Subject: Re: [PATCH] fix #8292: ui: node: StatusView: do not mutate the class-level items array
Date: Mon, 9 Nov 2026 15:06:18 +0100 [thread overview]
Message-ID: <58d748c6-e255-4ce5-9249-4c8c080ce9c5@inrae.fr> (raw)
In-Reply-To: <9f4c7322-016f-4563-9365-023753718930@proxmox.com>
[-- Attachment #1.1: Type: text/plain, Size: 2570 bytes --]
Hi Dominik,
thanks for the quick review.
I've read the Developer Documentation and have sent the signed
Contributor License Agreement to office@proxmox.com.
Best regards,
Raphaël Flores
Le 05/11/2026 à 13:26, Dominik Csapak a écrit :
> 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',
>
>
>
>
>
>
--
Raphaël FLORES, INRAE URGI / UR1164, RD10, 78026 Versailles Cedex - France
URGI plateform IT manager / BioinfOmics Research Infrastructure
Forge INRAE project lead / Research engineer
** Kindly hosted by ** / CNRGV @INRAE Toulouse
Note: I don't work on Fridays of odd-numbered weeks
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 840 bytes --]
next prev parent reply other threads:[~2026-11-09 14:06 UTC|newest]
Thread overview: 6+ 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
2026-11-09 14:06 ` Raphaël Flores [this message]
2026-11-10 12:09 ` Dominik Csapak
2026-11-10 14:28 ` Raphaël Flores
2026-11-10 14:36 ` Raphaël Flores
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=58d748c6-e255-4ce5-9249-4c8c080ce9c5@inrae.fr \
--to=raphael.flores@inrae.fr \
--cc=d.csapak@proxmox.com \
--cc=pve-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 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.