From: Stefan Richter <stefanr@s5r6.in-berlin.de>
To: Felipe Contreras <felipe.contreras@gmail.com>
Cc: Adrian Chadd <adrian@freebsd.org>,
Greg KH <gregkh@linuxfoundation.org>,
Sergio Correia <lists@uece.net>,
linux-kernel@vger.kernel.org, stable@vger.kernel.org,
torvalds@linux-foundation.org, akpm@linux-foundation.org,
alan@lxorguk.ukuu.org.uk,
linux-wireless Mailing List <linux-wireless@vger.kernel.org>,
Sujith Manoharan <c_manoha@qca.qualcomm.com>,
"ath9k-devel@lists.ath9k.org" <ath9k-devel@venema.h4ckr.net>,
"John W. Linville" <linville@tuxdriver.com>
Subject: Re: [ 00/78] 3.3.2-stable review
Date: Sat, 14 Apr 2012 19:55:59 +0200 [thread overview]
Message-ID: <20120414195559.3d5ab944@stein> (raw)
In-Reply-To: <CAMP44s2Un-M2OCmuRQGpGsHR21gH=S7oJKx4Ci8tvYVCCSitUw@mail.gmail.com>
On Apr 14 Felipe Contreras wrote:
> On Sat, Apr 14, 2012 at 10:41 AM, Stefan Richter
> <stefanr@s5r6.in-berlin.de> wrote:
> > On Apr 14 Felipe Contreras wrote:
> >> I already exemplified how they are very different, but here it goes
> >> again. The patch "drm/i915: Add lock on drm_helper_resume_force_mode"
> >> was just tagged in 3.3.2, if I had said yesterday "this patch breaks
> >> things on my machine", then that patch would have been dropped for
> >> 3.3.2 even though it's still on mainline--why? Because we know it's
> >> broken, and broken patches are not supposed to land to stable. But
> >> today, one day later, we have to wait until it's fixed in master
> >> first. Why?
> >>
> >> What makes a patch droppable yesterday, but dependent on mainline today?
> >
> > Huh?
> >
> > Because "yesterday" was a review before stable release:
> > - A buggy mainline release exists.
> > - No buggy stable release exists.
> > whereas "today" is after stable release:
> > - A buggy mainline release exists.
> > - A buggy stable release exists.
>
> IOW; a tag makes undroppable.
Generally, "commit + push out" makes it undroppable. In case of -stable,
commit/ push out/ tag are close and virtually identical.
After a change was pushed out, the choice narrows down to add a reverting
change for a subsequent release or to rebase to a point before the
defective commit. The latter is not done to -stable, obviously. (3.3.2
is not being restarted from 3.3 if a regression from 3.3 to 3.3.1 was
discovered.)
> But *why*? You say you *really* need to problem to fixed in mainline,
> that's why it cannot be dropped, but that applies also to patches in
> the queue *before* the tag is made, doesn't it? If you find a patch in
> the stable review queue causes problems, why don't you leave it there?
As Willy wrote, that's actually what is done sometimes. I didn't know
that.
> You *really* need to problem fixed in mainline, don't you?
>
> So yesterday the priority is stability > 'upstream first', but today
> it's 'upstream first' > stability. Nobody has put forward an argument
> for this shift in priorities--
Yesterday, folks cared about mainline too.
> "a tag was made" is not argument.
"A faulty commit was pushed out" means that a defective release was made
and a fix needs to be created and released. This is obviously something
different from rejecting to commit a submitted change after negative
review.
Sure, negative review of a stable submission consequently means that
mainline needs to be checked whether it requires a fix, and if yes, stable
users will be interested in getting that fix really into the mainline
rather sooner than later. So suddenly they have to track a mainline bug.
Still /one/ bug though.
So that is when a stable submission was dropped "yesterday". Now what
about if a defective change was not dropped but released, and now requires
a fix (e.g. revert) "today: There are now /two/ bugs: In the mainline
and in a stable kernel.
If you could convince stable to fix their bug before mainline does, then
you would have to track that other mainline bug too. (You don't wan the
next branch point for stable to be faulty.) Plus, either the fix from
stable needs to be forward-ported to mainline, or worse, two independent
fixes need to be developed.
What is actually done is simpler and less error prone:
- Develop a fix for mainline.
- Mark that fix Cc: stable.
- Have that fix backported into stable.
[...]
> > "Drop a stable candidate before release" is a form of "decline a
> > submission to stable", happening late in the preparations of a stable
> > release.
> >
> > The latter is when damage was done; it is now about bug fixing. This
> > involves debugging of the regression, finding a right approach to
> > fix it (e.g. revert), write + review + test + commit the fix, port the fix
> > to all relevant other kernel branches, review + test + commit those ports
> > too.
>
> Really? So if the patch doesn't make it to stable you don't need to do
> any of that?
If the bug dosn't go into stable, you don't have to track and fix two
bugs. You still have to track and fix a bug, but it is only one bug
instead of two.
> IOW; if the patch doesn't make it to stable, it's OK to
> leave it broken for v3.4? There's 10000 patches in v3.4-rc* that are
> all about bug fixing, they don't need to go into stable to be fixed,
> do they? If a non-stable patch needs to be reverted in mainline, it
> gets reverted in mainline, regardless of weather or not it made it to
> stable or not.
>
> So, the hypothetical patch that was dropped in the stable review queue
> yesterday has to be fixed in mainline too,
I count one bug.
> just like the hypothetical
> patch that made it to stable and was found problematic today has to be
> fixed in mainline.
I count two bugs.
> Again, what makes a released patch undroppable? It's not the bug
> fixing; weather or not it gets into stable, it still has to be fixed
> in mainline.
If it is released, you can't drop, only revert or rebase to an older
origin. (Well, to rebase onto older origin actually means to drop, though
not just that one commit but also all its successors.)
[...]
> Seems to me you are abusing the 'stable' branch as a bug tracking
> system for certain patches for the next release.
There is no abuse.
If a regression happens in stable, you always need to figure out whether
this is only a problem in stable or also in mainline (because mainline
will become the origin of a new stable series eventually, and the problem
should not reappear int the new stable series). If the problem is only a
stable problem, just fix it in stable. If it is also a mainline problem,
you want to have it fixed both in stable and in mainline (because their
mainline will become your stable in a new series).
Now there are three choices:
- Develop a mainline fix, backport it to stable.
- Develop a stable fix, forward-port it to mainline.
- Develop the two fixes independently.
A variation of the second and third choice: Develop a stable fix, leave
mainline unfixed for now, forward-port the stable fix from 3.M.y to 3.N.y,
until mainline is receiving the forward-port too or got an independently
developed fix.
Distributors routinely do any of the three choices. Greg does only the
first one in stable: No forward-ports, only backports. I wrote about the
downsides of forward-ports in the other post.
There is an obvious downside to backports-only too: The stable fix is
delayed until after mainline fix. This one downside seems to have
inspired this huge mailinglist thread... But you as a user of stable can
compensate for this delay in some ways: You could switch back to a stable
release before the regression, you could apply a fix locally on top of the
regressed stable, or you could find a third party kernel which contains
such local fixes.
Sure, any of these options is a nuisance. But these nuisances for end
users will still probably not change how stable is maintained. Instead,
that forward-ports are out of scope of stable is one reason why you are
getting so frequent stable releases. So you typically don't have to wait
for a regression fix in stable for unbearingly long. No forward-ports in
stable also means lower likelyhood of stable-only regressions.
--
Stefan Richter
-=====-===-- -=-- -===-
http://arcgraph.de/sr/
next prev parent reply other threads:[~2012-04-14 17:56 UTC|newest]
Thread overview: 169+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-04-11 23:11 [ 00/78] 3.3.2-stable review Greg KH
2012-04-11 23:10 ` [ 01/78] x86 bpf_jit: fix a bug in emitting the 16-bit immediate operand of AND Greg KH
2012-04-11 23:10 ` [ 02/78] via-rhine: fix wait-bit inversion Greg KH
2012-04-11 23:10 ` [ 03/78] tg3: Fix 5717 serdes powerdown problem Greg KH
2012-04-11 23:10 ` [ 04/78] sky2: dont overwrite settings for PHY Quick link Greg KH
2012-04-11 23:10 ` [ 05/78] rose_dev: fix memcpy-bug in rose_set_mac_address Greg KH
2012-04-11 23:10 ` [ 06/78] net: usb: cdc_eem: fix mtu Greg KH
2012-04-11 23:10 ` [ 07/78] Fix non TBI PHY access; a bad merge undid bug fix in a previous commit Greg KH
2012-04-11 23:10 ` [ 08/78] ALSA: hda/realtek - Fix ADC assignment with a shared HP/Mic pin Greg KH
2012-04-11 23:10 ` [ 09/78] ASoC: wm8994: Update WM8994 DCS calibration Greg KH
2012-04-11 23:10 ` [ 10/78] mtd: ixp4xx: oops in ixp4xx_flash_probe Greg KH
2012-04-11 23:10 ` [ 11/78] mtd: mips: lantiq: reintroduce support for cmdline partitions Greg KH
2012-04-11 23:10 ` [ 12/78] mtd: nand: gpmi: use correct member for checking NAND_BBT_USE_FLASH Greg KH
2012-04-11 23:10 ` [ 13/78] mtd: sst25l: initialize writebufsize Greg KH
2012-04-11 23:10 ` [ 14/78] mtd: doc2001plus: " Greg KH
2012-04-11 23:10 ` [ 15/78] mtd: doc2000: " Greg KH
2012-04-11 23:10 ` [ 16/78] mtd: doc2001: " Greg KH
2012-04-11 23:10 ` [ 17/78] mtd: docg3: " Greg KH
2012-04-11 23:10 ` [ 18/78] mtd: block2mtd: " Greg KH
2012-04-11 23:10 ` [ 19/78] mtd: lart: " Greg KH
2012-04-11 23:10 ` [ 20/78] mtd: m25p80: set writebufsize Greg KH
2012-04-11 23:10 ` [ 21/78] ACPI: Do cpufreq clamping for throttling per package v2 Greg KH
2012-04-11 23:10 ` [ 22/78] PNPACPI: Fix device ref leaking in acpi_pnp_match Greg KH
2012-04-11 23:10 ` [ 23/78] ACPICA: Fix regression in FADT revision checks Greg KH
2012-04-11 23:10 ` [ 24/78] modpost: fix ALL_INIT_DATA_SECTIONS Greg KH
2012-04-11 23:10 ` [ 25/78] genirq: Adjust irq thread affinity on IRQ_SET_MASK_OK_NOCOPY return value Greg KH
2012-04-11 23:10 ` [ 26/78] tracing: Fix ftrace stack trace entries Greg KH
2012-04-11 23:10 ` [ 27/78] tracing: Fix ent_size in trace output Greg KH
2012-04-11 23:10 ` [ 28/78] m68k/mac: Add missing platform check before registering platform devices Greg KH
2012-04-11 23:10 ` [ 29/78] mac80211: fix possible tid_rx->reorder_timer use after free Greg KH
2012-04-11 23:10 ` [ 30/78] rtlwifi: rtl8192ce: rtl8192cu: rtl8192de: Fix low-gain setting when scanning Greg KH
2012-04-11 23:10 ` [ 31/78] ath9k: fix max noise floor threshold Greg KH
2012-04-14 5:36 ` Ben Hutchings
2012-04-14 6:26 ` Rajkumar Manoharan
2012-04-11 23:10 ` [ 32/78] drm: Validate requested virtual size against allocated fb size Greg KH
2012-04-11 23:10 ` [ 33/78] drm/radeon/kms: fix fans after resume Greg KH
2012-04-11 23:10 ` [ 34/78] drm/i915: no-lvds quirk on MSI DC500 Greg KH
2012-04-11 23:10 ` [ 35/78] drm/i915: treat src w & h as fixed point in sprite handling code Greg KH
2012-04-11 23:10 ` [ 36/78] drm/i915: Sanitize BIOS debugging bits from PIPECONF Greg KH
2012-04-11 23:10 ` [ 37/78] drm/i915: Add lock on drm_helper_resume_force_mode Greg KH
2012-04-11 23:10 ` [ 38/78] drm/i915: quirk away broken OpRegion VBT Greg KH
2012-04-11 23:10 ` [ 39/78] firmware_class: Rework usermodehelper check Greg KH
2012-04-11 23:10 ` [ 40/78] firmware_class: Split _request_firmware() into three functions, v2 Greg KH
2012-04-11 23:10 ` [ 41/78] firmware_class: Do not warn that system is not ready from async loads Greg KH
2012-04-11 23:11 ` [ 42/78] PM / Runtime: dont forget to wake up waitqueue on failure Greg KH
2012-04-14 5:23 ` Ben Hutchings
2012-04-11 23:11 ` [ 43/78] PM / Hibernate: Disable usermode helpers right before freezing tasks Greg KH
2012-04-11 23:11 ` [ 44/78] PM / Sleep: Move disabling of usermode helpers to the freezer Greg KH
2012-04-11 23:11 ` [ 45/78] PM / Sleep: Mitigate race between the freezer and request_firmware() Greg KH
2012-04-11 23:11 ` [ 46/78] kgdb,debug_core: pass the breakpoint struct instead of address and memory Greg KH
2012-04-11 23:11 ` [ 47/78] kgdbts: Fix kernel oops with CONFIG_DEBUG_RODATA Greg KH
2012-04-11 23:11 ` [ 48/78] kgdbts: (1 of 2) fix single step awareness to work correctly with SMP Greg KH
2012-04-11 23:11 ` [ 49/78] kgdbts: (2 " Greg KH
2012-04-11 23:11 ` [ 50/78] x86,kgdb: Fix DEBUG_RODATA limitation using text_poke() Greg KH
2012-04-11 23:11 ` [ 51/78] CIFS: Fix VFS lock usage for oplocked files Greg KH
2012-04-11 23:11 ` [ 52/78] USB: ohci-at91: fix vbus_pin_active_low handling Greg KH
2012-04-11 23:11 ` [ 53/78] ARM: at91/USB host: specify and handle properly vbus_pin_active_low Greg KH
2012-04-11 23:11 ` [ 54/78] mmc: sdio: Use empty system suspend/resume callbacks at the bus level Greg KH
2012-04-11 23:11 ` [ 55/78] mmc: sdhci-dove: Fix compile error by including module.h Greg KH
2012-04-11 23:11 ` [ 56/78] mmc: atmel-mci: correct data timeout computation Greg KH
2012-04-11 23:11 ` [ 57/78] tcm_fc: Add abort flag for gracefully handling exchange timeout Greg KH
2012-04-11 23:11 ` [ 58/78] tcm_fc: Do not free tpg structure during wq allocation failure Greg KH
2012-04-11 23:11 ` [ 59/78] sysctl: fix write access to dmesg_restrict/kptr_restrict Greg KH
2012-04-11 23:11 ` [ 60/78] regmap: prevent division by zero in rbtree_show Greg KH
2012-04-11 23:11 ` [ 61/78] modpost: Fix modpost license checking of vmlinux.o Greg KH
2012-04-11 23:11 ` [ 62/78] mfd: Fix section mismatch warning for da9052-spi Greg KH
2012-04-11 23:11 ` [ 63/78] android, lowmemorykiller: remove task handoff notifier Greg KH
2012-04-11 23:11 ` [ 64/78] TOMOYO: Fix mount flags checking order Greg KH
2012-04-11 23:11 ` [ 65/78] iwlegacy: do not nulify il->vif on reset Greg KH
2012-04-11 23:11 ` [ 66/78] Revert "x86/ioapic: Add register level checks to detect bogus io-apic entries" Greg KH
2012-04-11 23:11 ` [ 67/78] acer-wmi: No wifi rfkill on Sony machines Greg KH
2012-04-11 23:11 ` [ 68/78] Fix length of buffer copied in __nfs4_get_acl_uncached Greg KH
2012-04-11 23:11 ` [ 69/78] sched/x86: Fix overflow in cyc2ns_offset Greg KH
2012-04-11 23:11 ` [ 70/78] mfd: Clear twl6030 IRQ status register only once Greg KH
2012-04-11 23:11 ` [ 71/78] USB: Add Motorola Rokr E6 Id to the USBNet driver "zaurus" Greg KH
2012-04-11 23:11 ` [ 72/78] ioat: fix size of completion for Xen Greg KH
2012-04-11 23:11 ` [ 73/78] [media] uvcvideo: Fix race-related crash in uvc_video_clock_update() Greg KH
2012-04-11 23:11 ` [ 74/78] ASoC: ak4642: fixup: mute needs +1 step Greg KH
2012-04-11 23:11 ` [ 75/78] ASoC: tegra: fix i2s compilation when !CONFIG_DEBUG_FS Greg KH
2012-04-11 23:11 ` [ 76/78] media: dvb_frontend: regression fix: userspace ABI broken for xine Greg KH
2012-04-11 23:11 ` [ 77/78] media: dvb-core: fix DVBFE_ALGO_HW retune bug Greg KH
2012-04-11 23:11 ` [ 78/78] cred: copy_process() should clear child->replacement_session_keyring Greg KH
2012-04-11 23:59 ` [ 00/78] 3.3.2-stable review Sergio Correia
2012-04-12 0:29 ` Greg KH
2012-04-12 0:57 ` Sergio Correia
2012-04-12 1:03 ` Felipe Contreras
2012-04-12 1:13 ` Greg KH
2012-04-12 13:32 ` Felipe Contreras
2012-04-12 14:46 ` Greg KH
2012-04-12 16:49 ` Felipe Contreras
2012-04-12 17:24 ` Adrian Chadd
2012-04-12 18:43 ` Felipe Contreras
2012-04-12 18:56 ` Jonathan Nieder
2012-04-12 21:34 ` Felipe Contreras
2012-04-12 21:43 ` Willy Tarreau
2012-04-12 20:07 ` Greg KH
2012-04-12 20:52 ` Sven-Haegar Koch
2012-04-13 8:57 ` Stefan Richter
2012-04-13 10:29 ` Felipe Contreras
2012-04-13 13:42 ` Stefan Richter
2012-04-13 14:01 ` Stefan Richter
2012-04-13 22:38 ` Felipe Contreras
2012-04-13 23:05 ` Jonathan Nieder
2012-04-13 23:18 ` Felipe Contreras
2012-04-14 5:44 ` Willy Tarreau
2012-04-14 15:43 ` Felipe Contreras
2012-04-14 16:02 ` Willy Tarreau
2012-04-14 9:10 ` Stefan Richter
2012-04-14 15:52 ` Felipe Contreras
2012-04-14 18:08 ` Stefan Richter
2012-04-14 7:41 ` Stefan Richter
2012-04-14 15:29 ` Felipe Contreras
2012-04-14 15:57 ` Willy Tarreau
2012-04-14 19:33 ` Felipe Contreras
2012-04-14 19:58 ` Willy Tarreau
2012-04-14 17:55 ` Stefan Richter [this message]
2012-04-14 19:21 ` Felipe Contreras
2012-04-14 21:21 ` Stefan Richter
2012-04-14 22:09 ` Felipe Contreras
2012-04-14 22:47 ` Stefan Richter
2012-04-14 22:56 ` Felipe Contreras
2012-04-14 23:06 ` Adrian Chadd
2012-04-13 19:08 ` [ath9k-devel] " Peter Stuge
2012-04-13 22:53 ` Felipe Contreras
2012-04-14 6:01 ` Willy Tarreau
2012-04-16 16:27 ` Greg KH
2012-04-16 20:11 ` Felipe Contreras
2012-04-16 20:58 ` Greg KH
2012-04-16 21:18 ` Felipe Contreras
2012-04-16 21:27 ` Greg KH
2012-04-16 21:44 ` Felipe Contreras
2012-04-16 22:34 ` Peter Stuge
2012-04-17 5:24 ` Willy Tarreau
2012-04-16 21:50 ` Felipe Contreras
2012-04-16 21:54 ` Don deJuan
2012-04-16 22:02 ` Don deJuan
2012-04-16 21:39 ` Don deJuan
2012-04-12 18:40 ` Willy Tarreau
2012-04-12 19:05 ` Linus Torvalds
2012-04-12 21:20 ` Felipe Contreras
2012-04-12 21:34 ` Linus Torvalds
2012-04-12 21:44 ` Linus Torvalds
2012-04-12 22:02 ` [ath9k-devel] " Luis R. Rodriguez
2012-04-12 22:04 ` Felipe Contreras
2012-04-12 22:07 ` Linus Torvalds
2012-04-12 22:29 ` Felipe Contreras
2012-04-14 10:47 ` Ingo Molnar
2012-04-14 15:59 ` Felipe Contreras
2012-04-15 6:51 ` Ingo Molnar
2012-04-15 17:15 ` Felipe Contreras
2012-04-15 17:29 ` Willy Tarreau
2012-04-15 17:49 ` Linus Torvalds
2012-04-15 22:12 ` Felipe Contreras
2012-04-16 5:32 ` Ingo Molnar
2012-04-16 20:25 ` Felipe Contreras
2012-04-16 21:08 ` Arend van Spriel
2012-04-16 5:39 ` Willy Tarreau
2012-04-16 6:38 ` Ingo Molnar
2012-04-12 22:12 ` David Miller
2012-04-12 22:58 ` Felipe Contreras
2012-04-13 5:34 ` Willy Tarreau
2012-04-13 10:04 ` Felipe Contreras
2012-04-12 21:39 ` Willy Tarreau
2012-04-12 22:02 ` Jesper Juhl
2012-04-12 19:57 ` Alexander Holler
2012-04-12 20:06 ` Greg KH
2012-04-12 20:30 ` Alexander Holler
2012-04-12 22:31 ` Greg KH
2012-04-12 4:16 ` Heinz Diehl
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=20120414195559.3d5ab944@stein \
--to=stefanr@s5r6.in-berlin.de \
--cc=adrian@freebsd.org \
--cc=akpm@linux-foundation.org \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=ath9k-devel@venema.h4ckr.net \
--cc=c_manoha@qca.qualcomm.com \
--cc=felipe.contreras@gmail.com \
--cc=gregkh@linuxfoundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-wireless@vger.kernel.org \
--cc=linville@tuxdriver.com \
--cc=lists@uece.net \
--cc=stable@vger.kernel.org \
--cc=torvalds@linux-foundation.org \
/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