Thêm vào như một câu trả lời dựa trên nhận xét của bạn.
Giải pháp là thêm lookupcache=nonevào tùy chọn mount nfs của bạn.
Điều gì xảy ra là lần đầu tiên khách hàng của bạn đọc tệp, nó thực hiện tra cứu NFS để lấy tệp NFS. Sau đó, nó lưu trữ tệp NFS và khi bạn quay lại để mở tệp, nó sẽ sử dụng bộ đệm. Thông thường, đây không phải là vấn đề vì khi tệp được cập nhật, tệp của nó vẫn giữ nguyên. Nhưng vì một số lý do, tập tin cũ bị xóa và một tập tin mới được tạo ra (hoặc được đổi tên, hoặc một cái gì đó không phải là cùng một tập tin).
Bây giờ, thông thường, đây không phải là vấn đề vì khi máy khách của bạn cố mở tệp tin không có ở đó, nó sẽ gặp lỗi từ máy chủ và thực hiện một tra cứu khác để lấy tệp mới. Nhưng vì một số lý do, máy chủ NFS cho phép máy khách mở fileid cũ đó. Có lẽ một khách hàng khác đã mở tệp và vì vậy nó chưa bị xóa, tôi không biết.
Trong mọi trường hợp, cách giải quyết là yêu cầu khách hàng luôn thực hiện một nfslookup trước khi mở tệp bằng cách sử dụng tùy chọn gắn kết nfs lookupcache=none. Nhược điểm của việc này là nó có thể tốn kém nếu bạn thường xuyên mở tệp vì nó tăng thêm lưu lượng truy cập cho máy chủ NFS.
ls -itrên máy khách trước khi chỉnh sửa tệp trên máy chủ, sau đó lại tiếp tục. Xem nếu các số thay đổi. Nếu họ làm điều đó bởi vì máy chủ đang thay thế tệp và máy khách không nhận thấy điều này cho đến khi nó giải cứu thư mục. Nếu vậy hãy thử thiết lập tùy chọn gắn kếtlookupcache=nonevà xem nếu hành vi thay đổi.