[SERVER-5175] Need "failpoints" system to facilitate testing core server. Created: 02/Mar/12 Updated: 11/Jul/16 Resolved: 09/Oct/12 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Testing Infrastructure |
| Affects Version/s: | None |
| Fix Version/s: | 2.3.0 |
| Type: | New Feature | Priority: | Major - P3 |
| Reporter: | Andy Schwerin | Assignee: | Randolph Tan |
| Resolution: | Done | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||||||||||||||||||||||||||||||
| Backwards Compatibility: | Fully Compatible | ||||||||||||||||||||||||||||||||||||
| Participants: | |||||||||||||||||||||||||||||||||||||
| Description |
|
A failpoints system would allow us to write tests involving rare occurrences in the core server. The idea comes from the BSD kernel, where failpoints set by sysctl are used to test unusual control paths in kernel components. It is also effective for testing race conditions, especially if you can enable/disable the failpoints in an online fashion. |
| Comments |
| Comment by auto [ 09/Oct/12 ] |
|
Author: {u'date': u'2012-10-09T09:59:01-07:00', u'email': u'tad@10gen.com', u'name': u'Tad Marshall'}Message: |
| Comment by auto [ 09/Oct/12 ] |
|
Author: {u'date': u'2012-10-08T13:54:20-07:00', u'email': u'randolph@10gen.com', u'name': u'Randolph Tan'}Message: Step2: Implement infrastructure for accessing fail points externally |
| Comment by auto [ 04/Oct/12 ] |
|
Author: {u'date': u'2012-10-04T16:19:04-07:00', u'email': u'randolph@10gen.com', u'name': u'Randolph Tan'}Message: |
| Comment by auto [ 04/Oct/12 ] |
|
Author: {u'date': u'2012-09-19T13:32:42-07:00', u'email': u'randolph@10gen.com', u'name': u'Randolph Tan'}Message: Step 1: Implement and test the FailPoint class |
| Comment by Andy Schwerin [ 12/Apr/12 ] |
|
Yeah. The trick is that I want to be able to put this in places that are typically code hot spots, and leave it in in release builds. The only thing you need in order to get that is to get the string comparison out of the activation check at runtime. Not rocket science, certainly. |
| Comment by Chris Westin [ 12/Apr/12 ] |
|
I've done this before using the same mechanism as the one I proposed in |