app Handle missing log files gracefully on first launch#1508
Open
DSingh0304 wants to merge 1 commit intozulip:mainfrom
Open
app Handle missing log files gracefully on first launch#1508DSingh0304 wants to merge 1 commit intozulip:mainfrom
DSingh0304 wants to merge 1 commit intozulip:mainfrom
Conversation
On a fresh install, the Logger constructor schedules trimLog() via process.nextTick before the write stream has created the log file. This causes an unhandled ENOENT promise rejection for every logger instance, flooding the terminal with confusing error messages. Add a try catch around the file read in trimLog() so that missing files are silently skipped. If the file does not exist yet, there is nothing to trim. Fixes zulip#1281.
Collaborator
Author
|
Ready for review! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Fixes: #1281
Description
This PR resolves an issue where the application floods the terminal with
UnhandledPromiseRejectionWarning: ENOENTerrors during its first launch (fresh install).Root Cause: The
Loggerconstructor inapp/common/logger-util.tsschedules a log-trimming operation (trimLog) to run viaprocess.nextTick. On a fresh install, this operation frequently attempts to read log files before the application's write stream has physically created them on disk, leading to multiple "File not found" errors in the terminal.Technical Changes
try/catchblock around thefs.promises.readFileoperation inapp/common/logger-util.ts.Screenshots and screen captures:

Platforms this PR was tested on:
Self-review checklist
rm -rf ~/.config/Zulip).