Skip to content
View in the app

A better way to browse. Learn more.

Unraid

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

wstone75

Members
  • Joined

  • Last visited

Everything posted by wstone75

  1. Hi all, EasyBackup (2023.11.28, by Eideard) has two bugs on Unraid 7.3.2 / PHP 8.4. (Yes, I'm still using it...and maybe some others too...) Since the plugin has no own support thread (both "Support" links point to the CA User Scripts thread), I'm posting the fixes here for anyone still using it. Note: CA marks this plugin as beta / use at own risk. These fixes are a stopgap until migrating to another backup solution. BUG 1: "Backup VMs" tab is empty - LineQuestion() in includes/functions.php uses an implicitly nullable parameter (callable $validation = null), which is deprecated in PHP 8.4. The deprecation fires while functions.php is loading. The custom error handler then calls isCommandLineInterface(), which is defined in functions.php and not loaded yet -> fatal error, empty VM list. Fix: change it to ?callable $validation = null ----------------- BUG 2: zombie virsh processes / very slow web UI - cmdExec() in includes/functions.php uses proc_open() but never calls proc_close(), so every command (mostly virsh) is left as a zombie in the php-fpm worker. With the "Backup VMs" tab open I had ~8,900 zombies after 25 minutes, and the whole web UI became very slow (~30 s per page). Also, the wait loop never waits: proc_get_status() returns 'running' as a boolean, so "!== 1" is always true. Fix: close the pipes and call proc_close($proc) after reading the output. To check for zombies: ps -eo stat=,comm= | grep -c '^Z.*virsh' Patches are lost on reboot, so I apply both with a User Script set to "At Startup of Array": #!/bin/bash F=/usr/local/emhttp/plugins/easybackup/includes/functions.php [ -f "$F" ] || exit 0 # Fix 1: PHP 8.4 implicit nullable parameter sed -i 's/\([(,] *\)callable \$validation = null/\1?callable $validation = null/' "$F" # Fix 2: cmdExec() never closes processes -> zombies grep -q 'proc_close($proc)' "$F" || \ sed -i '/Loadingtime/i\ foreach ($pipes as $p) { if (is_resource($p)) fclose($p); } proc_close($proc);' "$F" # Check grep -q '?callable \$validation = null' "$F" && echo "Fix 1 active" || echo "Fix 1 FAILED" grep -q 'proc_close($proc)' "$F" && echo "Fix 2 active" || echo "Fix 2 FAILED" php -l "$F" | grep -q "No syntax errors" && echo "Syntax OK" || echo "SYNTAX ERROR" After both fixes the tab loads instantly and no zombies remain. Use at your own risk. And as always: never run code from the internet that you don't understand or haven't checked yourself – this script runs as root! Keep a copy of the original file (e.g. cp functions.php functions.php.bak) before patching. Tested only on my setup (Unraid 7.3.2). I couldn't find a newer version or fork – if anyone knows a maintained alternative, I'd be happy to hear about it. Hope this helps someone. Cheers from Austria, wstone75

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.