GNU bug report logs -
#22481
25.1.50; vc-hg: emacs "deadlocks" after using hg with huge amounts of ignored files in the repo
Previous Next
Reported by: Jan Synacek <jsynacek <at> redhat.com>
Date: Thu, 28 Jan 2016 09:12:01 UTC
Severity: normal
Merged with 19304
Found in versions 25.0.50, 25.1.50
Fixed in version 25.1
Done: Dmitry Gutov <dgutov <at> yandex.ru>
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 22481 in the body.
You can then email your comments to 22481 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#22481
; Package
emacs
.
(Thu, 28 Jan 2016 09:12:01 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Jan Synacek <jsynacek <at> redhat.com>
:
New bug report received and forwarded. Copy sent to
bug-gnu-emacs <at> gnu.org
.
(Thu, 28 Jan 2016 09:12:01 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
Steps to reproduce:
1) hg clone https://bitbucket.org/vim-mirror/vim (or any other repo will
do, but I couldn't resist reproducing the issue on this one...)
2) Generate a million files, that will be considered "ignored" in the repo
$ cd vim
$ for i in $(seq 1 1000000); do echo ignored > ignored-$i.rej; done
3) Fire up emacs, C-x C-f <the vim repo directory>
At this point, it will take a while, but that may be a separate issue.
4) Edit any tracked file and save it.
5) C-x v d ENTER
6) Go to a file that's been modified and hit 'v', enter a log message,
then C-c C-c to commit the change.
7) Hit 'g' to refresh the buffer.
8) Observe the freeze.
Emacs freezes because it's running 'hg status -mardui -C <files>'. The
'-i' is the problem here. Since it takes hg itself a very long time, I'm
not sure if it can be directly fixed in Emacs. But at least a
configuration option that would allow one to disable the "-i" option
would be nice.
Original bugreport: https://bugzilla.redhat.com/show_bug.cgi?id=1232422
In GNU Emacs 25.1.50.2 (x86_64-redhat-linux-gnu, GTK+ Version 3.18.6)
of 2016-01-28 built on copr-builder-504260318.novalocal
Windowing system distributor 'Fedora Project', version 11.0.11800000
System Description: Generic release 23 (Generic)
Configured using:
'configure --build=x86_64-redhat-linux-gnu
--host=x86_64-redhat-linux-gnu --program-prefix=
--disable-dependency-tracking --prefix=/usr --exec-prefix=/usr
--bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc
--datadir=/usr/share --includedir=/usr/include --libdir=/usr/lib64
--libexecdir=/usr/libexec --localstatedir=/var
--sharedstatedir=/var/lib --mandir=/usr/share/man
--infodir=/usr/share/info --with-dbus --with-gif --with-jpeg --with-png
--with-rsvg --with-tiff --with-xft --with-xpm --with-x-toolkit=gtk3
--with-gpm=no build_alias=x86_64-redhat-linux-gnu
host_alias=x86_64-redhat-linux-gnu 'CFLAGS=-DMAIL_USE_LOCKF -O2 -g
-pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2
-fexceptions -fstack-protector-strong --param=ssp-buffer-size=4
-grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1
-m64 -mtune=generic' LDFLAGS=-Wl,-z,relro
PKG_CONFIG_PATH=:/usr/lib64/pkgconfig:/usr/share/pkgconfig'
Configured features:
XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND DBUS GCONF GSETTINGS NOTIFY
ACL LIBSELINUX GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB
TOOLKIT_SCROLL_BARS GTK3 X11
Important settings:
value of $LANG: en_US.utf8
value of $XMODIFIERS: @im=none
locale-coding-system: utf-8-unix
Major mode: ERC
Minor modes in effect:
diff-auto-refine-mode: t
erc-notifications-mode: t
shell-dirtrack-mode: t
erc-list-mode: t
erc-menu-mode: t
erc-autojoin-mode: t
erc-ring-mode: t
erc-networks-mode: t
erc-pcomplete-mode: t
erc-track-mode: t
erc-track-minor-mode: t
erc-match-mode: t
erc-button-mode: t
erc-fill-mode: t
erc-stamp-mode: t
erc-netsplit-mode: t
erc-irccontrols-mode: t
erc-noncommands-mode: t
erc-move-to-prompt-mode: t
erc-readonly-mode: t
recentf-mode: t
override-global-mode: t
show-paren-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
auto-composition-mode: t
auto-encryption-mode: t
auto-compression-mode: t
column-number-mode: t
line-number-mode: t
transient-mark-mode: t
Recent messages:
Loading /home/jsynacek/.emacs.d/recentf...done
Cleaning up the recentf list...done (0 removed)
For information about GNU Emacs and the GNU system, type C-h C-a.
ad-handle-definition: ‘tramp-read-passwd’ got redefined
(redacted for private info)
Mark set
Could not load org-notmuch
Load-path shadows:
/home/jsynacek/.emacs.d/elpa/helm-20160119.417/helm-multi-match hides /home/jsynacek/.emacs.d/elpa/helm-core-20160119.936/helm-multi-match
/home/jsynacek/.emacs.d/elpa/magit-20160119.1409/magit-popup hides /home/jsynacek/.emacs.d/elpa/magit-popup-20160119.1409/magit-popup
Features:
(shadow sort mail-extr emacsbug sendmail notmuch hl-line notmuch-message
notmuch-maildir-fcc notmuch-hello notmuch-tree notmuch-parser
notmuch-show notmuch-print notmuch-crypto notmuch-mua notmuch-address
notmuch-wash diff-mode coolj notmuch-query goto-addr icalendar diary-lib
diary-loaddefs cal-menu calendar cal-loaddefs notmuch-tag crm
notmuch-lib notmuch-version cl message idna rfc822 mml mailabbrev
mail-utils gmm-utils mailheader mm-view mml-smime mml-sec epg smime dig
mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045
ietf-drums erc-desktop-notifications notifications dbus winner
helm-command helm-elisp helm-eval edebug helm-mode helm-files rx
image-dired tramp tramp-compat tramp-loaddefs trampver ucs-normalize
shell dired-aux ffap helm-buffers helm-elscreen helm-tags helm-bookmark
helm-adaptive helm-info bookmark helm-locate helm-external helm-net
browse-url xml url url-proxy url-privacy url-expand url-methods
url-history url-cookie url-domsuf url-util mailcap helm-types private
erc-list erc-menu erc-join erc-ring erc-networks erc-pcomplete pcomplete
erc-track erc-match erc-button erc-fill erc-stamp erc-netsplit
erc-goodies erc erc-backend erc-compat format-spec thingatpt pp
helm-swoop helm-grep helm-regexp helm-plugin helm-utils compile comint
ansi-color ring helm-help helm helm-source eieio-compat helm-multi-match
helm-lib geiser recentf tree-widget wid-edit edmacro kmacro dired-x
dired dired-loaddefs cc-mode cc-fonts cc-guess cc-menus cc-cmds
cc-styles cc-align cc-engine cc-vars cc-defs use-package diminish
bind-key easy-mmode advice finder-inf goto-chg-autoloads
undo-tree-autoloads info package epg-config url-handlers url-parse
auth-source cl-seq eieio byte-opt bytecomp byte-compile cl-extra cconv
eieio-core cl-macs gv eieio-loaddefs gnus-util mm-util help-fns
help-mode easymenu cl-loaddefs pcase cl-lib mail-prsvr password-cache
url-vars paren 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 obarray 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 inotify
dynamic-setting system-font-setting font-render-setting move-toolbar gtk
x-toolkit x multi-tty make-network-process emacs)
Memory information:
((conses 16 404816 27547)
(symbols 48 39279 0)
(miscs 40 147 579)
(strings 32 78662 12230)
(string-bytes 1 2409843)
(vectors 16 58360)
(vector-slots 8 965773 25031)
(floats 8 378 279)
(intervals 56 1052 111)
(buffers 976 19)
(heap 1024 47080 3625))
--
Jan Synacek
Software Engineer, Red Hat
Severity set to 'minor' from 'normal'
Request was from
Glenn Morris <rgm <at> gnu.org>
to
control <at> debbugs.gnu.org
.
(Thu, 28 Jan 2016 22:36:02 GMT)
Full text and
rfc822 format available.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#22481
; Package
emacs
.
(Fri, 29 Jan 2016 01:55:02 GMT)
Full text and
rfc822 format available.
Message #10 received at 22481 <at> debbugs.gnu.org (full text, mbox):
On 01/28/2016 12:10 PM, Jan Synacek wrote:
> Emacs freezes because it's running 'hg status -mardui -C <files>'. The
> '-i' is the problem here. Since it takes hg itself a very long time, I'm
> not sure if it can be directly fixed in Emacs. But at least a
> configuration option that would allow one to disable the "-i" option
> would be nice.
Haven't we fixed this already? See
http://debbugs.gnu.org/cgi/bugreport.cgi?bug=19304, I've fixed what I
could reproduce.
The current definition of vc-hg-status-files looks like this:
(defun vc-hg-dir-status-files (dir files update-function)
(apply 'vc-hg-command (current-buffer) 'async dir "status"
(concat "-mardu" (if files "i"))
"-C" files)
(vc-run-delayed
(vc-hg-after-dir-status update-function)))
IOW, we only pass '-i' when we ask the backend for the status of
specific files. Which shouldn't be slow.
If it is, I'm pretty sure it's Mercurial's problem.
(You can add a (message "files: %s" files) call at the beginning of
vc-hg-dir-status-files, to see what file list it's called with.
Forcibly Merged 19304 22481.
Request was from
Glenn Morris <rgm <at> gnu.org>
to
control <at> debbugs.gnu.org
.
(Fri, 29 Jan 2016 02:10:01 GMT)
Full text and
rfc822 format available.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#22481
; Package
emacs
.
(Fri, 29 Jan 2016 08:43:02 GMT)
Full text and
rfc822 format available.
Message #15 received at 22481 <at> debbugs.gnu.org (full text, mbox):
Dmitry Gutov <dgutov <at> yandex.ru> writes:
> On 01/28/2016 12:10 PM, Jan Synacek wrote:
>
>> Emacs freezes because it's running 'hg status -mardui -C <files>'. The
>> '-i' is the problem here. Since it takes hg itself a very long time, I'm
>> not sure if it can be directly fixed in Emacs. But at least a
>> configuration option that would allow one to disable the "-i" option
>> would be nice.
>
> Haven't we fixed this already? See
> http://debbugs.gnu.org/cgi/bugreport.cgi?bug=19304, I've fixed what I
> could reproduce.
Please, try my reproducer. The refresh *after* committing a message
tries to display the ignored files.
--
Jan Synacek
Software Engineer, Red Hat
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#22481
; Package
emacs
.
(Sat, 30 Jan 2016 02:51:02 GMT)
Full text and
rfc822 format available.
Message #18 received at 22481 <at> debbugs.gnu.org (full text, mbox):
On 01/29/2016 11:42 AM, Jan Synacek wrote:
> Please, try my reproducer. The refresh *after* committing a message
> tries to display the ignored files.
So, this is the actual problem. Thanks. It would've been great if I
didn't have to
for i in $(seq 1 1000000); do echo ignored > ignored-$i.rej; done
which took several minutes on my machine, and took considerable time to
clean up, too.
Another way to reproduce this:
- Make changes to a file.
- Undo those changes, so it shows up as 'up-to-date' in vc-dir.
- Press 'g' there. See the ignored files show up.
Reply sent
to
Dmitry Gutov <dgutov <at> yandex.ru>
:
You have taken responsibility.
(Sat, 30 Jan 2016 04:01:02 GMT)
Full text and
rfc822 format available.
Notification sent
to
Jan Synacek <jsynacek <at> redhat.com>
:
bug acknowledged by developer.
(Sat, 30 Jan 2016 04:01:02 GMT)
Full text and
rfc822 format available.
Message #23 received at 22481-done <at> debbugs.gnu.org (full text, mbox):
Version: 25.1
> - Press 'g' there. See the ignored files show up.
Should be fixed in 06083cf now. Thanks again, closing.
Reply sent
to
Dmitry Gutov <dgutov <at> yandex.ru>
:
You have taken responsibility.
(Sat, 30 Jan 2016 04:01:02 GMT)
Full text and
rfc822 format available.
Notification sent
to
sds <at> gnu.org
:
bug acknowledged by developer.
(Sat, 30 Jan 2016 04:01:03 GMT)
Full text and
rfc822 format available.
bug archived.
Request was from
Debbugs Internal Request <help-debbugs <at> gnu.org>
to
internal_control <at> debbugs.gnu.org
.
(Sat, 27 Feb 2016 12:24:03 GMT)
Full text and
rfc822 format available.
This bug report was last modified 9 years and 118 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.