Build Bị Treo Ở Một Điểm

Progress dừng giữa chừng và không tiến triển.

buildstuck

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_limit lê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:

  1. SL Migrations → Packages → click Cancel trên package đó
  2. Đợi 1-2 phút để plugin xử lý cancel
  3. Nếu vẫn không xong, có thể xóa lock file slm_pro_lock.bin trong folder plugin (qua FTP/SFTP)
  4. Tạo backup mới

Tham khảo