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([email protected]/Native Method)
- parking to wait for <0x0000000436ee5e48> (a java.util.concurrent.CompletableFuture$Signaller)
at java.util.concurrent.locks.LockSupport.park([email protected]/LockSupport.java:211)
at java.util.concurrent.CompletableFuture$Signaller.block([email protected]/CompletableFuture.java:1864)
at java.util.concurrent.ForkJoinPool.unmanagedBlock([email protected]/ForkJoinPool.java:3463)
at java.util.concurrent.ForkJoinPool.managedBlock([email protected]/ForkJoinPool.java:3434)
at java.util.concurrent.CompletableFuture.waitingGet([email protected]/CompletableFuture.java:1898)
at java.util.concurrent.CompletableFuture.get([email protected]/CompletableFuture.java:2072)
at jdk.internal.net.http.HttpClientImpl.send([email protected]/HttpClientImpl.java:553)
at jdk.internal.net.http.HttpClientFacade.send([email protected]/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([email protected]/Executors.java:539)
at java.util.concurrent.FutureTask.run([email protected]/FutureTask.java:264)
at java.util.concurrent.ThreadPoolExecutor.runWorker([email protected]/ThreadPoolExecutor.java:1136)
at java.util.concurrent.ThreadPoolExecutor$Worker.run([email protected]/ThreadPoolExecutor.java:635)
at java.lang.Thread.run([email protected]/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([email protected]/Executors.java:539)
at java.util.concurrent.FutureTask.run([email protected]/FutureTask.java:264)
at java.util.concurrent.ThreadPoolExecutor.runWorker([email protected]/ThreadPoolExecutor.java:1136)
at java.util.concurrent.ThreadPoolExecutor$Worker.run([email protected]/ThreadPoolExecutor.java:635)
at java.lang.Thread.run([email protected]/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: