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

Intermittent Y-build failures due to baseline replacement #2793

Closed
HannesWell opened this issue Jan 28, 2025 · 2 comments · Fixed by #2800
Closed

Intermittent Y-build failures due to baseline replacement #2793

HannesWell opened this issue Jan 28, 2025 · 2 comments · Fixed by #2800
Assignees

Comments

@HannesWell
Copy link
Member

As reported in #2791 (comment) and already noticed before the Y-build fails occasionally with failures similar to

[2025-01-28T15:15:52.984Z] [ERROR] Cannot resolve dependencies of project eclipse.platform.releng.tychoeclipsebuilder:equinox-sdk:eclipse-repository:4.35.0-SNAPSHOT
[2025-01-28T15:15:52.984Z] [ERROR]  with context {osgi.os=linux, osgi.ws=gtk, org.eclipse.update.install.features=true, org.eclipse.jdt.buildtime=true, osgi.arch=x86_64, org.eclipse.update.install.sources=true}
[2025-01-28T15:15:52.984Z] [ERROR]   Software being installed: org.eclipse.equinox.sdk.product 4.35.0.qualifier
[2025-01-28T15:15:52.984Z] [ERROR]   Missing requirement: org.eclipse.equinox.sdk.feature.group 3.23.1600.v20250127-1848 requires 'org.eclipse.equinox.p2.iu; org.eclipse.jdt.core.compiler.batch [3.41.0.v20250122-1644,3.41.0.v20250122-1644]' but it could not be found
[2025-01-28T15:15:52.984Z] [ERROR]   Cannot satisfy dependency: org.eclipse.equinox.sdk.product 4.35.0.qualifier depends on: org.eclipse.equinox.p2.iu; org.eclipse.equinox.sdk.feature.group 0.0.0: See log for details
[2025-01-28T15:15:52.984Z] [ERROR] -> [Help 1]

after baseline replacement detected changes without a qualifier change:

[2025-01-28T15:14:21.229Z] [WARNING] MavenProject: org.eclipse.equinox:org.eclipse.equinox.sdk:3.23.1600-SNAPSHOT @ /home/jenkins/agent/workspace/YPBuilds/Y-build-4.35/cje-production/gitCache/eclipse.platform.releng.aggregator/equinox/features/org.eclipse.equinox.sdk/.polyglot.feature.xml: baseline and build artifacts have same version but different contents
[2025-01-28T15:14:21.229Z]    no-classifier: different
[2025-01-28T15:14:21.229Z]       feature.xml: different
[2025-01-28T15:14:21.229Z] 
[2025-01-28T15:14:21.229Z] [INFO] MavenProject: org.eclipse.equinox:org.eclipse.equinox.sdk:3.23.1600-SNAPSHOT @ /home/jenkins/agent/workspace/YPBuilds/Y-build-4.35/cje-production/gitCache/eclipse.platform.releng.aggregator/equinox/features/org.eclipse.equinox.sdk/.polyglot.feature.xml
[2025-01-28T15:14:21.229Z]     The main artifact has been replaced with the baseline version.

A similar report was #2660 and looking at #2660 (comment) the reason could indeed be that the Y-build uses the I-build as baseline for the p2-baseline-replacement:

<comparator.repo>https://download.eclipse.org/eclipse/updates/4.35-I-builds</comparator.repo>

If then there is no change on the BETA_JAVAX branch between the latest I-build and the next Y-build then the scenario could happen as the baseline contains more recent artifacts than the reactor (qualifier-wise).
I have to investigate it again, but if that's really the cause a solution would be to baseline Y-builds against the latest Y-build repo by specifying -Dcomparator.repo=https://download.eclipse.org/eclipse/updates/4.35-Y-builds/.
This would hopefully also resolve the comparator-errors that are currently found on all (otherwise successful) Y-builds.

Another reason might be that there is a problem in considering time-zones during baseline replace or when computing aggregated qualifiers for features. The former seems to be a much better explanation of the problem, but IIRC I have also seen problems that seem to be connected to the latter (i.e. baseline-replacements failing shortly after I-builds), but this was already some time ago, so could be a red herring.

@HannesWell HannesWell self-assigned this Jan 28, 2025
HannesWell added a commit to HannesWell/eclipse.platform.releng.aggregator that referenced this issue Jan 30, 2025
HannesWell added a commit to HannesWell/eclipse.platform.releng.aggregator that referenced this issue Feb 1, 2025
HannesWell added a commit to HannesWell/eclipse.platform.releng.aggregator that referenced this issue Feb 1, 2025
HannesWell added a commit to HannesWell/eclipse.platform.releng.aggregator that referenced this issue Feb 1, 2025
@HannesWell
Copy link
Member Author

@stephan-herrmann with #2800 this should now be fixed. The next Y-build should confirm this if there are no comparator-errors.

Btw. are you aware of the existing comparator-errors between the I-build repo?
https://download.eclipse.org/eclipse/downloads/drops4/Y20250131-1000/buildlogs/comparatorlogs/buildtimeComparatorUnanticipated.log.txt

Comparator differences from current build
	/home/jenkins/agent/workspace/YPBuilds/Y-build-4.35/cje-production/siteDir/eclipse/downloads/drops4/Y20250131-1000
compared to reference repo at 
	https://download.eclipse.org/eclipse/updates/4.35-I-builds

1.  eclipse.platform/runtime/bundles/org.eclipse.e4.core.di/.polyglot.META-INF
   no-classifier: different
      org/eclipse/e4/core/internal/di/AnnotationLookup.class: different
    The main artifact has been replaced with the baseline version.
    The following attached artifacts have been replaced with the baseline version: [sources]

2.  eclipse.pde/apitools/org.eclipse.pde.api.tools.tests/pom.xml
   no-classifier: different
      org/eclipse/pde/api/tools/util/tests/UtilTests.class: different
    The main artifact has been replaced with the baseline version.
    The following attached artifacts have been replaced with the baseline version: [sources]

This means that we will probably have these errors in the I-build if the new ECJ version is merged into master. But maybe the change in generated byte-code is intended. Just wanted to make you aware. :)

@stephan-herrmann
Copy link
Contributor

Btw. are you aware of the existing comparator-errors between the I-build repo?

Thanks for the heads-up.

Initial analysis indicates the change should be legit, but I asked for confirmation via eclipse-jdt/eclipse.jdt.core#3649

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