From: Andreas Politz <politza@hochschule-trier.de>
To: Michael Albinus <michael.albinus@gmx.de>
Cc: 26126@debbugs.gnu.org
Subject: bug#26126: 26.0.50; file-notify-rm-watch removes arbitrary watches
Date: Fri, 24 Mar 2017 21:44:28 +0100 [thread overview]
Message-ID: <877f3el80j.fsf@luca> (raw)
In-Reply-To: <87r31x9ulw.fsf@luca>
[-- Attachment #1: Type: text/plain, Size: 1546 bytes --]
Hey !
Below is a second version of the previous patch. It is somewhat
conservative, since neither did I attempt to
+ further simplify filenotify.el nor
+ handle differing masks in inotify.c .
--
I also thought about the test-cases and more generally about how to
develop a specification for this library, i.e. how do we want this to
behave. Do we have the desire that it works uniformly across all
participating back-ends ? And is that even possible ?
I think it is to easy to adapt the tests for each back-end, until they
succeed and thereby potentially masking actual bugs.
One way to go about this would be to write a series of definitive
unit-tests which specify the intended behavior. Then, allow them to fail
for a specific back-end, until someone has fixed potential bugs for it
and confirmed that the test succeeds. This would allow for an
incremental improvement on fairly solid grounds. I'm assuming that
people of the future are interested in improving their used back-end
(e.g. make kqueue watch directories properly, if that is possible).
Anyway, I was bored today, so I took a look at what events these
libraries actually produce, the result of which you may also find below.
Finally, I'm tempted to suggest to get rid of the flags argument of
file-notify-add-watch. As it is, things are already complicated enough
and we don't seem to have many people working on this. I think we could
make it backward-compatible to a certain degree. Note also, that many
file operations trigger both kinds of events anyway.
--
[-- Attachment #2: A patch --]
[-- Type: test/x-patch, Size: 19290 bytes --]
[-- Attachment #3: Type: text/plain, Size: 5 bytes --]
--
[-- Attachment #4: filenotify as is --]
[-- Type: text/plain, Size: 14598 bytes --]
inotify w32notify kqueue gfilenotify gvfs-monitor-dir inotifywait
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
file-create file created file created file skipped created file created file created file
deleted file deleted file deleted file attr-changed file attr-changed file
stopped file stopped file stopped file deleted file deleted file
stopped file stopped file
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
file-read file deleted file deleted file deleted file deleted file deleted file deleted file
stopped file stopped file stopped file stopped file stopped file stopped file
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
file-write file changed file changed file attr-changed file changed file changed file changed file
deleted file changed file changed file changed file changed file changed file
stopped file deleted file deleted file deleted file attr-changed file attr-changed file
stopped file stopped file stopped file deleted file deleted file
stopped file stopped file
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
file-attrib file attr-changed file changed file attr-changed file attr-changed file attr-changed file attr-changed file
deleted file deleted file deleted file deleted file deleted file deleted file
stopped file stopped file stopped file stopped file stopped file stopped file
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
file-rename dir renamed dir/src dir/dest deleted dir/dest deleted dir renamed dir/src dir/dest renamed dir/src dir/dest renamed dir/src dir/dest
created dir/dest renamed dir/src dir/dest stopped dir deleted dir/dest attr-changed dir/dest attr-changed dir/dest
deleted dir/dest timedout 12 deleted dir attr-changed dir/dest attr-changed dir/dest
deleted dir stopped dir stopped dir deleted dir/dest deleted dir/dest
stopped dir deleted dir deleted dir
stopped dir stopped dir
dir/src deleted dir timedout 12 deleted dir/src renamed dir/src dir/dest renamed dir/src dir/dest renamed dir/src dir/dest
stopped dir/src stopped dir/src stopped dir/src stopped dir/src stopped dir/src stopped dir/src
deleted dir/src
dir/dest renamed dir/src dir/dest deleted dir/dest deleted dir/dest renamed dir/src dir/dest renamed dir/src dir/dest renamed dir/src dir/dest
deleted dir/dest stopped dir/dest stopped dir/dest deleted dir/dest attr-changed dir/dest attr-changed dir/dest
stopped dir/dest stopped dir/dest attr-changed dir/dest attr-changed dir/dest
deleted dir/dest deleted dir/dest
stopped dir/dest stopped dir/dest
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
dir-create dir created dir created dir skipped created dir created dir created anon-1
deleted dir deleted dir deleted dir deleted dir deleted anon-1
stopped dir stopped dir stopped dir stopped dir timedout 12
stopped dir
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
dir-read dir deleted dir timedout 12 deleted dir deleted dir deleted dir deleted dir
stopped dir stopped dir stopped dir stopped dir stopped dir stopped dir
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
dir-create-file dir deleted dir/file deleted dir/file deleted dir deleted dir/file deleted dir/file deleted dir/file
deleted dir timedout 12 stopped dir deleted dir deleted dir deleted dir
stopped dir stopped dir stopped dir stopped dir stopped dir
dir/file deleted dir/file deleted dir/file deleted dir/file deleted dir/file deleted dir/file deleted dir/file
stopped dir/file stopped dir/file stopped dir/file stopped dir/file stopped dir/file stopped dir/file
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
dir-create-dir dir deleted dir/dir deleted dir/dir deleted dir deleted dir/dir deleted dir/dir deleted dir
deleted dir timedout 12 stopped dir deleted dir deleted dir stopped dir
stopped dir stopped dir stopped dir stopped dir
dir/dir deleted dir/dir timedout 12 deleted dir/dir deleted dir/dir deleted dir/dir deleted dir/dir
stopped dir/dir stopped dir/dir stopped dir/dir stopped dir/dir stopped dir/dir stopped dir/dir
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
dir-attrib dir attr-changed dir timedout 12 attr-changed dir attr-changed dir attr-changed dir attr-changed dir
deleted dir stopped dir deleted dir deleted dir deleted dir deleted dir
stopped dir stopped dir stopped dir stopped dir stopped dir
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
dir-rename dir renamed dir/src dir/dest deleted dir/src skipped renamed dir/src dir/dest deleted dir/src renamed dir anon-1
deleted dir timedout 12 deleted dir deleted dir deleted dir
stopped dir stopped dir stopped dir stopped dir stopped dir
dir/src deleted dir/src timedout 12 skipped deleted dir/src deleted dir/src deleted dir/src
stopped dir/src stopped dir/src stopped dir/src stopped dir/src stopped dir/src
dir/dest renamed dir/src dir/dest created dir/dest skipped created dir/dest created dir/dest attr-changed anon-1
deleted dir/dest deleted dir/dest deleted dir/dest attr-changed dir/dest attr-changed anon-1
stopped dir/dest stopped dir/dest stopped dir/dest attr-changed dir/dest deleted anon-1
deleted dir/dest deleted anon-1
stopped dir/dest timedout 12
stopped dir/dest
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
;; Local Variables:
;; truncate-lines: t
;; End:
[-- Attachment #5: Type: text/plain, Size: 5 bytes --]
-ap
next prev parent reply other threads:[~2017-03-24 20:44 UTC|newest]
Thread overview: 63+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-03-16 14:14 bug#26126: 26.0.50; file-notify-rm-watch removes arbitrary watches Andreas Politz
2017-03-17 14:41 ` Michael Albinus
2017-03-17 14:59 ` Andreas Politz
2017-03-17 16:08 ` Michael Albinus
2017-03-17 17:45 ` Andreas Politz
2017-03-18 8:30 ` Michael Albinus
2017-03-18 13:32 ` Andreas Politz
2017-03-18 19:36 ` Michael Albinus
2017-03-18 20:37 ` Andreas Politz
2017-03-19 9:39 ` Michael Albinus
2017-03-19 11:14 ` Andreas Politz
2017-03-19 19:23 ` Michael Albinus
2017-03-20 20:39 ` Andreas Politz
2017-03-21 8:44 ` Michael Albinus
2017-03-21 15:37 ` Eli Zaretskii
2017-03-21 18:59 ` Andreas Politz
2017-03-22 13:23 ` Michael Albinus
2017-03-22 15:44 ` Eli Zaretskii
2017-03-22 16:01 ` Michael Albinus
2017-03-22 16:13 ` Eli Zaretskii
2017-03-22 16:23 ` Michael Albinus
2017-03-24 19:54 ` Andreas Politz
2017-03-25 12:50 ` Michael Albinus
2017-03-25 13:59 ` Andreas Politz
2017-03-25 14:08 ` Michael Albinus
2017-03-25 16:27 ` Andreas Politz
2017-03-25 16:37 ` Michael Albinus
2017-03-25 17:12 ` Andreas Politz
2017-03-25 18:36 ` Michael Albinus
2017-03-25 19:34 ` Andreas Politz
2017-03-26 7:08 ` Michael Albinus
2017-03-21 15:56 ` Andreas Politz
2017-03-22 12:56 ` Michael Albinus
2017-03-22 17:34 ` Andreas Politz
2017-03-22 18:49 ` Michael Albinus
2017-03-19 22:05 ` Andreas Politz
2017-03-21 13:05 ` Michael Albinus
2017-03-21 15:06 ` Andreas Politz
2017-03-21 15:54 ` Eli Zaretskii
2017-03-22 13:17 ` Michael Albinus
2017-03-22 17:43 ` Andreas Politz
2017-03-22 18:57 ` Michael Albinus
2017-03-22 20:02 ` Eli Zaretskii
2017-03-23 7:36 ` Michael Albinus
2017-03-23 15:22 ` Eli Zaretskii
2017-03-23 16:10 ` Michael Albinus
2017-03-22 19:40 ` Michael Albinus
2017-03-24 20:44 ` Andreas Politz [this message]
2017-03-25 6:35 ` Eli Zaretskii
2017-03-25 8:57 ` Andreas Politz
2017-03-25 14:17 ` Eli Zaretskii
2017-03-25 16:34 ` Andreas Politz
2017-03-25 14:04 ` Michael Albinus
2017-03-25 16:19 ` Andreas Politz
2017-03-25 17:09 ` Michael Albinus
2017-03-25 17:26 ` Andreas Politz
2017-03-25 18:18 ` Andreas Politz
2017-03-25 18:40 ` Michael Albinus
2017-03-25 16:21 ` Andreas Politz
2017-03-18 19:28 ` Andreas Politz
2017-03-18 19:49 ` Michael Albinus
2017-03-18 20:48 ` Andreas Politz
2017-03-30 18:15 ` Paul Eggert
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=877f3el80j.fsf@luca \
--to=politza@hochschule-trier.de \
--cc=26126@debbugs.gnu.org \
--cc=michael.albinus@gmx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).