[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
infinite loop from unwriteable backup files
From: |
Ken Olum |
Subject: |
infinite loop from unwriteable backup files |
Date: |
Tue, 22 Jan 2008 12:53:29 -0500 |
In GNU Emacs 22.1.1 (x86_64-mandrake-linux-gnu, X toolkit, Xaw3d scroll bars)
of 2007-09-19 on deborah.mandriva.com, modified by Mandriva
If you try to modify a file in a write-protected directory in which
there is already a backup file for the file you are editing, then
emacs goes into an infinite loop when you attempt to save the modified
buffer. To reproduce this bug:
mkdir test
touch test/foo.bar
touch test/foo.bar~
chmod ugo-w test
emacs test/foo.bar
Modify the buffer, type C-x C-s. Emacs runs forever.
Enclosed below is a backtrace obtained by (previously) setting debug-on-quit and
typing C-g as it tries to save the file.
Ken
----------------------------------------------------------------------
delete-file("/home/kdo/test/foo.bar~")
byte-code("ÃÃÃÂÂÃ
ÃÃ$ÂÃÂ" [from-name to-name nil
(delete-file to-name) ((file-error)) copy-file t] 5)
backup-buffer-copy("/home/kdo/test/foo.bar" "/home/kdo/test/foo.bar~" 420)
byte-code("Âc Âc \n ÃÃ\nÃ\"WÂc ÃÃ!!Âc \fÂ) Ã!ÃVÂc
Â3 ¨Âm Ã!
ÂT Ã8¨Â
_ ¨Â
_ Ã8XÂ
_ Ã8Â_ Ã!?)Âm Ã\n#ÂÂz Ã
Ã#Â\nBÃÂ" [file-precious-flag backup-by-copying modes real-file-name
backup-by-copying-when-linked backup-by-copying-when-mismatch 0 logand 3072
file-writable-p file-name-directory file-nlinks 1 file-attributes 2 9
file-ownership-preserved-p backup-buffer-copy rename-file t
backup-by-copying-when-privileged-mismatch attr backupname setmodes] 4)
byte-code("Â
Ã=Â Ã=Â
 ÃÃÃ\n\"!Ã!ÃÃÃÂÂÃ
Â: Â: ÃÃÃÂÂAÂÂ. *Â" [targets delete-old-versions real-file-name
buffer-file-name modes buffer-backed-up t nil y-or-n-p format "Delete excess
backup versions of %s? " file-modes (byte-code "Âc
Âc \n ÃÃ\nÃ\"WÂc ÃÃ!!Âc \fÂ) Ã!ÃVÂc
Â3 ¨Âm Ã!
ÂT Ã8¨Â
_ ¨Â
_ Ã8XÂ
_ Ã8Â_ Ã!?)Âm Ã\n#ÂÂz Ã
Ã#Â\nBÃÂ" [file-precious-flag backup-by-copying modes real-file-name
backup-by-copying-when-linked backup-by-copying-when-mismatch 0 logand 3072
file-writable-p file-name-directory file-nlinks 1 file-attributes 2 9
file-ownership-preserved-p backup-buffer-copy rename-file t
backup-by-copying-when-privileged-mismatch attr backupname setmodes] 4)
((file-error ...)) (byte-code "Ã@!Â" [targets delete-file] 2) ((file-error))
setmodes] 5)
backup-buffer()
basic-save-buffer-2()
basic-save-buffer-1()
basic-save-buffer()
save-buffer(1)
call-interactively(save-buffer)
----------------------------------------------------------------------
Important settings:
value of $LC_ALL: nil
value of $LC_COLLATE: en_US.UTF-8
value of $LC_CTYPE: en_US.UTF-8
value of $LC_MESSAGES: en_US.UTF-8
value of $LC_MONETARY: en_US.UTF-8
value of $LC_NUMERIC: en_US.UTF-8
value of $LC_TIME: en_US.UTF-8
value of $LANG: en_US.UTF-8
locale-coding-system: utf-8
default-enable-multibyte-characters: t
Major mode: Apropos
Minor modes in effect:
shell-dirtrack-mode: t
show-paren-mode: t
tooltip-mode: t
mouse-wheel-mode: t
file-name-shadow-mode: t
global-font-lock-mode: t
font-lock-mode: t
unify-8859-on-encoding-mode: t
utf-translate-cjk-mode: t
auto-compression-mode: t
line-number-mode: t
- infinite loop from unwriteable backup files,
Ken Olum <=