GNU bug report logs - #21804
25.0.50; file-notify-tests failure on Cygwin

Previous Next

Package: emacs;

Reported by: Ken Brown <kbrown <at> cornell.edu>

Date: Sun, 1 Nov 2015 15:52:02 UTC

Severity: normal

Found in version 25.0.50

Done: Michael Albinus <michael.albinus <at> gmx.de>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Ken Brown <kbrown <at> cornell.edu>
To: Michael Albinus <michael.albinus <at> gmx.de>
Cc: 21804 <at> debbugs.gnu.org
Subject: bug#21804: 25.0.50; file-notify-tests failure on Cygwin
Date: Fri, 30 Dec 2016 18:15:57 -0500
Hi Michael,

On 12/30/2016 2:16 PM, Michael Albinus wrote:
> Ken Brown <kbrown <at> cornell.edu> writes:
>> Actually it turns out to be GFamFileMonitor on my system, presumably
>> because I have the gamin package installed.

It turns out that this isn't special to my system.  The emacs package on 
Cygwin requires libglib2.0_0, which requires gamin.  So the monitor on 
Cygwin will always be of type GFamFileMonitor.

> Next time I have access to a cygwin machine I'll check. However, I
> wonder whether we need to respect the polling period then. According to
> <http://oss.sgi.com/projects/fam/faq.html#what_is_fam>, FAM does not poll.

It says on that page, "If FAM is running on a system that doesn't have a 
supported kernel monitor, it polls."  And I've checked the gamin sources 
(since Cygwin uses gamin for its implementation of libfam), and the same 
seems to be true there.

On the other hand, the default polling interval seems to be 1 second, so 
I'm not sure why the tests need such a big timeout.  One factor might be 
the following in gio/glocalfilemonitor.c:

  #define VIRTUAL_CHANGES_DONE_DELAY  2 * G_TIME_SPAN_SECOND

If I understand the code correctly, this causes a 2-second delay before 
a CHANGES_DONE_HINT event is sent after a CHANGED event.

>> As a quick check, however, I applied the following patch...
>>
>> --- a/test/lisp/filenotify-tests.el
>> +++ b/test/lisp/filenotify-tests.el
>> @@ -73,7 +73,8 @@ file-notify--test-read-event
>>      ;; gio/gpollfilemonitor.c declares POLL_TIME_SECS 5. So we must
>>      ;; wait at least this time.
>>      ((and (string-equal (file-notify--test-library) "gfilenotify")
>> -         (string-equal (file-notify--test-monitor) "GPollFileMonitor"))
>> +          (or (string-equal (file-notify--test-monitor) "GPollFileMonitor")
>> +              (string-equal (file-notify--test-monitor) "GFamFileMonitor")))
>>       7)
>>      ((file-remote-p temporary-file-directory) 0.1)
>>      (t 0.01))))
>>
>> ...and all the inexpensive tests passed.  I'll keep playing with this.
>
> It's OK for me if you commit this patch. You know cygwin behaviour much
> better then I do.

Let me play with this a little more first.

Best regards,

Ken





This bug report was last modified 8 years and 201 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.