fix(backend): improve error handling in message-list.php sub-process #1470
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
🍰 Pullrequest
PR #1452 introduced a separate process for concurrently loading messages. In my use case, where cypht runs standalone in a docker container (compiled using the official cypht Dockerfile), most error messages and exceptions leave no traces in the logs, even if using the development versions of php.ini (also supplied by the base docker image). This makes it very hard to debug if things go wrong in message_list.php
This PR tries to remedy this by wrapping the entire contents of message_list.php in a try/catch clause, and then piping the resulting error messages to the parent process via stderr. This way, errors in the subprocess leave understandable log entries.
According to my (admittedly quite limited) research, there are negligible performance implications of wrapping the code in a try block, as long as no exceptions are thrown (performance hit of try/catch is supposed to be only due to the cost of handling the exception).