added timeout to utxo waiting
added more error handling
This commit is contained in:
parent
611dcbc3bc
commit
4f8bc81664
2 changed files with 26 additions and 3 deletions
25
setup.go
25
setup.go
|
@ -92,7 +92,10 @@ func (s *Sync) ensureEnoughUTXOs() error {
|
||||||
|
|
||||||
if !allUTXOsConfirmed(utxolist) {
|
if !allUTXOsConfirmed(utxolist) {
|
||||||
log.Println("Waiting for previous txns to confirm") // happens if you restarted the daemon soon after a previous publish run
|
log.Println("Waiting for previous txns to confirm") // happens if you restarted the daemon soon after a previous publish run
|
||||||
s.waitUntilUTXOsConfirmed()
|
err := s.waitUntilUTXOsConfirmed()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
target := 60
|
target := 60
|
||||||
|
@ -140,6 +143,7 @@ func (s *Sync) ensureEnoughUTXOs() error {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *Sync) waitUntilUTXOsConfirmed() error {
|
func (s *Sync) waitUntilUTXOsConfirmed() error {
|
||||||
|
origin := time.Now()
|
||||||
for {
|
for {
|
||||||
r, err := s.daemon.UTXOList()
|
r, err := s.daemon.UTXOList()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -151,7 +155,24 @@ func (s *Sync) waitUntilUTXOsConfirmed() error {
|
||||||
if allUTXOsConfirmed(r) {
|
if allUTXOsConfirmed(r) {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
if time.Now().After(origin.Add(10 * time.Minute)) {
|
||||||
|
//lbryum is messing with us or something. restart the daemon
|
||||||
|
err := stopDaemonViaSystemd()
|
||||||
|
if err != nil {
|
||||||
|
logShutdownError(err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
var waitTimeout time.Duration = 60 * 6
|
||||||
|
err = waitForDaemonProcess(waitTimeout)
|
||||||
|
if err != nil {
|
||||||
|
logShutdownError(err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
err = startDaemonViaSystemd()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
wait := 30 * time.Second
|
wait := 30 * time.Second
|
||||||
log.Println("Waiting " + wait.String() + "...")
|
log.Println("Waiting " + wait.String() + "...")
|
||||||
time.Sleep(wait)
|
time.Sleep(wait)
|
||||||
|
|
|
@ -267,7 +267,9 @@ func (s *Sync) startWorker(workerNum int) {
|
||||||
log.Println("waiting for a block and refilling addresses before retrying")
|
log.Println("waiting for a block and refilling addresses before retrying")
|
||||||
err = s.walletSetup()
|
err = s.walletSetup()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Println(err.Error())
|
s.stop.Stop()
|
||||||
|
util.SendToSlackError("Failed to setup the wallet for a refill: %v", err)
|
||||||
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
log.Println("Retrying")
|
log.Println("Retrying")
|
||||||
|
|
Loading…
Add table
Reference in a new issue