Subject: Re: bug#48067: 28.0.50; Tramp error: cannot determine gio monitor

From: Thierry Volpiatto <[email-masked]>
Date: Thu, 29 Apr 2021 06:09:48 +0000

Update:

After commenting a block of code in
`tramp-sh-gio-monitor-process-filter` it is now working properly, events
are created, here the diff:

diff --git a/lisp/net/tramp-sh.el b/lisp/net/tramp-sh.el
index 4a3072ee346..3f5ec76864b 100644
--- a/lisp/net/tramp-sh.el
+++ b/lisp/net/tramp-sh.el
@@ -3732,23 +3732,24 @@ Fall back to normal file name handler if no Tramp handler exists."
       (unless (tramp-connection-property-p proc "gio-file-monitor")
         (tramp-set-connection-property
          proc "gio-file-monitor"
-         (cond
-          ;; We have seen this on cygwin gio and on emba.  Let's make
-          ;; some assumptions.
-          ((string-match
-            "Can't find module 'help' specified in GIO_USE_FILE_MONITOR" string)
-           (cond
-            ((getenv "EMACS_EMBA_CI") 'GInotifyFileMonitor)
-            ((eq system-type 'cygwin) 'GPollFileMonitor)
-            (t tramp-cache-undefined)))
-          ;; TODO: What happens, if several monitor names are reported?
-          ((string-match "\
-Supported arguments for GIO_USE_FILE_MONITOR environment variable:
-\\s-*\\([[:alpha:]]+\\) - 20" string)
-           (intern
-	    (format "G%sFileMonitor" (capitalize (match-string 1 string)))))
-          (t (throw 'doesnt-work nil))))
-	(setq string (substring string (match-end 0))))
+         tramp-cache-undefined))
+;;          (cond
+;;           ;; We have seen this on cygwin gio and on emba.  Let's make
+;;           ;; some assumptions.
+;;           ((string-match
+;;             "Can't find module 'help' specified in GIO_USE_FILE_MONITOR" string)
+;;            (cond
+;;             ((getenv "EMACS_EMBA_CI") 'GInotifyFileMonitor)
+;;             ((eq system-type 'cygwin) 'GPollFileMonitor)
+;;             (t tramp-cache-undefined)))
+;;           ;; TODO: What happens, if several monitor names are reported?
+;;           ((string-match "\
+;; Supported arguments for GIO_USE_FILE_MONITOR environment variable:
+;; \\s-*\\([[:alpha:]]+\\) - 20" string)
+;;            (intern
+;; 	    (format "G%sFileMonitor" (capitalize (match-string 1 string)))))
+;;           (t (throw 'doesnt-work nil))))
+;; 	(setq string (substring string (match-end 0))))
 
       ;; Delete empty lines.
       (setq string (tramp-compat-string-replace "\n\n" "\n" string)

Michael Albinus <[email-masked]> writes:

> [[PGP Encrypted Part:OK]]
> Thierry Volpiatto <[email-masked]> writes:
>
>> This happen on emacs-27:
>>
>> ;; file-notify-handle-event (file-notify (#<process gio<4>> (changes-done-hint) "/sudo:root@IPadS340:/home/thierry/tmp/test.txt" nil) file-notify-callback)
>> ;; file-notify-handle-event (file-notify (#<process gio<4>> (attribute-changed) "/sudo:root@IPadS340:/home/thierry/tmp/test.txt" nil) file-notify-callback)
>>
>> On emacs-28 nothing happen when modifying externally same directory
>> (tmp).
>
> Strange. Have you tried "M-x tramp-cleanup-all-connections"? Prior to
> connecting the remote machine.
>
> Otherwise, I have no idea (it works for me as I have shown). Is there a
> chance I could debug, connecting your remote machine?
>
> Otherwise, I would need to write special instrumentations in
> tramp-sh-gio-monitor-process-filter just for you.
>
> Best regards, Michael.
>
>
> [[End of PGP Encrypted Part]]

-- 
Thierry