ksummit.lists.linux.dev archive mirror
 help / color / mirror / Atom feed
* [MAINTAINERS SUMMIT] [0/4] Common scenario for four proposals regarding regressions
@ 2024-06-13  8:22 Thorsten Leemhuis
  2024-06-13  8:26 ` [MAINTAINERS SUMMIT] [1/4] Create written down guidelines for handling regressions Thorsten Leemhuis
                   ` (4 more replies)
  0 siblings, 5 replies; 107+ messages in thread
From: Thorsten Leemhuis @ 2024-06-13  8:22 UTC (permalink / raw)
  To: ksummit

Lo! I prepared four proposals for the maintainers summit regarding
regressions I'll send in reply to this mail. They are somewhat related
and address different aspects of one scenario I see frequently in
different variations; so instead of repeating that scenario in slightly
modified form in each of the proposals, I'm putting it out here once:

---

A change makes it into mainline (case "a") right before a release (say
of 6.7) or (case "b") shortly after (e.g. during a merge window of 6.8).
That change then within a few days might even be backported to the
latest stable releases (case "c") deemed for end users (say 6.6.13 or
[in case "b"] to 6.7.3). Only then it becomes known that the change
causes a regression (e.g. in both mainline and the stable trees).

Once reported, the problem then is quickly debugged and within two or
three days a tested fix ready for review emerges[1]. But then that fix
only makes it to a new mainline -rc after more than two, three, or many
more weeks due to one or a combination of the following factors:

* Review takes a long time, as nobody feels urged to take a closer look
soon[2].

* Maintainers take quite some time to commit the fix to their subsystem
tree[2].

* Maintainers take quite some time to submit another PR to Linus or only
send the fix shortly before[2, 3] or after[4] the next proper mainline
release (e.g. 6.8).

A few days later the stable team then backports the fix (for case "a"
and "c" -- or "b", if the fix was only merged in the following merge
window) and after a stable-rc phase fixes the problem in their trees as
well[5] -- which takes at least three days, usually close to about one
week, and if the timing is bad easily 10 days or longer.

Despite an available fix, users of mainline then in the end were exposed
to the regression for many weeks[6] -- often more than 1 month, but I've
seen 2+ months quite a few times, too (e.g. when the culprit was merged
shortly before the 6.7 release and the fix only in the merge window for
6.9).

For users of stable trees it is often about as long or a little bit
longer depending on how well the mainline merge of the fix aligns with
the release of the next stable-rc[7]; that's because the stable team is
not allowed[8] or usually won't[9] do anything to resolve regressions
that also happen in mainline before a fix is mainlined.

[1] That's obviously not always the case, but surprisingly often, which
    is great; thx for that!
[2] Because they are simply not aware that the patch fixes a regression
    that bothers users or due to stances like "the next mainline release
    is still weeks away".
[3] For example due to stances like "because I did not want to send
    Linus a PR with just one fix"; I recently even had a case of "the
    -next rules forbids to commit new changes during the merge window"
    (which is not true when it comes to fixes) that delayed things.
[4] Disclaimer: for fixes that bear big risks or fixes for regressions
    introduced more than a year ago waiting can be the right thing.
[5] Assuming the stable team notices that it's fixing a regression in
    their trees.
[6] Which can discourage or hinder testers and CIs from testing and mean
    that they miss other bugs affecting the same platform. IOW: even in
    a simplified case of this scenario where the fix was not backported
    to stable trees this would be a problem for some folks that could
    easily be avoided by merging the fix faster.
[7] Until the issue is fixed, users thus have four options: (1) live
    with the regression, which might be impossible if it breaks
    something crucial like booting; (2) switch back to the
    second-to-last stable series, which often will be EOL and thus prone
    to vulnerabilities; (3) switch to a older longterm kernel series,
    which might be impossible due to missing drivers or because the
    culprit was backported there, too; (4) switch to a unstable kernel
    (e.g. mainline) once the issue is fixed there, which they might be
    afraid to do or if unlucky contains another regression that causes
    trouble.
[8] Our rules forbid the stable maintainer to revert a mainline commit
    or accept a fix for it before an equivalent revert or fix is
     mainlined.
[9] The stable team could temporarily revert a backport of a mainline
    commit that is causing a regression in both mainline and stable
    which they later could reapply once a fix for it was mainlined --
    but it almost never does that. Which I can understand, as that would
    complicate things and might be unwise, as the commit might fix some
    security issue; this approach also might be the right strategy in
    general to ensure mainline is fixed quickly as well[6].

---

Ciao, Thorsten

^ permalink raw reply	[flat|nested] 107+ messages in thread

end of thread, other threads:[~2024-09-12 13:34 UTC | newest]

Thread overview: 107+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
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 ` [MAINTAINERS SUMMIT] [4/4] Discuss how to better prevent backports of commits that turn out to cause regressions Thorsten Leemhuis
2024-06-13  9:59   ` 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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox