Closed lociii closed 1 month ago
I'm using Django and django-extensions. I started getting reloads on every request. After doing some checks I was able to find that it started happening after upgrading werkzeug from 3.0.3 to 3.0.4
I'm using Django and django-extensions. I started getting reloads on every request. After doing some checks I was able to find that it started happening after upgrading werkzeug from 3.0.3 to 3.0.4
I am also having the same problem
I am using werkzeug==3.0.4 watchdog==5.0.2
After a request i get bogus changes detected
backend-1 | * Detected change in '/backend/common/schema.py', reloading backend-1 | * Detected change in '/usr/local/lib/python3.12/site-packages/drf_spectacular/openapi.py', reloading backend-1 | * Detected change in '/usr/local/lib/python3.12/site-packages/drf_spectacular/utils.py', reloading backend-1 | * Detected change in '/usr/local/lib/python3.12/site-packages/drf_spectacular/generators.py', reloading backend-1 | * Detected change in '/usr/local/lib/python3.12/site-packages/drf_spectacular/views.py', reloading backend-1 | * Detected change in '/usr/local/lib/python3.12/site-packages/rest_framework/views.py', reloading backend-1 | * Detected change in '/usr/local/lib/python3.12/site-packages/django/views/generic/base.py', reloading backend-1 | * Detected change in '/usr/local/lib/python3.12/site-packages/django/views/decorators/csrf.py', reloading backend-1 | * Detected change in '/backend/common/authentication.py', reloading postgres-1 | 2024-09-17 08:08:21.866 UTC [104] LOG: could not receive data from client: Connection reset by peer backend-1 | * Restarting with watchdog (inotify)
Opened a PR but needs feedback on direction: https://github.com/pallets/werkzeug/pull/2954#issuecomment-2396929700
Opened a PR but needs feedback on direction: #2954 (comment)
I already opened one over a month ago. Not much progress from the maintainer side so far.
https://github.com/pallets/werkzeug/pull/2947
Thanks @lociii - much better solution. Closing mine
@ThiefMaster @davidism
This issue breaks runserver_plus
from django-extensions
for everyone not pinning watchdog to 4.x and using the file system events
reload mechanism.
It would be really appreciated if my simple fix could be merged and released.
Thank you very much @lociii for reporting the issue :) I enforced watchdog version to be <5 in my project (using functions-framework) to fix it temporarily and move forward
What's the issue?
watchdog 5.0 introduced a new signal that is fired when a file gets closed without any changes written.
This leads to random reloads when something opens and closes a file.
opened
events are already ignored, so we should ignore the newclosed_no_write
events too.How to reproduce?
Update to watchdog 5.0+ and wait for the reloads to come in.
What's the expected behavior?
Werkzeug should only reload if there are actual changes to the code base.
Environment