Chuyện tôi sẽ nói hôm nay từng là vấn đề lớn trong quá khứ. Có một lỗi (bug) ở phiên bản 4.X của LibreOffice, dẫn đến các lỗi lưu (save errors) kỳ lạ, khiến người dùng mất dữ liệu. Bây giờ, vì đây là chuyện quá khứ, bạn có thể không coi nó liên quan đến việc sử dụng hàng ngày nữa. Nhưng nếu nó xảy ra lại, và LibreOffice của bạn không thể lưu các thay đổi bạn làm cho tài liệu thì sao?
Thực tế, tôi đang làm việc trên một file trên máy chủ có LibreOffice 4.X, và vì một lý do nào đó, autosave (tự động lưu) khiến file lock (file khóa) biến mất, sau đó chương trình bắt đầu than phiền về lỗi lưu. Cụ thể hơn: lỗi khi ghi sub-document content.xml. Nếu bạn bao giờ gặp chuyện này, làm sao để không mất dữ liệu?
Việc đơn giản trước
Đương nhiên, bạn nên sao chép dữ liệu vào trình soạn thảo văn bản (text editor) trước hết. Sau đó, thử khởi chạy một instance LibreOffice khác và/hoặc tạo file mới rồi sao chép nội dung vào, sau đó lưu và tiếp tục. Sau đó, thử lưu file với tên mới (Save as). Nếu các phương pháp này thất bại, bạn cần cân nhắc một chút "hackery" (kỹ thuật can thiệp sâu).
File lock (File khóa)
LibreOffice tạo file lock khi bạn mở tài liệu, để ngăn ghi đè nhiều lần vào cùng một file. Việc đơn giản thực sự. File lock có định dạng: .~lock.<tên>.odt#. Vì chúng bắt đầu bằng dấu chấm, bạn có thể không thấy chúng trong trình quản lý file Linux, nhưng chúng chắc chắn có đó.
File này có thể bị mất – nếu autosave hoặc bug khác khiến nó biến mất, và trong trường hợp đó, LibreOffice có thể khó khăn trong việc làm nhiệm vụ và commit thay đổi xuống đĩa. Nếu điều này xảy ra, bạn có thể cân nhắc sau đây – tạo một file lock giả (dummy). Nếu bạn băn khoăn về định dạng, hãy mở một tài liệu LibreOffice ngẫu nhiên cùng định dạng với file bị lỗi, ví dụ ODT, sau đó sao chép file lock của nó và đổi tên để khớp với file bị lỗi lưu. Thực tế, hãy bắt đầu bằng việc sao chép file lock từ tài liệu khác.
Bị khóa bởi (Locked by)
Tôi thử cách này, và đúng là đã tiến triển trong vấn đề của mình. Bây giờ, LibreOffice than phiền file bị khóa để chỉnh sửa. Bạn có thể mở file như bản sao chỉ đọc (read-only), nhưng sẽ mất thay đổi. Hoặc mở một bản sao, có thể hoạt động. Không đảm bảo.
Bạn cần chú ý tên người (người dùng) đã khóa file, vì điều này sẽ quyết định xem bạn có thể dùng file lock hay không, và xem bạn có quyền lưu file hay không. Ban đầu, bạn có thể thấy lỗi sau: Đối tượng không thể truy cập do quyền người dùng không đủ. Điều này vì chúng ta vừa sao chép file lock, và thông tin bên trong có thể không khớp với những gì chúng ta cần hoặc muốn.
Định dạng file lock
Hãy phân tích nội dung file lock. Chúng là file văn bản đơn giản, bạn có thể mở trong bất kỳ trình soạn thảo văn bản nào và làm các sửa đổi cần thiết. Ví dụ, bạn có thể thấy như sau:
Dedoimedo,HOST/roger,HOST,03.04.2016 17:10,file:///C:/Users/roger/AppData/Roaming/LibreOffice/4;
Chúng ta có tên người khóa file, hostname, username, dấu thời gian (timestamp), và đường dẫn đến profile LibreOffice. Dữ liệu sẽ khác nhau nhẹ trên Windows và Linux, nhưng bạn nắm ý tưởng. Nếu không, hãy email cho tôi.
Để có thể dùng file lock từ tài liệu khác, bạn cần đảm bảo tên người dùng, profile và tất cả chi tiết khác khớp với chủ sở hữu của tài liệu bị lỗi lưu. Thay đổi cho phù hợp, sau đó thử lưu file. Bạn nên ổn rồi. Thật đấy. Và bây giờ bạn biết cách tạo file lock giả nếu bao giờ gặp lại bug này.
Khôi phục (Recovery)
Nếu bằng cơ hội nào đó LibreOffice rơi vào vòng lặp điên rồ và bắt đầu lưu file, rồi thất bại, vì có thể không có quyền đúng, bạn có thể phải kill chương trình và sau đó khôi phục tài liệu. Nhưng khi đó, bạn rất có thể mất các thay đổi, điều đó không thực sự giúp ích cho chúng ta.
Kết luận
Tóm lại, nếu bạn bao giờ gặp lỗi lưu, hãy kiểm tra xem có file lock hiện diện không, nó rất có thể không có. Tạo file lock mới – hoặc sao chép một cái, nhưng hãy chắc chắn tuân thủ quy ước đặt tên đúng, và thêm đúng chi tiết vào file lock để bạn có quyền lưu file. Điều này sẽ giúp bạn thoát khỏi tình trạng bế tắc (deadlock) và hy vọng bảo toàn toàn bộ công sức của bạn.
Dù sao, nếu bạn đọc trực tuyến, có nhiều đề cập đến cập nhật phần mềm. Chắc chắn cách đó hiệu quả, nhưng nó không giúp những người đang gặp vấn đề thực tế ngay bây giờ. Trong trường hợp này, giải pháp là giữ bình tĩnh và "diệt trừ" … tôi muốn nói là tìm hiểu cách LibreOffice hoạt động và lừa nó nghĩ mọi thứ đều ổn. File lock, quyền hạn. Đó là cốt lõi. Hy vọng hướng dẫn nhỏ này đã cứu một số bạn khỏi rắc rối. Đó là tất cả.
Chào.