Document Conflict Error diagnosis

One issue that has caused some confusion is the “Documents Conflict” popup. This is designed to provide more insight into what has caused the conflict, and to allow a backend integration to give the user information about mismatching timestamps to allow them to better understand the issue

In time we expect WOPI-like backend implementors to add more details such as both mismatching timestamps, user information about a conflicting upload and more. So this is a first start to improve and add debugging here.

Better healthchecking with new end-points

Recently, we ran into an interesting issue where the Collabora Online service was struggling after running out of disk space. Unfortunately, the server itself was still alive and continued answering web requests efficiently, making it difficult for monitoring systems to detect the problem and alert administrators.

To address this, I had the chance to add two new health check endpoints, /livez and /readyz, in this commit:

https://github.com/CollaboraOnline/online/commit/8b0fc9b0c6b91bc248b644166553a492e0b57c76

These endpoints reuse the standard Kubernetes naming conventions and output formats, and both support an optional ?verbose parameter.

Liveness check

curl -k https://mycoolserver/livez?verbose

Output:

[+] ping ok
[+] forkit ok

livez check passed

The liveness check verifies whether the server is alive and responsive.

Readiness check

curl -k https://mycoolserver/readyz?verbose

Output:

[+]
ping ok
[+] forkit ok
[+] shutdown ok
[+] kit-spares ok
[+] disk-space ok
[+] memory ok
[+] connections ok
[+] documents ok

readyz check passed

The readiness check provides a more comprehensive view of whether the server is healthy enough to accept and handle new traffic.

More documentation and implementation details are available here: https://gerrit.collaboraoffice.com/plugins/gitiles/online/+/main/wsd/healthchecks.txt

Leave a Reply

Get the latest updates to your inbox