From: goeran@uddeborg.se
To: 11245@debbugs.gnu.org
Subject: bug#11245: 24.0.95; set-file-selinux-context fails when the filesystem doesn't support contexts
Date: Sun, 15 Apr 2012 13:27:51 +0200 [thread overview]
Message-ID: <m0vcl1kzew.fsf@freddi.uddeborg> (raw)
After upgrading to emacs to the one in Fedora 17 test release, numbered
24.0.95, I started to get messages about emacs failing to write backup
files, and it writing a %backup%~ file instead. Checking in the file
system, emacs had successfully made a backup file. After a bit of
investigation, I believe it has to do with emacs trying to set SELinux
context on a file system which doesn't support it. In my case, my home
directory is mounted via NFS.
So to reproduce, I do the following, starting in a directory in an NFS
file system:
On the command line:
freddi$ touch apa
freddi$ ll -Z apa
-rw-rw-r--. göran göran system_u:object_r:nfs_t:SystemLow apa
freddi$ emacs -Q
Then, in emacs:
M-x s e t - v a r <tab> <return> b a c k u <tab> b
y <tab> <return> t <return> C-x C-f a p a <return>
a p a C-x C-s
Now I get an error message:
Cannot write backup file; backing up in ~/.emacs.d/%backup%~
But there is an (empty) file "apa~", so the backup DID succeed.
My understanding is that the root cause is the function
set-file-selinux-context in fileio.c failing with a file error when the
lsetfilecon() call fails. But it is not really an error if it fails
with errno set to ENOTSUP. A system which does support SELinux may very
well have some parts of the file tree where you can't modify the
context. Such as an NFS home directory.
It seems to me that the case where lsetfilecon() fails with ENOTSUP
should be handled in the same way as if is_selinux_enabled() returned
false in the first place, i.e. just return without any error. Do I miss
something?
In GNU Emacs 24.0.95.1 (x86_64-redhat-linux-gnu, GTK+ Version 2.24.10)
of 2012-04-06 on x86-13.phx2.fedoraproject.org
Windowing system distributor `Fedora Project', version 11.0.11002000
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=gtk' '--with-gpm=no'
'--with-wide-int' 'build_alias=x86_64-redhat-linux-gnu'
'host_alias=x86_64-redhat-linux-gnu' 'CFLAGS=-DMAIL_USE_LOCKF -O2 -g
-pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector
--param=ssp-buffer-size=4 -m64 -mtune=generic' 'LDFLAGS=-Wl,-z,relro ''
Important settings:
value of $LC_ALL: nil
value of $LC_COLLATE: nil
value of $LC_CTYPE: nil
value of $LC_MESSAGES: nil
value of $LC_MONETARY: nil
value of $LC_NUMERIC: nil
value of $LC_TIME: nil
value of $LANG: sv_SE.utf8
value of $XMODIFIERS: nil
locale-coding-system: utf-8-unix
default enable-multibyte-characters: t
Major mode: Fundamental
Minor modes in effect:
tooltip-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: (only . t)
Recent input:
M-x s e t - v a r <tab> <return> b a c k u <tab> b
<tab> <return> t <return> C-x C-f a p a <return> a
p a C-x C-s M-x r e p o r t - e m a <tab> <return>
Recent messages:
For information about GNU Emacs and the GNU system, type C-h C-a.
Saving file /home/göran/apa...
Cannot write backup file; backing up in ~/.emacs.d/%backup%~
Wrote /home/göran/apa
Load-path shadows:
None found.
Features:
(shadow sort gnus-util mail-extr emacsbug message format-spec rfc822 mml
mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev
gmm-utils mailheader sendmail regexp-opt rfc2047 rfc2045 ietf-drums
mm-util mail-prsvr mail-utils cus-edit easymenu cus-start cus-load
wid-edit help-fns time-date tooltip ediff-hook vc-hooks lisp-float-type
mwheel x-win x-dnd tool-bar dnd fontset image fringe lisp-mode register
page menu-bar rfn-eshadow timer select scroll-bar mouse jit-lock
font-lock syntax facemenu font-core frame cham georgian utf-8-lang
misc-lang vietnamese tibetan thai tai-viet lao korean japanese hebrew
greek romanian slovak czech european ethiopic indian cyrillic chinese
case-table epa-hook jka-cmpr-hook help simple abbrev minibuffer loaddefs
button faces cus-face files text-properties overlay sha1 md5 base64
format env code-pages mule custom widget hashtable-print-readable
backquote make-network-process dbusbind dynamic-setting
system-font-setting font-render-setting move-toolbar gtk x-toolkit x
multi-tty emacs)
next reply other threads:[~2012-04-15 11:27 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-04-15 11:27 goeran [this message]
2012-04-16 17:51 ` bug#11245: 24.0.95; set-file-selinux-context fails when the filesystem doesn't support contexts Glenn Morris
2012-04-19 17:36 ` Glenn Morris
2012-04-19 17:39 ` Glenn Morris
2012-04-20 17:29 ` Glenn Morris
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=m0vcl1kzew.fsf@freddi.uddeborg \
--to=goeran@uddeborg.se \
--cc=11245@debbugs.gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.