When Addon Domain or DNS zone creation hangs in WHM, the issue is often backend locking rather than GUI instability.
Typical symptom
You may see:
- endless loading in domain/DNS operations
- no effective config change after submission
- pending restart chain not completing
What happens under the hood
cPanel domain/DNS operations usually trigger a hook chain:
- domain/zone scripts
- standardized hooks
- web service restart stage (
restartsrv_httpdor equivalent)
If any post-hook task stalls, the flow can stay locked.
Common root cause: active webcalls lock
File involved:
/var/cpanel/webcalls/.lock
It prevents concurrent conflicting actions. A stuck process can hold this lock and block new requests.
Important: deleting .lock without stopping the owner process is unsafe and usually temporary.
Remediation workflow
1) Find lock owner PID
lsof /var/cpanel/webcalls/.lock
or:
fuser /var/cpanel/webcalls/.lock
2) Inspect process before kill
ps -p PID -f
Confirm it is stalled (timeout/loop) and not a valid in-flight operation.
3) Release stalled process
kill -9 PID
Once owner PID is gone, lock clears and queue processing resumes.
Helpful diagnostic signal
Messages like:
Cpanel::FileUtils::Flock ... destroyed at global destruct! ... DestroyDetector.pm
often indicate lock cleanup failure due to abnormal process lifecycle.
Preventive practices
- Audit custom hooks in domain/DNS lifecycle.
- Monitor disk/inode pressure to avoid queue side effects.
- Keep periodic cleanup jobs for logs/trash.
- Tune timeout for external integrations in hook chain.
.lock incidents in cPanel are usually process-concurrency failures. The robust fix is PID-first: identify owner, validate context, then release safely. This restores domain/DNS operations without introducing new inconsistencies.
This post is licensed under CC BY-NC.
Comments
Join the discussion below.
Comments are not configured yet. Add Cusdis settings in /assets/json/config/blog-comments-config.json.