Possible bug? Clicking on "update" or "packages" buttons doesn't do "anything"

aljaxus

Well-Known Member
Jul 6, 2019
45
5
48
Them Interwebz
aljaxus.eu
Anrighty, so I currently have the following pve packages installed on one of my nodes in the cluster. I also have a few other "non-default" packages installed, such as net-tools, nmap, screen, bmon and htop. Both nodes in the cluster are affected by this, so it's (most likely) not caused by these non-pve packages.
The installation was performed via PVE ISO, I don't remember the exact version, but it must have been 6.2, because I installed it this August.
Code:
root@neptune:~# dpkg --get-selections | grep pve
libpve-access-control                           install
libpve-apiclient-perl                           install
libpve-cluster-api-perl                         install
libpve-cluster-perl                             install
libpve-common-perl                              install
libpve-guest-common-perl                        install
libpve-http-server-perl                         install
libpve-storage-perl                             install
libpve-u2f-server-perl                          install
lxc-pve                                         install
novnc-pve                                       install
pve-cluster                                     install
pve-container                                   install
pve-docs                                        install
pve-edk2-firmware                               install
pve-firewall                                    install
pve-firmware                                    install
pve-ha-manager                                  install
pve-i18n                                        install
pve-kernel-5.4                                  install
pve-kernel-5.4.34-1-pve                         install
pve-kernel-5.4.60-1-pve                         install
pve-kernel-5.4.65-1-pve                         install
pve-kernel-5.4.73-1-pve                         install
pve-kernel-5.4.78-2-pve                         install
pve-kernel-helper                               install
pve-lxc-syscalld                                install
pve-manager                                     install
pve-qemu-kvm                                    install
pve-xtermjs                                     install
root@neptune:~#

The "Refresh" button in "Updates" section on node level and "Package versions" button in "Summary" on node level are affected. When clicking on any of them a single request to /api2/extjs/nodes/localhost/subscription.

I have no clue what else I should include, so please ask for the information that's needed and I'll provide it.
 
You can use pveversion -v to get a list of installed pve packages and their versions.

Is the HTTP status for the subscription request 200? If you don't have a subscription, and you click one of the buttons you mentioned, there will be a pop-up window (the same that shows up when you login). After you click the "OK" button, the "real" request should be made.
 
You can use pveversion -v to get a list of installed pve packages and their versions.
Code:
root@neptune:~# pveversion -v
proxmox-ve: 6.3-1 (running kernel: 5.4.65-1-pve)
pve-manager: 6.3-3 (running version: 6.3-3/eee5f901)
pve-kernel-5.4: 6.3-3
pve-kernel-helper: 6.3-3
pve-kernel-5.4.78-2-pve: 5.4.78-2
pve-kernel-5.4.73-1-pve: 5.4.73-1
pve-kernel-5.4.65-1-pve: 5.4.65-1
pve-kernel-5.4.60-1-pve: 5.4.60-2
pve-kernel-5.4.34-1-pve: 5.4.34-2
ceph-fuse: 12.2.11+dfsg1-2.1+b1
corosync: 3.0.4-pve1
criu: 3.11-3
glusterfs-client: 5.5-3
ifupdown: residual config
ifupdown2: 3.0.0-1+pve3
ksm-control-daemon: 1.3-1
libjs-extjs: 6.0.1-10
libknet1: 1.16-pve1
libproxmox-acme-perl: 1.0.7
libproxmox-backup-qemu0: 1.0.2-1
libpve-access-control: 6.1-3
libpve-apiclient-perl: 3.1-3
libpve-common-perl: 6.3-2
libpve-guest-common-perl: 3.1-3
libpve-http-server-perl: 3.1-1
libpve-storage-perl: 6.3-3
libqb0: 1.0.5-1
libspice-server1: 0.14.2-4~pve6+1
lvm2: 2.03.02-pve4
lxc-pve: 4.0.3-1
lxcfs: 4.0.3-pve3
novnc-pve: 1.1.0-1
proxmox-backup-client: 1.0.6-1
proxmox-mini-journalreader: 1.1-1
proxmox-widget-toolkit: 2.4-3
pve-cluster: 6.2-1
pve-container: 3.3-2
pve-docs: 6.3-1
pve-edk2-firmware: 2.20200531-1
pve-firewall: 4.1-3
pve-firmware: 3.1-3
pve-ha-manager: 3.1-1
pve-i18n: 2.2-2
pve-qemu-kvm: 5.1.0-7
pve-xtermjs: 4.7.0-3
qemu-server: 6.3-2
smartmontools: 7.1-pve2
spiceterm: 3.1-1
vncterm: 1.6-2
zfsutils-linux: 0.8.5-pve1
root@neptune:~#

Is the HTTP status for the subscription request 200? If you don't have a subscription, and you click one of the buttons you mentioned, there will be a pop-up window (the same that shows up when you login). After you click the "OK" button, the "real" request should be made.
Yes it is;
Code:
{
    "success": 1,
    "data": {
        "url": "https://www.proxmox.com/proxmox-ve/pricing",
        "message": "There is no subscription key",
        "status": "NotFound",
        "serverid": "REMOVED"
    }
}

And yeah, I haven't mentioned yet, I don't have the subscription purchased. Is this a newly added restriction?
 
There is no restriction. It's just a pop-up window where you need to click "OK" before the actual request for the button happens. Is there such a window? What browser are you using? Does disabling extensions (if you have any) help?
 
There is no restriction. It's just a pop-up window where you need to click "OK" before the actual request for the button happens. Is there such a window? What browser are you using? Does disabling extensions (if you have any) help?
Using Firefox, the popup window does not appear, no errors/warnings in the debug console, same thing with all extensions disabled. I've also tried Edge - same thing.
 
Last edited:
Do you see a pop-up after login? Does apt install --reinstall pve-manager help?
 
Do you see a pop-up after login?
The "this node does not have the subscription active"-thing? No, I "disabled" it.

Does apt install --reinstall pve-manager help?
Nope.



There is no restriction. It's just a pop-up window where you need to click "OK" before the actual request for the button happens.
AHA, now I'm sort of connecting the dots. Does the function/class/whatever used for spawning that popup have an option for a callback function which is called when the "OK" button is clicked? If so, that's the reason why I'm having this "issue" (more like a self-made problem). As stated above, I have "disabled" that popup (via a, I suppose, well known js modification), so if that popup doesn't get shown, I can't click the OK button (ofc, that's the intent) and the callback function isn't called so the "refresh" function isn't called either.
 
I don't know how you modified the JavaScript, but this is most likely the cause. Using re-install should restore the original file, or do you automatically patch it? And while I understand that the pop-up might be a bit annoying:
  1. Subscriptions are our only source of income.
  2. For production use, only the enterprise repository is recommended as it is the most stable one.
 
I don't know how you modified the JavaScript
Awh, a simple sed command.
Using re-install should restore the original file, or do you automatically patch it?
Nope, I just tested it by adding a comment and reinstalling - the file was not replaced with the new one. Are you sure that the pve-manager package includes those web assets?
And no, I do not automatically patch it. I see that as too unstable since the script doesn't take any future changes of that file into account which might brick the web UI.

And while I understand that the pop-up might be a bit annoying:
  1. Subscriptions are our only source of income.
  2. For production use, only the enterprise repository is recommended as it is the most stable one.
A do understand your standpoint - as being a webdev myself - and I truly respect that you're still replying and trying to help me resolve my issue after I have clearly stated that I'm bypassing your lincencing notifications.
I'd buy the subscription, but damn is it not cheap for a cheap-ass student like me. Especially since I'm running it on 3 2cpu nodes, that'd be ~2388€/year - damn me, I'll rather be a testing bunny! ;)


// EDIT - REMOVED
 
Last edited:
Awh, a simple sed command.

Nope, I just tested it by adding a comment and reinstalling - the file was not replaced with the new one. Are you sure that the pve-manager package includes those web assets?
And no, I do not automatically patch it. I see that as too unstable since the script doesn't take any future changes of that file into account which might brick the web UI.
You can use dpkg-query -S to see which package a file belongs to.

A do understand your standpoint - as being a webdev myself - and I truly respect that you're still replying and trying to help me resolve my issue after I have clearly stated that I'm bypassing your lincencing notifications.
I'd buy the subscription, but damn is it not cheap for a cheap-ass student like me. Especially since I'm running it on 3 2cpu nodes, that'd be ~2388€/year - damn me, I'll rather be a testing bunny! ;)
And I do understand that, having been a student myself. But I'm afraid I cannot help you resolve the "issue" apart from telling you about dpkg-query. Also please don't post any "workarounds", I'd have to remove those.

EDIT: Please also remove the later half of your previous post.
 
Last edited:
But I'm afraid I cannot help you resolve the "issue" apart from telling you about dpkg-query
Makes sense - I appreciate the time you dedicated to helping me out. With the help of the command mentioned above I was able to get the name of the package that includes mentioned file, cloned the public repo and verified that the function was indeed not from the source.
Thank you again and have a great day.
 
  • Like
Reactions: fiona
@aljaxus

It's certain that you have modified the subscription part in the JS file, here:

/usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js

I had the same problem and after checking my proxmoxlib.js, I found that I have added "!" to the
.data.status.toLowerCase() !== 'active')

Ensure that it's similar to this one, otherwise the API will not retrieve the packages version from the GUI

.data.status.toLowerCase() == 'active')

here is the whole JS class

JavaScript:
        success: function(response, opts) {
            let res = response.result;
            if (res === null || res === undefined || !res || res
            .data.status.toLowerCase() == 'active') {
            Ext.Msg.show({
                title: gettext('No valid subscription'),
                icon: Ext.Msg.WARNING,
                message: Proxmox.Utils.getNoSubKeyHtml(res.data.url),
                buttons: Ext.Msg.OK,
                callback: function(btn) {
                if (btn !== 'ok') {
                    return;
                }
                orig_cmd();
                },
            });
            } else {
            orig_cmd();
            }
        },
 
  • Like
Reactions: aljaxus

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!