Tình huống mà bất cứ developer nào cũng gặp trong đời
Gần đây, chúng tôi có refactor lại 1 số build script được viết từ lâu rồi. Từ chỗ chỉ muốn đổi A, chúng tôi thấy cần đổi cả B nữa, rồi ý muốn refactor lan sang cả C, cứ như vậy, hơn 1 tuần vẫn chưa kết thúc được.
Trong số đó, có 1 chỗ refactor liên quan đến encryption key cho database. Tức là chúng tôi không muốn để cái encryption key của database chình ình trong code, vì hacker rất dễ đọc được, nên chúng tôi encrypt cái key đó rồi lúc runtime mới decrypt cái key ra, rồi mới dùng key đã được giải mã để mở database.
Buồn cười là: Khi QA test, tất cả các máy đều chạy được, chỉ trừ 1 máy bị crash ở đoạn check size của cái key. Rất khó hiểu, chúng tôi thử đủ kiểu, lúc thì fix cái này, lúc thì fix cái kia, có lần chạy được, có lần lại không chạy được. Issue thoắt ẩn thoắt hiện sau mỗi lần build, khiến chúng tôi không xác định được root cause là gì. Vì phải build trên server mới test ra lỗi, còn bản build dưới máy chúng tôi thì không bao giờ ra lỗi, thế nên thời gian chờ build cũng lâu, lại càng khó để xác định được root cause.
Xong đâu đó khoảng 3 - 4 ngày, chúng tôi không gặp lại issue nữa, dù có revert code về những bản đã từng bị lỗi. Và vì không gặp issue nữa, chúng tôi cũng không biết vì sao lỗi không còn.

Comments
Post a Comment