Fixed infinite loop on "no buildable source" error.
diff --git a/dependency/resolver.go b/dependency/resolver.go
index 18e03c4..6e50d32 100644
--- a/dependency/resolver.go
+++ b/dependency/resolver.go
@@ -328,9 +328,18 @@
pkg, err := r.BuildContext.ImportDir(vdep, 0)
if err != nil {
msg.Warn("ImportDir error on %s: %s", vdep, err)
+ if strings.HasPrefix(err.Error(), "no buildable Go source") {
+ msg.Info("No subpackages declared. Skipping %s.", dep)
+ continue
+ }
if ok, err := r.Handler.NotFound(dep); ok {
+ //if _, ok := r.alreadyQ[dep]; ok {
+ //// This was already processed, possibly by another
+ //// concurrent iteration.
+ //continue
+ //}
r.alreadyQ[dep] = true
- queue.PushBack(dep)
+ queue.PushBack(r.vpath(dep))
} else if err != nil {
msg.Warn("Error looking for %s: %s", dep, err)
} else {
@@ -370,10 +379,12 @@
case LocGopath:
msg.Info("Found on GOPATH, not vendor: %s", imp)
if _, ok := r.alreadyQ[imp]; !ok {
- r.Handler.OnGopath(imp)
- r.alreadyQ[imp] = true
- queue.PushBack(imp)
- r.VersionHandler.SetVersion(imp)
+ // Only scan it if it gets moved into vendor/
+ if ok, _ := r.Handler.OnGopath(imp); ok {
+ r.alreadyQ[imp] = true
+ queue.PushBack(r.vpath(imp))
+ r.VersionHandler.SetVersion(imp)
+ }
}
}
}
diff --git a/repo/installer.go b/repo/installer.go
index c3db217..29f67f3 100644
--- a/repo/installer.go
+++ b/repo/installer.go
@@ -316,6 +316,7 @@
// This package may have been placed on the list to look for when it wasn't
// downloaded but it has since been downloaded before coming to this entry.
if _, err := os.Stat(dest); err == nil {
+ msg.Debug("Found %s", dest)
return true, nil
}