fixed potential out of bounds

This commit is contained in:
2022-08-13 22:03:16 +02:00
parent 8ff928d7fa
commit b48c75a177
2 changed files with 38 additions and 35 deletions

View File

@@ -329,9 +329,10 @@ func (b *BuildManager) refreshSRCINFOs(ctx context.Context, path string) error {
cur := 0 cur := 0
wg := sync.WaitGroup{} wg := sync.WaitGroup{}
for i := 0; i < runtime.NumCPU(); i++ { for i := 0; i < runtime.NumCPU(); i++ {
if cur+step > len(pkgBuilds) { if i == runtime.NumCPU()-1 {
step -= cur + step - len(pkgBuilds) step = len(pkgBuilds) - cur
} }
wg.Add(1) wg.Add(1)
go func(pkgBuilds []string) { go func(pkgBuilds []string) {
defer wg.Done() defer wg.Done()

View File

@@ -568,41 +568,43 @@ func housekeeping(repo string, march string, wg *sync.WaitGroup) error {
} }
} }
// check queued packages for eligibility /*
log.Debugf("[HK/%s] check queued packages", fullRepo) // check queued packages for eligibility
qPackages, err := db.DbPackage.Query().Where( log.Debugf("[HK/%s] check queued packages", fullRepo)
dbpackage.And( qPackages, err := db.DbPackage.Query().Where(
dbpackage.RepositoryEQ(dbpackage.Repository(repo)), dbpackage.And(
dbpackage.March(march), dbpackage.RepositoryEQ(dbpackage.Repository(repo)),
dbpackage.StatusEQ(dbpackage.StatusQueued), dbpackage.March(march),
)).All(context.Background()) dbpackage.StatusEQ(dbpackage.StatusQueued),
if err != nil { )).All(context.Background())
return err
}
for _, dbPkg := range qPackages {
pkg := &ProtoPackage{
Pkgbase: dbPkg.Pkgbase,
Repo: dbPkg.Repository,
FullRepo: dbPkg.Repository.String() + "-" + dbPkg.March,
DbPackage: dbPkg,
March: dbPkg.March,
}
var upstream string
switch pkg.DbPackage.Repository {
case dbpackage.RepositoryCore, dbpackage.RepositoryExtra:
upstream = "upstream-core-extra"
case dbpackage.RepositoryCommunity:
upstream = "upstream-community"
}
pkg.Pkgbuild = filepath.Join(conf.Basedir.Work, upstreamDir, upstream, dbPkg.Pkgbase, "repos", pkg.DbPackage.Repository.String()+"-"+conf.Arch, "PKGBUILD")
_, err := pkg.isEligible(context.Background())
if err != nil { if err != nil {
log.Warningf("[HK/%s] unable to determine status for %s: %v", fullRepo, dbPkg.Pkgbase, err) return err
} }
}
for _, dbPkg := range qPackages {
pkg := &ProtoPackage{
Pkgbase: dbPkg.Pkgbase,
Repo: dbPkg.Repository,
FullRepo: dbPkg.Repository.String() + "-" + dbPkg.March,
DbPackage: dbPkg,
March: dbPkg.March,
}
var upstream string
switch pkg.DbPackage.Repository {
case dbpackage.RepositoryCore, dbpackage.RepositoryExtra:
upstream = "upstream-core-extra"
case dbpackage.RepositoryCommunity:
upstream = "upstream-community"
}
pkg.Pkgbuild = filepath.Join(conf.Basedir.Work, upstreamDir, upstream, dbPkg.Pkgbase, "repos", pkg.DbPackage.Repository.String()+"-"+conf.Arch, "PKGBUILD")
_, err := pkg.isEligible(context.Background())
if err != nil {
log.Warningf("[HK/%s] unable to determine status for %s: %v", fullRepo, dbPkg.Pkgbase, err)
}
}
*/
log.Debugf("[HK/%s] all tasks finished", fullRepo) log.Debugf("[HK/%s] all tasks finished", fullRepo)
return nil return nil