fixed nspawn failing to upgrade chroot due to mirror timeout

This commit is contained in:
2021-11-02 08:43:50 +01:00
parent aca9487b49
commit 93af6fe03d
2 changed files with 16 additions and 7 deletions

14
main.go
View File

@@ -492,8 +492,13 @@ func (b *BuildManager) syncWorker() {
// fetch updates between sync runs // fetch updates between sync runs
b.alpmMutex.Lock() b.alpmMutex.Lock()
check(alpmHandle.Release()) check(alpmHandle.Release())
setupChroot() err := setupChroot()
var err error for err != nil {
log.Warningf("Unable to upgrade chroot, trying again later.")
time.Sleep(time.Minute)
err = setupChroot()
}
alpmHandle, err = initALPM(filepath.Join(conf.Basedir.Chroot, pristineChroot), filepath.Join(conf.Basedir.Chroot, pristineChroot, "/var/lib/pacman")) alpmHandle, err = initALPM(filepath.Join(conf.Basedir.Chroot, pristineChroot), filepath.Join(conf.Basedir.Chroot, pristineChroot, "/var/lib/pacman"))
check(err) check(err)
b.alpmMutex.Unlock() b.alpmMutex.Unlock()
@@ -614,7 +619,10 @@ func main() {
exit: false, exit: false,
} }
setupChroot() err = setupChroot()
if err != nil {
log.Fatalf("Unable to setup chroot: %v", err)
}
syncMarchs() syncMarchs()
alpmHandle, err = initALPM(filepath.Join(conf.Basedir.Chroot, pristineChroot), filepath.Join(conf.Basedir.Chroot, pristineChroot, "/var/lib/pacman")) alpmHandle, err = initALPM(filepath.Join(conf.Basedir.Chroot, pristineChroot), filepath.Join(conf.Basedir.Chroot, pristineChroot, "/var/lib/pacman"))

View File

@@ -423,14 +423,14 @@ func genSRCINFO(pkgbuild string) (*srcinfo.Srcinfo, error) {
return info, nil return info, nil
} }
func setupChroot() { func setupChroot() error {
if _, err := os.Stat(filepath.Join(conf.Basedir.Chroot, pristineChroot)); err == nil { if _, err := os.Stat(filepath.Join(conf.Basedir.Chroot, pristineChroot)); err == nil {
//goland:noinspection SpellCheckingInspection //goland:noinspection SpellCheckingInspection
cmd := exec.Command("arch-nspawn", filepath.Join(conf.Basedir.Chroot, pristineChroot), "pacman", "-Syuu", "--noconfirm") cmd := exec.Command("arch-nspawn", filepath.Join(conf.Basedir.Chroot, pristineChroot), "pacman", "-Syuu", "--noconfirm")
res, err := cmd.CombinedOutput() res, err := cmd.CombinedOutput()
log.Debug(string(res)) log.Debug(string(res))
if err != nil { if err != nil {
log.Fatalf("[NSPAWN] Unable to update chroot: %v\n%s", err, string(res)) return fmt.Errorf("Unable to update chroot: %v\n%s", err, string(res))
} }
} else if os.IsNotExist(err) { } else if os.IsNotExist(err) {
err := os.MkdirAll(conf.Basedir.Chroot, os.ModePerm) err := os.MkdirAll(conf.Basedir.Chroot, os.ModePerm)
@@ -440,11 +440,12 @@ func setupChroot() {
res, err := cmd.CombinedOutput() res, err := cmd.CombinedOutput()
log.Debug(string(res)) log.Debug(string(res))
if err != nil { if err != nil {
log.Fatalf("[MKCHROOT] Unable to create chroot: %v\n%s", err, string(res)) return fmt.Errorf("Unable to create chroot: %v\n%s", err, string(res))
} }
} else { } else {
check(err) return err
} }
return nil
} }
func getDBPkgFromPkgfile(pkg string) (*ent.DbPackage, error) { func getDBPkgFromPkgfile(pkg string) (*ent.DbPackage, error) {