Contributing various small OpenJDK fixes: IKVM

Aleksey Shipilev shipilev at amazon.de
Tue Jul 23 10:11:48 UTC 2024


On 23.07.24 04:46, David Holmes wrote:
>> Actually, this is pragmatic. Unless the fix is really 8u-specific, it
>> should be fixed in mainline, and then backported all the way to all
>> currently supported releases. Otherwise, the same issue would reappear
>> once Jerome moves past JDK 8.
> 
> And if that were to happen that would be tomorrow's problem IMO. I think
> it completely impractical, and unreasonable, to require this to be fixed
> in an environment they do not work (mainline) and filter it through all
> update releases until it makes its way back to 8u.

Yes, it is more work than just pushing the patch into JDK Xu. I disagree on "completely impractical" 
and "unreasonable".

The usual way we deal with issues affecting previous JDKs is:
  1. There is an issue affecting JDK Xu.
  2. A fix is developed/tested/verified on JDK Xu or on mainline, whatever is more convenient.
  3. A fix is committed into mainline, gets stabilized there, accrues follow-ups.
  4. Downstream builds cherry-pick mainline patch in their private JDK Xu builds.
  5. After a while, mainline fix gets backported to update releases with associated follow-ups.
  6. Downstreams replace the cherry-picked fix with the upstream JDK Xu backport.

The long-term benefits are important: a) the problem is fixed everywhere going forward; b) the 
problem is fixed in all currently supported LTSes; c) if there is a problem with the fix that 
affects some other build configs, the first thing it would break is mainline, not LTS.

For these reasons, a recurrent ask from maintainers is to do the fixes into mainline/latest releases 
first, and then backport, unless there is a compelling reason to bypass those steps. There might be 
some leeway on case by case basis, but it is rare. I am writing this down so that it does not come 
up as surprise to Jerome and others.

Granted, when we manage downstream builds, we often pick up things directly (see step 4 above) 
without regard of upstream timelines. This is not how I see JDK Updates work, however: they are much 
more future-looking, and "that would be tomorrow's problem" is not the usual way they approach things.

For example, see https://wiki.openjdk.org/display/JDKUpdates/How+to+contribute+or+backport+a+fix:
"There are two general types of fixes: [...] new fixes: *rarely*, there is a need for a net new 
change for an updates repository, e.g., *because a fix would not apply to higher OpenJDK versions* 
that are in maintenance. *Fix the issue in the highest release it is applicable to.* [...]"

Thanks,
-Aleksey



Amazon Web Services Development Center Germany GmbH
Krausenstr. 38
10117 Berlin
Geschaeftsfuehrung: Christian Schlaeger, Jonathan Weiss
Eingetragen am Amtsgericht Charlottenburg unter HRB 257764 B
Sitz: Berlin
Ust-ID: DE 365 538 597


More information about the discuss mailing list