[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Libfuse interoperability/ABI broken.



On Thu, Mar 07, 2024 at 07:47:23PM +0100, Bernd Schubert wrote:
> Hi all,
> 
> this is certainly not kind of the mail I was hoping for as a new libfuse
> maintainer.
> 
> As you can see from the title and from discussion below (sorry this is 
> not typical ML discussion style), we have a bit of of problem with 
> libfuse ABI compatibility. 

[...]

> >> On 3/7/24 16:43, Ashley Pittman wrote:
> >>> I’ve spotted an issue with the linked commit, the fuse_file_info struct should have been modified by adding new entries just before the padding, with this commit then members after the new entry will be moved creating a change in the ABI for members after this.
> >>>
> >>> https://github.com/libfuse/libfuse/commit/a5eb7f2a0117ab43119ef5724cf5f4f2f181804a
> >>>
> >>> This affects the flush, nonseekable, flock_release, cache_readdir and noflush flags, each one of which could be set or cleared accidentally with one of the flags before or after it depending on what version of libfuse the application is compiled and linked with.
> >>>
> >>> This isn’t a failure mode that I’ve experience before when using linux so I don’t have a playbook to work from in how to correct this but essentially fuse3 releases up to and including 3.13 have one ABI and 3.13 to 3.16 have a different ABI.

Not strictly related to the change at hand, but since we're
discussing recent-ish changes that negatively affected backwards
compatibility in libfuse I will mention this too:

  https://bugs.debian.org/1031802

It has been reported downstream a year ago, but I'm not sure if it
ever got upstream's attention. Now it should have :)

-- 
Andrea Bolognani <eof@kiyuko.org>
Resistance is futile, you will be garbage collected.

Attachment: signature.asc
Description: PGP signature


Reply to: