Fix omnidev restart loop on Linux from non-mutating file access events - #4330
Open
Leemoonsoo wants to merge 1 commit into
Open
Fix omnidev restart loop on Linux from non-mutating file access events#4330Leemoonsoo wants to merge 1 commit into
Leemoonsoo wants to merge 1 commit into
Conversation
Signed-off-by: Lee moon soo <moonsoo.lee@databricks.com>
Leemoonsoo
force-pushed
the
fix/omnidev-ignore-access-events
branch
from
August 7, 2026 05:29
0d20c81 to
f086811
Compare
Contributor
|
@Leemoonsoo This PR is a Bug fix, Feature, or UI / frontend change but the Demo section is missing or only contains a placeholder. These change types require a screenshot or screen recording so reviewers can see the new behaviour without checking out the branch. Please update the Demo section with:
Use |
Author
|
Updated Demo video before / after |
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.
Related issue
Closes #4328
Summary
omnidev's file watcher treated every filesystem event on a watched.pypath as a source change — including non-mutating access/open events. Python imports at backend startup emit access events, so each freshly started backend immediately re-triggered a reload, producing a continuous restart loop (~every 2.6s) with no actual edits.create/modify/remove) indev/omnidev/src/watcher.rs, via a newis_mutating()helper; non-mutating events are skipped (and logged in debug mode).Test Plan
cargo test -p omnidev(focused binary suite): 38 tests pass, including two new regression tests —mutating_events_trigger_reloadandaccess_events_do_not_trigger_reload.omnidevno longer restarts the backend/host on startup or on file reads; reloads still fire on real edits.Demo
Before
omnidev-before.mov
After
omnidev-after.mov
Type of change
Test coverage
Coverage notes
Added unit tests covering event-kind classification (mutating vs. access). Manually verified on Ubuntu 24.04 that the restart loop is gone and that real edits still trigger a reload.
Changelog
Fix
omnidevrestart loop on Linux caused by non-mutating file access events