All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [Bug 1336794] [NEW] 9pfs does not honor open file handles on unlinked files
@ 2014-07-02 13:52 Cole Robinson
  2015-04-10 12:30 ` [Qemu-devel] [Bug 1336794] " Mark Glines
                   ` (17 more replies)
  0 siblings, 18 replies; 39+ messages in thread
From: Cole Robinson @ 2014-07-02 13:52 UTC (permalink / raw)
  To: qemu-devel

Public bug reported:

This was originally filed over here:
https://bugzilla.redhat.com/show_bug.cgi?id=1114221

The open-unlink-fstat idiom used in some places to create an anonymous
private temporary file does not work in a QEMU guest over a virtio-9p
filesystem.

Version-Release number of selected component (if applicable):

qemu-kvm-1.6.2-6.fc20.x86_64
qemu-system-x86-1.6.2-6.fc20.x86_64
(those are fedora RPMs)

How reproducible:

Always. See this example C program:

https://bugzilla.redhat.com/attachment.cgi?id=913069

Steps to Reproduce:
1. Export a filesystem with virt-manager for the guest.
      (type: mount, driver: default, mode: passthrough)
2. Start guest and mount that filesystem
      (mount -t 9p -o trans=virtio,version=9p2000.L  ...)
3. Run a program that uses open-unlink-fstat
      (in my case it was trying to compile Perl 5.20)

Actual results:

fstat fails:

open("/home/tst/filename", O_RDWR|O_CREAT|O_EXCL, 0600) = 3
unlink("/home/tst/filename")            = 0
fstat(3, 0x23aa1a8)                     = -1 ENOENT (No such file or directory)
close(3)

Expected results:

open("/home/tst/filename", O_RDWR|O_CREAT|O_EXCL, 0600) = 3
unlink("/home/tst/filename")            = 0
fstat(3, {st_mode=S_IFREG|0600, st_size=0, ...}) = 0
fcntl(3, F_SETFD, FD_CLOEXEC)           = 0
close(3) 

Additional info:

There was a patch put into the kernel back in '07 to handle this very
problem for other filesystems; maybe its helpful:

      http://lwn.net/Articles/251228/

There is also a thread on LKML from last December specifically about
this very problem:

      https://lkml.org/lkml/2013/12/31/163

There was a discussion on the QEMU list back in '11 that doesn't seem to
have come to a conclusion, but did provide the test program that i've
attached to this report:

      http://marc.info/?l=qemu-devel&m=130443605720648&w=2

** Affects: qemu
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1336794

Title:
  9pfs does not honor open file handles on unlinked files

Status in QEMU:
  New

Bug description:
  This was originally filed over here:
  https://bugzilla.redhat.com/show_bug.cgi?id=1114221

  The open-unlink-fstat idiom used in some places to create an anonymous
  private temporary file does not work in a QEMU guest over a virtio-9p
  filesystem.

  Version-Release number of selected component (if applicable):

  qemu-kvm-1.6.2-6.fc20.x86_64
  qemu-system-x86-1.6.2-6.fc20.x86_64
  (those are fedora RPMs)

  How reproducible:

  Always. See this example C program:

  https://bugzilla.redhat.com/attachment.cgi?id=913069

  Steps to Reproduce:
  1. Export a filesystem with virt-manager for the guest.
        (type: mount, driver: default, mode: passthrough)
  2. Start guest and mount that filesystem
        (mount -t 9p -o trans=virtio,version=9p2000.L  ...)
  3. Run a program that uses open-unlink-fstat
        (in my case it was trying to compile Perl 5.20)

  Actual results:

  fstat fails:

  open("/home/tst/filename", O_RDWR|O_CREAT|O_EXCL, 0600) = 3
  unlink("/home/tst/filename")            = 0
  fstat(3, 0x23aa1a8)                     = -1 ENOENT (No such file or directory)
  close(3)

  Expected results:

  open("/home/tst/filename", O_RDWR|O_CREAT|O_EXCL, 0600) = 3
  unlink("/home/tst/filename")            = 0
  fstat(3, {st_mode=S_IFREG|0600, st_size=0, ...}) = 0
  fcntl(3, F_SETFD, FD_CLOEXEC)           = 0
  close(3) 

  Additional info:

  There was a patch put into the kernel back in '07 to handle this very
  problem for other filesystems; maybe its helpful:

        http://lwn.net/Articles/251228/

  There is also a thread on LKML from last December specifically about
  this very problem:

        https://lkml.org/lkml/2013/12/31/163

  There was a discussion on the QEMU list back in '11 that doesn't seem
  to have come to a conclusion, but did provide the test program that
  i've attached to this report:

        http://marc.info/?l=qemu-devel&m=130443605720648&w=2

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1336794/+subscriptions

^ permalink raw reply	[flat|nested] 39+ messages in thread

end of thread, other threads:[~2021-05-03 16:56 UTC | newest]

Thread overview: 39+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-07-02 13:52 [Qemu-devel] [Bug 1336794] [NEW] 9pfs does not honor open file handles on unlinked files Cole Robinson
2015-04-10 12:30 ` [Qemu-devel] [Bug 1336794] " Mark Glines
2015-04-12 12:42   ` Eric Van Hensbergen
2015-04-12 12:42     ` [Qemu-devel] " Eric Van Hensbergen
2015-04-12 14:09     ` Al Viro
2015-04-12 19:08       ` Eric Van Hensbergen
2015-04-13  8:27     ` [V9fs-developer] " Dominique Martinet
2015-04-13  8:27       ` [Qemu-devel] " Dominique Martinet
2015-04-13 16:05       ` Eric Van Hensbergen
2015-04-13 16:05         ` [Qemu-devel] " Eric Van Hensbergen
2015-04-14 16:07         ` Al Viro
2015-04-14 16:07           ` Al Viro
2015-04-14 16:19           ` Eric Van Hensbergen
2015-04-14 16:19             ` [Qemu-devel] " Eric Van Hensbergen
2015-04-14 21:44             ` Al Viro
2015-04-14 21:44               ` Al Viro
2015-04-15 11:28         ` Dominique Martinet
2015-04-15 11:28           ` [Qemu-devel] " Dominique Martinet
2015-04-15 14:17           ` Eric Van Hensbergen
2015-04-15 14:17             ` [Qemu-devel] " Eric Van Hensbergen
2015-04-12 12:45 ` [Qemu-devel] " Eric Van Hensbergen
2016-05-05 20:54 ` Server Angels
2016-05-25 11:14   ` Greg Kurz
2016-05-25 11:51     ` Sean Keeney
2016-05-05 21:01 ` Server Angels
2016-05-24 14:43 ` Launchpad Bug Tracker
2016-06-02 11:59 ` Greg Kurz
2016-06-25  8:25 ` Greg Kurz
2016-06-25  9:24 ` Greg Kurz
2017-08-04  6:03 ` Maxim Kuvyrkov
2017-08-04  8:00 ` Greg Kurz
2018-11-26 21:47 ` Alexander Gretha
2018-11-27  8:07 ` Greg Kurz
2018-11-28 21:20 ` Alexander Gretha
2020-05-26 11:58 ` Greg Kurz
2020-05-27  6:03 ` Greg Kurz
2020-12-10  8:47 ` Thomas Huth
2020-12-10 11:48 ` Thomas Huth
2021-05-03 16:40 ` Thomas Huth

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.