Community
Participate
Working Groups
Created attachment 287843 [details] Full thread dump Got this nice deadlock report trying to rebase a branch in JDT core: Found one Java-level deadlock: ============================= "Worker-832: Rebasing Branch change/171776/1 on refs/remotes/origin/master": waiting to lock monitor 0x00007ffe60001d80 (object 0x000000045ec9c9c0, a org.eclipse.pde.api.tools.internal.model.WorkspaceBaseline), which is held by "Worker-1065: Performing API Analysis" "Worker-1065: Performing API Analysis": waiting to lock monitor 0x00007ffd74024380 (object 0x00000004623e6be0, a org.eclipse.pde.api.tools.internal.model.ProjectComponent), which is held by "Worker-1063: Performing API Analysis" "Worker-1063: Performing API Analysis": waiting to lock monitor 0x00007ffe60001d80 (object 0x000000045ec9c9c0, a org.eclipse.pde.api.tools.internal.model.WorkspaceBaseline), which is held by "Worker-1065: Performing API Analysis" Java stack information for the threads listed above: =================================================== "Worker-832: Rebasing Branch change/171776/1 on refs/remotes/origin/master": at org.eclipse.pde.api.tools.internal.model.ApiBaseline.loadBaselineInfos(ApiBaseline.java:744) - waiting to lock <0x000000045ec9c9c0> (a org.eclipse.pde.api.tools.internal.model.WorkspaceBaseline) at org.eclipse.pde.api.tools.internal.model.ApiBaseline.getApiComponents(ApiBaseline.java:547) at org.eclipse.pde.api.tools.internal.model.ApiBaseline.doDispose(ApiBaseline.java:817) at org.eclipse.pde.api.tools.internal.model.WorkspaceBaseline.dispose(WorkspaceBaseline.java:48) at org.eclipse.pde.api.tools.internal.ApiBaselineManager.disposeWorkspaceBaseline(ApiBaselineManager.java:622) - locked <0x00000004180c4160> (a org.eclipse.pde.api.tools.internal.ApiBaselineManager) at org.eclipse.pde.api.tools.internal.WorkspaceDeltaProcessor.processJavaElementDeltas(WorkspaceDeltaProcessor.java:80) at org.eclipse.pde.api.tools.internal.WorkspaceDeltaProcessor.elementChanged(WorkspaceDeltaProcessor.java:49) at org.eclipse.jdt.internal.core.DeltaProcessor$3.run(DeltaProcessor.java:1755) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45) at org.eclipse.jdt.internal.core.DeltaProcessor.notifyListeners(DeltaProcessor.java:1743) at org.eclipse.jdt.internal.core.DeltaProcessor.firePostChangeDelta(DeltaProcessor.java:1576) at org.eclipse.jdt.internal.core.DeltaProcessor.fire(DeltaProcessor.java:1552) at org.eclipse.jdt.internal.core.DeltaProcessor.notifyAndFire(DeltaProcessor.java:2273) at org.eclipse.jdt.internal.core.DeltaProcessor.resourceChanged(DeltaProcessor.java:2163) at org.eclipse.jdt.internal.core.DeltaProcessingState.resourceChanged(DeltaProcessingState.java:501) at org.eclipse.core.internal.events.NotificationManager$1.run(NotificationManager.java:305) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45) at org.eclipse.core.internal.events.NotificationManager.notify(NotificationManager.java:295) at org.eclipse.core.internal.events.NotificationManager.broadcastChanges(NotificationManager.java:158) at org.eclipse.core.internal.resources.Workspace.broadcastPostChange(Workspace.java:381) at org.eclipse.core.internal.resources.Workspace.endOperation(Workspace.java:1503) at org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:49) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63) "Worker-1065: Performing API Analysis": at org.eclipse.pde.api.tools.internal.model.Component.getApiTypeContainers(Component.java:125) - waiting to lock <0x00000004623e6be0> (a org.eclipse.pde.api.tools.internal.model.ProjectComponent) at org.eclipse.pde.api.tools.internal.model.AbstractApiTypeContainer.getPackageNames(AbstractApiTypeContainer.java:157) at org.eclipse.pde.api.tools.internal.model.ApiBaseline.resolvePackage0(ApiBaseline.java:648) at org.eclipse.pde.api.tools.internal.model.ApiBaseline.resolvePackage(ApiBaseline.java:578) - locked <0x000000045ec9c9c0> (a org.eclipse.pde.api.tools.internal.model.WorkspaceBaseline) at org.eclipse.pde.api.tools.internal.builder.Reference.getParameterList(Reference.java:331) at org.eclipse.pde.api.tools.internal.builder.LeakReturnTypeDetector.isProblem(LeakReturnTypeDetector.java:65) at org.eclipse.pde.api.tools.internal.builder.AbstractProblemDetector.createProblems(AbstractProblemDetector.java:515) at org.eclipse.pde.api.tools.internal.builder.ReferenceAnalyzer.analyze(ReferenceAnalyzer.java:248) at org.eclipse.pde.api.tools.internal.builder.BaseApiAnalyzer.checkApiUsage(BaseApiAnalyzer.java:1286) at org.eclipse.pde.api.tools.internal.builder.BaseApiAnalyzer.analyzeComponent(BaseApiAnalyzer.java:289) at org.eclipse.pde.api.tools.internal.builder.ApiAnalysisBuilder.buildAll(ApiAnalysisBuilder.java:923) at org.eclipse.pde.api.tools.internal.builder.ApiAnalysisBuilder.work(ApiAnalysisBuilder.java:427) at org.eclipse.pde.api.tools.internal.builder.ApiAnalysisBuilder$ApiAnalysisJob.run(ApiAnalysisBuilder.java:579) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63) "Worker-1063: Performing API Analysis": at org.eclipse.pde.api.tools.internal.model.ApiBaseline.loadBaselineInfos(ApiBaseline.java:744) - waiting to lock <0x000000045ec9c9c0> (a org.eclipse.pde.api.tools.internal.model.WorkspaceBaseline) at org.eclipse.pde.api.tools.internal.model.ApiBaseline.getApiComponent(ApiBaseline.java:715) at org.eclipse.pde.api.tools.internal.model.BundleComponent.getHost(BundleComponent.java:1108) - locked <0x00000004623e6be0> (a org.eclipse.pde.api.tools.internal.model.ProjectComponent) at org.eclipse.pde.api.tools.internal.model.AbstractApiTypeContainer.findTypeRoot(AbstractApiTypeContainer.java:130) at org.eclipse.pde.api.tools.internal.provisional.comparator.ApiComparator$2.visit(ApiComparator.java:680) at org.eclipse.pde.api.tools.internal.model.ArchiveApiTypeContainer.accept(ArchiveApiTypeContainer.java:198) at org.eclipse.pde.api.tools.internal.provisional.comparator.ApiComparator.internalCompare(ApiComparator.java:659) at org.eclipse.pde.api.tools.internal.provisional.comparator.ApiComparator.compare(ApiComparator.java:289) at org.eclipse.pde.api.tools.internal.provisional.comparator.ApiComparator.compare(ApiComparator.java:315) at org.eclipse.pde.api.tools.internal.builder.BaseApiAnalyzer.checkCompatibility(BaseApiAnalyzer.java:1504) at org.eclipse.pde.api.tools.internal.builder.BaseApiAnalyzer.analyzeComponent(BaseApiAnalyzer.java:269) at org.eclipse.pde.api.tools.internal.builder.ApiAnalysisBuilder.buildAll(ApiAnalysisBuilder.java:923) at org.eclipse.pde.api.tools.internal.builder.ApiAnalysisBuilder.work(ApiAnalysisBuilder.java:427) at org.eclipse.pde.api.tools.internal.builder.ApiAnalysisBuilder$ApiAnalysisJob.run(ApiAnalysisBuilder.java:579) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63) Found 1 deadlock.
New Gerrit change created: https://git.eclipse.org/r/c/pde/eclipse.pde.ui/+/189712
Gerrit change https://git.eclipse.org/r/c/pde/eclipse.pde.ui/+/189712 was merged to [master]. Commit: http://git.eclipse.org/c/pde/eclipse.pde.ui.git/commit/?id=eab73257911410c1fc318f247f349ec3e7c0370b
Seem to work with 4.23.0.I20220117-1800 build without deadlock.
New Gerrit change created: https://git.eclipse.org/r/c/pde/eclipse.pde.ui/+/189764
API descriptions are built using latest I-build and I think this one caused latest comparator errors in https://download.eclipse.org/eclipse/downloads/drops4/I20220118-1800/ . Please investigate.
Gerrit change https://git.eclipse.org/r/c/pde/eclipse.pde.ui/+/189764 was merged to [master]. Commit: http://git.eclipse.org/c/pde/eclipse.pde.ui.git/commit/?id=608ef61a1e63e807bfd7b666f367f2f8d1888616
Local compile failed with: [/usr/lib/jvm/java-17-openjdk-17.0.1.0.12-13.rolling.fc35.x86_64/bin/java, -Xmx2048M, -Dp2.RepositoryPreferences.retryOnSocketTimeout=true, -Dp2.RepositoryPreferences.connectionRetryCount=3, -Dp2.RepositoryPreferences.connectionMsRetryDelay=500, -Dorg.eclipse.ecf.provider.filetransfer.retrieve.readTimeout=10000, -jar, /home/akurtakov/.m2/repository/p2/osgi/bundle/org.eclipse.equinox.launcher/1.6.400.v20210924-0641/org.eclipse.equinox.launcher-1.6.400.v20210924-0641.jar, -install, /home/akurtakov/git/eclipse.platform.ua/org.eclipse.ui.intro/apiAnalyzer-workspace, -configuration, /home/akurtakov/git/eclipse.platform.ua/org.eclipse.ui.intro/apiAnalyzer-workspace/configuration, -data, /home/akurtakov/git/eclipse.platform.ua/org.eclipse.ui.intro/apiAnalyzer-workspace/data, -application, org.eclipse.pde.api.tools.apiAnalyzer, -project, /home/akurtakov/git/eclipse.platform.ua/org.eclipse.ui.intro, -baseline, /home/akurtakov/git/eclipse.platform.ua/org.eclipse.ui.intro/target/org.eclipse.ui.intro-apiBaseline.target, -dependencyList, /home/akurtakov/git/eclipse.platform.ua/org.eclipse.ui.intro/target/dependencies-list.txt, -failOnError] Status ERROR: org.eclipse.core.resources code=77 Invalid project description. children=[Status OK: unknown code=0 OK [type: ERROR], [path: null], [message: /home/akurtakov/git/eclipse.platform.ua/org.eclipse.ui.intro overlaps the workspace location: /home/akurtakov/git/eclipse.platform.ua/org.eclipse.ui.intro/apiAnalyzer-workspace/data], [plugin: org.eclipse.core.resources], [exception: null]
(In reply to Alexander Kurtakov from comment #7) > Local compile failed with: Alex, please use bug 578273 for further investigation.
The patch caused comparator errors in I20220118-1800 is merged via bug 578273, the code change (see https://git.eclipse.org/r/c/pde/eclipse.pde.ui/+/189773/2/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/model/CompositeApiTypeContainer.java) was a side effect of refactoring and only indirectly related to the deadlock solution.