How to handle future backports from JDK 10 into JDK 9?

Seán Coffey sean.coffey at oracle.com
Thu Feb 16 17:48:49 UTC 2017


All JDK Update releases operate with the jcheck unique bug id check 
switched off. It's been that way for many years without issue.

The Update release projects enjoy a model where a stabilization forest 
can be forked off the 'main' dev forest at RDP2 milestone every 3 
months. By having the jcheck unique bug id check switched off, we've had 
maximum efficiency and flexibility in being able to move selected 
changes around from forest to forest without cost.

I believe that disabling it for feature releases will also benefit 
release management and gatekeepers for those Projects. It's very rare 
that this jcheck would catch a genuine dup bug ID issue. Switching off 
will simplify release team and gatekeeper actions for the future. The 
alternative of logging secondary bug IDs for the purpose of porting a 
bug fix from one release to another would be cumbersome and would lead 
to longer bug tails on issues.

I do welcome Phil's call for improving checks on jcheck to detect when 
backport IDs are erroneously used in changeset commits!

regards,
Sean.

On 15/02/2017 21:00, Vladimir Kozlov wrote:
> We discussed this in Hotspot and support David's opinion here.
> We should not relax jcheck and we can use backport type different bug 
> id as he suggested.
>
> Regards,
> Vladimir
>
> On 2/13/17 6:15 PM, David Holmes wrote:
>> On 14/02/2017 8:54 AM, joe darcy wrote:
>>> Hello,
>>>
>>> An open question in Mark's announcement that the JDK 10 forests are 
>>> open
>>> [1] concerned how to manage backports from JDK 10 to JDK 9:
>>>
>>> "In the (hopefully infrequent) event that a change in JDK 10 needs 
>>> to be
>>> back-ported to JDK 9 we'll have to figure out how to handle the 
>>> duplicate
>>> bug ids that will arise when a back-ported change is later merged 
>>> forward
>>> into JDK 10.  One solution may just be to disable the unique bug-id 
>>> test
>>> in jcheck, on the assumption that existing social conventions 
>>> adequately
>>> protect us from the pathological scenarios that are prevented by this
>>> test.  Thoughts welcome ..."
>>>
>>> As a reminder, the overall model (for now) is that all fixes from JDK 9
>>> will be synced into JDK 10; the first sync of several hundred bugs
>>> happened recently and went smoothly. [2]
>>>
>>> The potentially problematic situation would occur if
>>>
>>> * Bug JDK-8181818 is first fixed in JDK 10
>>> * Bug JDK-8181818 is then backported to JDK 9
>>> * The next sync of JDK 9 into JDK 10 would fail on the duplicate bug id
>>> JDK-8181818 even though the code may be identical
>>>
>>> One way to avoid this problem would be to do the push to JDK 9 under an
>>> explicit backport bug id rather than the main bug id JDK-8181818. This
>>> approach has a number of drawback. First, long-standing social
>>> convention has been to "always use the main bug id." Second, tooling
>>> like Hg updater has been written on the assumption that the main bug id
>>> will always be used to conceptually refer to an issue.
>>>
>>> The purpose of the jcheck unique bug id check stems from preventing
>>> sloppy bug handling where multiple changesets partially and
>>> incrementally address a bug and it is not clear whether or not an issue
>>> is fully fixed or not.
>>>
>>> However, even without programmatic enforcement of unique bug id, I 
>>> don't
>>> think JDK development practices would devolve in that way. As 
>>> supporting
>>> evidence, the unique bug id check is disabled in the 8 update 
>>> forests to
>>> allow fixes from multiple releases to come back together in the
>>> always-open forest and the pathologies around partial fixes have not
>>> occurred.
>>>
>>> Therefore, I think the better option is to also disable the unique bug
>>> id check for the JDK 10 forests to allow easier syncing between 9 
>>> and 10.
>>
>> I think that check has helped avoid pushes with mis-typed bug 
>> numbers. Unless we have a stronger "does this bug id match the bug 
>> synopsis" check I would not want to see this bug id check relaxed.
>>
>> I would not expect there to be many cases where something is deferred 
>> to 10, fixed, and then re-considered for 9. But if that does happen I 
>> think the simplest thing may be to do the backport under a
>> new bug id (as already happens at time in the update releases when 
>> the backport is not clean).
>>
>> Thanks,
>> David
>> -----
>>
>>> Comments?
>>>
>>> Cheers,
>>>
>>> -Joe
>>>
>>> [1]
>>> http://mail.openjdk.java.net/pipermail/jdk10-dev/2017-January/000041.html 
>>>
>>>
>>> [2]
>>> http://mail.openjdk.java.net/pipermail/jdk10-dev/2017-February/000054.html 
>>>
>>>



More information about the jdk10-dev mailing list