Package: emacs;
Reported by: Tassilo Horn <tsdh <at> gnu.org>
Date: Wed, 12 Aug 2015 08:18:02 UTC
Severity: normal
Found in version 25.0.50
Done: Paul Eggert <eggert <at> cs.ucla.edu>
Bug is archived. No further changes may be made.
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 21241 in the body.
You can then email your comments to 21241 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
View this report as an mbox folder, status mbox, maintainer mbox
bug-gnu-emacs <at> gnu.org
:bug#21241
; Package emacs
.
(Wed, 12 Aug 2015 08:18:02 GMT) Full text and rfc822 format available.Tassilo Horn <tsdh <at> gnu.org>
:bug-gnu-emacs <at> gnu.org
.
(Wed, 12 Aug 2015 08:18:02 GMT) Full text and rfc822 format available.Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
From: Tassilo Horn <tsdh <at> gnu.org> To: bug-gnu-emacs <at> gnu.org Subject: 25.0.50; gfilenotify doesn't indicate when limits are reached Date: Wed, 12 Aug 2015 10:16:54 +0200
When acquiring many file/directory watches using file-notify-add-watch with file-notify--library being gfilenotify, there's no indication when the limit of watches a user is allowed to place is reached. You still get a valid descriptor but the provided callback function won't be called when the watched file/directory changes. I've looked at the code and saw that with inotify you'd get an error. Apparently, gfilenotify (aka glib) also uses inotify on my GNU/Linux box under the hoods. At least increasing the inotify limit for user watches made it work again. I tried looking at the GFileMonitor API docs. It seems that g_file_monitor should return NULL on errors (and I'd count a reached limit an error), and the fourth parameter should be initialized with the error. Emacs calls it with no error parameter: monitor = g_file_monitor (gfile, gflags, NULL, NULL); So I've tried the following: --8<---------------cut here---------------start------------->8--- diff --git a/src/gfilenotify.c b/src/gfilenotify.c index 08713a8..2ad2110 100644 --- a/src/gfilenotify.c +++ b/src/gfilenotify.c @@ -172,8 +172,9 @@ will be reported only in case of the 'moved' event. */) gflags |= G_FILE_MONITOR_SEND_MOVED; /* Enable watch. */ - monitor = g_file_monitor (gfile, gflags, NULL, NULL); - if (! monitor) + GError *err = NULL; + monitor = g_file_monitor (gfile, gflags, NULL, &err); + if (! monitor || err != NULL) xsignal2 (Qfile_notify_error, build_string ("Cannot watch file"), file); Lisp_Object watch_descriptor = make_pointer_integer (monitor); --8<---------------cut here---------------end--------------->8--- Unfortunately, the err variable won't be set in case the limit is reached, too. So it seems that we can't do much from Emacs land and this should be reported as a glib bug (which I'll do). Well, one thing we could do was preferring plain inotify over glib's GFileMonitor when both are available. On my GNU/Linux box both are available and configure chose gfilenotify as the default. In GNU Emacs 25.0.50.3 (x86_64-unknown-linux-gnu, GTK+ Version 3.16.6) of 2015-08-12 on thinkpad-t440p Repository revision: 197f280042a4d901ea94acdf10f1dc544fae4750 Windowing system distributor `The X.Org Foundation', version 11.0.11702000 System Description: Arch Linux Configured using: `configure 'CFLAGS=-g -ggdb3 -O1'' Configured features: XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND GPM DBUS GCONF GSETTINGS NOTIFY ACL GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB TOOLKIT_SCROLL_BARS GTK3 X11 Important settings: value of $LC_MONETARY: de_DE.utf8 value of $LC_NUMERIC: de_DE.utf8 value of $LC_TIME: de_DE.utf8 value of $LANG: en_US.utf8 locale-coding-system: utf-8-unix Major mode: Group Minor modes in effect: rcirc-track-minor-mode: t hl-line-mode: t gnus-topic-mode: t global-company-mode: t global-aggressive-indent-mode: t gnus-undo-mode: t pdf-occur-global-minor-mode: t recentf-mode: t global-undo-tree-mode: t global-subword-mode: t subword-mode: t save-place-mode: t savehist-mode: t show-paren-mode: t ivy-mode: t minibuffer-depth-indicate-mode: t diff-auto-refine-mode: t global-git-commit-mode: t async-bytecomp-package-mode: t shell-dirtrack-mode: t electric-pair-mode: t tooltip-mode: t global-eldoc-mode: t electric-indent-mode: t mouse-wheel-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t buffer-read-only: t column-number-mode: t line-number-mode: t transient-mark-mode: t Recent messages: 20150812T095021.253> Reading active file via nndraft... 20150812T095021.254> Reading active file via nndraft...done 20150812T095021.254> Reading active file from archive+nnml+archive:sent-postings via nnml... 20150812T095021.254> Opening nnml server on archive+nnml+archive:sent-postings... 20150812T095021.255> Opening nnml server on archive+nnml+archive:sent-postings...done 20150812T095021.255> nnml: Reading incoming mail (no new mail)...done 20150812T095021.255> Reading active file from archive+nnml+archive:sent-postings via nnml... 20150812T095021.256> Reading active file from archive+nnml+archive:sent-postings via nnml...done 20150812T095021.256> Checking new news...done 20150812T095021.257> No news is good news Load-path shadows: ~/Repos/el/auctex/lpath hides ~/Repos/el/gnus/lisp/lpath ~/Repos/el/highlight-symbol.el/highlight-symbol hides /home/horn/.emacs.d/elpa/highlight-symbol-20150805.806/highlight-symbol ~/Repos/el/gnus/lisp/md4 hides /home/horn/Repos/el/emacs/lisp/md4 ~/Repos/el/gnus/lisp/color hides /home/horn/Repos/el/emacs/lisp/color ~/Repos/el/gnus/lisp/format-spec hides /home/horn/Repos/el/emacs/lisp/format-spec ~/Repos/el/gnus/lisp/password-cache hides /home/horn/Repos/el/emacs/lisp/password-cache ~/Repos/el/gnus/lisp/hex-util hides /home/horn/Repos/el/emacs/lisp/hex-util ~/Repos/el/gnus/lisp/dns-mode hides /home/horn/Repos/el/emacs/lisp/textmodes/dns-mode ~/Repos/el/gnus/lisp/dig hides /home/horn/Repos/el/emacs/lisp/net/dig ~/Repos/el/gnus/lisp/hmac-md5 hides /home/horn/Repos/el/emacs/lisp/net/hmac-md5 ~/Repos/el/gnus/lisp/ntlm hides /home/horn/Repos/el/emacs/lisp/net/ntlm ~/Repos/el/gnus/lisp/hmac-def hides /home/horn/Repos/el/emacs/lisp/net/hmac-def ~/Repos/el/gnus/lisp/rfc2104 hides /home/horn/Repos/el/emacs/lisp/net/rfc2104 ~/Repos/el/gnus/lisp/sasl-ntlm hides /home/horn/Repos/el/emacs/lisp/net/sasl-ntlm ~/Repos/el/gnus/lisp/sasl-cram hides /home/horn/Repos/el/emacs/lisp/net/sasl-cram ~/Repos/el/gnus/lisp/dns hides /home/horn/Repos/el/emacs/lisp/net/dns ~/Repos/el/gnus/lisp/sasl hides /home/horn/Repos/el/emacs/lisp/net/sasl ~/Repos/el/gnus/lisp/tls hides /home/horn/Repos/el/emacs/lisp/net/tls ~/Repos/el/gnus/lisp/sasl-scram-rfc hides /home/horn/Repos/el/emacs/lisp/net/sasl-scram-rfc ~/Repos/el/gnus/lisp/netrc hides /home/horn/Repos/el/emacs/lisp/net/netrc ~/Repos/el/gnus/lisp/sasl-digest hides /home/horn/Repos/el/emacs/lisp/net/sasl-digest ~/Repos/el/gnus/lisp/uudecode hides /home/horn/Repos/el/emacs/lisp/mail/uudecode ~/Repos/el/gnus/lisp/binhex hides /home/horn/Repos/el/emacs/lisp/mail/binhex ~/Repos/el/gnus/lisp/hashcash hides /home/horn/Repos/el/emacs/lisp/mail/hashcash ~/Repos/el/gnus/lisp/canlock hides /home/horn/Repos/el/emacs/lisp/gnus/canlock ~/Repos/el/gnus/lisp/nneething hides /home/horn/Repos/el/emacs/lisp/gnus/nneething ~/Repos/el/gnus/lisp/mm-encode hides /home/horn/Repos/el/emacs/lisp/gnus/mm-encode ~/Repos/el/gnus/lisp/mm-util hides /home/horn/Repos/el/emacs/lisp/gnus/mm-util ~/Repos/el/gnus/lisp/rfc2047 hides /home/horn/Repos/el/emacs/lisp/gnus/rfc2047 ~/Repos/el/gnus/lisp/nnml hides /home/horn/Repos/el/emacs/lisp/gnus/nnml ~/Repos/el/gnus/lisp/gnus-cus hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-cus ~/Repos/el/gnus/lisp/gnus-range hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-range ~/Repos/el/gnus/lisp/gnus-int hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-int ~/Repos/el/gnus/lisp/gnus-cloud hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-cloud ~/Repos/el/gnus/lisp/spam-stat hides /home/horn/Repos/el/emacs/lisp/gnus/spam-stat ~/Repos/el/gnus/lisp/nnmh hides /home/horn/Repos/el/emacs/lisp/gnus/nnmh ~/Repos/el/gnus/lisp/gnus-mlspl hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-mlspl ~/Repos/el/gnus/lisp/deuglify hides /home/horn/Repos/el/emacs/lisp/gnus/deuglify ~/Repos/el/gnus/lisp/gnus-gravatar hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-gravatar ~/Repos/el/gnus/lisp/nngateway hides /home/horn/Repos/el/emacs/lisp/gnus/nngateway ~/Repos/el/gnus/lisp/ietf-drums hides /home/horn/Repos/el/emacs/lisp/gnus/ietf-drums ~/Repos/el/gnus/lisp/mail-parse hides /home/horn/Repos/el/emacs/lisp/gnus/mail-parse ~/Repos/el/gnus/lisp/gnus-salt hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-salt ~/Repos/el/gnus/lisp/nnimap hides /home/horn/Repos/el/emacs/lisp/gnus/nnimap ~/Repos/el/gnus/lisp/gnus-draft hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-draft ~/Repos/el/gnus/lisp/mail-source hides /home/horn/Repos/el/emacs/lisp/gnus/mail-source ~/Repos/el/gnus/lisp/messcompat hides /home/horn/Repos/el/emacs/lisp/gnus/messcompat ~/Repos/el/gnus/lisp/pop3 hides /home/horn/Repos/el/emacs/lisp/gnus/pop3 ~/Repos/el/gnus/lisp/nnmaildir hides /home/horn/Repos/el/emacs/lisp/gnus/nnmaildir ~/Repos/el/gnus/lisp/nnheader hides /home/horn/Repos/el/emacs/lisp/gnus/nnheader ~/Repos/el/gnus/lisp/gnus-cite hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-cite ~/Repos/el/gnus/lisp/nndiary hides /home/horn/Repos/el/emacs/lisp/gnus/nndiary ~/Repos/el/gnus/lisp/gnus-diary hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-diary ~/Repos/el/gnus/lisp/nnfolder hides /home/horn/Repos/el/emacs/lisp/gnus/nnfolder ~/Repos/el/gnus/lisp/gnus-art hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-art ~/Repos/el/gnus/lisp/gnus-demon hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-demon ~/Repos/el/gnus/lisp/mml-sec hides /home/horn/Repos/el/emacs/lisp/gnus/mml-sec ~/Repos/el/gnus/lisp/nnir hides /home/horn/Repos/el/emacs/lisp/gnus/nnir ~/Repos/el/gnus/lisp/mm-partial hides /home/horn/Repos/el/emacs/lisp/gnus/mm-partial ~/Repos/el/gnus/lisp/gnus-registry hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-registry ~/Repos/el/gnus/lisp/gnus-icalendar hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-icalendar ~/Repos/el/gnus/lisp/compface hides /home/horn/Repos/el/emacs/lisp/gnus/compface ~/Repos/el/gnus/lisp/gnus-fun hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-fun ~/Repos/el/gnus/lisp/gnus-start hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-start ~/Repos/el/gnus/lisp/smiley hides /home/horn/Repos/el/emacs/lisp/gnus/smiley ~/Repos/el/gnus/lisp/gnus-picon hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-picon ~/Repos/el/gnus/lisp/spam-report hides /home/horn/Repos/el/emacs/lisp/gnus/spam-report ~/Repos/el/gnus/lisp/nntp hides /home/horn/Repos/el/emacs/lisp/gnus/nntp ~/Repos/el/gnus/lisp/nnnil hides /home/horn/Repos/el/emacs/lisp/gnus/nnnil ~/Repos/el/gnus/lisp/nndir hides /home/horn/Repos/el/emacs/lisp/gnus/nndir ~/Repos/el/gnus/lisp/gnus-srvr hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-srvr ~/Repos/el/gnus/lisp/smime hides /home/horn/Repos/el/emacs/lisp/gnus/smime ~/Repos/el/gnus/lisp/nnvirtual hides /home/horn/Repos/el/emacs/lisp/gnus/nnvirtual ~/Repos/el/gnus/lisp/gnus-notifications hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-notifications ~/Repos/el/gnus/lisp/nnspool hides /home/horn/Repos/el/emacs/lisp/gnus/nnspool ~/Repos/el/gnus/lisp/gnus-group hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-group ~/Repos/el/gnus/lisp/gnus-bcklg hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-bcklg ~/Repos/el/gnus/lisp/gnus-util hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-util ~/Repos/el/gnus/lisp/gnus-sieve hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-sieve ~/Repos/el/gnus/lisp/nndraft hides /home/horn/Repos/el/emacs/lisp/gnus/nndraft ~/Repos/el/gnus/lisp/nnagent hides /home/horn/Repos/el/emacs/lisp/gnus/nnagent ~/Repos/el/gnus/lisp/gnus-spec hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-spec ~/Repos/el/gnus/lisp/gnus-bookmark hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-bookmark ~/Repos/el/gnus/lisp/mml1991 hides /home/horn/Repos/el/emacs/lisp/gnus/mml1991 ~/Repos/el/gnus/lisp/rfc2231 hides /home/horn/Repos/el/emacs/lisp/gnus/rfc2231 ~/Repos/el/gnus/lisp/yenc hides /home/horn/Repos/el/emacs/lisp/gnus/yenc ~/Repos/el/gnus/lisp/gnus-undo hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-undo ~/Repos/el/gnus/lisp/ecomplete hides /home/horn/Repos/el/emacs/lisp/gnus/ecomplete ~/Repos/el/gnus/lisp/legacy-gnus-agent hides /home/horn/Repos/el/emacs/lisp/gnus/legacy-gnus-agent ~/Repos/el/gnus/lisp/utf7 hides /home/horn/Repos/el/emacs/lisp/gnus/utf7 ~/Repos/el/gnus/lisp/rtree hides /home/horn/Repos/el/emacs/lisp/gnus/rtree ~/Repos/el/gnus/lisp/gnus-uu hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-uu ~/Repos/el/gnus/lisp/gnus-ml hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-ml ~/Repos/el/gnus/lisp/sieve hides /home/horn/Repos/el/emacs/lisp/gnus/sieve ~/Repos/el/gnus/lisp/gnus hides /home/horn/Repos/el/emacs/lisp/gnus/gnus ~/Repos/el/gnus/lisp/mml hides /home/horn/Repos/el/emacs/lisp/gnus/mml ~/Repos/el/gnus/lisp/message hides /home/horn/Repos/el/emacs/lisp/gnus/message ~/Repos/el/gnus/lisp/mml-smime hides /home/horn/Repos/el/emacs/lisp/gnus/mml-smime ~/Repos/el/gnus/lisp/gnus-eform hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-eform ~/Repos/el/gnus/lisp/gnus-agent hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-agent ~/Repos/el/gnus/lisp/gnus-logic hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-logic ~/Repos/el/gnus/lisp/mm-extern hides /home/horn/Repos/el/emacs/lisp/gnus/mm-extern ~/Repos/el/gnus/lisp/nndoc hides /home/horn/Repos/el/emacs/lisp/gnus/nndoc ~/Repos/el/gnus/lisp/sieve-manage hides /home/horn/Repos/el/emacs/lisp/gnus/sieve-manage ~/Repos/el/gnus/lisp/mm-decode hides /home/horn/Repos/el/emacs/lisp/gnus/mm-decode ~/Repos/el/gnus/lisp/starttls hides /home/horn/Repos/el/emacs/lisp/gnus/starttls ~/Repos/el/gnus/lisp/gnus-dired hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-dired ~/Repos/el/gnus/lisp/nnbabyl hides /home/horn/Repos/el/emacs/lisp/gnus/nnbabyl ~/Repos/el/gnus/lisp/nnmbox hides /home/horn/Repos/el/emacs/lisp/gnus/nnmbox ~/Repos/el/gnus/lisp/gnus-win hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-win ~/Repos/el/gnus/lisp/gnus-async hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-async ~/Repos/el/gnus/lisp/mm-url hides /home/horn/Repos/el/emacs/lisp/gnus/mm-url ~/Repos/el/gnus/lisp/gnus-html hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-html ~/Repos/el/gnus/lisp/gssapi hides /home/horn/Repos/el/emacs/lisp/gnus/gssapi ~/Repos/el/gnus/lisp/mml2015 hides /home/horn/Repos/el/emacs/lisp/gnus/mml2015 ~/Repos/el/gnus/lisp/nnrss hides /home/horn/Repos/el/emacs/lisp/gnus/nnrss ~/Repos/el/gnus/lisp/gnus-mh hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-mh ~/Repos/el/gnus/lisp/gnus-sum hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-sum ~/Repos/el/gnus/lisp/nnweb hides /home/horn/Repos/el/emacs/lisp/gnus/nnweb ~/Repos/el/gnus/lisp/mail-prsvr hides /home/horn/Repos/el/emacs/lisp/gnus/mail-prsvr ~/Repos/el/gnus/lisp/nnmairix hides /home/horn/Repos/el/emacs/lisp/gnus/nnmairix ~/Repos/el/gnus/lisp/plstore hides /home/horn/Repos/el/emacs/lisp/gnus/plstore ~/Repos/el/gnus/lisp/rfc2045 hides /home/horn/Repos/el/emacs/lisp/gnus/rfc2045 ~/Repos/el/gnus/lisp/gnus-msg hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-msg ~/Repos/el/gnus/lisp/spam-wash hides /home/horn/Repos/el/emacs/lisp/gnus/spam-wash ~/Repos/el/gnus/lisp/gnus-score hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-score ~/Repos/el/gnus/lisp/mm-uu hides /home/horn/Repos/el/emacs/lisp/gnus/mm-uu ~/Repos/el/gnus/lisp/spam hides /home/horn/Repos/el/emacs/lisp/gnus/spam ~/Repos/el/gnus/lisp/mm-view hides /home/horn/Repos/el/emacs/lisp/gnus/mm-view ~/Repos/el/gnus/lisp/sieve-mode hides /home/horn/Repos/el/emacs/lisp/gnus/sieve-mode ~/Repos/el/gnus/lisp/html2text hides /home/horn/Repos/el/emacs/lisp/gnus/html2text ~/Repos/el/gnus/lisp/gnus-ems hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-ems ~/Repos/el/gnus/lisp/registry hides /home/horn/Repos/el/emacs/lisp/gnus/registry ~/Repos/el/gnus/lisp/auth-source hides /home/horn/Repos/el/emacs/lisp/gnus/auth-source ~/Repos/el/gnus/lisp/gravatar hides /home/horn/Repos/el/emacs/lisp/gnus/gravatar ~/Repos/el/gnus/lisp/flow-fill hides /home/horn/Repos/el/emacs/lisp/gnus/flow-fill ~/Repos/el/gnus/lisp/gmm-utils hides /home/horn/Repos/el/emacs/lisp/gnus/gmm-utils ~/Repos/el/gnus/lisp/mailcap hides /home/horn/Repos/el/emacs/lisp/gnus/mailcap ~/Repos/el/gnus/lisp/gnus-delay hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-delay ~/Repos/el/gnus/lisp/mm-bodies hides /home/horn/Repos/el/emacs/lisp/gnus/mm-bodies ~/Repos/el/gnus/lisp/mm-archive hides /home/horn/Repos/el/emacs/lisp/gnus/mm-archive ~/Repos/el/gnus/lisp/rfc1843 hides /home/horn/Repos/el/emacs/lisp/gnus/rfc1843 ~/Repos/el/gnus/lisp/gnus-kill hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-kill ~/Repos/el/gnus/lisp/qp hides /home/horn/Repos/el/emacs/lisp/gnus/qp ~/Repos/el/gnus/lisp/score-mode hides /home/horn/Repos/el/emacs/lisp/gnus/score-mode ~/Repos/el/gnus/lisp/gnus-topic hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-topic ~/Repos/el/gnus/lisp/gnus-cache hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-cache ~/Repos/el/gnus/lisp/nnmail hides /home/horn/Repos/el/emacs/lisp/gnus/nnmail ~/Repos/el/gnus/lisp/gnus-vm hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-vm ~/Repos/el/gnus/lisp/gnus-sync hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-sync ~/Repos/el/gnus/lisp/nnoo hides /home/horn/Repos/el/emacs/lisp/gnus/nnoo ~/Repos/el/gnus/lisp/nnregistry hides /home/horn/Repos/el/emacs/lisp/gnus/nnregistry ~/Repos/el/gnus/lisp/gnus-dup hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-dup ~/Repos/el/gnus/lisp/parse-time hides /home/horn/Repos/el/emacs/lisp/calendar/parse-time ~/Repos/el/gnus/lisp/time-date hides /home/horn/Repos/el/emacs/lisp/calendar/time-date Features: (shadow emacsbug sendmail browse-url hippie-exp eieio-opt speedbar sb-image ezimage dframe linum flow-fill misearch multi-isearch vc vc-dispatcher vc-git url-http url-gw url-auth sort gnus-cite mm-archive gnus-async gnus-bcklg qp gnus-ml smiley rcirc-color rcirc-controls rcirc-late-fix rcirc hl-line nndraft nnmh rot13 utf-7 gnutls network-stream nsm starttls nnml nnnil gnus-agent gnus-srvr gnus-score score-mode nnvirtual gnus-cache gnus-demon nntp spam spam-stat gnus-uu yenc gnus-msg gnus-gravatar mail-extr gravatar gnus-topic nnir gnus-registry registry eieio-compat eieio-base th-private colir color smex ido company-files company-oddmuse company-keywords company-etags company-gtags company-dabbrev-code company-dabbrev company-capf company-cmake company-xcode company-clang company-semantic company-eclim company-template company-css company-nxml company-bbdb company stratego-mode greql-mode tg-mode generic preview-latex tex-site auto-loads cider cider-debug cider-browse-ns cider-inspector cider-mode cider-repl cider-eldoc cider-interaction arc-mode archive-mode cider-overlays cider-doc org-table org org-macro org-footnote org-pcomplete org-list org-faces org-entities org-version ob-emacs-lisp ob ob-tangle ob-ref ob-lob ob-table ob-exp org-src ob-keys ob-comint ob-core ob-eval org-compat org-macs org-loaddefs find-func cal-menu calendar cal-loaddefs cider-test cider-stacktrace cider-client nrepl-client queue cider-util ewoc etags xref project clojure-mode paredit aggressive-indent epa-file epa epg rdictcc google-contacts-message google-contacts derived xml url-cache google-oauth google-contacts-gnus gnus-art mm-uu mml2015 mm-view mml-smime smime dig gnus-sum gnus-group gnus-undo gnus-start gnus-cloud nnimap nnmail mail-source tls utf7 netrc nnoo parse-time gnus-spec gnus-int gnus-range gnus-win gnus gnus-ems gnus-compat url url-proxy url-privacy url-expand url-methods url-history url-cookie url-domsuf url-util url-parse url-vars mailcap nnheader dired-x em-term term ehelp esh-opt esh-ext esh-util highlight-symbol thingatpt boxquote rect ecomplete yasnippet disp-table noutline outline pdf-occur ibuf-ext ibuffer tablist tablist-filter semantic/wisent/comp semantic/wisent semantic/wisent/wisent semantic/util-modes semantic/util semantic semantic/tag semantic/lex semantic/fw mode-local cedet pdf-isearch let-alist pdf-misc imenu pdf-tools compile cus-edit cus-start cus-load pdf-view bookmark pp jka-compr pdf-cache pdf-info tq pdf-util image-mode browse-kill-ring recentf tree-widget wid-edit highlight-parentheses cl undo-tree diff iedit iedit-lib hydra lv counsel swiper cap-words superword subword saveplace savehist paren ivy delsel icomplete mb-depth ace-window avy magit-filenotify filenotify magit-blame magit-stash magit-bisect magit-remote magit-commit magit-sequence magit magit-apply magit-wip magit-log magit-diff smerge-mode diff-mode magit-core magit-process magit-popup magit-mode magit-git crm magit-section magit-utils git-commit log-edit easy-mmode message dired rfc822 mml mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 ietf-drums mailabbrev mail-utils gmm-utils mailheader pcvs-util add-log with-editor async-bytecomp async tramp-sh tramp tramp-compat auth-source eieio byte-opt bytecomp byte-compile cl-extra seq cconv eieio-core cl-macs gv gnus-util mm-util help-fns help-mode mail-prsvr password-cache tramp-loaddefs trampver shell pcomplete comint ansi-color ring format-spec server dash smart-mode-line-respectful-theme smart-mode-line-light-theme cl-seq smart-mode-line rich-minority rx bs elec-pair edmacro kmacro cl-loaddefs cl-lib gnus-load subr-x pcase tsdh-light-theme finder-inf memory-usage-autoloads advice info package easymenu epg-config time-date mule-util tooltip eldoc electric uniquify ediff-hook vc-hooks lisp-float-type mwheel x-win term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe tabulated-list newcomment elisp-mode lisp-mode prog-mode register page menu-bar rfn-eshadow timer select scroll-bar mouse jit-lock font-lock syntax facemenu font-core frame cl-generic cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese charscript case-table epa-hook jka-cmpr-hook help simple abbrev minibuffer cl-preloaded nadvice loaddefs button faces cus-face macroexp files text-properties overlay sha1 md5 base64 format env code-pages mule custom widget hashtable-print-readable backquote dbusbind gfilenotify dynamic-setting system-font-setting font-render-setting move-toolbar gtk x-toolkit x multi-tty make-network-process emacs) Memory information: ((conses 16 2203543 130351) (symbols 48 58842 76) (miscs 40 808 1443) (strings 32 181035 59773) (string-bytes 1 6176131) (vectors 16 61077) (vector-slots 8 1970775 197250) (floats 8 963 1376) (intervals 56 18899 3078) (buffers 976 73) (heap 1024 134316 38901))
bug-gnu-emacs <at> gnu.org
:bug#21241
; Package emacs
.
(Wed, 12 Aug 2015 08:35:02 GMT) Full text and rfc822 format available.Message #8 received at 21241 <at> debbugs.gnu.org (full text, mbox):
From: Tassilo Horn <tsdh <at> gnu.org> To: 21241 <at> debbugs.gnu.org Subject: Re: 25.0.50; gfilenotify doesn't indicate when limits are reached Date: Wed, 12 Aug 2015 10:34:45 +0200
Here's the glib bug report I've just filed for this issue: https://bugzilla.gnome.org/show_bug.cgi?id=753549 Bye, Tassilo
bug-gnu-emacs <at> gnu.org
:bug#21241
; Package emacs
.
(Wed, 12 Aug 2015 12:48:02 GMT) Full text and rfc822 format available.Message #11 received at 21241 <at> debbugs.gnu.org (full text, mbox):
From: Eli Zaretskii <eliz <at> gnu.org> To: Tassilo Horn <tsdh <at> gnu.org> Cc: 21241 <at> debbugs.gnu.org Subject: Re: bug#21241: 25.0.50; gfilenotify doesn't indicate when limits are reached Date: Wed, 12 Aug 2015 15:47:00 +0300
> From: Tassilo Horn <tsdh <at> gnu.org> > Date: Wed, 12 Aug 2015 10:16:54 +0200 > > Well, one thing we could do was preferring plain inotify over glib's > GFileMonitor when both are available. On my GNU/Linux box both are > available and configure chose gfilenotify as the default. I wonder if we should revert our decision to prefer gfilenotify if available, and instead use it only if there's no other supported method. It begins to sound more and more like gfilenotify is more trouble than it's worth.
bug-gnu-emacs <at> gnu.org
:bug#21241
; Package emacs
.
(Wed, 12 Aug 2015 13:28:02 GMT) Full text and rfc822 format available.Message #14 received at 21241 <at> debbugs.gnu.org (full text, mbox):
From: Tassilo Horn <tsdh <at> gnu.org> To: Eli Zaretskii <eliz <at> gnu.org> Cc: 21241 <at> debbugs.gnu.org Subject: Re: bug#21241: 25.0.50; gfilenotify doesn't indicate when limits are reached Date: Wed, 12 Aug 2015 15:27:26 +0200
Eli Zaretskii <eliz <at> gnu.org> writes: >> Well, one thing we could do was preferring plain inotify over glib's >> GFileMonitor when both are available. On my GNU/Linux box both are >> available and configure chose gfilenotify as the default. > > I wonder if we should revert our decision to prefer gfilenotify if > available, and instead use it only if there's no other supported > method. It begins to sound more and more like gfilenotify is more > trouble than it's worth. You mean the other emacs-devel thread where it has been reported that gfile notifications might get delayed up to 30 seconds? I haven't seen that issue here but if it can happen and gfilenotify doesn't provide some clear benefit over plain inotify, I'd suggest to use the latter by default when it's available. Well, at least it seems that THIS issue is considered to be a bug also by one glib developer so chances are good that it'll be fixed eventually. But of course it may take some time until a fixed version is distributed to all users and until then users will have to learn the hard way why notifications don't work [1]. Bye, Tassilo [1] I've been working on magit-filenotify.el which automatically refreshes the magit status buffer when something in the git repository changes, and at some point it just didn't work anymore (no notifications) for repositories I've started working on later while it still worked for those I've had opened earlier. Well, that way I've at least learned about inotify limits and how to change them... :-)
bug-gnu-emacs <at> gnu.org
:bug#21241
; Package emacs
.
(Wed, 12 Aug 2015 14:18:01 GMT) Full text and rfc822 format available.Message #17 received at 21241 <at> debbugs.gnu.org (full text, mbox):
From: Eli Zaretskii <eliz <at> gnu.org> To: Tassilo Horn <tsdh <at> gnu.org> Cc: 21241 <at> debbugs.gnu.org Subject: Re: bug#21241: 25.0.50; gfilenotify doesn't indicate when limits are reached Date: Wed, 12 Aug 2015 17:16:12 +0300
> From: Tassilo Horn <tsdh <at> gnu.org> > Cc: 21241 <at> debbugs.gnu.org > Date: Wed, 12 Aug 2015 15:27:26 +0200 > > Eli Zaretskii <eliz <at> gnu.org> writes: > > >> Well, one thing we could do was preferring plain inotify over glib's > >> GFileMonitor when both are available. On my GNU/Linux box both are > >> available and configure chose gfilenotify as the default. > > > > I wonder if we should revert our decision to prefer gfilenotify if > > available, and instead use it only if there's no other supported > > method. It begins to sound more and more like gfilenotify is more > > trouble than it's worth. > > You mean the other emacs-devel thread where it has been reported that > gfile notifications might get delayed up to 30 seconds? That, and this bug, and also the fact that it simply doesn't work on Windows (no notifications come in), although the corresponding glib tests all pass. There's also bug#20417, and I think someone also complained about gfilenotify on OS X. > Well, at least it seems that THIS issue is considered to be a bug also > by one glib developer so chances are good that it'll be fixed > eventually. Let's hope it will be.
bug-gnu-emacs <at> gnu.org
:bug#21241
; Package emacs
.
(Wed, 12 Aug 2015 19:19:01 GMT) Full text and rfc822 format available.Message #20 received at 21241 <at> debbugs.gnu.org (full text, mbox):
From: Michael Albinus <michael.albinus <at> gmx.de> To: Eli Zaretskii <eliz <at> gnu.org> Cc: 21241 <at> debbugs.gnu.org, Tassilo Horn <tsdh <at> gnu.org> Subject: Re: bug#21241: 25.0.50; gfilenotify doesn't indicate when limits are reached Date: Wed, 12 Aug 2015 21:18:45 +0200
Eli Zaretskii <eliz <at> gnu.org> writes: >> > I wonder if we should revert our decision to prefer gfilenotify if >> > available, and instead use it only if there's no other supported >> > method. It begins to sound more and more like gfilenotify is more >> > trouble than it's worth. >> >> You mean the other emacs-devel thread where it has been reported that >> gfile notifications might get delayed up to 30 seconds? > > That, and this bug, and also the fact that it simply doesn't work on > Windows (no notifications come in), although the corresponding glib > tests all pass. There's also bug#20417, and I think someone also > complained about gfilenotify on OS X. I would also agree to favor inotify when available. On OS X (better: on systems which have defined HAVE_NS), we should disable gfilenotify, because the Glib main loop won't be used (ns_select is used rather than xg_select). Best regards, Michael.
bug-gnu-emacs <at> gnu.org
:bug#21241
; Package emacs
.
(Sat, 15 Aug 2015 01:28:01 GMT) Full text and rfc822 format available.Message #23 received at 21241 <at> debbugs.gnu.org (full text, mbox):
From: Paul Eggert <eggert <at> cs.ucla.edu> To: Michael Albinus <michael.albinus <at> gmx.de> Cc: Eli Zaretskii <eliz <at> gnu.org>, 21241 <at> debbugs.gnu.org, Tassilo Horn <tsdh <at> gnu.org> Subject: Re: 25.0.50; gfilenotify doesn't indicate when limits are reached Date: Fri, 14 Aug 2015 18:27:39 -0700
[Message part 1 (text/plain, inline)]
Michael Albinus writes: > I would also agree to favor inotify when available. Let's give that a try, then. I installed the attached patch as master commit 200c2b10faf298bf65e8b6dbd0cb9ef00b2f95d6. > On OS X (better: on systems which have defined HAVE_NS), we should > disable gfilenotify, because the Glib main loop won't be used (ns_select > is used rather than xg_select). configure.ac was trying to do that, but there was a typo. Should also be fixed in the attached patch.
[0001-Default-to-inotify-instead-of-gfile.patch (text/x-diff, attachment)]
bug-gnu-emacs <at> gnu.org
:bug#21241
; Package emacs
.
(Tue, 18 Aug 2015 14:34:02 GMT) Full text and rfc822 format available.Message #26 received at 21241 <at> debbugs.gnu.org (full text, mbox):
From: Tassilo Horn <tsdh <at> gnu.org> To: Paul Eggert <eggert <at> cs.ucla.edu> Cc: Michael Albinus <michael.albinus <at> gmx.de>, 21241 <at> debbugs.gnu.org Subject: Re: bug#21241: 25.0.50; gfilenotify doesn't indicate when limits are reached Date: Tue, 18 Aug 2015 16:33:56 +0200
Paul Eggert <eggert <at> cs.ucla.edu> writes: >> I would also agree to favor inotify when available. > > Let's give that a try, then. I installed the attached patch as master > commit 200c2b10faf298bf65e8b6dbd0cb9ef00b2f95d6. FWIW, all my file-notification needs are still satisfied with inotify as `file-notify--library', and now I also get an error when I run out of allowed used watches. So from my side, feel free to close this report as gfilenotify's broken behavior is glib's bug, not ours. Bye, Tassilo
Paul Eggert <eggert <at> cs.ucla.edu>
:Tassilo Horn <tsdh <at> gnu.org>
:Message #31 received at 21241-done <at> debbugs.gnu.org (full text, mbox):
From: Paul Eggert <eggert <at> cs.ucla.edu> To: Tassilo Horn <tsdh <at> gnu.org> Cc: Michael Albinus <michael.albinus <at> gmx.de>, 21241-done <at> debbugs.gnu.org Subject: Re: bug#21241: 25.0.50; gfilenotify doesn't indicate when limits are reached Date: Tue, 18 Aug 2015 10:09:03 -0700
Tassilo Horn wrote: > So from my side, feel free to close this report > as gfilenotify's broken behavior is glib's bug, not ours. Thanks for checking; closing the bug.
bug-gnu-emacs <at> gnu.org
:bug#21241
; Package emacs
.
(Fri, 21 Aug 2015 09:47:01 GMT) Full text and rfc822 format available.Message #34 received at 21241 <at> debbugs.gnu.org (full text, mbox):
From: Michael Albinus <michael.albinus <at> gmx.de> To: Tassilo Horn <tsdh <at> gnu.org> Cc: 21241 <at> debbugs.gnu.org Subject: Re: bug#21241: 25.0.50; gfilenotify doesn't indicate when limits are reached Date: Fri, 21 Aug 2015 11:46:28 +0200
Tassilo Horn <tsdh <at> gnu.org> writes: > So I've tried the following: > > diff --git a/src/gfilenotify.c b/src/gfilenotify.c > index 08713a8..2ad2110 100644 > --- a/src/gfilenotify.c > +++ b/src/gfilenotify.c > @@ -172,8 +172,9 @@ will be reported only in case of the 'moved' event. */) > gflags |= G_FILE_MONITOR_SEND_MOVED; > > /* Enable watch. */ > - monitor = g_file_monitor (gfile, gflags, NULL, NULL); > - if (! monitor) > + GError *err = NULL; > + monitor = g_file_monitor (gfile, gflags, NULL, &err); > + if (! monitor || err != NULL) > xsignal2 (Qfile_notify_error, build_string ("Cannot watch file"), file); > > Lisp_Object watch_descriptor = make_pointer_integer (monitor); For the records, I've committed a modified version of this patch. It returns the error message from g_file_monitor, if present. Best regards, Michael.
Debbugs Internal Request <help-debbugs <at> gnu.org>
to internal_control <at> debbugs.gnu.org
.
(Fri, 18 Sep 2015 11:24:04 GMT) Full text and rfc822 format available.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.