You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
org.eclipse.tycho.p2maven.transport.TychoRepositoryTransport.stream(URI, IProgressMonitor) is syncronized what means that if one request blocks all others are blocked as well
Thread wich currently hangs in an operation:
"BuilderThread 8" #80 prio=5 os_prio=0 cpu=72.23ms elapsed=672.77s tid=0x00007ffabe7a27d0 nid=0xe85 waiting on condition [0x00007ff93b7f4000]
java.lang.Thread.State: WAITING (parking)
at jdk.internal.misc.Unsafe.park(java.base@17.0.2/Native Method)
- parking to wait for <0x0000000436ee5e48> (a java.util.concurrent.CompletableFuture$Signaller)
at java.util.concurrent.locks.LockSupport.park(java.base@17.0.2/LockSupport.java:211)
at java.util.concurrent.CompletableFuture$Signaller.block(java.base@17.0.2/CompletableFuture.java:1864)
at java.util.concurrent.ForkJoinPool.unmanagedBlock(java.base@17.0.2/ForkJoinPool.java:3463)
at java.util.concurrent.ForkJoinPool.managedBlock(java.base@17.0.2/ForkJoinPool.java:3434)
at java.util.concurrent.CompletableFuture.waitingGet(java.base@17.0.2/CompletableFuture.java:1898)
at java.util.concurrent.CompletableFuture.get(java.base@17.0.2/CompletableFuture.java:2072)
at jdk.internal.net.http.HttpClientImpl.send(java.net.http@17.0.2/HttpClientImpl.java:553)
at jdk.internal.net.http.HttpClientFacade.send(java.net.http@17.0.2/HttpClientFacade.java:123)
at org.eclipse.tycho.p2maven.transport.Java11HttpTransportFactory$Java11HttpTransport.performGet(Java11HttpTransportFactory.java:142)
at org.eclipse.tycho.p2maven.transport.Java11HttpTransportFactory$Java11HttpTransport.get(Java11HttpTransportFactory.java:105)
at org.eclipse.tycho.p2maven.transport.SharedHttpCacheStorage$CacheLine.fetchFile(SharedHttpCacheStorage.java:252)
- locked <0x0000000436edf8f0> (a org.eclipse.tycho.p2maven.transport.SharedHttpCacheStorage$CacheLine)
at org.eclipse.tycho.p2maven.transport.SharedHttpCacheStorage$2.getCacheFile(SharedHttpCacheStorage.java:136)
at org.eclipse.tycho.p2maven.transport.HttpTransportProtocolHandler.getFile(HttpTransportProtocolHandler.java:50)
at org.eclipse.tycho.p2maven.transport.TychoRepositoryTransport.stream(TychoRepositoryTransport.java:141)
- locked <0x000000041a913a78> (a org.eclipse.tycho.p2maven.transport.TychoRepositoryTransport)
at org.eclipse.tycho.p2maven.transport.TychoRepositoryTransport.download(TychoRepositoryTransport.java:101)
at org.eclipse.equinox.internal.p2.artifact.repository.simple.SimpleArtifactRepository.downloadArtifact(SimpleArtifactRepository.java:734)
at org.eclipse.equinox.internal.p2.artifact.repository.simple.SimpleArtifactRepository.downloadArtifact(SimpleArtifactRepository.java:656)
at org.eclipse.equinox.internal.p2.artifact.repository.simple.SimpleArtifactRepository.getArtifact(SimpleArtifactRepository.java:793)
at org.eclipse.tycho.p2.repository.RepositoryArtifactProvider.getArtifactFromOneMirror(RepositoryArtifactProvider.java:243)
at org.eclipse.tycho.p2.repository.RepositoryArtifactProvider.getArtifactFromAnyMirror(RepositoryArtifactProvider.java:223)
at org.eclipse.tycho.p2.repository.RepositoryArtifactProvider$1.perform(RepositoryArtifactProvider.java:198)
at org.eclipse.equinox.internal.p2.artifact.repository.simple.SimpleArtifactRepository.getArtifact(SimpleArtifactRepository.java:775)
at org.eclipse.equinox.internal.p2.artifact.repository.simple.SimpleArtifactRepository.getArtifacts(SimpleArtifactRepository.java:855)
at org.eclipse.equinox.internal.p2.artifact.repository.CompositeArtifactRepository.getArtifacts(CompositeArtifactRepository.java:362)
at org.eclipse.tycho.p2.repository.LazyArtifactRepository.getArtifacts(LazyArtifactRepository.java:102)
at org.eclipse.tycho.p2.repository.RepositoryArtifactProvider.getArtifactFromAnyChildRepository(RepositoryArtifactProvider.java:210)
at org.eclipse.tycho.p2.repository.RepositoryArtifactProvider.getArtifactFromAnyFormatAvailableInRepository(RepositoryArtifactProvider.java:177)
at org.eclipse.tycho.p2.repository.RepositoryArtifactProvider.getArtifactFromAnySource(RepositoryArtifactProvider.java:163)
at org.eclipse.tycho.p2.repository.CompositeArtifactProviderBaseImpl.getArtifact(CompositeArtifactProviderBaseImpl.java:55)
at org.eclipse.tycho.p2.repository.MirroringArtifactProvider.downloadCanonicalArtifact(MirroringArtifactProvider.java:339)
at org.eclipse.tycho.p2.repository.MirroringArtifactProvider.downloadMostSpecificNeededFormatOfArtifact(MirroringArtifactProvider.java:332)
at org.eclipse.tycho.p2.repository.MirroringArtifactProvider.downloadArtifact(MirroringArtifactProvider.java:317)
at org.eclipse.tycho.p2.repository.MirroringArtifactProvider.makeOneFormatLocallyAvailable(MirroringArtifactProvider.java:256)
at org.eclipse.tycho.p2.repository.MirroringArtifactProvider.makeLocallyAvailable(MirroringArtifactProvider.java:206)
at org.eclipse.tycho.p2.repository.MirroringArtifactProvider.getArtifactFile(MirroringArtifactProvider.java:137)
at org.eclipse.tycho.p2.repository.CompositeArtifactProvider.getArtifactFile(CompositeArtifactProvider.java:89)
at org.eclipse.tycho.p2resolver.TargetPlatformBaseImpl.getLocalArtifactFile(TargetPlatformBaseImpl.java:169)
at org.eclipse.tycho.core.resolver.DefaultP2ResolutionResult.lambda$addArtifact$2(DefaultP2ResolutionResult.java:90)
at org.eclipse.tycho.core.resolver.DefaultP2ResolutionResult$$Lambda$924/0x0000000801439438.get(Unknown Source)
at org.eclipse.tycho.core.resolver.DefaultP2ResolutionResultEntry.getLocation(DefaultP2ResolutionResultEntry.java:73)
at org.eclipse.tycho.p2resolver.P2DependencyResolver.lambda$newDefaultTargetPlatform$6(P2DependencyResolver.java:383)
at org.eclipse.tycho.p2resolver.P2DependencyResolver$$Lambda$926/0x000000080143b018.get(Unknown Source)
at org.eclipse.tycho.core.osgitools.targetplatform.ArtifactCollection.lambda$addArtifactFile$2(ArtifactCollection.java:69)
at org.eclipse.tycho.core.osgitools.targetplatform.ArtifactCollection$$Lambda$927/0x000000080143b240.apply(Unknown Source)
at org.eclipse.tycho.core.osgitools.DefaultArtifactDescriptor.getLocation(DefaultArtifactDescriptor.java:72)
at org.eclipse.tycho.core.osgitools.targetplatform.ArtifactCollection.lambda$addArtifact$3(ArtifactCollection.java:148)
at org.eclipse.tycho.core.osgitools.targetplatform.ArtifactCollection$$Lambda$929/0x000000080143b8d0.apply(Unknown Source)
at org.eclipse.tycho.core.osgitools.DefaultArtifactDescriptor.getLocation(DefaultArtifactDescriptor.java:72)
at org.eclipse.tycho.core.osgitools.targetplatform.ArtifactCollection.lambda$addArtifact$3(ArtifactCollection.java:148)
at org.eclipse.tycho.core.osgitools.targetplatform.ArtifactCollection$$Lambda$929/0x000000080143b8d0.apply(Unknown Source)
at org.eclipse.tycho.core.osgitools.DefaultArtifactDescriptor.getLocation(DefaultArtifactDescriptor.java:72)
at org.eclipse.tycho.core.maven.MavenDependencyInjector.collectExternalDependencies(MavenDependencyInjector.java:216)
at org.eclipse.tycho.core.maven.MavenDependencyInjector.addDependency(MavenDependencyInjector.java:180)
at org.eclipse.tycho.core.maven.MavenDependencyInjector.injectMavenDependencies(MavenDependencyInjector.java:82)
at org.eclipse.tycho.p2resolver.P2DependencyResolver.injectDependenciesIntoMavenModel(P2DependencyResolver.java:409)
at org.eclipse.tycho.core.resolver.DefaultTychoResolver.resolveProject(DefaultTychoResolver.java:155)
- locked <0x000000041a294348> (a org.eclipse.tycho.core.osgitools.DefaultReactorProject)
at org.eclipse.tycho.core.maven.TychoProjectExecutionListener.beforeProjectLifecycleExecution(TychoProjectExecutionListener.java:108)
at org.apache.maven.lifecycle.internal.CompoundProjectExecutionListener.beforeProjectLifecycleExecution(CompoundProjectExecutionListener.java:42)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:103)
at io.takari.maven.builder.smart.SmartBuilderImpl.buildProject(SmartBuilderImpl.java:209)
at io.takari.maven.builder.smart.SmartBuilderImpl$ProjectBuildTask.run(SmartBuilderImpl.java:81)
at java.util.concurrent.Executors$RunnableAdapter.call(java.base@17.0.2/Executors.java:539)
at java.util.concurrent.FutureTask.run(java.base@17.0.2/FutureTask.java:264)
at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@17.0.2/ThreadPoolExecutor.java:1136)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@17.0.2/ThreadPoolExecutor.java:635)
at java.lang.Thread.run(java.base@17.0.2/Thread.java:833)
other threads hanging to enter the method:
"BuilderThread 13" #86 prio=5 os_prio=0 cpu=87.20ms elapsed=672.76s tid=0x00007ffabe7b5ea0 nid=0xe8b waiting for monitor entry [0x00007ff93b1ee000]
java.lang.Thread.State: BLOCKED (on object monitor)
at org.eclipse.tycho.p2maven.transport.TychoRepositoryTransport.stream(TychoRepositoryTransport.java:131)
- waiting to lock <0x000000041a913a78> (a org.eclipse.tycho.p2maven.transport.TychoRepositoryTransport)
at org.eclipse.tycho.p2maven.transport.TychoRepositoryTransport.download(TychoRepositoryTransport.java:101)
at org.eclipse.equinox.internal.p2.artifact.repository.simple.SimpleArtifactRepository.downloadArtifact(SimpleArtifactRepository.java:734)
at org.eclipse.equinox.internal.p2.artifact.repository.simple.SimpleArtifactRepository.downloadArtifact(SimpleArtifactRepository.java:656)
at org.eclipse.equinox.internal.p2.artifact.repository.simple.SimpleArtifactRepository.getArtifact(SimpleArtifactRepository.java:793)
at org.eclipse.tycho.p2.repository.RepositoryArtifactProvider.getArtifactFromOneMirror(RepositoryArtifactProvider.java:243)
at org.eclipse.tycho.p2.repository.RepositoryArtifactProvider.getArtifactFromAnyMirror(RepositoryArtifactProvider.java:223)
at org.eclipse.tycho.p2.repository.RepositoryArtifactProvider$1.perform(RepositoryArtifactProvider.java:198)
at org.eclipse.equinox.internal.p2.artifact.repository.simple.SimpleArtifactRepository.getArtifact(SimpleArtifactRepository.java:775)
at org.eclipse.equinox.internal.p2.artifact.repository.simple.SimpleArtifactRepository.getArtifacts(SimpleArtifactRepository.java:855)
at org.eclipse.equinox.internal.p2.artifact.repository.CompositeArtifactRepository.getArtifacts(CompositeArtifactRepository.java:362)
at org.eclipse.tycho.p2.repository.LazyArtifactRepository.getArtifacts(LazyArtifactRepository.java:102)
at org.eclipse.tycho.p2.repository.RepositoryArtifactProvider.getArtifactFromAnyChildRepository(RepositoryArtifactProvider.java:210)
at org.eclipse.tycho.p2.repository.RepositoryArtifactProvider.getArtifactFromAnyFormatAvailableInRepository(RepositoryArtifactProvider.java:177)
at org.eclipse.tycho.p2.repository.RepositoryArtifactProvider.getArtifactFromAnySource(RepositoryArtifactProvider.java:163)
at org.eclipse.tycho.p2.repository.CompositeArtifactProviderBaseImpl.getArtifact(CompositeArtifactProviderBaseImpl.java:55)
at org.eclipse.tycho.p2.repository.MirroringArtifactProvider.downloadCanonicalArtifact(MirroringArtifactProvider.java:339)
at org.eclipse.tycho.p2.repository.MirroringArtifactProvider.downloadMostSpecificNeededFormatOfArtifact(MirroringArtifactProvider.java:332)
at org.eclipse.tycho.p2.repository.MirroringArtifactProvider.downloadArtifact(MirroringArtifactProvider.java:317)
at org.eclipse.tycho.p2.repository.MirroringArtifactProvider.makeOneFormatLocallyAvailable(MirroringArtifactProvider.java:256)
at org.eclipse.tycho.p2.repository.MirroringArtifactProvider.makeLocallyAvailable(MirroringArtifactProvider.java:206)
at org.eclipse.tycho.p2.repository.MirroringArtifactProvider.getArtifactFile(MirroringArtifactProvider.java:137)
at org.eclipse.tycho.p2.repository.CompositeArtifactProvider.getArtifactFile(CompositeArtifactProvider.java:89)
at org.eclipse.tycho.p2resolver.TargetPlatformBaseImpl.getLocalArtifactFile(TargetPlatformBaseImpl.java:169)
at org.eclipse.tycho.core.resolver.DefaultP2ResolutionResult.lambda$addArtifact$2(DefaultP2ResolutionResult.java:90)
at org.eclipse.tycho.core.resolver.DefaultP2ResolutionResult$$Lambda$924/0x0000000801439438.get(Unknown Source)
at org.eclipse.tycho.core.resolver.DefaultP2ResolutionResultEntry.getLocation(DefaultP2ResolutionResultEntry.java:73)
at org.eclipse.tycho.p2resolver.P2DependencyResolver.lambda$newDefaultTargetPlatform$6(P2DependencyResolver.java:383)
at org.eclipse.tycho.p2resolver.P2DependencyResolver$$Lambda$926/0x000000080143b018.get(Unknown Source)
at org.eclipse.tycho.core.osgitools.targetplatform.ArtifactCollection.lambda$addArtifactFile$2(ArtifactCollection.java:69)
at org.eclipse.tycho.core.osgitools.targetplatform.ArtifactCollection$$Lambda$927/0x000000080143b240.apply(Unknown Source)
at org.eclipse.tycho.core.osgitools.DefaultArtifactDescriptor.getLocation(DefaultArtifactDescriptor.java:72)
at org.eclipse.tycho.core.osgitools.targetplatform.ArtifactCollection.lambda$addArtifact$3(ArtifactCollection.java:148)
at org.eclipse.tycho.core.osgitools.targetplatform.ArtifactCollection$$Lambda$929/0x000000080143b8d0.apply(Unknown Source)
at org.eclipse.tycho.core.osgitools.DefaultArtifactDescriptor.getLocation(DefaultArtifactDescriptor.java:72)
at org.eclipse.tycho.core.osgitools.targetplatform.ArtifactCollection.lambda$addArtifact$3(ArtifactCollection.java:148)
at org.eclipse.tycho.core.osgitools.targetplatform.ArtifactCollection$$Lambda$929/0x000000080143b8d0.apply(Unknown Source)
at org.eclipse.tycho.core.osgitools.DefaultArtifactDescriptor.getLocation(DefaultArtifactDescriptor.java:72)
at org.eclipse.tycho.core.maven.MavenDependencyInjector.collectExternalDependencies(MavenDependencyInjector.java:216)
at org.eclipse.tycho.core.maven.MavenDependencyInjector.addDependency(MavenDependencyInjector.java:180)
at org.eclipse.tycho.core.maven.MavenDependencyInjector.injectMavenDependencies(MavenDependencyInjector.java:82)
at org.eclipse.tycho.p2resolver.P2DependencyResolver.injectDependenciesIntoMavenModel(P2DependencyResolver.java:409)
at org.eclipse.tycho.core.resolver.DefaultTychoResolver.resolveProject(DefaultTychoResolver.java:155)
- locked <0x0000000419d687e0> (a org.eclipse.tycho.core.osgitools.DefaultReactorProject)
at org.eclipse.tycho.core.maven.TychoProjectExecutionListener.beforeProjectLifecycleExecution(TychoProjectExecutionListener.java:108)
at org.apache.maven.lifecycle.internal.CompoundProjectExecutionListener.beforeProjectLifecycleExecution(CompoundProjectExecutionListener.java:42)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:103)
at io.takari.maven.builder.smart.SmartBuilderImpl.buildProject(SmartBuilderImpl.java:209)
at io.takari.maven.builder.smart.SmartBuilderImpl$ProjectBuildTask.run(SmartBuilderImpl.java:81)
at java.util.concurrent.Executors$RunnableAdapter.call(java.base@17.0.2/Executors.java:539)
at java.util.concurrent.FutureTask.run(java.base@17.0.2/FutureTask.java:264)
at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@17.0.2/ThreadPoolExecutor.java:1136)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@17.0.2/ThreadPoolExecutor.java:635)
at java.lang.Thread.run(java.base@17.0.2/Thread.java:833)
Mitigation
We should not use a global lock on the transport here
The text was updated successfully, but these errors were encountered:
Looking at the code I even can't remember why this should be synchronized at all, this seems a leftover from a refactoring where the transport was not a separate component, so if sync is required it should happen there and not for the transport.
org.eclipse.tycho.p2maven.transport.TychoRepositoryTransport.stream(URI, IProgressMonitor)
is syncronized what means that if one request blocks all others are blocked as wellThread wich currently hangs in an operation:
other threads hanging to enter the method:
Mitigation
We should not use a global lock on the transport here
The text was updated successfully, but these errors were encountered: