fixed nspawn failing to upgrade chroot due to mirror timeout
This commit is contained in:
14
main.go
14
main.go
@@ -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"))
|
||||||
|
9
utils.go
9
utils.go
@@ -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) {
|
||||||
|
Reference in New Issue
Block a user