Fw: [Bug 1088779] [NEW] worker/firewaller: DATA RACE TestMultipleUnits

William Reade william.reade at canonical.com
Tue Dec 11 08:57:41 UTC 2012


On Tue, 2012-12-11 at 17:06 +1100, David Cheney wrote:
> Frank: this bug report may be relevant to your firewaller investigations  

From my reading of this, it looks like we can fix it just by moving the
ServiceName() call up above the newUnitData call.

But it *may* be irrelevant now anyway, what with the various changes in
progress... nonetheless, something to watch for in reviews ;). Thanks.


> 
> 
> Forwarded message:
> 
> > From: Dave Cheney <1088779 at bugs.launchpad.net>
> > To: david.cheney at canonical.com
> > Date: Tuesday, 11 December 2012 4:59:06 PM
> > Subject: [Bug 1088779] [NEW] worker/firewaller: DATA RACE TestMultipleUnits
> >  
> > Public bug reported:
> >  
> > ==================
> > WARNING: DATA RACE
> > Write by goroutine 21:
> > reflect.memmove()
> > /home/dfc/go/src/pkg/reflect/value.go:47 +0x160
> > reflect.Value.Set()
> > /home/dfc/go/src/pkg/reflect/value.go:1305 +0x116
> > labix.org/v2/mgo/bson.(*decoder).readDocTo( (http://labix.org/v2/mgo/bson.(*decoder).readDocTo())
> > /home/dfc/src/labix.org/v2/mgo/bson/decode.go:186 (http://labix.org/v2/mgo/bson/decode.go:186) +0x169f
> > labix.org/v2/mgo/bson.Unmarshal( (http://labix.org/v2/mgo/bson.Unmarshal())
> > /home/dfc/src/labix.org/v2/mgo/bson/bson.go:451 (http://labix.org/v2/mgo/bson/bson.go:451) +0x209
> > labix.org/v2/mgo.(*Query).One( (http://labix.org/v2/mgo.(*Query).One())
> > /home/dfc/src/labix.org/v2/mgo/session.go:1953 (http://labix.org/v2/mgo/session.go:1953) +0x443
> > launchpad.net/juju-core/state.(*Unit).Refresh( (http://launchpad.net/juju-core/state.(*Unit).Refresh())
> > /home/dfc/src/launchpad.net/juju-core/state/unit.go:219 (http://launchpad.net/juju-core/state/unit.go:219) +0xe9
> > launchpad.net/juju-core/worker/firewaller.(*unitData).watchLoop( (http://launchpad.net/juju-core/worker/firewaller.(*unitData).watchLoop())
> > /home/dfc/src/launchpad.net/juju-core/worker/firewaller/firewaller.go:552 (http://launchpad.net/juju-core/worker/firewaller/firewaller.go:552) +0x2bf
> >  
> > Previous read by goroutine 94:
> > launchpad.net/juju-core/worker/firewaller.(*Firewaller).unitsChanged( (http://launchpad.net/juju-core/worker/firewaller.(*Firewaller).unitsChanged())
> > /home/dfc/src/launchpad.net/juju-core/worker/firewaller/firewaller.go:138 (http://launchpad.net/juju-core/worker/firewaller/firewaller.go:138) +0x9ae
> > launchpad.net/juju-core/worker/firewaller.(*Firewaller).loop( (http://launchpad.net/juju-core/worker/firewaller.(*Firewaller).loop())
> > /home/dfc/src/launchpad.net/juju-core/worker/firewaller/firewaller.go:85 (http://launchpad.net/juju-core/worker/firewaller/firewaller.go:85) +0x7af
> > launchpad.net/juju-core/worker/firewaller.func (http://launchpad.net/juju-core/worker/firewaller.func)·001()
> > /home/dfc/src/launchpad.net/juju-core/worker/firewaller/firewaller.go:48 (http://launchpad.net/juju-core/worker/firewaller/firewaller.go:48) +0x70
> >  
> > Goroutine 21 (running) created at:
> > launchpad.net/juju-core/worker/firewaller.newUnitData( (http://launchpad.net/juju-core/worker/firewaller.newUnitData())
> > /home/dfc/src/launchpad.net/juju-core/worker/firewaller/firewaller.go:533 (http://launchpad.net/juju-core/worker/firewaller/firewaller.go:533) +0x19f
> > launchpad.net/juju-core/worker/firewaller.(*Firewaller).unitsChanged( (http://launchpad.net/juju-core/worker/firewaller.(*Firewaller).unitsChanged())
> > /home/dfc/src/launchpad.net/juju-core/worker/firewaller/firewaller.go:134 (http://launchpad.net/juju-core/worker/firewaller/firewaller.go:134) +0x82c
> > launchpad.net/juju-core/worker/firewaller.(*Firewaller).loop( (http://launchpad.net/juju-core/worker/firewaller.(*Firewaller).loop())
> > /home/dfc/src/launchpad.net/juju-core/worker/firewaller/firewaller.go:85 (http://launchpad.net/juju-core/worker/firewaller/firewaller.go:85) +0x7af
> > launchpad.net/juju-core/worker/firewaller.func (http://launchpad.net/juju-core/worker/firewaller.func)·001()
> > /home/dfc/src/launchpad.net/juju-core/worker/firewaller/firewaller.go:48 (http://launchpad.net/juju-core/worker/firewaller/firewaller.go:48) +0x70
> >  
> > Goroutine 94 (running) created at:
> > launchpad.net/juju-core/worker/firewaller.NewFirewaller( (http://launchpad.net/juju-core/worker/firewaller.NewFirewaller())
> > /home/dfc/src/launchpad.net/juju-core/worker/firewaller/firewaller.go:49 (http://launchpad.net/juju-core/worker/firewaller/firewaller.go:49) +0x39b
> > launchpad.net/juju-core/worker/firewaller_test.(*FirewallerSuite).TestMultipleUnits( (http://launchpad.net/juju-core/worker/firewaller_test.(*FirewallerSuite).TestMultipleUnits())
> > /home/dfc/src/launchpad.net/juju-core/worker/firewaller/firewaller_test.go:248 (http://launchpad.net/juju-core/worker/firewaller/firewaller_test.go:248) +0x5d
> > reflect.Value.call()
> > /home/dfc/go/src/pkg/reflect/value.go:540 +0x1971
> > reflect.Value.Call()
> > /home/dfc/go/src/pkg/reflect/value.go:353 +0xc8
> > launchpad.net/gocheck.func (http://launchpad.net/gocheck.func)·006()
> > /home/dfc/src/launchpad.net/gocheck/gocheck.go:734 (http://launchpad.net/gocheck/gocheck.go:734) +0x4a4
> > launchpad.net/gocheck.func (http://launchpad.net/gocheck.func)·004()
> > /home/dfc/src/launchpad.net/gocheck/gocheck.go:633 (http://launchpad.net/gocheck/gocheck.go:633) +0xd8
> >  
> > ==================
> > OK: 17 passed, 1 skipped
> > PASS
> > Found 1 data race(s)
> > FAIL launchpad.net/juju-core/worker/firewaller (http://launchpad.net/juju-core/worker/firewaller) 115.520s
> >  
> > ** Affects: juju-core
> > Importance: Critical
> > Status: Confirmed
> >  
> > --  
> > You received this bug notification because you are subscribed to the bug
> > report.
> > https://bugs.launchpad.net/bugs/1088779
> >  
> > Title:
> > worker/firewaller: DATA RACE TestMultipleUnits
> >  
> > Status in juju-core:
> > Confirmed
> >  
> > Bug description:
> > ==================
> > WARNING: DATA RACE
> > Write by goroutine 21:
> > reflect.memmove()
> > /home/dfc/go/src/pkg/reflect/value.go:47 +0x160
> > reflect.Value.Set()
> > /home/dfc/go/src/pkg/reflect/value.go:1305 +0x116
> > labix.org/v2/mgo/bson.(*decoder).readDocTo( (http://labix.org/v2/mgo/bson.(*decoder).readDocTo())
> > /home/dfc/src/labix.org/v2/mgo/bson/decode.go:186 (http://labix.org/v2/mgo/bson/decode.go:186) +0x169f
> > labix.org/v2/mgo/bson.Unmarshal( (http://labix.org/v2/mgo/bson.Unmarshal())
> > /home/dfc/src/labix.org/v2/mgo/bson/bson.go:451 (http://labix.org/v2/mgo/bson/bson.go:451) +0x209
> > labix.org/v2/mgo.(*Query).One( (http://labix.org/v2/mgo.(*Query).One())
> > /home/dfc/src/labix.org/v2/mgo/session.go:1953 (http://labix.org/v2/mgo/session.go:1953) +0x443
> > launchpad.net/juju-core/state.(*Unit).Refresh( (http://launchpad.net/juju-core/state.(*Unit).Refresh())
> > /home/dfc/src/launchpad.net/juju-core/state/unit.go:219 (http://launchpad.net/juju-core/state/unit.go:219) +0xe9
> > launchpad.net/juju-core/worker/firewaller.(*unitData).watchLoop( (http://launchpad.net/juju-core/worker/firewaller.(*unitData).watchLoop())
> > /home/dfc/src/launchpad.net/juju-core/worker/firewaller/firewaller.go:552 (http://launchpad.net/juju-core/worker/firewaller/firewaller.go:552) +0x2bf
> >  
> > Previous read by goroutine 94:
> > launchpad.net/juju-core/worker/firewaller.(*Firewaller).unitsChanged( (http://launchpad.net/juju-core/worker/firewaller.(*Firewaller).unitsChanged())
> > /home/dfc/src/launchpad.net/juju-core/worker/firewaller/firewaller.go:138 (http://launchpad.net/juju-core/worker/firewaller/firewaller.go:138) +0x9ae
> > launchpad.net/juju-core/worker/firewaller.(*Firewaller).loop( (http://launchpad.net/juju-core/worker/firewaller.(*Firewaller).loop())
> > /home/dfc/src/launchpad.net/juju-core/worker/firewaller/firewaller.go:85 (http://launchpad.net/juju-core/worker/firewaller/firewaller.go:85) +0x7af
> > launchpad.net/juju-core/worker/firewaller.func (http://launchpad.net/juju-core/worker/firewaller.func)·001()
> > /home/dfc/src/launchpad.net/juju-core/worker/firewaller/firewaller.go:48 (http://launchpad.net/juju-core/worker/firewaller/firewaller.go:48) +0x70
> >  
> > Goroutine 21 (running) created at:
> > launchpad.net/juju-core/worker/firewaller.newUnitData( (http://launchpad.net/juju-core/worker/firewaller.newUnitData())
> > /home/dfc/src/launchpad.net/juju-core/worker/firewaller/firewaller.go:533 (http://launchpad.net/juju-core/worker/firewaller/firewaller.go:533) +0x19f
> > launchpad.net/juju-core/worker/firewaller.(*Firewaller).unitsChanged( (http://launchpad.net/juju-core/worker/firewaller.(*Firewaller).unitsChanged())
> > /home/dfc/src/launchpad.net/juju-core/worker/firewaller/firewaller.go:134 (http://launchpad.net/juju-core/worker/firewaller/firewaller.go:134) +0x82c
> > launchpad.net/juju-core/worker/firewaller.(*Firewaller).loop( (http://launchpad.net/juju-core/worker/firewaller.(*Firewaller).loop())
> > /home/dfc/src/launchpad.net/juju-core/worker/firewaller/firewaller.go:85 (http://launchpad.net/juju-core/worker/firewaller/firewaller.go:85) +0x7af
> > launchpad.net/juju-core/worker/firewaller.func (http://launchpad.net/juju-core/worker/firewaller.func)·001()
> > /home/dfc/src/launchpad.net/juju-core/worker/firewaller/firewaller.go:48 (http://launchpad.net/juju-core/worker/firewaller/firewaller.go:48) +0x70
> >  
> > Goroutine 94 (running) created at:
> > launchpad.net/juju-core/worker/firewaller.NewFirewaller( (http://launchpad.net/juju-core/worker/firewaller.NewFirewaller())
> > /home/dfc/src/launchpad.net/juju-core/worker/firewaller/firewaller.go:49 (http://launchpad.net/juju-core/worker/firewaller/firewaller.go:49) +0x39b
> > launchpad.net/juju-core/worker/firewaller_test.(*FirewallerSuite).TestMultipleUnits( (http://launchpad.net/juju-core/worker/firewaller_test.(*FirewallerSuite).TestMultipleUnits())
> > /home/dfc/src/launchpad.net/juju-core/worker/firewaller/firewaller_test.go:248 (http://launchpad.net/juju-core/worker/firewaller/firewaller_test.go:248) +0x5d
> > reflect.Value.call()
> > /home/dfc/go/src/pkg/reflect/value.go:540 +0x1971
> > reflect.Value.Call()
> > /home/dfc/go/src/pkg/reflect/value.go:353 +0xc8
> > launchpad.net/gocheck.func (http://launchpad.net/gocheck.func)·006()
> > /home/dfc/src/launchpad.net/gocheck/gocheck.go:734 (http://launchpad.net/gocheck/gocheck.go:734) +0x4a4
> > launchpad.net/gocheck.func (http://launchpad.net/gocheck.func)·004()
> > /home/dfc/src/launchpad.net/gocheck/gocheck.go:633 (http://launchpad.net/gocheck/gocheck.go:633) +0xd8
> >  
> > ==================
> > OK: 17 passed, 1 skipped
> > PASS
> > Found 1 data race(s)
> > FAIL launchpad.net/juju-core/worker/firewaller (http://launchpad.net/juju-core/worker/firewaller) 115.520s
> >  
> > To manage notifications about this bug go to:
> > https://bugs.launchpad.net/juju-core/+bug/1088779/+subscriptions
> >  
> 
> 
> 
> 






More information about the Juju-dev mailing list