Fix spurious profiler header-mismatch warning on empty log file - #14
Merged
Conversation
_setup_logger treated an empty first line as a header mismatch, so it warned and unlinked the file on every process start. Because the header is only written at DEBUG level while FileHandler created the file eagerly, a run with profiling off left a zero-byte log behind, making the condition self-perpetuating. Guard the comparison with `if not first_line` (matching ezmsg/util/profiler.py) and construct the handler with delay=True so no empty file is created when nobody asked for profiling. Fixes #12 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
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 #12.
_setup_loggertreated an empty first line as a header mismatch, so it warned — misleadingly, about an ezmsg version mismatch — and unlinked the file on every process start. Since the header is only written at DEBUG level whilelogging.FileHandlercreates the file eagerly, a run with profiling off leaves a zero-byte log behind, so the condition perpetuates itself forever.if not first_line, matchingezmsg/util/profiler.py.delay=True, so a run with profiling disabled no longer creates an empty file at all.Tests: two regression tests — an empty log file produces no
ezmsgwarning and still gets the header written; profiling at INFO leaves no file on disk. The latter saves/restores the sharedezprofilelogger level, since_setup_loggermutates global logging state that the existing decorator tests rely on.Verified against the repro in the issue: the empty-file run is silent, and a fresh run with profiling disabled creates nothing. Full suite passes (210 passed, 1 skipped).
🤖 Generated with Claude Code