Sửa xong workflow, máy vẫn chạy bản cũ 358 ngày

Ảnh bìa: sửa workflow xong máy vẫn chạy bản cũ 358 ngày

Bài viết do Nguyễn Nhật Ánh Dương thực hiện, biên soạn theo Chính sách nội dung của Marketing365. Cập nhật lần cuối .

Nội dung
  1. “Đang bật” không nói lên bản nào đang chạy
  2. Quét cả 211 luồng: ba luồng đang lệch
  3. Tôi suýt kết luận “hai trong ba là báo động giả”
  4. Chuyện này chạy được bao lâu mà không ai biết
  5. Cách kiểm mất ba mươi giây
  6. Ba thứ tôi mang ra khỏi buổi này

Ngày 13/08/2026 tôi sửa hai luồng tự động lo việc dịch bài sang tiếng Anh. Công cụ báo đã áp bốn thay đổi, không cảnh báo gì, luồng vẫn hiện “đang bật”. Tôi đóng máy. Hôm sau mở ra xem thì cả hai vẫn chạy y như trước khi sửa.

Không phải sửa hỏng. Sửa xong rồi, lưu xong rồi — chỉ là thứ đang chạy không phải thứ tôi vừa lưu. Ngày 14/08/2026 tôi quét lại toàn bộ 211 luồng trên máy chủ để xem chuyện này còn ở đâu nữa. Kết quả bên dưới, kèm cả lần tôi kết luận sai giữa chừng.

“Đang bật” không nói lên bản nào đang chạy

Chỗ tôi hiểu sai nằm ở chữ “bật”. Một luồng tự động ở đây có hai lớp trạng thái tách rời nhau:

  • Bản lưu — thứ hiện ra khi mở luồng lên xem. Sửa gì, lưu gì thì nằm ở đây.
  • Bản đang chạy — bản được đóng dấu ở lần bật gần nhất. Đây mới là thứ nổ khi tới giờ.

Sửa và lưu chỉ đụng vào lớp thứ nhất. Muốn lớp thứ hai đổi theo thì phải đóng dấu lại. Cờ “đang bật” chỉ trả lời câu “luồng này có chạy không”, nó không trả lời câu “chạy bản nào”. Cả ba luồng lệch mà tôi tìm được hôm nay đều đang bật, và cả ba đều chạy đều đặn.

Dấu hiệu duy nhất là hai mã phiên bản: mã của bản lưu và mã của bản đang chạy. Trùng nhau là ổn, lệch nhau là thứ đang chạy không phải thứ vừa sửa.

mã bản lưu:  d9a94efb-...
mã bản chạy: 22acd26e-...   ← lệch

Quét cả 211 luồng: ba luồng đang lệch

Máy chủ này có 211 luồng, trong đó 42 đang bật và 15 đã cất kho. Tôi lấy về từng luồng rồi so hai mã phiên bản.

Ba luồng đang bật có bản lưu khác bản chạy. Với luồng đang tắt thì chỉ số này vô nghĩa — tắt rồi thì chẳng có bản nào chạy để mà so — nên tôi bỏ hết ra ngoài. Hai luồng dịch tiếng Anh sửa hôm 13/08 giờ đã trùng mã, tức là thao tác đóng dấu lại hôm đó có ăn.

Bảng: ba luồng có bản lưu khác bản chạy và năm phần của node cần đối chiếu
Đối chiếu bản lưu với bản đang chạy của 42 luồng đang bật, quét ngày 14/08/2026 trên máy chủ n8n của tôi.

Tôi suýt kết luận “hai trong ba là báo động giả”

Tìm ra ba luồng lệch rồi, tôi đi so xem chúng lệch ở đâu. Cách so của tôi: lấy từng node ở bản lưu, tìm node cùng tên ở bản chạy, đối chiếu phần tham số đã điền.

Kết quả: hai trong ba luồng có tham số giống hệt nhau, số node bằng nhau, dây nối giống nhau. Tôi đã định ghi vào sổ là “mã lệch nhưng nội dung không lệch, không đáng lo”.

Kết luận đó sai. Nó sai không phải vì dữ liệu sai mà vì tôi chỉ so đúng một phần của node — phần tôi tiện lấy ra nhất. Một node còn mang theo mấy thứ khác: nó thuộc loại nào, nó dùng mã đăng nhập nào, nó đang bật hay đang tắt, và cấu hình chung của cả luồng. Tôi không đụng tới mấy phần đó.

So lại cho đủ thì ra thế này:

  • Luồng báo lỗi: bản lưu gắn một mã đăng nhập, bản đang chạy gắn mã khác. Nghĩa là cảnh báo lỗi mấy tuần qua đi ra bằng đường tôi tưởng đã thay.
  • Luồng gửi ảnh: node nhận tin ở bản lưu và ở bản chạy thuộc hai gói cài đặt khác nhau, cộng thêm hai mã đăng nhập khác nhau.
  • Luồng chatbot: sáu node tôi đã bật lại ở bản lưu vẫn nằm tắt ở bản chạy.

Cấu hình chung còn buồn cười hơn: ở cả hai luồng “sạch”, bản đang chạy hoàn toàn trống phần cấu hình, còn bản lưu có đủ. Nếu tôi dừng ở bước so tham số, tôi sẽ đi ra với một tờ giấy khám sức khoẻ trắng tinh cho một cỗ máy đang chạy sai.

Đây đúng kiểu vấp tôi từng ghi lại trong bài ba cách đếm bài đăng trễ đều trượt: chọn một dấu vết dễ lấy rồi coi nó là toàn cảnh.

Chuyện này chạy được bao lâu mà không ai biết

Luồng chatbot là ca lâu nhất. Bản đang chạy của nó được đóng dấu ngày 21/08/2025 — 358 ngày trước ngày tôi đo. Bản lưu gần nhất là ngày 10/03/2026, tức bản sửa đó nằm im 157 ngày mà chưa từng được áp.

Nói cho công bằng: bản đang chạy của luồng đó do một đợt nâng cấp hệ thống tạo ra chứ không phải do tôi bấm đóng dấu. Nên phần lệch của riêng nó không hẳn là lỗi thao tác của tôi. Hai luồng còn lại thì không có lối thoát đó.

Nhật ký chạy trên máy này chỉ giữ khoảng 10 ngày, nên tôi không đếm ngược xa hơn được. Trong 10 ngày đó, hai luồng lệch đã chạy 31 lượt — luồng báo lỗi 20 lượt, luồng chatbot 11 lượt. Không lượt nào báo lỗi. Tất cả đều chạy bằng bản cũ.

Đó là chỗ khó chịu nhất của loại hỏng này: nó không tạo ra triệu chứng. Luồng vẫn nổ đúng giờ, vẫn ra kết quả, vẫn xanh. Chỉ là ra kết quả theo bản cũ.

Cách kiểm mất ba mươi giây

Không cần công cụ gì đặc biệt. Lấy thông tin chi tiết của luồng về, so hai trường mã phiên bản. Trùng thì thôi, lệch thì đóng dấu lại rồi so lần nữa cho chắc.

1. lấy chi tiết luồng  → so mã bản lưu với mã bản chạy
2. lệch → đóng dấu lại (publish)
3. lấy lại lần nữa     → hai mã phải trùng

Bước 3 là bước tôi hay bỏ, và là bước duy nhất chứng minh được việc sửa đã có hiệu lực. Hôm 13/08 tôi làm đủ ba bước cho hai luồng dịch tiếng Anh, hôm nay quét lại thì cả hai vẫn trùng mã — cách này đứng được qua thời gian, không phải trùng hợp một lần.

Ba thứ tôi mang ra khỏi buổi này

  • Một hệ thống có nhiều lớp “đã lưu” thì “lưu thành công” không đồng nghĩa với “đang chạy”. Phải tìm cho ra trường nào nói về bản đang chạy, và đọc đúng trường đó.
  • Công cụ báo thành công là bằng chứng yếu. Nó chỉ nói lệnh đã được nhận, không nói kết quả đã tới nơi cần tới.
  • Khi so hai thứ để kết luận “giống nhau”, phải kiểm xem mình có bỏ sót phần nào không. Lần này tôi so một phần và suýt tuyên bố cả cỗ máy sạch sẽ.

Tôi chưa đóng dấu lại ba luồng đó trong lúc viết bài này. Hai luồng Zalo là việc cũ không còn dùng cho trang, còn luồng báo lỗi thì phải xem lại mã đăng nhập nào mới đúng trước khi áp — áp nhầm thì cảnh báo lỗi im luôn, và đó là thứ tệ hơn cả bản cũ. Cùng một họ với chuyện làm xong một tệp cho AI đọc mà không ai mở: làm rồi không kiểm thì coi như chưa làm.

Có thể bạn thích

Để lại bình luận