Debugging Races
Pages 44
- Home
- API best practices
- Azure provider design implementation notes
- Blocking bugs
- Bootstrap Internals (WIP)
- Boring Techniques
- Bug fixes and patching
- CI Tests
- Code Review Checklists
- Containers
- Creating New Repos
- Debugging Juju
- Debugging Juju Misc Topics Pointers
- Debugging Races
- Diagnosing MongoDB Performance
- Faster LXD
- Feature Documentation
- Getting Mongo dump
- Guidelines for writing workers
- Hacking upload tools
- howto: implement effective config structs
- Implementing environment providers
- Incomplete Transactions and MgoPurge
- Interactive Commands
- Intermittent failures
- Juju Logging
- Juju Scripts
- Juju Storage (WIP)
- Juju User Documentation
- KVM instance creation
- Login into MongoDB
- Managing complexity
- mgo txn example
- MgoPurgeTool
- Misc Topics
- Mongo Issues
- MongoDB and Consistency
- pprof facility
- Reviewboard Tips and Tricks
- Stop Start Machine Agent
- Stress Test
- Triaging Bugs
- Update Launchpad Dependency
- Writing Unit Tests
- Show 29 more pages…
Navigation
Testing
Releases
Documentation
Development
- READ BEFORE CODING
- Blocking bugs process
- Bug fixes and patching
- Contributing
- Code Review Checklists
- Creating New Repos
-
MongoDB and Consistency
- [mgo/txn Example] (https://github.com/juju/juju/wiki/mgo-txn-example)
- Scripts
- Update Launchpad Dependency
- Writing workers
- Reviewboard Tips
Debugging and QA
- Debugging Juju
- [Faster LXD] (https://github.com/juju/juju/wiki/Faster-LXD)
Clone this wiki locally
Triggering races
Someone pointed me to the stress test script on this wiki. While it was immeasurably helpful, I have found a few more things that help me reproduce and instrument races. The previous link also includes an updated script which adds a counter and timing to the output. I find it useful to know how long it took to trigger a race, or how long it was stressed without triggering.
I also install stress to create contention on cpus, ram, io, etc.
E.g. stress --cpu 8 --io 4 --vm 2 -d 2 --timeout 60m. I imagine this would be nice to randomize in the script(s) linked in the first paragraph.
AWS
I find that running on a small or medium instance on AWS helps to trigger races more quickly than my local hardware. Particularly useful are instances that shares CPU time -- t.n instances currently. If you locally build the test to stress you may still need to rsync over the build environment as some tests look for files in the build tree. You'll also need to install mongo.
TODO: more details on stressing on AWS.
- sudo apt-get install juju-mongodb