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: Tue, 10 Nov 2026 13:09:38 +0100 [thread overview]
Message-ID: <9bacc7c5-d0ba-45a4-9b81-8da9c3de22ff@proxmox.com> (raw)
In-Reply-To: <58d748c6-e255-4ce5-9249-4c8c080ce9c5@inrae.fr>
On 11/9/26 3:06 PM, Raphaël Flores wrote:
> Hi Dominik,
Hi,
>
> thanks for the quick review.
>
> I've read the Developer Documentation and have sent the signed
> Contributor License Agreement to office@proxmox.com.
thanks for confirmation. I did try to apply the patch,
but `git am` wouldn't let me, probably because of the post diff
message or footer.
Normally comments go after the '---' after the commit
message before the actual diff (i marked the part inline)
would you mind sending the patch again with the comment
(re)moved ?
If you want i can commit the changes under my name if you
don't want to send it again.
> Best regards,
> Raphaël Flores
>
Best regards
Dominik
> 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>
>>> ---
here is where a comment would go
>>> 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',
>>
>>
>>
>>
>>
>>
next prev parent reply other threads:[~2026-11-10 12:09 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
2026-11-10 12:09 ` Dominik Csapak [this message]
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=9bacc7c5-d0ba-45a4-9b81-8da9c3de22ff@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox