Logging in the legacy protocol is blocking on the sender of the logs #935

Open
opened 2025-07-28 00:20:03 +00:00 by jade · 1 comment
Owner

This is unlikely to get fixed any time soon for like, several reasons (synchronization of the things happening on the daemon socket being chief among them), but it must be noted that the legacy protocol has a blocking logger, and the replacement protocol will not do this obviously. It's as yet unclear to me whether logging in general should have backpressure or lose events (probably the former is preferable, but with a buffer).

This issue is thus unlikely to be actionable; it's just a note that it's a known problem.

Emilazy says on matrix that the correct solution doesn't involve losing logs, so some backpressure is thus likely necessary.

This is unlikely to get fixed any time soon for like, several reasons (synchronization of the things happening on the daemon socket being chief among them), but it must be noted that the legacy protocol has a blocking logger, and the replacement protocol will not do this obviously. It's as yet unclear to me whether logging in general should have backpressure or lose events (probably the former is preferable, but with a buffer). This issue is thus unlikely to be actionable; it's just a note that it's a known problem. Emilazy says on matrix that the correct solution doesn't involve losing logs, so some backpressure is thus likely necessary.
Owner

backpressure is absolutely mandatory or we're going to kill perf. synchronization at the end of each operation is thus also mandatory or we may hold log items of operations not behaving quite as they should back for very long, eg during IFD store operations. (recall that printError is a thing that's used liberally for error reporting)

backpressure is absolutely mandatory or we're going to kill perf. synchronization at the end of each operation is thus also mandatory or we may hold log items of operations not behaving quite as they should back for very long, eg during IFD store operations. (recall that printError is a thing that's used liberally for error reporting)
Sign in to join this conversation.
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: lix-project/lix#935
No description provided.