To prevent sticky errors on server rebuilds.
Fixes #7043
Closes #9194
// Reset resets the current and all its dependencies.
func (ini *Init) Reset() {
mu := ini.init.ResetWithLock()
+ ini.err = nil
defer mu.Unlock()
for _, d := range ini.children {
d.Reset()
c.Assert(state.V2, qt.Equals, "ABAB")
}
+
+// See issue 7043
+func TestResetError(t *testing.T) {
+ c := qt.New(t)
+ r := false
+ i := New().Add(func() (interface{}, error) {
+ if r {
+ return nil, nil
+ }
+ return nil, errors.New("r is false")
+ })
+ _, err := i.Do()
+ c.Assert(err, qt.IsNotNil)
+ i.Reset()
+ r = true
+ _, err = i.Do()
+ c.Assert(err, qt.IsNil)
+
+}