Skip to content

Check if renewalSet contract was marked !GFR

Marcin Jachymiak requested to merge 2020-03-investigate-renew-crit into master

MERGE REQUEST

Overview

This MR adds another GFR check in managedRenewContract. The contractor lock is held while the renew set is created but not in the time renewals are being performed. It's possible in the time in between a contract was marked !GFR even though it was in the renew set.

Example for Visual changes (ie Screenshot)

Issues Closed

Mar 06 04:11:25 F8CF88D siad[14105]: goroutine 79707911 [running]:
Mar 06 04:11:25 F8CF88D siad[14105]: runtime/debug.Stack(0x44aa27, 0x0, 0xc313346920)
Mar 06 04:11:25 F8CF88D siad[14105]:         runtime/debug/stack.go:24 +0x9d
Mar 06 04:11:25 F8CF88D siad[14105]: runtime/debug.PrintStack()
Mar 06 04:11:25 F8CF88D siad[14105]:         runtime/debug/stack.go:16 +0x22
Mar 06 04:11:25 F8CF88D siad[14105]: gitlab.com/NebulousLabs/Sia/build.Critical(0xc313347470, 0x1, 0x1)
Mar 06 04:11:25 F8CF88D siad[14105]:         gitlab.com/NebulousLabs/Sia@/build/critical.go:16 +0xaa
Mar 06 04:11:25 F8CF88D siad[14105]: gitlab.com/NebulousLabs/Sia/persist.(*Logger).Critical(0xc0168f5ac0, 0xc313347470, 0x1, 0x1)
Mar 06 04:11:25 F8CF88D siad[14105]:         gitlab.com/NebulousLabs/Sia@/persist/log.go:37 +0xcc
Mar 06 04:11:25 F8CF88D siad[14105]: gitlab.com/NebulousLabs/Sia/modules/renter/contractor.(*Contractor).managedRenew(0xc0002af180, 0xc00f529400, 0x9fcfc29ec74d8500, 0xc04db2eb40, 0x2, 0x6, 0x42121, 0x0, 0x0, 0x0, ...)
Mar 06 04:11:25 F8CF88D siad[14105]:         gitlab.com/NebulousLabs/Sia@/modules/renter/contractor/contractmaintenance.go:529 +0x160a
Mar 06 04:11:25 F8CF88D siad[14105]: gitlab.com/NebulousLabs/Sia/modules/renter/contractor.(*Contractor).managedRenewContract(0xc0002af180, 0xcec8e1a985c85e27, 0x9fcfc29ec74d85c0, 0x4be83a22a5221ef9, 0xb7baae1bd7087bd2, 0x0, 0xc04db2eb40, 0x2, 0x6, 0x3cf01, ...)
Mar 06 04:11:25 F8CF88D siad[14105]:         gitlab.com/NebulousLabs/Sia@/modules/renter/contractor/contractmaintenance.go:698 +0x5c9
Mar 06 04:11:25 F8CF88D siad[14105]: gitlab.com/NebulousLabs/Sia/modules/renter/contractor.(*Contractor).threadedContractMaintenance(0xc0002af180)
Mar 06 04:11:25 F8CF88D siad[14105]:         gitlab.com/NebulousLabs/Sia@/modules/renter/contractor/contractmaintenance.go:1104 +0x51b5
Mar 06 04:11:25 F8CF88D siad[14105]: created by gitlab.com/NebulousLabs/Sia/modules/renter/contractor.(*Contractor).ProcessConsensusChange
Mar 06 04:11:25 F8CF88D siad[14105]:         gitlab.com/NebulousLabs/Sia@/modules/renter/contractor/update.go:168 +0x59a
Mar 06 04:11:25 F8CF88D siad[14105]: Critical error: Renewing a contract that has been marked as !GoodForRenew true/false
Mar 06 04:11:25 F8CF88D siad[14105]: Please submit a bug report here: https://gitlab.com/NebulousLabs/Sia/issues
Mar 06 04:11:27 F8CF88D siad[14105]: goroutine 79707911 [running]:

Checklist

Review and complete the checklist to ensure that the MR is complete before assigned to an approver.

  • All new methods, or updating methods have clear docstrings
  • Testing added or updated for new methods
  • Any new packages are added to Makefile and .gitlab-ci.yml
  • API documentation updated for API updates
  • Module README.md updated for changes to work flow
  • Issue added to Sia-UI repo for new supporting features
  • Changelog updated
Edited by Marcin Jachymiak

Merge request reports