Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[23] General Release Activities #2213

Closed
2 tasks done
Tracked by #2212
mpalat opened this issue Mar 25, 2024 · 12 comments
Closed
2 tasks done
Tracked by #2212

[23] General Release Activities #2213

mpalat opened this issue Mar 25, 2024 · 12 comments
Assignees
Milestone

Comments

@stephan-herrmann
Copy link
Contributor

stephan-herrmann commented Sep 11, 2024

gathering some links now that building, full testing and provisioning are becoming the bottle neck towards Java 23 GA:

Tests

https://ci.eclipse.org/releng/job/YPBuilds/job/ep433Y-unit-cen64-gtk3-java23/lastCompletedBuild/testReport/

❌ currently 478 failures, some fresh, some older then the job history on jenkins

Update site

https://download.eclipse.org/eclipse/updates/4.33-Y-builds/

  • Installation into Eclipse SDK 4.33 Release works ✔️
    • passes smoke test: can select Java compliance "23 (BETA)" ✔️

Patch builds

TODOs

  • update the patch feature to refer to jdt feature 3.19.600.v20240903-0240 ✔️
  • include org.commonmark and org.commonmark-gfm-tables (both in 0.22.0.v20240316-0700) into the patch feature, either physically included or by a composite site pointing, e.g., to https://download.eclipse.org/tools/orbit/simrel/orbit-aggregation/release/4.33.0
    • the former approach was implemented (in feature.xml). ✔️
  • there may be more (?)

@stephan-herrmann
Copy link
Contributor

Tests

https://ci.eclipse.org/releng/job/YPBuilds/job/ep433Y-unit-cen64-gtk3-java23/lastCompletedBuild/testReport/

❌ currently 478 failures, some fresh, some older then the job history on jenkins

I came to conclude that this is a JIT bug in JDK 23 ea. The following option avoids the problem:

-XX:CompileCommand=exclude,org.eclipse.jdt.internal.core.dom.rewrite.ASTRewriteAnalyzer::getExtendedRange

We should consider:

  • adding a big red alert
  • automatically adding these options when installing the java 23 patch (via META-INF/p2.inf)
  • adding these options in the pom of o.e.j.ui.tests (right after ${leakTestsArgLine}).

@stephan-herrmann
Copy link
Contributor

The Y-builds job claims to run daily ("Daily Maintenance Builds"), but the last runs where only these:

  • 9 Sept
  • 31 Aug

Seemingly caused by this change: https://ci.eclipse.org/releng/job/YPBuilds/job/Y-build-4.33/jobConfigHistory/showDiffFiles?timestamp1=2024-08-23_10-00-01&timestamp2=2024-08-31_13-20-18

I kindly ask to ensure that daily really means daily from now on.

@MohananRahul

@MohananRahul
Copy link
Contributor

MohananRahul commented Sep 12, 2024

Scheduled it to run daily.

@jarthana
Copy link
Member

jarthana commented Sep 12, 2024

* update the patch feature to refer to jdt feature 3.19.600.v20240903-0240

Raised eclipse-platform/eclipse.platform.releng.aggregator#2340 for this.

* include org.commonmark and org.commonmark-gfm-tables (both in 0.22.0.v20240316-0700) into the patch feature, either physically included or by a composite site pointing, e.g., to https://download.eclipse.org/tools/orbit/simrel/orbit-aggregation/release/4.33.0

Checking with @sravanlakkimsetti on how to go about this. Will take this up with his inputs.

@stephan-herrmann
Copy link
Contributor

Checking with @sravanlakkimsetti on how to go about this. Will take this up with his inputs.

I made local experiments with hand-crafted meta data like these:

  • compositeContent.xml
<?xml version='1.0' encoding='UTF-8'?>
<?compositeMetadataRepository version='1.0.0'?>
<repository name='REPOSITORY NAME' type='org.eclipse.equinox.internal.p2.metadata.repository.CompositeMetadataRepository' version='1.0.0'>
  <properties size='3'>
    <property name='p2.timestamp' value='TIMESTAMP'/>
    <property name='p2.compressed' value='true'/>
    <property name='p2.atomic.composite.loading' value='true'/>
  </properties>
  <children size='2'>
    <child location='PATHTOPBUILD_SITE'/>
    <child location='https://download.eclipse.org/tools/orbit/simrel/orbit-aggregation/release/4.33.0'/>
  </children>
</repository>
  • compositeArtifacts.xml
<?xml version='1.0' encoding='UTF-8'?>
<?compositeArtifactRepository version='1.0.0'?>
<repository name='REPOSITORY NAME' type='org.eclipse.equinox.internal.p2.artifact.repository.CompositeArtifactRepository' version='1.0.0'>
  <properties size='3'>
    <property name='p2.timestamp' value='TIMESTAMP'/>
    <property name='p2.compressed' value='true'/>
    <property name='p2.atomic.composite.loading' value='true'/>
  </properties>
  <children size='2'>
    <child location='PATHTOPBUILD_SITE'/>
    <child location='https://download.eclipse.org/tools/orbit/simrel/orbit-aggregation/release/4.33.0'/>
  </children>
</repository>

Replace the three all-caps placeholders with real values and that should be it.

I also played with adding this in feature.xml under <requires>:

      <import plugin="org.commonmark" version="0.22.0"/>
      <import plugin="org.commonmark-gfm-tables" version="0.22.0"/>

Not sure if that is of any value, though :) (since the dependency is already present in the ..core.manipulation plugin).

@stephan-herrmann
Copy link
Contributor

For posterity:

So even if ideas exist to improve this, we seem to be good for this iteration.

Actually it's a rare situation that new dependencies will be added on behalf of a feature patch.

And finally, some hints on building the patch feature locally:
@sravanlakkimsetti recommended:

mvn -f eclipse.platform.releng.tychoeclipsebuilder/java23patch/pom.xml clean verify -Pjava23patch -DskipTests=true

@merks reported success with this command;

$mvn clean verify -Pbuild-individual-bundles -Duser.home=D:/Users/test35 -DfeatureToPatchVersion=3.19.600.v20240903-0240 -DfeatureToPatch=org.eclipse.jdt -DversionRangeForPatch="[3.19.600.v20240903-0240,3.19.600.v20240903-0240]"

@stephan-herrmann
Copy link
Contributor

stephan-herrmann commented Sep 13, 2024

I came to conclude that this is a JIT bug in JDK 23 ea. The following option avoids the problem:

-XX:CompileCommand=exclude,org.eclipse.jdt.internal.core.dom.rewrite.ASTRewriteAnalyzer::getExtendedRange

[...]

  • automatically adding these options when installing the java 23 patch (via META-INF/p2.inf)

Addressed in #2954

@stephan-herrmann
Copy link
Contributor

Tests

https://ci.eclipse.org/releng/job/YPBuilds/job/ep433Y-unit-cen64-gtk3-java23/lastCompletedBuild/testReport/

❌ currently 478 failures, some fresh, some older then the job history on jenkins

Finally the workaround for the JIT-bug worked leaving us with only 3 failures in JDT, all in ASTRewritingModifyingCopyTest. And guess what: all three show the infamous NPE without any null:

java.lang.NullPointerException: Cannot invoke "org.eclipse.jdt.core.dom.rewrite.TargetSourceRangeComputer$SourceRange.getStartPosition()" because "range" is null
	at org.eclipse.jdt.internal.core.dom.rewrite.ASTRewriteAnalyzer.getExtendedEnd(ASTRewriteAnalyzer.java:274)

So o.e.j.c.tests.model needs the same JIT workaround, too.

@stephan-herrmann
Copy link
Contributor

So o.e.j.c.tests.model needs the same JIT workaround, too.

Done with #2957

@stephan-herrmann
Copy link
Contributor

Fresh status update:

Tests

https://ci.eclipse.org/releng/job/YPBuilds/job/ep433Y-unit-cen64-gtk3-java23/26/testReport/ lists only a single test failure:

Ergo: From a test suite p.o.v. we are good to go! ✔️

Update site

Had already been successful during my previous summary. ✔️

Patch build

Also patch builds run daily now at 5am and will pick up the Y-build of the previous day.

  • ⚠️ only adding child repos to the composite seems to lag - @MohananRahul does this step still require a manual trigger? Perhaps to await sanity checking before a new build goes live?

Installation from https://download.eclipse.org/eclipse/updates/4.33-P-builds/ succeeds and passes smoke tests. ✔️

JIT-bug workaroud

As mentioned, the landslide of failures in our test suite was caused by a JIT bug in JVM 23.

As a bonus feature, installing jdt.core now automatically adds the matching workaround into eclipse.ini, to make running Eclipse on Java 23 safe. ✔️

@stephan-herrmann
Copy link
Contributor

The feature has been released and shipped.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants