Re: Eglot tests fail on emba

Michael Albinus <[email protected]>
Newsgroups gmane.emacs.devel
Message-ID <[email protected]>
João Távora <[email protected]> writes:

> Hi Michael, 

Hi João,

> I'm sure it's related to the problem you saw, because if you bisect with
> this other canary:
>
>    make && make -C test eglot-tests SELECTOR='"rust"'
>
> it blames that very same commit 07925d7070 of yours and with what seems
> to be 100% the same problem you get on EMBA.  This test needs
> rust-analyzer, presumably already installed on those machines.

I ran the eglot tests in the emba containers for emacs-31 and master. As
selector, I've taken eglot-test-rust-on-type-formatting. For the test
runs, I've enabled file notification debug messages.

The resulting eglot-tests.log files are filtered by occur with the
regexp '^file-notify-\(add\|rm\|handle\)'. I append both filtered log
files as occur.31 and occur.32.

Both event queues look very similar. In occur.31, some stopped events
aren't traced due to a bug I've fixed with my last filenotify.el
patch. I have also replaced your callback lambda with '...'.

What's surprising is, that Eglot opens always two file notification
watches for the same target. Like

--8<---------------cut here---------------start------------->8---
      8:file-notify-add-watch (1 . 0) "/tmp/eglot--fixture-OWy2ZN/on-type-formatting-project/" (change) ...
     17:file-notify-add-watch (1 . 1) "/tmp/eglot--fixture-OWy2ZN/on-type-formatting-project/" (change) ...
--8<---------------cut here---------------end--------------->8---

Is this intended? I believe there is a logic twist in the code, one
watch shall be sufficient.

Otherwise, everything looks very the same until the end. *But* in
occur.32, the very last action is

--8<---------------cut here---------------start------------->8---
    445:file-notify-handle-event (file-notify ((1 . 0) (create) ".#main.rs" 0) file-notify--callback-inotify)
--8<---------------cut here---------------end--------------->8---

Neither 'main.rs' nor '.#main.rs' is mentioned in occur.31. Where does
this come from?

> João

Best regards, Michael.
occur.31 (text/plain, 6.3 KB)
58 matches for "^file-notify-\(add\|rm\|handle\)" in buffer: eglot-tests.log</podman:emacs-eglot-31:>
      8:file-notify-add-watch (1 . 0) "/tmp/eglot--fixture-OWy2ZN/on-type-formatting-project/" (change) ...
     17:file-notify-add-watch (1 . 1) "/tmp/eglot--fixture-OWy2ZN/on-type-formatting-project/" (change) ...
     31:file-notify-handle-event (file-notify ((1 . 0) (isdir create) "targetEfYWLI" 0) file-notify--callback-inotify)
     41:file-notify-handle-event (file-notify ((1 . 1) (isdir create) "targetEfYWLI" 0) file-notify--callback-inotify)
     49:file-notify-handle-event (file-notify ((1 . 0) (isdir moved-from) "targetEfYWLI" 1904645) file-notify--callback-inotify)
     50:file-notify-handle-event (file-notify ((1 . 1) (isdir moved-from) "targetEfYWLI" 1904645) file-notify--callback-inotify)
     51:file-notify-handle-event (file-notify ((1 . 0) (isdir moved-to) "target" 1904645) file-notify--callback-inotify)
     61:file-notify-handle-event (file-notify ((1 . 1) (isdir moved-to) "target" 1904645) file-notify--callback-inotify)
     69:file-notify-rm-watch (1 . 1)
     70:file-notify-rm-watch (1 . 0)
     71:file-notify-add-watch (1 . 0) "/tmp/eglot--fixture-OWy2ZN/on-type-formatting-project/" (change) ...
     80:file-notify-add-watch (2 . 0) "/tmp/eglot--fixture-OWy2ZN/on-type-formatting-project/target/" (change) ...
     89:file-notify-add-watch (3 . 0) "/tmp/eglot--fixture-OWy2ZN/on-type-formatting-project/target/debug/" (change) ...
     98:file-notify-add-watch (4 . 0) "/tmp/eglot--fixture-OWy2ZN/on-type-formatting-project/target/debug/.fingerprint/on-type-formatting-project-5cf45481a1f3c2ca/" (change) ...
    107:file-notify-add-watch (5 . 0) "/tmp/eglot--fixture-OWy2ZN/on-type-formatting-project/target/debug/.fingerprint/on-type-formatting-project-87f0b6ead918a2a7/" (change) ...
    116:file-notify-add-watch (1 . 1) "/tmp/eglot--fixture-OWy2ZN/on-type-formatting-project/" (change) ...
    123:file-notify-add-watch (2 . 1) "/tmp/eglot--fixture-OWy2ZN/on-type-formatting-project/target/" (change) ...
    130:file-notify-add-watch (3 . 1) "/tmp/eglot--fixture-OWy2ZN/on-type-formatting-project/target/debug/" (change) ...
    137:file-notify-add-watch (4 . 1) "/tmp/eglot--fixture-OWy2ZN/on-type-formatting-project/target/debug/.fingerprint/on-type-formatting-project-5cf45481a1f3c2ca/" (change) ...
    144:file-notify-add-watch (5 . 1) "/tmp/eglot--fixture-OWy2ZN/on-type-formatting-project/target/debug/.fingerprint/on-type-formatting-project-87f0b6ead918a2a7/" (change) ...
    151:file-notify-handle-event (file-notify ((1 . 1) stopped "/tmp/eglot--fixture-OWy2ZN/on-type-formatting-project") ...
    158:file-notify-handle-event (file-notify ((1 . 0) stopped "/tmp/eglot--fixture-OWy2ZN/on-type-formatting-project") ...
    173:file-notify-handle-event (file-notify ((2 . 0) (modify) ".rustc_info.json" 0) file-notify--callback-inotify)
    183:file-notify-handle-event (file-notify ((2 . 1) (modify) ".rustc_info.json" 0) file-notify--callback-inotify)
    191:file-notify-handle-event (file-notify ((2 . 0) (modify) ".rustc_info.json" 0) file-notify--callback-inotify)
    201:file-notify-handle-event (file-notify ((2 . 1) (modify) ".rustc_info.json" 0) file-notify--callback-inotify)
    209:file-notify-handle-event (file-notify ((5 . 0) (modify) "bin-on-type-formatting-project" 0) file-notify--callback-inotify)
    219:file-notify-handle-event (file-notify ((5 . 1) (modify) "bin-on-type-formatting-project" 0) file-notify--callback-inotify)
    227:file-notify-handle-event (file-notify ((4 . 0) (modify) "test-bin-on-type-formatting-project" 0) file-notify--callback-inotify)
    237:file-notify-handle-event (file-notify ((4 . 1) (modify) "test-bin-on-type-formatting-project" 0) file-notify--callback-inotify)
    245:file-notify-handle-event (file-notify ((5 . 0) (modify) "invoked.timestamp" 0) file-notify--callback-inotify)
    255:file-notify-handle-event (file-notify ((5 . 1) (modify) "invoked.timestamp" 0) file-notify--callback-inotify)
    263:file-notify-handle-event (file-notify ((4 . 0) (modify) "invoked.timestamp" 0) file-notify--callback-inotify)
    273:file-notify-handle-event (file-notify ((4 . 1) (modify) "invoked.timestamp" 0) file-notify--callback-inotify)
    281:file-notify-handle-event (file-notify ((5 . 0) (modify) "invoked.timestamp" 0) file-notify--callback-inotify)
    291:file-notify-handle-event (file-notify ((5 . 1) (modify) "invoked.timestamp" 0) file-notify--callback-inotify)
    299:file-notify-handle-event (file-notify ((4 . 0) (modify) "invoked.timestamp" 0) file-notify--callback-inotify)
    309:file-notify-handle-event (file-notify ((4 . 1) (modify) "invoked.timestamp" 0) file-notify--callback-inotify)
    317:file-notify-handle-event (file-notify ((4 . 0) (create) "output-test-bin-on-type-formatting-project" 0) file-notify--callback-inotify)
    327:file-notify-handle-event (file-notify ((4 . 1) (create) "output-test-bin-on-type-formatting-project" 0) file-notify--callback-inotify)
    335:file-notify-handle-event (file-notify ((4 . 0) (modify) "output-test-bin-on-type-formatting-project" 0) file-notify--callback-inotify)
    345:file-notify-handle-event (file-notify ((4 . 1) (modify) "output-test-bin-on-type-formatting-project" 0) file-notify--callback-inotify)
    353:file-notify-handle-event (file-notify ((5 . 0) (create) "output-bin-on-type-formatting-project" 0) file-notify--callback-inotify)
    363:file-notify-handle-event (file-notify ((5 . 1) (create) "output-bin-on-type-formatting-project" 0) file-notify--callback-inotify)
    371:file-notify-handle-event (file-notify ((5 . 0) (modify) "output-bin-on-type-formatting-project" 0) file-notify--callback-inotify)
    381:file-notify-handle-event (file-notify ((5 . 1) (modify) "output-bin-on-type-formatting-project" 0) file-notify--callback-inotify)
    389:file-notify-handle-event (file-notify ((2 . 0) (modify) ".rustc_info.json" 0) file-notify--callback-inotify)
    399:file-notify-handle-event (file-notify ((2 . 1) (modify) ".rustc_info.json" 0) file-notify--callback-inotify)
    412:file-notify-rm-watch (5 . 1)
    413:file-notify-rm-watch (4 . 1)
    414:file-notify-rm-watch (3 . 1)
    415:file-notify-rm-watch (2 . 1)
    416:file-notify-rm-watch (1 . 1)
    417:file-notify-rm-watch (5 . 0)
    418:file-notify-rm-watch (4 . 0)
    419:file-notify-rm-watch (3 . 0)
    420:file-notify-rm-watch (2 . 0)
    421:file-notify-rm-watch (1 . 0)
occur.32 (text/plain, 6.7 KB)
57 matches for "^file-notify-\(add\|rm\|handle\)" in buffer: eglot-tests.log</podman:emacs-eglot-32:>
      8:file-notify-add-watch (1 . 0) "/tmp/eglot--fixture-Flo6cy/on-type-formatting-project/" (change) ...
     17:file-notify-add-watch (1 . 1) "/tmp/eglot--fixture-Flo6cy/on-type-formatting-project/" (change) ...
     31:file-notify-handle-event (file-notify ((1 . 0) (isdir create) "targetGb2DLv" 0) file-notify--callback-inotify)
     41:file-notify-handle-event (file-notify ((1 . 1) (isdir create) "targetGb2DLv" 0) file-notify--callback-inotify)
     49:file-notify-handle-event (file-notify ((1 . 0) (isdir moved-from) "targetGb2DLv" 1904360) file-notify--callback-inotify)
     50:file-notify-handle-event (file-notify ((1 . 1) (isdir moved-from) "targetGb2DLv" 1904360) file-notify--callback-inotify)
     60:file-notify-handle-event (file-notify ((1 . 0) (isdir moved-to) "target" 1904360) file-notify--callback-inotify)
     77:file-notify-handle-event (file-notify ((1 . 1) (isdir moved-to) "target" 1904360) file-notify--callback-inotify)
     85:file-notify-rm-watch (1 . 1)
     86:file-notify-handle-event (file-notify ((1 . 1) stopped "/tmp/eglot--fixture-Flo6cy/on-type-formatting-project") file-notify-callback)
     94:file-notify-rm-watch (1 . 1)
     99:file-notify-rm-watch (1 . 0)
    100:file-notify-handle-event (file-notify ((1 . 0) stopped "/tmp/eglot--fixture-Flo6cy/on-type-formatting-project") file-notify-callback)
    110:file-notify-rm-watch (1 . 0)
    111:file-notify-add-watch (1 . 0) "/tmp/eglot--fixture-Flo6cy/on-type-formatting-project/" (change) ...
    120:file-notify-add-watch (2 . 0) "/tmp/eglot--fixture-Flo6cy/on-type-formatting-project/target/" (change) ...
    129:file-notify-add-watch (3 . 0) "/tmp/eglot--fixture-Flo6cy/on-type-formatting-project/target/debug/" (change) ...
    138:file-notify-add-watch (4 . 0) "/tmp/eglot--fixture-Flo6cy/on-type-formatting-project/target/debug/.fingerprint/on-type-formatting-project-5cf45481a1f3c2ca/" (change) ...
    147:file-notify-add-watch (5 . 0) "/tmp/eglot--fixture-Flo6cy/on-type-formatting-project/target/debug/.fingerprint/on-type-formatting-project-87f0b6ead918a2a7/" (change) ...
    156:file-notify-add-watch (1 . 1) "/tmp/eglot--fixture-Flo6cy/on-type-formatting-project/" (change) ...
    163:file-notify-add-watch (2 . 1) "/tmp/eglot--fixture-Flo6cy/on-type-formatting-project/target/" (change) ...
    170:file-notify-add-watch (3 . 1) "/tmp/eglot--fixture-Flo6cy/on-type-formatting-project/target/debug/" (change) ...
    177:file-notify-add-watch (4 . 1) "/tmp/eglot--fixture-Flo6cy/on-type-formatting-project/target/debug/.fingerprint/on-type-formatting-project-5cf45481a1f3c2ca/" (change) ...
    184:file-notify-add-watch (5 . 1) "/tmp/eglot--fixture-Flo6cy/on-type-formatting-project/target/debug/.fingerprint/on-type-formatting-project-87f0b6ead918a2a7/" (change) ...
    193:file-notify-handle-event (file-notify ((2 . 0) (modify) ".rustc_info.json" 0) file-notify--callback-inotify)
    203:file-notify-handle-event (file-notify ((2 . 1) (modify) ".rustc_info.json" 0) file-notify--callback-inotify)
    211:file-notify-handle-event (file-notify ((2 . 0) (modify) ".rustc_info.json" 0) file-notify--callback-inotify)
    221:file-notify-handle-event (file-notify ((2 . 1) (modify) ".rustc_info.json" 0) file-notify--callback-inotify)
    229:file-notify-handle-event (file-notify ((5 . 0) (modify) "bin-on-type-formatting-project" 0) file-notify--callback-inotify)
    239:file-notify-handle-event (file-notify ((5 . 1) (modify) "bin-on-type-formatting-project" 0) file-notify--callback-inotify)
    247:file-notify-handle-event (file-notify ((4 . 0) (modify) "test-bin-on-type-formatting-project" 0) file-notify--callback-inotify)
    257:file-notify-handle-event (file-notify ((4 . 1) (modify) "test-bin-on-type-formatting-project" 0) file-notify--callback-inotify)
    265:file-notify-handle-event (file-notify ((5 . 0) (modify) "invoked.timestamp" 0) file-notify--callback-inotify)
    275:file-notify-handle-event (file-notify ((5 . 1) (modify) "invoked.timestamp" 0) file-notify--callback-inotify)
    283:file-notify-handle-event (file-notify ((4 . 0) (modify) "invoked.timestamp" 0) file-notify--callback-inotify)
    293:file-notify-handle-event (file-notify ((4 . 1) (modify) "invoked.timestamp" 0) file-notify--callback-inotify)
    301:file-notify-handle-event (file-notify ((5 . 0) (modify) "invoked.timestamp" 0) file-notify--callback-inotify)
    311:file-notify-handle-event (file-notify ((5 . 1) (modify) "invoked.timestamp" 0) file-notify--callback-inotify)
    319:file-notify-handle-event (file-notify ((4 . 0) (modify) "invoked.timestamp" 0) file-notify--callback-inotify)
    329:file-notify-handle-event (file-notify ((4 . 1) (modify) "invoked.timestamp" 0) file-notify--callback-inotify)
    337:file-notify-handle-event (file-notify ((5 . 0) (create) "output-bin-on-type-formatting-project" 0) file-notify--callback-inotify)
    347:file-notify-handle-event (file-notify ((5 . 1) (create) "output-bin-on-type-formatting-project" 0) file-notify--callback-inotify)
    355:file-notify-handle-event (file-notify ((5 . 0) (modify) "output-bin-on-type-formatting-project" 0) file-notify--callback-inotify)
    370:file-notify-rm-watch (5 . 1)
    371:file-notify-handle-event (file-notify ((5 . 1) (modify) "output-bin-on-type-formatting-project" 0) file-notify--callback-inotify)
    379:file-notify-handle-event (file-notify ((4 . 0) (create) "output-test-bin-on-type-formatting-project" 0) file-notify--callback-inotify)
    389:file-notify-handle-event (file-notify ((4 . 1) (create) "output-test-bin-on-type-formatting-project" 0) file-notify--callback-inotify)
    397:file-notify-handle-event (file-notify ((4 . 0) (modify) "output-test-bin-on-type-formatting-project" 0) file-notify--callback-inotify)
    407:file-notify-rm-watch (4 . 1)
    408:file-notify-handle-event (file-notify ((4 . 1) (modify) "output-test-bin-on-type-formatting-project" 0) file-notify--callback-inotify)
    416:file-notify-handle-event (file-notify ((5 . 1) stopped "/tmp/eglot--fixture-Flo6cy/on-type-formatting-project/target/debug/.fingerprint/on-type-formatting-project-87f0b6ead918a2a7") file-notify-callback)
    417:file-notify-handle-event (file-notify ((4 . 1) stopped "/tmp/eglot--fixture-Flo6cy/on-type-formatting-project/target/debug/.fingerprint/on-type-formatting-project-5cf45481a1f3c2ca") file-notify-callback)
    425:file-notify-rm-watch (4 . 1)
    426:file-notify-handle-event (file-notify ((2 . 0) (modify) ".rustc_info.json" 0) file-notify--callback-inotify)
    436:file-notify-handle-event (file-notify ((2 . 1) (modify) ".rustc_info.json" 0) file-notify--callback-inotify)
    444:file-notify-rm-watch (3 . 1)
    445:file-notify-handle-event (file-notify ((1 . 0) (create) ".#main.rs" 0) file-notify--callback-inotify)
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.