Bug#970228: nemo: Can no longer copy files

2020-09-15 Thread Joe
Should I mention again that I have this problem with Nautilus and
Thunar over Samba, with Xfce on sid, and there's not a trace of ZFS
anywhere in my network? It isn't just affecting ZFS.

-- 
Joe



Bug#970228: nemo: Can no longer copy files

2020-09-15 Thread Simon McVittie
On Tue, 15 Sep 2020 at 09:43:28 +0200, Holger Schröder wrote:
> I have found the reason for this. I had already set atime=off in my
> zpools some time ago. I tried to switch it on again (zfs set atime=on
> $pool). And the problem disappeared and everything works again.

Thanks, I can now reproduce this with "zfs set atime=on pool1" and
"gio copy x y" where x is an empty file on the ZFS volume. I had
previously tried "mount -o remount,noatime", which would have worked
with other filesystems, but apparently that doesn't work with ZFS.

> why the newer glib can't handle it I don't know

Because it uses a newer file-information API that indicates when
information from the filesystem is meaningless (like the atime on a
noatime filesystem), and the code to use that API assumes that all the
information traditionally provided by stat() is meaningful, which is a
wrong assumption on a noatime ZFS volume.

smcv



Bug#970228: nemo: Can no longer copy files

2020-09-15 Thread Holger Schröder



I have found the reason for this. I had already set atime=off in my
zpools some time ago. I tried to switch it on again (zfs set atime=on
$pool). And the problem disappeared and everything works again. But why
the newer glib can't handle it I don't know.

I hope this helps to find the error.


Holger...



Bug#970228: nemo: Can no longer copy files

2020-09-14 Thread Simon McVittie
On Mon, 14 Sep 2020 at 09:09:34 +0100, Simon McVittie wrote:
> If you run it as `strace -efile nemo`, does the bug still happen? What
> output does it produce?

Ugh, I hadn't realised nemo is single-instance.

Please see whether you can reproduce this bug by installing libglib2.0-bin
and running

gio copy /path/to/some/file /path/to/other/file

which is independent of any particular GUI file managers.

If that command exhibits the same bug, then try

strace gio copy /path/to/some/file /path/to/other/file

and see what that produces.

Or try killing/exiting all nemo processes, or using a different GTK file
manager like thunar or nautilus. The goal is to get some output from
strace that only appears when you actually try (and presumably fail)
to copy the file, and refers specifically to the file you are trying to
copy. I'm a lot less interested in what happens during startup.

> I was unable to reproduce this bug: nemo copies files successfully from
> btrfs to btrfs for me.

I tried adding a ZFS volume to a test VM and I can't reproduce the bug
there either, with either nemo or `gio copy`.

On https://gitlab.gnome.org/GNOME/glib/-/issues/2189 there is some
suggestion that this might happen when copying from a read-only filesystem,
but I haven't been able to reproduce the bug that way either.

Are the filesystem you are copying from, and the filesystem you are
copying to, mounted with any non-default options? (For example, ro,
relatime or noatime.)

I have some vague ideas of places in GLib to try patching, but fixing a
bug without being able to reproduce it is a really slow process, so I
won't be able to prioritize it.

smcv



Bug#970228: nemo: Can no longer copy files

2020-09-14 Thread J Rowan
On Mon, 14 Sep 2020 12:16:05 +0200 =?UTF-8?Q?Holger_Schr=c3=b6der?=
 wrote:
> Am 14.09.20 um 11:31 schrieb Simon McVittie:
> > Control: retitle -1 nemo: Can no longer copy files on zfs since
> > GLib 2.66.x Control: retitle 970263 glib2.0: nemo can no longer
> > copy files on zfs since 2.66.x
> >
> > On Mon, 14 Sep 2020 at 11:19:04 +0200, Holger Schröder wrote:
> >> I have zfs only.
> > zfs implemented how? The zfs-dkms kernel module, or zfs-fuse?
> 
> 
> zfs-dkms, zfs-initramfs    (zfs rootfs)
> 
> https://github.com/openzfs/zfs
> 
> As said, there is only zfs and no other file system.
> 
> 
> dpkg -l | grep zfs
> ii  libzfs2linux 0.8.4-2 amd64    
> OpenZFS filesystem library for Linux
> ii  zfs-dkms 0.8.4-2 all  OpenZFS 
> filesystem kernel modules for Linux
> ii  zfs-initramfs 0.8.4-2 all  
> OpenZFS root filesystem capabilities for Linux - initramfs
> ii  zfsutils-linux 0.8.4-2 amd64    
> command-line tools to manage OpenZFS filesystems
> 

I'm seeing this with Nautilus and Thunar on sid. Source and destination
on Samba shares on ext4. No problem copying on local hard drive. 

Running Nautilus from the command line makes no difference. First
noticed today, was OK three days ago.

-- 
Joe



Bug#970228: nemo: Can no longer copy files

2020-09-14 Thread Joe
Further info:

No problem copying the same file when logged into the host of the
shares, using mc (no GUI).

No problem copying the file via Samba from another workstation using
Unison.

Other people are not using Samba, so presumably the problem isn't with
Samba itself but the interface between graphical file managers and
Samba, and between them and zfs.

-- 
Joe



Bug#970228: nemo: Can no longer copy files

2020-09-14 Thread Simon McVittie
On Mon, 14 Sep 2020 at 09:09:34 +0100, Simon McVittie wrote:
> If you run it as `strace -efile nemo`, does the bug still happen? What
> output does it produce?

>From the strace log sent by private email due to containing personal
filenames etc., statx() is basically functional on the bug reporter's
system:

openat(AT_FDCWD, "[redacted]", O_RDONLY) = 16
statx(16, "", AT_STATX_SYNC_AS_STAT|AT_EMPTY_PATH, STATX_TYPE,
  {stx_mask=STATX_TYPE|STATX_MODE|STATX_NLINK|STATX_UID|STATX_GID|
   STATX_MTIME|STATX_CTIME|STATX_INO|STATX_SIZE|STATX_BLOCKS|0x1000,
   stx_attributes=0, stx_mode=S_IFREG|0644, stx_size=[redacted], ...}) = 0

but I think we might be hitting this:

  retval = statx (dirfd, pathname, flags, mask, stat_buf);
  if (retval == 0 && (stat_buf->stx_mask & mask_required) != mask_required)
{
  /* Not all required fields could be returned. */
  errno = ERANGE;
  return -1;
}

It looks like the STATX_ATIME and STATX_BTIME are not coming back from the
kernel, and STATX_ATIME is on GLib's "required" list (for feature parity
with plain stat(), which always puts *something* in struct stat->st_atime,
even if it's nonsense.)

Additionally, the kernel is telling us the STATX_MNT_ID (0x1000), which
we didn't even ask for, but presumably it has that information so easily
available that it might as well tell us.

Holger, do you happen to know whether ZFS implements last-accessed time
(st_atime) like e.g. ext4 and btrfs do, or does it not have that concept?

 says

 * Items in STATX_BASIC_STATS may be marked unavailable on return, but they
 * will have values installed for compatibility purposes so that stat() and
 * co. can be emulated in userspace.

so perhaps GLib shouldn't be checking against mask_required in the way it
is here.

I'll try to get a ZFS filesystem on a test VM to reproduce this.

smcv



Bug#970228: nemo: Can no longer copy files

2020-09-14 Thread Holger Schröder

I have tested Thunar from XFCE, same problem.


...



Bug#970228: nemo: Can no longer copy files

2020-09-14 Thread Holger Schröder

Am 14.09.20 um 11:31 schrieb Simon McVittie:

Control: retitle -1 nemo: Can no longer copy files on zfs since GLib 2.66.x
Control: retitle 970263 glib2.0: nemo can no longer copy files on zfs since 
2.66.x

On Mon, 14 Sep 2020 at 11:19:04 +0200, Holger Schröder wrote:

I have zfs only.

zfs implemented how? The zfs-dkms kernel module, or zfs-fuse?



zfs-dkms, zfs-initramfs    (zfs rootfs)

https://github.com/openzfs/zfs

As said, there is only zfs and no other file system.


dpkg -l | grep zfs
ii  libzfs2linux 0.8.4-2 amd64    
OpenZFS filesystem library for Linux
ii  zfs-dkms 0.8.4-2 all  OpenZFS 
filesystem kernel modules for Linux
ii  zfs-initramfs 0.8.4-2 all  
OpenZFS root filesystem capabilities for Linux - initramfs
ii  zfsutils-linux 0.8.4-2 amd64    
command-line tools to manage OpenZFS filesystems



...




Bug#970228: nemo: Can no longer copy files

2020-09-14 Thread Simon McVittie
Control: retitle -1 nemo: Can no longer copy files on zfs since GLib 2.66.x
Control: retitle 970263 glib2.0: nemo can no longer copy files on zfs since 
2.66.x

On Mon, 14 Sep 2020 at 11:19:04 +0200, Holger Schröder wrote:
> I have zfs only.

zfs implemented how? The zfs-dkms kernel module, or zfs-fuse?

I suspect this bug might be specific to zfs, or perhaps specific to
one of the implementations of zfs - I wouldn't be surprised if GLib's new
statx()-based file metadata handling works fine with in-tree filesystems
like ext4 and btrfs but behaves oddly in some way with out-of-tree zfs.

smcv



Bug#970228: nemo: Can no longer copy files

2020-09-14 Thread Holger Schröder

Am 14.09.20 um 10:09 schrieb Simon McVittie:

Control: tags -1 + moreinfo unreproducible

On Sun, 13 Sep 2020 at 11:26:46 +0200, Holger Schröder wrote:

Can no longer copy files with Nemo.

error when getting information for file descriptor numerical: result out of
range

What filesystem (ext4? btrfs? FAT? NTFS? ...) are you copying from?

What filesystem are you copying to?


I have zfs only.




If you run nemo from a terminal (xterm, gnome-terminal or equivalent),
does the bug still happen?


Terminal no error output.




If you run it as `strace -efile nemo`, does the bug still happen? What
output does it produce?


I will give it later tonight when I am at home.


...



Bug#970228: nemo: Can no longer copy files

2020-09-14 Thread Simon McVittie
Control: tags -1 + moreinfo unreproducible

On Sun, 13 Sep 2020 at 11:26:46 +0200, Holger Schröder wrote:
> Can no longer copy files with Nemo.
> 
> error when getting information for file descriptor numerical: result out of
> range

What filesystem (ext4? btrfs? FAT? NTFS? ...) are you copying from?

What filesystem are you copying to?

If you run nemo from a terminal (xterm, gnome-terminal or equivalent),
does the bug still happen?

If you run it as `strace -efile nemo`, does the bug still happen? What
output does it produce?

I was unable to reproduce this bug: nemo copies files successfully from
btrfs to btrfs for me.

Please copy and paste messages exactly, and do not rephrase them: they
are a useful tool to find what is happening.

I think this is probably a problem with GLib's new statx() support, in
gio/glocalfile.h (which is working for me, but apparently not for you).

On Mon, 14 Sep 2020 at 07:35:27 +0900, Norbert Preining wrote:
> reassign -1 libglib2.0-0

When reassigning bugs, please remember to Cc the maintainers
of the new package via their ${package}@packages.debian.org or
${package}@tracker.debian.org address.

Thanks,
smcv



Bug#970228: nemo: Can no longer copy files

2020-09-13 Thread Norbert Preining
clone 970228 -1
reassign -1 libglib2.0-0
affects -1 nemo
thanks

On Sun, 13 Sep 2020, Holger Schröder wrote:
> I think this is related to the new glib (2.66.0-1) being in unstable.
> downgrade from testing (2.64.4-1) solves the problem.

Thanks for the info, cloning and reassigning accordingly.

Norbert

--
PREINING Norbert  https://www.preining.info
Accelia Inc. + IFMGA ProGuide + TU Wien + JAIST + TeX Live + Debian Dev
GPG: 0x860CDC13   fp: F7D8 A928 26E3 16A1 9FA0 ACF0 6CAC A448 860C DC13



Bug#970228: nemo: Can no longer copy files

2020-09-13 Thread Holger Schröder



I think this is related to the new glib (2.66.0-1) being in unstable.
downgrade from testing (2.64.4-1) solves the problem.


...



Bug#970228: nemo: Can no longer copy files

2020-09-13 Thread Holger Schröder
Package: nemo
Version: 4.6.5-1
Severity: normal

Can no longer copy files with Nemo.


error when getting information for file descriptor numerical: result out of
range


Cheers Holger...



-- System Information:
Debian Release: bullseye/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (100, 'experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 5.8.0-1-amd64 (SMP w/8 CPU threads)
Kernel taint flags: TAINT_PROPRIETARY_MODULE, TAINT_OOT_MODULE
Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages nemo depends on:
ii  cinnamon-desktop-data  4.6.4-1
ii  desktop-file-utils 0.26-1
ii  gsettings-desktop-schemas  3.36.1-1
ii  gvfs   1.44.1-1+b1
ii  libatk1.0-02.36.0-2
ii  libc6  2.31-3
ii  libcairo-gobject2  1.16.0-4
ii  libcairo2  1.16.0-4
ii  libcinnamon-desktop4   4.6.4-1
ii  libexempi8 2.5.2-1
ii  libexif12  0.6.22-2
ii  libgail-3-03.24.23-1
ii  libgdk-pixbuf2.0-0 2.40.0+dfsg-5
ii  libglib2.0-0   2.66.0-1
ii  libglib2.0-data2.66.0-1
ii  libgtk-3-0 3.24.23-1
ii  libnemo-extension1 4.6.5-1
ii  libnotify4 0.7.9-1
ii  libpango-1.0-0 1.46.1-1
ii  libpangocairo-1.0-01.46.1-1
ii  libselinux13.1-2
ii  libx11-6   2:1.6.10-3
ii  libxapp1   1.8.9-1
ii  libxml22.9.10+dfsg-6
ii  nemo-data  4.6.5-1
ii  shared-mime-info   1.15-1

Versions of packages nemo recommends:
ii  cinnamon-l10n4.6.2-1
ii  gvfs-backends1.44.1-1+b1
pn  gvfs-fuse
ii  librsvg2-common  2.48.8+dfsg-1
ii  nemo-fileroller  4.6.0-2

Versions of packages nemo suggests:
pn  eog   
ii  evince [pdf-viewer]   3.36.7-1
ii  mpg321 [mp3-decoder]  0.3.2-3.1
pn  xdg-user-dirs 

-- no debconf information