File tree Expand file tree Collapse file tree 2 files changed +25
-0
lines changed Expand file tree Collapse file tree 2 files changed +25
-0
lines changed Original file line number Diff line number Diff line change @@ -409,6 +409,8 @@ func (cm *controllerManager) Start(ctx context.Context) (err error) {
409409 cm .Unlock ()
410410 return errors .New ("manager already started" )
411411 }
412+ cm .started = true
413+
412414 var ready bool
413415 defer func () {
414416 // Only unlock the manager if we haven't reached
Original file line number Diff line number Diff line change @@ -1492,6 +1492,29 @@ var _ = Describe("manger.Manager", func() {
14921492 Expect (err ).NotTo (HaveOccurred ())
14931493 Expect (m .Add (& failRec {})).To (HaveOccurred ())
14941494 })
1495+
1496+ It ("should fail if attempted to start a second time" , func () {
1497+ m , err := New (cfg , Options {})
1498+ Expect (err ).NotTo (HaveOccurred ())
1499+
1500+ ctx , cancel := context .WithCancel (context .Background ())
1501+ defer cancel ()
1502+ go func () {
1503+ defer GinkgoRecover ()
1504+ Expect (m .Start (ctx )).NotTo (HaveOccurred ())
1505+ }()
1506+ // Wait for the Manager to start
1507+ Eventually (func () bool {
1508+ mgr , ok := m .(* controllerManager )
1509+ Expect (ok ).To (BeTrue ())
1510+ return mgr .runnables .Caches .Started ()
1511+ }).Should (BeTrue ())
1512+
1513+ err = m .Start (ctx )
1514+ Expect (err ).ToNot (BeNil ())
1515+ Expect (err .Error ()).To (Equal ("manager already started" ))
1516+
1517+ })
14951518 })
14961519 Describe ("SetFields" , func () {
14971520 It ("should inject field values" , func () {
You can’t perform that action at this time.
0 commit comments