Bernardo
2019-10-23 10:28:06 UTC
Emacs built from Git repository (21-Oct-2019) is running in a Virtual
Box virtual machine.
The guest operating system (VM) where Emacs is running is Debian
~$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 9.11 (stretch)
Release: 9.11
Codename: stretch
The host operating system is Windows 10 Enterprise, version 1709, build
16299.1451.
VirtualBox version is 6.0.14
1. Start emacs with -Q command line option
2 Run command:
M-: (setq debug-on-error t) RET
to see error details
3. Use C-x C-f to open /media/sf_Home/zz_stuff - a text file within
Virtual Box shared directory.
The user has read/write privileges on the file. Also, file can be
modified without problems in other editors.
4. Modify the file and save it with C-x C-s
5. The save operation fails and the stack shows:
Debugger entered--Lisp error: (file-error "Unlocking file" "Operation not permitted" "/media/sf_Home/zz_stuff")
write-region(nil nil "/home/mk7/zz_stuff" nil t "/media/sf_Home/zz_stuff")
basic-save-buffer-2()
basic-save-buffer-1()
basic-save-buffer(t)
save-buffer(1)
funcall-interactively(save-buffer 1)
call-interactively(save-buffer nil nil)
command-execute(save-buffer)
When Emacs is started with strace ( $ strace emacs -Q ) it can be seen
that there are issues with the lock file that's created -
/media/sf_Home/.#zz_stuff
The strace messages are in the attachement.
The 'shared directory' is a feature of Virtual Box which allows both the
host and applications running in a virtual machine to have access to
files in the same directory.
The file system type of the shared directory is vboxsf which seems to be
a layer on top of NTFS.
$ mount | grep vbox
Home on /media/sf_Home type vboxsf (rw,nodev,relatime,<snip>
It looks like symbolic links are not allowed on
this FS type; from terminal:
$ ln -s zz_stuff my_link
ln: failed to create symbolic link 'my_link': Operation not permitted
Appears Emacs doesn't detect a symlink cannot be created on this file
system
https://www.gnu.org/software/emacs/manual/html_node/emacs/Interlocking.html
"[1] If your file system does not support symbolic links, a regular file is used."
The old version of Emacs installed using Debian package manager doesn't
have this issue - it can write to the same file without
problems. However I couldn't see a 'lock file' in the directory where
the edited file is located. It appears in this case the lock file is
created elsewhere (possibly .emacs.d directory) in the native (ext4)
file system.
This old Emacs version is
GNU Emacs 24.5.1 (x86_64-pc-linux-gnu, GTK+ Version 3.22.11) of 2017-09-12 on hullmann, modified by Debian
In GNU Emacs 27.0.50 (build 2, x86_64-pc-linux-gnu, GTK+ Version 3.22.11)
of 2019-10-21 built on deb
Repository revision: 30deac84c4168a6315a08a0dd85f6dde9b9df439
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 11.0.11902000
System Description: Debian GNU/Linux 9 (stretch)
Recent messages:
For information about GNU Emacs and the GNU system, type C-h C-a.
Configured features:
XPM JPEG TIFF GIF PNG RSVG SOUND GPM DBUS GSETTINGS GLIB NOTIFY INOTIFY
GNUTLS LIBXML2 FREETYPE HARFBUZZ M17N_FLT LIBOTF XFT ZLIB
TOOLKIT_SCROLL_BARS GTK3 X11 XDBE XIM MODULES THREADS LIBSYSTEMD JSON
PDUMPER LCMS2 GMP
Important settings:
value of $LC_COLLATE: C
value of $LANG: en_AU.UTF-8
locale-coding-system: utf-8-unix
Major mode: Lisp Interaction
Minor modes in effect:
tooltip-mode: t
global-eldoc-mode: t
eldoc-mode: t
electric-indent-mode: t
mouse-wheel-mode: t
tool-bar-mode: t
menu-bar-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
line-number-mode: t
transient-mark-mode: t
Load-path shadows:
None found.
Features:
(shadow sort mail-extr emacsbug message rmc puny dired dired-loaddefs
format-spec rfc822 mml easymenu mml-sec password-cache epa derived epg
epg-config gnus-util rmail rmail-loaddefs text-property-search time-date
subr-x seq byte-opt gv bytecomp byte-compile cconv mm-decode mm-bodies
mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader cl-loaddefs
cl-lib sendmail rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail-utils
tooltip eldoc electric uniquify ediff-hook vc-hooks lisp-float-type
mwheel term/x-win x-win term/common-win x-dnd tool-bar dnd fontset image
regexp-opt fringe tabulated-list replace newcomment text-mode elisp-mode
lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch
timer select scroll-bar mouse jit-lock font-lock syntax facemenu
font-core term/tty-colors 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 composite charscript charprop 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 threads dbusbind inotify lcms2
dynamic-setting system-font-setting font-render-setting move-toolbar gtk
x-toolkit x multi-tty make-network-process emacs)
Memory information:
((conses 16 43885 6288)
(symbols 48 5994 1)
(strings 32 15356 1694)
(string-bytes 1 501149)
(vectors 16 9174)
(vector-slots 8 123172 10012)
(floats 8 20 37)
(intervals 56 183 0)
(buffers 1000 11))
Box virtual machine.
The guest operating system (VM) where Emacs is running is Debian
~$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 9.11 (stretch)
Release: 9.11
Codename: stretch
The host operating system is Windows 10 Enterprise, version 1709, build
16299.1451.
VirtualBox version is 6.0.14
1. Start emacs with -Q command line option
2 Run command:
M-: (setq debug-on-error t) RET
to see error details
3. Use C-x C-f to open /media/sf_Home/zz_stuff - a text file within
Virtual Box shared directory.
The user has read/write privileges on the file. Also, file can be
modified without problems in other editors.
4. Modify the file and save it with C-x C-s
5. The save operation fails and the stack shows:
Debugger entered--Lisp error: (file-error "Unlocking file" "Operation not permitted" "/media/sf_Home/zz_stuff")
write-region(nil nil "/home/mk7/zz_stuff" nil t "/media/sf_Home/zz_stuff")
basic-save-buffer-2()
basic-save-buffer-1()
basic-save-buffer(t)
save-buffer(1)
funcall-interactively(save-buffer 1)
call-interactively(save-buffer nil nil)
command-execute(save-buffer)
When Emacs is started with strace ( $ strace emacs -Q ) it can be seen
that there are issues with the lock file that's created -
/media/sf_Home/.#zz_stuff
The strace messages are in the attachement.
The 'shared directory' is a feature of Virtual Box which allows both the
host and applications running in a virtual machine to have access to
files in the same directory.
The file system type of the shared directory is vboxsf which seems to be
a layer on top of NTFS.
$ mount | grep vbox
Home on /media/sf_Home type vboxsf (rw,nodev,relatime,<snip>
It looks like symbolic links are not allowed on
this FS type; from terminal:
$ ln -s zz_stuff my_link
ln: failed to create symbolic link 'my_link': Operation not permitted
Appears Emacs doesn't detect a symlink cannot be created on this file
system
https://www.gnu.org/software/emacs/manual/html_node/emacs/Interlocking.html
"[1] If your file system does not support symbolic links, a regular file is used."
The old version of Emacs installed using Debian package manager doesn't
have this issue - it can write to the same file without
problems. However I couldn't see a 'lock file' in the directory where
the edited file is located. It appears in this case the lock file is
created elsewhere (possibly .emacs.d directory) in the native (ext4)
file system.
This old Emacs version is
GNU Emacs 24.5.1 (x86_64-pc-linux-gnu, GTK+ Version 3.22.11) of 2017-09-12 on hullmann, modified by Debian
In GNU Emacs 27.0.50 (build 2, x86_64-pc-linux-gnu, GTK+ Version 3.22.11)
of 2019-10-21 built on deb
Repository revision: 30deac84c4168a6315a08a0dd85f6dde9b9df439
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 11.0.11902000
System Description: Debian GNU/Linux 9 (stretch)
Recent messages:
For information about GNU Emacs and the GNU system, type C-h C-a.
Configured features:
XPM JPEG TIFF GIF PNG RSVG SOUND GPM DBUS GSETTINGS GLIB NOTIFY INOTIFY
GNUTLS LIBXML2 FREETYPE HARFBUZZ M17N_FLT LIBOTF XFT ZLIB
TOOLKIT_SCROLL_BARS GTK3 X11 XDBE XIM MODULES THREADS LIBSYSTEMD JSON
PDUMPER LCMS2 GMP
Important settings:
value of $LC_COLLATE: C
value of $LANG: en_AU.UTF-8
locale-coding-system: utf-8-unix
Major mode: Lisp Interaction
Minor modes in effect:
tooltip-mode: t
global-eldoc-mode: t
eldoc-mode: t
electric-indent-mode: t
mouse-wheel-mode: t
tool-bar-mode: t
menu-bar-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
line-number-mode: t
transient-mark-mode: t
Load-path shadows:
None found.
Features:
(shadow sort mail-extr emacsbug message rmc puny dired dired-loaddefs
format-spec rfc822 mml easymenu mml-sec password-cache epa derived epg
epg-config gnus-util rmail rmail-loaddefs text-property-search time-date
subr-x seq byte-opt gv bytecomp byte-compile cconv mm-decode mm-bodies
mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader cl-loaddefs
cl-lib sendmail rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail-utils
tooltip eldoc electric uniquify ediff-hook vc-hooks lisp-float-type
mwheel term/x-win x-win term/common-win x-dnd tool-bar dnd fontset image
regexp-opt fringe tabulated-list replace newcomment text-mode elisp-mode
lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch
timer select scroll-bar mouse jit-lock font-lock syntax facemenu
font-core term/tty-colors 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 composite charscript charprop 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 threads dbusbind inotify lcms2
dynamic-setting system-font-setting font-render-setting move-toolbar gtk
x-toolkit x multi-tty make-network-process emacs)
Memory information:
((conses 16 43885 6288)
(symbols 48 5994 1)
(strings 32 15356 1694)
(string-bytes 1 501149)
(vectors 16 9174)
(vector-slots 8 123172 10012)
(floats 8 20 37)
(intervals 56 183 0)
(buffers 1000 11))