Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 338810

Summary: Resolver threads "collide" when accessing the same local git clone
Product: z_Archived Reporter: Daniel Weber <daniel.weber.dev>
Component: BuckminsterAssignee: buckminster.core-inbox <buckminster.core-inbox>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: P3 CC: thomas
Version: unspecified   
Target Milestone: ---   
Hardware: PC   
OS: Windows 7   
Whiteboard:

Description Daniel Weber CLA 2011-03-03 08:37:42 EST
Build Identifier: M20100909-0800

I created a cquery + rmap where multiple components are locate din one git repo but in different subdirectories. I set up searchPaths in order to pick the right location depending on the component's id. Now when resolving, buckminster has trouble creating the local git clone.

Reproducible: Always

Steps to Reproduce:
1. Make sure the number of resolver threads is >1. AFAIK the default is 4
2. Resolve https://github.com/DanielWeber/org.eclipse.etrice/raw/master/releng/org.eclipse.etrice.releng.feature/etrice.cquery

This leads to various errors, for example:

ERROR   [0000] : No suitable provider for component org.eclipse.etrice.core.room.ui:osgi.bundle was found in resourceMap https://github.com/DanielWeber/org.eclipse.etrice/raw/master/releng/org.eclipse.etrice.releng.feature/etrice-git.rmap
  ERROR   [0000] : No suitable provider for component org.eclipse.etrice.core.room.ui:osgi.bundle was found in searchPath etrice.plugins
    ERROR   [0000] : Rejecting provider git({0}/org.eclipse.etrice,plugins/{1}[C:/Users/Daniel/workspace/default/org.eclipse.etrice,plugins/org.eclipse.etrice.core.room.ui]): No component match was found
      ERROR   java.io.IOException: Creating directory C:\Users\Daniel\workspace\default\org.eclipse.etrice\.git\refs failed
org.eclipse.etrice.generator.java:osgi.bundle: No provider was found that could resolve the request
ERROR   [0000] : No suitable provider for component org.eclipse.etrice.generator.java:osgi.bundle was found in resourceMap https://github.com/DanielWeber/org.eclipse.etrice/raw/master/releng/org.eclipse.etrice.releng.feature/etrice-git.rmap
  ERROR   [0000] : No suitable provider for component org.eclipse.etrice.generator.java:osgi.bundle was found in searchPath etrice.plugins
    ERROR   [0000] : Rejecting provider git({0}/org.eclipse.etrice,plugins/{1}[C:/Users/Daniel/workspace/default/org.eclipse.etrice,plugins/org.eclipse.etrice.generator.java]): No component match was found
      ERROR   java.io.IOException: Creating directory C:\Users\Daniel\workspace\default\org.eclipse.etrice\.git\refs failed
org.eclipse.etrice.ui.common:osgi.bundle: Rejecting provider git({0}/org.eclipse.etrice,plugins/{1}[C:/Users/Daniel/workspace/default/org.eclipse.etrice,plugins/org.eclipse.etrice.ui.common]): No component match was found
org.eclipse.etrice.ui.common:osgi.bundle: No provider was found that could resolve the request
ERROR   [0000] : No suitable provider for component org.eclipse.etrice.ui.common:osgi.bundle was found in resourceMap https://github.com/DanielWeber/org.eclipse.etrice/raw/master/releng/org.eclipse.etrice.releng.feature/etrice-git.rmap
  ERROR   [0000] : No suitable provider for component org.eclipse.etrice.ui.common:osgi.bundle was found in searchPath etrice.plugins
    ERROR   [0000] : Rejecting provider git({0}/org.eclipse.etrice,plugins/{1}[C:/Users/Daniel/workspace/default/org.eclipse.etrice,plugins/org.eclipse.etrice.ui.common]): No component match was found
      ERROR   org.eclipse.jgit.errors.MissingObjectException: Missing unknown cdbfab4f375c468e623908ee103af389ac951d38

The exceptions are not always the same, but it looks like multiple threads "collide" while trying to access the local clone.

The resolver threads should probably synchronize access to the same local git clone in some way.

Workaround: Set the number of resolver threads to 1 and errors go away.
Comment 1 Thomas Hallgren CLA 2011-03-05 04:59:13 EST
The synchronization for creating the local clone was, hrrm, not ideal. Should be better now.

Fix released to helios-maintenance, rev 11673.
Comment 2 Daniel Weber CLA 2011-03-06 04:50:48 EST
Just tried the latest binaries. Works like a charm now, thanks a lot :)