Build Bị Treo Ở Một Điểm
Triệu chứng
Progress bar dừng ở X% trong thời gian dài. Status vẫn là Building. Page không update.
Debug
1. Kiểm tra log build
Trong SL Migrations → Packages, click vào package đang build → xem log realtime. Dòng cuối cho biết plugin đang stuck ở phase nào:
- DATABASE — đang dump SQL
- ARCHIVE — đang nén file
- STORAGE — đang upload sang cloud
2. Kiểm tra database
Có thể có query MySQL chạy lâu giữ lock. Nếu có quyền vào server, kiểm tra process list của MySQL — nếu thấy query stuck quá 60s liên quan đến site DB → có thể đang là build dumping.
Nguyên nhân thường gặp
Phase ARCHIVE stuck
- File quá lớn: một file > 1GB (database dump cũ, media nặng) → nén lâu
- Disk slow: I/O bottleneck
- Memory leak: PHP process ngốn RAM → OS swap → cực chậm
Fix:
- Loại trừ file lớn khỏi backup
- Đổi sang DupArchive engine (chunked, không load hết vào RAM)
- Tăng
memory_limitlên 1-2 GB
Phase DATABASE stuck
- Table lock: MySQL lock table → dump không lấy được data
- Transaction lớn: query đang chạy giữ row lock
Fix:
- Đợi query khác hoàn thành rồi build lại
- Build vào giờ thấp điểm (3-5h sáng)
- Trong Settings → Package → Database, đổi mode dump nếu cần
Phase STORAGE stuck
- Upload sang storage cloud chậm hoặc timeout
- Network drop
Fix:
- Test connection sang storage qua Tools page
- Tạm thời backup local-only, upload thủ công sau
- Tăng timeout cho cURL trong
php.ini
Force restart build
Nếu build stuck quá 30 phút không tiến triển:
- SL Migrations → Packages → click Cancel trên package đó
- Đợi 1-2 phút để plugin xử lý cancel
- Nếu vẫn không xong, có thể xóa lock file
slm_pro_lock.bintrong folder plugin (qua FTP/SFTP) - Tạo backup mới