* [REGRESSION] cifs: triggers bad flatpak & ostree signatures, corrupts ffmpeg & mkvmerge outputs
@ 2024-08-25 1:50 Forest
2024-08-27 18:38 ` Forest
` (2 more replies)
0 siblings, 3 replies; 6+ messages in thread
From: Forest @ 2024-08-25 1:50 UTC (permalink / raw)
To: David Howells, Steve French, Shyam Prasad N, Rohith Surabattula,
Jeff Layton
Cc: linux-cifs, netfs, linux-fsdevel, linux-mm, stable, regressions
#regzbot introduced: 3ee1a1fc3981
Dear maintainers,
I think I have found a cifs regression in the 6.10 kernel series, which leads
certain programs to write corrupt data.
After upgrading from kernel 6.9.12 to 6.10.6, flatpak and ostree are now
writing bad gpg signatures when exporting signed packages or signing their
repository metadata/summary files, whenever the repository is on a cifs mount.
Instead of writing the signature data, null bytes are written in its place.
Furthermore, ffmpeg and mkvmerge are now intermittently writing corrupt files
to cifs mounts.
No error is reported by the applications or the kernel when it happens.
In the case of flatpak, the problem isn't revealed until something tries to use
the repository and finds signatures full of null bytes. (Of course, this means
the affected repositories have been rendered useless.) In the case of ffmpeg
and mkvmerge, the problem isn't revealed until someone plays the video file and
reaches a corrupt section.
A kernel bisect reveals this:
3ee1a1fc39819906f04d6c62c180e760cd3a689d is the first bad commit
commit 3ee1a1fc39819906f04d6c62c180e760cd3a689d
Author: David Howells <dhowells@redhat.com>
Date: Fri Oct 6 18:29:59 2023 +0100
cifs: Cut over to using netfslib
I was unable to determine whether 6.11.0-rc4 fixes it, due to another cifs bug
in that version (which I hope to report soon).
An strace of flatpak (which uses libostree) shows it generating correct
signatures internally, but behaving differently on cifs vs. ext4 when working
with memory-mapped temp files, in which the signatures are stored before being
written to their final outputs. Here's where I reported my initial findings to
those projects:
https://github.com/flatpak/flatpak/issues/5911
https://github.com/ostreedev/ostree/issues/3288
Debian Testing and Unstable kernels (6.10.4-1 and 6.10.6-1) are affected:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1079394
The following reproducer script consistently triggers the problem for me. Run
it with two arguments: a path on a cifs mount where an ostree repo should be
created, and a GPG key ID with which to sign a commit.
#!/bin/sh
set -e
if [ "$#" -lt 2 ] || [ "$1" = "-h" ] ; then
echo "usage: $(basename "$0") <repo-dir> <gpg-key-id>"
exit 2
fi
repo=$1
keyid=$2
src="./foo"
echo "creating ostree repo at $repo"
ostree init --repo="$repo"
echo "creating source file tree at $src"
mkdir -p "$src"
echo hi > "$src"/hello
ostree commit --repo="$repo" --branch=foo --gpg-sign="$keyid" "$src"
if ostree show --repo="$repo" foo; then
echo ---
echo success!
else
echo ---
ostree show --repo="$repo" --print-detached-metadata-key=ostree.gpgsigs foo
echo failure!
echo look for null bytes in the above commit signature
fi
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [REGRESSION] cifs: triggers bad flatpak & ostree signatures, corrupts ffmpeg & mkvmerge outputs
2024-08-25 1:50 [REGRESSION] cifs: triggers bad flatpak & ostree signatures, corrupts ffmpeg & mkvmerge outputs Forest
@ 2024-08-27 18:38 ` Forest
2024-09-04 21:02 ` Forest
2024-09-04 22:01 ` David Howells
2 siblings, 0 replies; 6+ messages in thread
From: Forest @ 2024-08-27 18:38 UTC (permalink / raw)
To: Forest
Cc: David Howells, Steve French, Shyam Prasad N, Rohith Surabattula,
Jeff Layton, linux-cifs, netfs, linux-fsdevel, linux-mm, stable,
regressions
On Sat, 24 Aug 2024 18:50:40 -0700, Forest wrote:
>I was unable to determine whether 6.11.0-rc4 fixes it, due to another cifs bug
>in that version (which I hope to report soon).
That bug is now reported:
https://lore.kernel.org/linux-cifs/37fncjpgsq45becdf2pdju0idf3hj3dtmb@sonic.net/T/#u
A pair of patches considered in that bug's discussion allowed me to test
this regression on 3e9bff3bbe13, which is one commit ahead of v6.11-rc5.
The mkvmerge output corruption is still present.
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [REGRESSION] cifs: triggers bad flatpak & ostree signatures, corrupts ffmpeg & mkvmerge outputs
2024-08-25 1:50 [REGRESSION] cifs: triggers bad flatpak & ostree signatures, corrupts ffmpeg & mkvmerge outputs Forest
2024-08-27 18:38 ` Forest
@ 2024-09-04 21:02 ` Forest
2024-09-04 22:01 ` David Howells
2 siblings, 0 replies; 6+ messages in thread
From: Forest @ 2024-09-04 21:02 UTC (permalink / raw)
To: David Howells, Steve French, Shyam Prasad N, Rohith Surabattula,
Jeff Layton
Cc: linux-cifs, netfs, linux-fsdevel, linux-mm, stable, regressions
On Sat, 24 Aug 2024 18:50:40 -0700, Forest wrote:
>I think I have found a cifs regression in the 6.10 kernel series, which leads
>certain programs to write corrupt data.
[...]
>3ee1a1fc39819906f04d6c62c180e760cd3a689d is the first bad commit
Write corruption still exists in 6.11.0-rc6.
Bad ostree signatures may be fixed in 6.11.0-rc6. (My reproducer didn't
trigger it in that version.)
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [REGRESSION] cifs: triggers bad flatpak & ostree signatures, corrupts ffmpeg & mkvmerge outputs
2024-08-25 1:50 [REGRESSION] cifs: triggers bad flatpak & ostree signatures, corrupts ffmpeg & mkvmerge outputs Forest
2024-08-27 18:38 ` Forest
2024-09-04 21:02 ` Forest
@ 2024-09-04 22:01 ` David Howells
2024-09-05 7:32 ` Forest
2 siblings, 1 reply; 6+ messages in thread
From: David Howells @ 2024-09-04 22:01 UTC (permalink / raw)
To: Forest
Cc: dhowells, Steve French, Shyam Prasad N, Rohith Surabattula,
Jeff Layton, linux-cifs, netfs, linux-fsdevel, linux-mm, stable,
regressions
Forest <forestix@nom.one> wrote:
> Write corruption still exists in 6.11.0-rc6.
Can you try adding this:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=c26096ee0278c5e765009c5eee427bbafe6dc090
Unfortunately, it managed to miss -rc6 because Linus released early before the
PR could be sent to him.
David
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [REGRESSION] cifs: triggers bad flatpak & ostree signatures, corrupts ffmpeg & mkvmerge outputs
2024-09-04 22:01 ` David Howells
@ 2024-09-05 7:32 ` Forest
2024-09-06 0:46 ` Steve French
0 siblings, 1 reply; 6+ messages in thread
From: Forest @ 2024-09-05 7:32 UTC (permalink / raw)
To: David Howells, Steve French, Shyam Prasad N, Rohith Surabattula,
Jeff Layton
Cc: linux-cifs, netfs, linux-fsdevel, linux-mm, stable, regressions
On Wed, 04 Sep 2024 23:01:51 +0100, David Howells wrote:
>Forest <forestix@nom.one> wrote:
>
>> Write corruption still exists in 6.11.0-rc6.
>
>Can you try adding this:
>
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=c26096ee0278c5e765009c5eee427bbafe6dc090
That patch looks promising. With it, I've run my tests 2-3 times more than
usual, and there has been no sign of the corrupt writes so far. Thank you!
>Unfortunately, it managed to miss -rc6 because Linus released early before the
>PR could be sent to him.
Will these fixes be applied to the 6.10 series as well?
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [REGRESSION] cifs: triggers bad flatpak & ostree signatures, corrupts ffmpeg & mkvmerge outputs
2024-09-05 7:32 ` Forest
@ 2024-09-06 0:46 ` Steve French
0 siblings, 0 replies; 6+ messages in thread
From: Steve French @ 2024-09-06 0:46 UTC (permalink / raw)
To: Forest
Cc: David Howells, Steve French, Shyam Prasad N, Rohith Surabattula,
Jeff Layton, linux-cifs, netfs, linux-fsdevel, linux-mm, stable,
regressions
On Thu, Sep 5, 2024 at 2:32 AM Forest <forestix@nom.one> wrote:
>
> On Wed, 04 Sep 2024 23:01:51 +0100, David Howells wrote:
>
> >Forest <forestix@nom.one> wrote:
> >
> >> Write corruption still exists in 6.11.0-rc6.
> >
> >Can you try adding this:
> >
> > https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=c26096ee0278c5e765009c5eee427bbafe6dc090
>
>
> That patch looks promising. With it, I've run my tests 2-3 times more than
> usual, and there has been no sign of the corrupt writes so far. Thank you!
>
> >Unfortunately, it managed to miss -rc6 because Linus released early before the
> >PR could be sent to him.
>
> Will these fixes be applied to the 6.10 series as well?
It is queued for 6.10 stable based on recent email from Greg KH - see
email titled:
[PATCH 6.10 181/184] mm: Fix filemap_invalidate_inode() to use
invalidate_inode_pages2_range()
--
Thanks,
Steve
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2024-09-06 0:46 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-08-25 1:50 [REGRESSION] cifs: triggers bad flatpak & ostree signatures, corrupts ffmpeg & mkvmerge outputs Forest
2024-08-27 18:38 ` Forest
2024-09-04 21:02 ` Forest
2024-09-04 22:01 ` David Howells
2024-09-05 7:32 ` Forest
2024-09-06 0:46 ` Steve French
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox