[SOLVED] Proxmox 4.2 GUI problem

BJ78945

Well-Known Member
Apr 15, 2015
75
16
48
Hi,

I updated one Server (at OVH) to Proxmox 4.2. I make a new install with ovh template. In the gui I have a problem. If I click something with a new box (add nfs storage, or add network, etc) it takes a long time and the box layout crashs. It will be schown in the left top corner and i cannot see buttons, only textfields. Dropdown etc. not working.

My version is: 4.2-2/725d76f0

I tested chrome and edge (latest builds).

Greetings

Alex
 
empty browser cache? and post:

> pveversion -v
 
Clearing browser cache didn't help.

proxmox-ve: 4.2-48 (running kernel: 4.4.6-1-pve)
pve-manager: 4.2-2 (running version: 4.2-2/725d76f0)
pve-kernel-4.4.6-1-pve: 4.4.6-48
pve-kernel-4.2.8-1-pve: 4.2.8-41
lvm2: 2.02.116-pve2
corosync-pve: 2.3.5-2
libqb0: 1.0-1
pve-cluster: 4.0-39
qemu-server: 4.0-72
pve-firmware: 1.1-8
libpve-common-perl: 4.0-59
libpve-access-control: 4.0-16
libpve-storage-perl: 4.0-50
pve-libspice-server1: 0.12.5-2
vncterm: 1.2-1
pve-qemu-kvm: 2.5-14
pve-container: 1.0-62
pve-firewall: 2.0-25
pve-ha-manager: 1.0-28
ksm-control-daemon: 1.2-1
glusterfs-client: 3.5.2-2+deb8u1
lxc-pve: 1.1.5-7
lxcfs: 2.0.0-pve2
cgmanager: 0.39-pve1
criu: 1.6.0-1
zfsutils: 0.6.5-pve9~jessie

I also use chrome devtools to find the problem. I get this output in the console:

pvemanagerlib.js:17 Starting PVE Manager
pvemanagerlib.js:21077 Uncaught RangeError: Maximum call stack size exceeded

And a screenshot:

jmhjqhrb.png
 
I allowed always pop-ups from the website and now the problem is gone.
 
I'm having this exact same issue, however, enabling popups doesn't solve it.

RangeError: Maximum call stack size exceeded
/pve2/ext6/ext-all.js:22

root@cloisters ~ # pveversion -v
proxmox-ve: 4.2-52 (running kernel: 4.4.8-1-pve)
pve-manager: 4.2-11 (running version: 4.2-11/2c626aa1)
pve-kernel-4.4.8-1-pve: 4.4.8-52
pve-kernel-4.2.8-1-pve: 4.2.8-41
lvm2: 2.02.116-pve2
corosync-pve: 2.3.5-2
libqb0: 1.0-1
pve-cluster: 4.0-40
qemu-server: 4.0-79
pve-firmware: 1.1-8
libpve-common-perl: 4.0-67
libpve-access-control: 4.0-16
libpve-storage-perl: 4.0-51
pve-libspice-server1: 0.12.5-2
vncterm: 1.2-1
pve-qemu-kvm: 2.5-19
pve-container: 1.0-67
pve-firewall: 2.0-29
pve-ha-manager: 1.0-31
ksm-control-daemon: 1.2-1
glusterfs-client: 3.5.2-2+deb8u2
lxc-pve: 1.1.5-7
lxcfs: 2.0.0-pve2
cgmanager: 0.39-pve1
criu: 1.6.0-1


I've tried clearing cache & cookies, using different browsers, multiple server restarts, but nothing has resolved it. It takes an *age* to edit any VM, and once an edit action is completed, I need to fully refresh the page to continue.
 
I've updated PVE to the latest version, and now I can no longer even tab over to the OK button to Apply any changes (which was a really poor workaround for me to use), due to the new 'Help' button. So I'm now no longer able to manage *anything*
 
what browser / os ?
does it work on a different machine/browser/os?
does the javascript console show anything? (on chrome ctrl+shift+j)
 
I'm having the exact issue that started this week. No changes were made to the Proxmox environment that could account for this. The issue happens in both Chrome and Internet Explorer 11. Cleared the cache and popups are allowed and rebooted.
My OS is Windows 10 Enterprise
I'm running Proxmox Virtual Environment 4.2-5/7cf09667 on 4 clustered hosts. I've also logged into the GUI on each host and tried the same thing resulting in the same issue so it would appear that maybe Windows updated something in the OS with JavaScript which is causing the problem?
Here is the output of the JavaScript console. Any help would be greatly appreciatedUntitled.jpg
 
first: 4.2-5 is not current, so please try with a current version

also, did you try with another os? (win7, linux, mac)?
did you try with firefox?

i saw this issue several times already here in the forum, but could never reproduce it.
if it occurs with the current version, please try to
accurately list the steps which leads to this

if an upgrade solves it, also write it here please :)
 
I already encountered that kind of issue and it was related to malfunctionning storage.

For example, I have a cluster with Ceph as main storage distributed all over my nodes except for one node which was not able to connect to the ceph cluster (Ceph network is 10G fiber based and this server had no fiber NIC at that time) but the ceph storage was declared on this node because, at the datacenter level, it was marked as available for all nodes.
Since this node couldn't access the Ceph storage but beeing granted access to it by the ProxMox configuration, every ajax calls trying to pull stats from the storages where dying with timeouts making the GUI practically unusable.

The fix was to disable the storage on nodes where it is not available or useless.
 
yes that would explain a slow/unresponsive gui but not the error "Maximum call stack size exceeded"
since the api calls simply would timeout and then the site would behave normal again
 
Just a quick update. I tested again on Windows 7 Ent. using chrome and it works successfully. I also checked my Windows 10 Ent. Update history and the following Updates were applied recently. So I can only assume that one of them is causing the issue system wide. I'll keep troubleshooting and post back what I find.

-Security Update for Adobe Flash Player for Windows 10 Version 1511 for x64-based Systems (KB3174060)
-Windows Malicious Software Removal Tool for Windows 8, 8.1, 10 and Windows Server 2012, 2012 R2 x64 Edition - July 2016 (KB890830)
-Cumulative Update for Windows 10 Version 1511 for x64-based Systems (KB3172985)
-Update for Windows 10 Version 1511 for x64-based Systems (KB3173428)
 
I am hitting the same bug and I do not know why, but I can confirm that it is not related to Windows, as it happens on my Laptop running Antergos (Linux Distribution) with newest Chromium as well. The issue does not occur within FIrefox and funnily enough, it does not make any problems on my workstation, running the same OS and Chromium version (v51 - the newest one) as my laptop.

I've set the maximum error stack trace limit to infinite and made a Gist out of it. It seems like Proxmox keeps recursing into the "isValid" function, which goes through a lot of weird Ext.js stuff and then again into "isValid", ... Maybe there is a way to run Proxmox with ext-debug which does not require messing around with my production system - that would be helpful for creating better stack traces. I used Chrome prettyprinting to do the job but ofcourse it's nicer when you have the actual symbol names...

Gist (warning, huge and truncated): https://gist.github.com/NeoXiD/8a3b5ca8d406d9635db5474a31c19228
Stacktrace: https://gist.githubusercontent.com/...7dd962e45aa953d50afd59a18bd/01-stacktrace.log
ext-all.js:formatted: https://gist.githubusercontent.com/...4cb97dd962e45aa953d50afd59a18bd/02-ext-all.js
pvemanagerlib.js: https://gist.githubusercontent.com/...d962e45aa953d50afd59a18bd/03-pvemanagerlib.js

I've attached the actual source files as one of them is prettyprinted as written above (Ext.js) and the other one might differ based on the current version. I'll try to gather more information but I have no clue so far why it only happens on some systems.
 
hi,

thank you, i now have an idea what code is involved in this, but sadly still could not reproduce it. your stracktrace shows the loop which exhausts the stack size, but does not show where it originates.

so if you maybe could post a whole stacktrace ?

also, if you stop pveproxy with
Code:
systemctl stop pveproxy
and then start it again on the commandline with
Code:
pveproxy start --debug 1

it chooses the ext-all-debug.js instead of the minified ext-all.js
 
Unfortunately it does not seem to be easy to get the origin from the devtools console, as it seems to impose a limit and recursion happens thousands of times so it is not visible. I however managed to get some results from setting a few breakpoints - still no idea why it happens on some clients and not others, but here you go:

https://gist.github.com/NeoXiD/063341fad125506b0a963396bc90eb27

I tried to collect all kinds of information with pveproxy running as debug, so if I should do anything else, just ask for it. The results above were produced by editing a backup job at datacenter level.

EDIT1: It happens everywhere, so no matter if I edit the VM options, the backup options, ... Whenever such an edit window has to pop up basically.

EDIT2: I just compared with my workstation and I did set the breakpoint correctly indeed. However, my workstation executes that validation function only once and does not keep looping recursively. Also, the stacktrace is somewhat different - which can be easily explained on my systems, as the laptop features a touchscreen (I was using the touchpad, but maybe it still does touch recognition stuff) and my main workstation does not.

You can see that because those "onTouchEnd" calls which do not appear in the stacktrace from my workstation. Comparison here: https://www.diffchecker.com/nqzkjydx (left = laptop which does not work, right = workstation) Would be interesting to hear if other people with that problem, like Chris.P are doing those tests on devices with a touchscreen?

EDIT3: Just found some Chrome flags for touchscreen support, disabled all of them and restarted the browser. The stack trace is now identical to the workstation, the problem still appears though. I'll try to find a way to deep-compare the values of "form" and "this" now between those two systems...

EDIT4: Alright, every known serialization routine fails as those Ext.js objects are just a huuuge, huuuuuge object mess. Can't find any way to deep-compare them between workstation and laptop, so running out of ideas here. But there got to be a difference in there, imho, as the stack trace is exactly the same since disabling touch-based events. Unless there's additional logic in one of those Ext.js functions, but I will probably take a look into this tomorrow.
 
Last edited:
hi,

thank you very much for your help, it pointed me in the right direction.
as far as i can see this only occurs on devices with a touchscreen (or the os reporting a touchscreen)
because on touchscreen devices extjs has additional code which triggers the layout after an isValid (which it does not on non-touch devices)

i am working on a solution at the moment for this, but it would be good if the people with this problem could
confirm it happens on devices with touchscreens.
 
I have seen that behavior on my touchscreen Chromebook (the window shows on the upper-left-hand portion of the screen).

On a related note, I have noticed that opening the CD/DVD settings takes a long time on any system. From a non-touch desktop, after it loads, clicking to choose a CD does not initially show anything. Selecting it a second time brings up a list with only the 1st letter of each file name. This works fine on the same machine using Firefox. But it fails the similarly with both Chrome and Opera.
 
SOLVED on Windows 10
The issue for me was as I suspected. One of the Windows updates that as applied this week must have contained an update to the javascript dll's.
I compared the following two dll files from a Win 10 install that had not been updated and found the following:
C:\Windows\System32\jscript.dll (Version: 5.812.10586.3 was updated to version: 5.812.10586.306)
C:\Windows\System32\jscript9.dll (Version: 11.0.10586.122 was updated to version: 11.0.10586.494)
I copied the older versions of the dll's to my C:\Windows\System32\ directory and registered them with regsvr32.exe
Rebooted and the issue was solved.
 
I am accessing it from Debian, so the DLLs issue is not the problem for me. The mysterious thing is that it works great in Firefox. But only the desktop version of Firefox. Try accessing the UI from Firefox on Android and it fails to render properly.
 
Last edited:
@Pete L. That would actually make a lot of sense, IMHO, because if you take a look at this feature table here, you can clearly see that Firefox itself does not support any touch events per default, while Firefox for Android does. It seems like Chris.P had some other kind of problem, but us two are affected by that touchscreen bug which @dcsapak mentioned: http://caniuse.com/#feat=touch (press "Show all" to see FF for Android)

While my Firefox shows this configuration variable set to "2" (auto-detect), I guess it defaults to "no", because when I set it manually to 1 (always on), I can't press anything at all in the Proxmox Web Interface. I also tested http://www.snappymaria.com/canvas/TouchEventTest.html in both Chrome and Firefox, and while Chrome shows "touchStart"/"touchEnd" events, Firefox only emulates mouse clicks/movements.
 

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!