[8u] RFR: 8143925 : enhancing CounterMode.crypt() for AESCrypt.implEncryptBlock() + 8146581 : Minor corrections to the patch submitted for earlier bug id - 8143925

Hohensee, Paul hohensee at amazon.com
Fri Jan 24 15:30:15 UTC 2020


Well put. I'd love to see a variation on this in as a faq. :)

Paul

On 1/22/20, 8:20 PM, "Andrew John Hughes" <gnu.andrew at redhat.com> wrote:

    
    
    On 22/01/2020 01:11, Hohensee, Paul wrote:
    > I'm not a huge fan of making manual changes to get around not having backported patches on which a patch (i.e., this one) depends (whew!). I'd rather see the 8 (!) patches Martin references done first. If we don't, then if we/Oracle ever decide to do any of those backports, it's going to be very confusing. I'd rather have something as close as possible to what was tested in the parent repo. Andrew, what do you think?
    > 
    > Thanks,
    > Paul
    > 
    
    Well, I feel as though I could have written that first sentence myself
    ;) As I'm sure you're aware though, there's a lot of nuance to it in
    practice, and it depends on what patches are judged as dependencies and
    in what way.
    
    The kind of reviews that initially fill me with worry and inevitably end
    up taking a long time to do are those where it's not clear that the
    necessary investigative work has been done on resolving such dependencies.
    
    It's one thing if the author says something along the lines of "I've
    altered X, because we don't have fix Y, and I don't think we should
    backport that for reason Z", where it's clear that the research has been
    done and the decision can be agreed with or not. It's quite another if
    they make no mention of it, or do so with no explanation, because I then
    have to dig into the why myself. And often, it's not even clear why
    after that, other than a lack of desire to do the additional work.
    
    With this particular patch, the initial summary was useful, though
    incomplete. I've been pleased to see the recent e-mails detailing the
    prospective dependencies at a greater length and the reasoning as to why
    not to include them.
    
    A hunk of a patch can not apply for a number of reasons, and also, apply
    but then leave the result unbuildable. When backporting, it's necessary
    to work out why things look different before you can make a decision as
    to whether something else needs to be backported first. There are cases
    where the context ends up being different, but no backport is required
    because the presence (or lack of) the different code has no impact on
    what's actually being backported e.g. where an unrelated variable
    declaration or method has been added nearby.
    
    In this patch, the main cases are instances of a feature being present
    in 9u and up, but not in 8u. This is more common in HotSpot changes,
    because it often sees the addition of new features without the need to
    worry about a public API as the JDK does. In turn, due to the higher
    code complexity and architecture-specific nature of a lot of HotSpot
    code, along with it being generally harder to test and find bugs, I'm
    less keen to backport large changes there than in JDK code. This is why
    I judged the avx512 exemption to be ok in my initial review [0], but
    also deferred to those more familiar with the codebase.
    
    I'm still nervous about dropping hunks of code from the patch that will
    be needed, should avx512 ever be backported. However, the alternative of
    insisting on that as a pre-requisite for this change seems overboard. It
    does suggest that another good idea during backports is to check whether
    the files being altered by patch X also contain later changes already
    backported to 8u, which may have been stripped of elements which
    required X at the time of their backport. That does occur more than you
    might at first think.
    
    Incidentally, the problem of dropping AArch64 chunks in this and like
    patches is one of my motivations for wanting to get that into 8u itself :-)
    
    [0]
    https://mail.openjdk.java.net/pipermail/jdk8u-dev/2019-December/010846.html
    
    Thanks,
    -- 
    Andrew :)
    
    Senior Free Java Software Engineer
    Red Hat, Inc. (http://www.redhat.com)
    
    PGP Key: ed25519/0xCFDA0F9B35964222 (hkp://keys.gnupg.net)
    Fingerprint = 5132 579D D154 0ED2 3E04  C5A0 CFDA 0F9B 3596 4222
    https://keybase.io/gnu_andrew
    
    



More information about the jdk8u-dev mailing list