|
TROUBLESHOOTING GUIDE CloudLinux OS 9: kmod-lve / Kernel Mismatch cPanel & WHM Servers — Production Environment Fix May 2026 | ElySpace IT Services LLP |
Overview
This guide documents the diagnosis and resolution of a kmod-lve kernel module mismatch on a CloudLinux OS 9 cPanel/WHM production server. The issue occurs when the CloudLinux testing repository pushes a newer kmod-lve build that requires kernel symbols not present in the currently installed kernel.
Symptoms
-
CloudLinux Manager Dashboard shows: Reboot your system to update the kernel.
-
kmod-lve update fails with dependency resolution errors from cloudlinux-updates-testing repo.
-
cPanel PackMan throws: Error: current running kernel is NOT supported.
-
lsmod shows no kmodlve module loaded.
-
modprobe kmodlve fails with: Module kmodlve not found in directory.
Error Messages Reference
DNF Update Error
Error: Problem: cannot install the best candidate for the job
- nothing provides kernel(out_of_line_wait_on_bit) = 0x57c4dba5
needed by kmod-lve-2.1-59.el9.x86_64 from cloudlinux-updates-testing
- nothing provides kernel(wake_up_bit) = 0xb93ba240
needed by kmod-lve-2.1-59.el9.x86_64 from cloudlinux-updates-testing
cPanel PackMan Error
Cpanel::PackMan::_log_lines_then_die called at ...
Error: current running kernel is NOT supported
modprobe Error
# modprobe kmodlve
modprobe: FATAL: Module kmodlve not found in directory
/lib/modules/5.14.0-611.5.1.el9_7.x86_64
Root Cause
|
ROOT CAUSE |
CloudLinux pushed kmod-lve 2.1-59 to the cloudlinux-updates-testing repository. This build was compiled against a newer kernel than el9_7 and requires kernel symbols (out_of_line_wait_on_bit, wake_up_bit) that do not exist in the currently running kernel. No stable kmod-lve build for el9_7 exists yet in the production CloudLinux repository. |
The installed kmod-lve 2.1-40 only has module files for el9_5 kernels:
/lib/modules/5.14.0-503.23.2.el9_5.x86_64/weak-updates/lve-2.1-40.el9/kmodlve.ko
/lib/modules/5.14.0-503.11.1.el9_5.x86_64/extra/lve-2.1-40.el9/kmodlve.ko
# NO kmodlve.ko exists for 5.14.0-611.5.1.el9_7.x86_64 <-- running kernel
Diagnosis Steps
Run the following commands in order to confirm the issue:
Step 1 — Check Running vs Installed Kernel
uname -r
rpm -q kernel | sort -V
Expected output confirming the issue (running kernel is the latest — reboot won't help):
5.14.0-611.5.1.el9_7.x86_64 <-- running
kernel-5.14.0-362.8.1.el9_3.x86_64
kernel-5.14.0-503.23.2.el9_5.x86_64
kernel-5.14.0-611.5.1.el9_7.x86_64 <-- latest installed = same
Step 2 — Check if kmodlve is Loaded
lsmod | grep kmod
modprobe kmodlve && lsmod | grep kmod
Step 3 — Check Module Files
find /lib/modules/ -name 'kmodlve*'
If no path contains your running kernel version, the module file is missing — this confirms the mismatch.
Step 4 — Identify the Bad Repo
dnf repolist enabled | grep testing
If cloudlinux-updates-testing appears, this is the source of the bad kmod-lve build.
Solution
Fix 1 — Disable the Testing Repository (Required)
|
RECOMMENDED |
This is the primary fix. The testing repo should never be enabled on a production cPanel server. |
# Disable the testing repo
dnf config-manager --set-disabled cloudlinux-updates-testing
# Verify it is gone
dnf repolist enabled | grep testing
# Run normal updates
dnf update -y
Fix 2 — Boot Older Kernel with kmodlve Support (If LVE Must Be Active)
If LVE/CageFS is required immediately on this server, boot into the el9_5 kernel where kmodlve is available:
# Set el9_5 kernel as default boot
grubby --set-default=/boot/vmlinuz-5.14.0-503.23.2.el9_5.x86_64
# Verify default
grubby --default-kernel
# Reboot
reboot
# After reboot — confirm kernel and module
uname -r
lsmod | grep kmod
|
NOTE |
After booting el9_5, the running kernel will show 5.14.0-503.23.2.el9_5.x86_64 and kmodlve will load successfully from the existing module file. |
Fix 3 — Clean Stale cPanel PackMan Log Files
A secondary error occurs when cPanel PackMan fails to write log files due to a stale .tmp file. Clean it up:
# List stale tmp files
ls /usr/local/cpanel/logs/packman/errors/.tmp.*
# Remove them
rm -f /usr/local/cpanel/logs/packman/errors/.tmp.*
Fix Options Comparison
|
Option |
When to Use |
|
Disable testing repo (Fix 1) |
Always — do this on every production server |
|
Boot el9_5 kernel (Fix 2) |
When LVE/CageFS must be active immediately |
|
Wait for stable release (Fix 2 alternative) |
When LVE is not critical and reboot is not possible |
|
Clean PackMan tmp files (Fix 3) |
Always — stops log noise in WHM |
Verification After Fix
After applying the fix, verify the resolution:
# 1. Confirm running kernel
uname -r
# 2. Confirm kmodlve loaded
lsmod | grep kmod
# Expected: kmodlve 17657856 7
# 3. Confirm testing repo is disabled
dnf repolist enabled | grep testing
# Expected: (no output)
# 4. Confirm kmod-lve is stable version
rpm -q kmod-lve
# Expected: kmod-lve-2.1-40.el9.x86_64
Long-Term Resolution
CloudLinux will eventually release a stable kmod-lve build for el9_7 through the main cloudlinux-updates repository. When that happens:
-
Confirm the update comes from the stable repo (not testing): dnf check-update kmod-lve
-
Update kmod-lve: dnf update kmod-lve -y
-
Switch back to el9_7 kernel: grubby --set-default=/boot/vmlinuz-5.14.0-611.5.1.el9_7.x86_64
-
Reboot and verify: reboot, then uname -r and lsmod | grep kmod
Why This Happened
The cloudlinux-updates-testing repository was enabled on this production server — likely during a previous troubleshooting session or server setup. This repo contains pre-release builds that are not yet guaranteed to be compatible with all kernel versions currently shipping on CloudLinux OS 9 systems.
The testing repo pushed kmod-lve 2.1-59 which was built against a future kernel version. Since CloudLinux had not yet released a matching kernel for el9_7 through the stable channel, the module files for the running kernel were never installed, leaving LVE non-functional.
|
BEST PRACTICE |
Never enable cloudlinux-updates-testing on production cPanel/WHM servers. Use it only on staging or test environments with explicit intention. |
References
-
CloudLinux KB: kmod-lve issues on CloudLinux OS 9 — cloudlinux.zendesk.com
-
CloudLinux KB: LVE load fail — could not insert kmodlve: Cannot allocate memory
-
cPanel Documentation: Package Manager (PackMan) — docs.cpanel.net
-
GRUB2 Documentation: grubby default kernel configuration — access.redhat.com
Quick Reference Cheatsheet
|
Command |
Purpose |
|
uname -r |
Show running kernel version |
|
rpm -q kernel | sort -V |
List all installed kernels |
|
find /lib/modules/ -name 'kmodlve*' |
Find kmodlve module files |
|
lsmod | grep kmod |
Check if kmodlve is loaded |
|
dnf repolist enabled | grep testing |
Check if testing repo is active |
|
dnf config-manager --set-disabled cloudlinux-updates-testing |
Disable testing repo |
|
grubby --set-default=/boot/vmlinuz-<version> |
Set default boot kernel |
|
grubby --default-kernel |
Show current default boot kernel |
|
rm -f /usr/local/cpanel/logs/packman/errors/.tmp.* |
Clean stale PackMan tmp files |
|
dnf check-update kmod-lve |
Check for kmod-lve updates |
Related Articles
Need Expert Help with WHMCS?
I help hosting companies build, configure, and scale their WHMCS installations.