Re: Regression trixi ->sid: sshfs on Olimex A20-Lime2
On Thu, Apr 18, 2024, at 12:17, Arne Ploese wrote:
> Hi Everyone,
>
> I got some strage behaviour of sshfs.
> Installing trixi fom the daily images an d installing sshfs and
> mounting all works as expected.
> But upgrading to sid breaks sshfs.
> All mounted files and dirs are shown by "ls -l" have a size of 4096.
> Larger files are truncated if one attemts to read them.
>
> Can anyone confirm this or has hints where to look for the error?
My guess would be that it's the 'stat' operation that is broken
by the time64 conversion. I don't see what happened exactly,
but I observe multiple possible issues:
- the fuse 'getattr' callback function takes a 'struct stat'
argument that has time_t information in it. If sshfs is built
with time64 while libfuse is still on time32 (or vice versa),
the ABI is mismatched and half the members in this struct get
the wrong data including the file size.
- The '.statfs' callback gets a 'struct statvfs' which has no
time data but has other file attributes that are different
when building with tiem64 because that now implies LFS, while
manually built versions of sshfs would previously get
the non-LFS struct layout.
- the time on the wire protocol is encoded as 'uint32_t', which
means it will overflow in the future. It appears to me that
this particular implementation only overflows in 2106 for the
unsigned times rather than 2038 would for a 32-bit (signed)
time_t.
Arnd
Reply to: