From: Thorsten Leemhuis <linux@leemhuis.info>
To: "ksummit@lists.linux.dev" <ksummit@lists.linux.dev>
Subject: [MAINTAINERS SUMMIT] [4/4] Discuss how to better prevent backports of commits that turn out to cause regressions
Date: Thu, 13 Jun 2024 10:42:01 +0200 [thread overview]
Message-ID: <e7f9ae0f-7635-4bf7-827b-bad2d58bf228@leemhuis.info> (raw)
In-Reply-To: <c6be1b86-f224-417c-a501-6c778999a04f@leemhuis.info>
I would like to discuss how to better prevent backports of mainline
commits to stable that turn out to cause regressions.
The scenario shown at the start of the thread illustrates a problem I
see frequently: commits with a Fixes: tag end up in new to stable series
releases just days after being mainlined and cause regressions -- just
like they do in mainline, which just was not known yet at the time of
backporting. This happens extremely often right after merge windows when
huge piles of changes are backported to the stable trees each cycle
shortly after -rc1 is out (which even some kernel developers apparently
are somewhat afraid to test from what I've seen).
I do not want to criticize the stable team for their approach to things,
as I can understand why they are doing this: there is no simple way to
distinguish "this is an urgent (security) fix that should be quickly
backported" from "this should be tested in mainline for a while first"
or "this has a Fixes: tag, but is not backport-worthy at all" -- which
is why they handle changes about equally. I think untangling that aspect
and backporting the non-urgent ones more slowly could help a lot to
prevent many regressions from hitting stable trees.
The thing is: I'm not sure how to achieve that. Here are a few thoughts
my brain came up with:
* For patches that are tagged for backporting it's easy to for
developers to influence the timing, as they can use a stable tag like
`Cc: <stable@vger.kernel.org> # after -rc4` to delay backporting (see
Documentation/process/stable-kernel-rules.rst for details). But for
quite a few developers this is not an option, as such a Cc: implies that
the developer wants the fix to be backported -- and thus should ideally
have tested it, will provide an adjusted patch when needed, and is
willing to handle any fallout. Maybe untangling these aspects from the
stable tag might be wise, so that developers can signal "I think this
should be backported, but I don't want anything to do with it" could
help. If this becomes the norm then maybe the stable team could even
stop taking nearly everything with a Fixes: tag. But I'm not sure if I
like this idea myself, as it has downsides, too.
* We could ask the stable team to only backport changes once they have
been in mainline for a certain time (something like "at the earliest two
weeks after the change was present in a mainline release or
pre-release"?). But to not delay urgent fixes we then would need
developers to mark the urgent ones somehow. That is likely a hard sell,
but maybe less so then what the previous point outlined; untangling
could help here, too.
* Maybe convince the stable team to consider all commits with just a
Fixes: tag as "non urgent", if they were merged during a merge window
with a committer (or author?) date from before the merge window -- and
then only backport them after -rc4 to ensure they got at least three
weeks of mainline testing before they are backported. This is imperfect
and has downsides, but would be relatively simple to realize.
* We could extend the Fixes tag in a fashion similar to the stable tag
(see above) to establish something like `Fixes: cafec0cacafe ("foo: bar:
foobar baz") # after -rc4 if considered backportworthy` -- but some of
these lines will become awfully long (they already are occasionally even
without this add-on note).
Ciao, Thorsten
P.S.: Related things that could be discussed:
* One cause of regressions that happen in stable trees (and not in
mainline) I've seen quite a few times are backports of commits with
Fixes: tags that were part of a patch-series and depend on earlier
patches from the series. The stable-team afaics has no easy way to spot
this, as there is no way to check "was this change part of a series".
Sometimes I wonder if a dedicated tag linking to the submission of a
patch could help -- and is something quite a few maintainers already
really want and add using a "Link" tag despite Linus dislike for that
(IIRC). But following that link for each and every patch slated for
backporting does not scale for the stable team anyway, so it's likely
not worth it.
next prev parent reply other threads:[~2024-06-13 8:42 UTC|newest]
Thread overview: 107+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-06-13 8:22 [MAINTAINERS SUMMIT] [0/4] Common scenario for four proposals regarding regressions Thorsten Leemhuis
2024-06-13 8:26 ` [MAINTAINERS SUMMIT] [1/4] Create written down guidelines for handling regressions Thorsten Leemhuis
2024-09-12 13:33 ` Thorsten Leemhuis
2024-06-13 8:32 ` [MAINTAINERS SUMMIT] [2/4] Ensure recent mainline regression are fixed in latest stable series Thorsten Leemhuis
2024-06-13 11:02 ` Johannes Berg
2024-06-13 11:21 ` Greg KH
2024-06-13 13:18 ` Sasha Levin
2024-06-13 11:17 ` Jiri Kosina
2024-06-13 11:28 ` Laurent Pinchart
2024-06-14 0:50 ` Steven Rostedt
2024-06-14 14:01 ` Mark Brown
2024-06-14 14:32 ` Rafael J. Wysocki
2024-06-13 8:34 ` [MAINTAINERS SUMMIT] [3/4] Elevate handling of regressions that made it to releases deemed for end users Thorsten Leemhuis
2024-06-13 11:34 ` Laurent Pinchart
2024-06-13 11:39 ` Jiri Kosina
2024-06-14 14:10 ` Mark Brown
2024-06-18 12:58 ` Thorsten Leemhuis
2024-06-19 20:25 ` Laurent Pinchart
2024-06-20 10:47 ` Thorsten Leemhuis
2024-06-13 15:56 ` Liam R. Howlett
2024-06-18 12:24 ` Thorsten Leemhuis
2024-06-20 13:20 ` Jani Nikula
2024-06-20 13:35 ` Thorsten Leemhuis
2024-06-20 14:16 ` Mark Brown
2024-06-21 6:47 ` Jiri Kosina
2024-06-21 10:19 ` Thorsten Leemhuis
2024-06-13 8:42 ` Thorsten Leemhuis [this message]
2024-06-13 9:59 ` [MAINTAINERS SUMMIT] [4/4] Discuss how to better prevent backports of commits that turn out to cause regressions Jan Kara
2024-06-13 10:18 ` Thorsten Leemhuis
2024-06-13 14:08 ` Konstantin Ryabitsev
2024-06-14 9:19 ` Lee Jones
2024-06-14 9:24 ` Lee Jones
2024-06-14 12:27 ` Konstantin Ryabitsev
2024-06-14 14:26 ` Konstantin Ryabitsev
2024-06-14 14:36 ` Lee Jones
2024-06-14 14:29 ` Michael Ellerman
2024-06-14 14:38 ` Konstantin Ryabitsev
2024-06-14 14:44 ` Rafael J. Wysocki
2024-06-14 15:08 ` Geert Uytterhoeven
2024-06-15 11:29 ` Michael Ellerman
2024-06-17 10:15 ` Jani Nikula
2024-06-17 12:42 ` Geert Uytterhoeven
2024-06-14 15:45 ` Mark Brown
2024-06-14 14:43 ` Mark Brown
2024-06-14 14:51 ` Konstantin Ryabitsev
2024-06-14 15:42 ` Mark Brown
2024-06-14 14:43 ` Steven Rostedt
2024-06-14 14:57 ` Laurent Pinchart
2024-06-16 1:13 ` Linus Torvalds
2024-06-16 3:28 ` Steven Rostedt
2024-06-16 4:59 ` Linus Torvalds
2024-06-16 8:22 ` Paolo Bonzini
2024-06-16 9:05 ` Geert Uytterhoeven
2024-06-16 15:07 ` Steven Rostedt
2024-06-17 13:48 ` Dan Carpenter
2024-06-17 15:23 ` Dan Carpenter
2024-06-17 14:39 ` Konstantin Ryabitsev
2024-06-17 16:04 ` Paul E. McKenney
2024-06-17 16:06 ` Konstantin Ryabitsev
2024-06-17 16:14 ` Paolo Bonzini
2024-06-17 16:18 ` Konstantin Ryabitsev
2024-06-17 17:11 ` Geert Uytterhoeven
2024-06-18 12:05 ` Michael Ellerman
2024-06-16 7:26 ` Takashi Iwai
2024-06-16 8:10 ` Paolo Bonzini
2024-06-16 11:31 ` Laurent Pinchart
2024-06-16 11:39 ` Takashi Iwai
2024-06-16 16:40 ` Linus Torvalds
2024-06-16 8:31 ` Jiri Kosina
2024-06-16 8:54 ` Geert Uytterhoeven
2024-06-13 19:39 ` Dan Carpenter
2024-06-14 1:00 ` Steven Rostedt
2024-06-13 11:58 ` James Bottomley
2024-06-13 13:06 ` Sasha Levin
2024-06-13 13:56 ` James Bottomley
2024-06-13 14:02 ` Greg KH
2024-06-13 15:11 ` James Bottomley
2024-06-13 16:27 ` Greg KH
2024-06-14 18:47 ` Sasha Levin
2024-06-17 10:59 ` Vlastimil Babka
2024-06-13 18:08 ` Sasha Levin
2024-06-13 13:45 ` Greg KH
2024-06-13 13:40 ` Sasha Levin
2024-06-18 13:12 ` Thorsten Leemhuis
2024-06-13 14:28 ` Andrew Lunn
2024-06-13 18:14 ` Sasha Levin
2024-06-14 14:41 ` Jan Kara
2024-06-14 15:03 ` Rafael J. Wysocki
2024-06-14 17:46 ` Sasha Levin
2024-06-18 14:43 ` [MAINTAINERS SUMMIT] [0/4] Common scenario for four proposals regarding regressions James Bottomley
2024-06-18 15:50 ` Mark Brown
2024-06-20 10:32 ` Thorsten Leemhuis
2024-06-20 12:57 ` James Bottomley
2024-06-20 13:55 ` Mark Brown
2024-06-20 14:01 ` James Bottomley
2024-06-20 14:42 ` Mark Brown
2024-06-20 16:02 ` James Bottomley
2024-06-20 17:15 ` Mark Brown
2024-06-20 23:25 ` Sasha Levin
2024-06-21 6:33 ` Thorsten Leemhuis
[not found] ` <20240625175131.672d14a4@rorschach.local.home>
2024-06-26 7:36 ` Greg KH
2024-06-26 18:32 ` Steven Rostedt
2024-06-26 19:05 ` James Bottomley
2024-07-25 10:14 ` Thorsten Leemhuis
2024-07-25 13:14 ` Greg KH
2024-06-20 16:59 ` Thorsten Leemhuis
2024-06-20 23:18 ` Sasha Levin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=e7f9ae0f-7635-4bf7-827b-bad2d58bf228@leemhuis.info \
--to=linux@leemhuis.info \
--cc=ksummit@lists.linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox