Title | amcsshe test failure |
Status | closed |
Priority | essential |
Assigned user | Gareth Rees |
Organization | Ravenbrook |
Description | The amcsshe test case fails in the COOL variety. Here's it failing on Ubuntu (lii6gc): $ code/lii6gc/cool/amcsshe 1254243790 [...] Collection 35, 231455 objects. .... MPS_RESERVE_BLOCK: 7 It also fails on OS X (xci6ll), but at a different point in the test case: $ code/xc/Debug/amcsshe 1254243790 [...] Collection 27, 178524 objects. ..... MPS_RESERVE_BLOCK: 7 |
Analysis | Result code 7 is MPS_RES_COMMIT_LIMIT. The amcsshe test case messes about with the commit limit by calling mps_arena_commit_limit_set in various places, so this is an error in the test case, not in the MPS. The code calls mps_arena_commit_limit_set() using values that "have been tuned in the hope of getting one dynamic collection" (according to a comment). The idea seems to be that it tries to get one "dynamic collection", and then when it believes that this collection has taken place (by looking at the mps_message_type_gc messages) it bumps the commit limit upwards so as not to get any more dynamic collections. This obviously can't be made reliable because (i) the MPS does not guarantee anything about the timeliness of these messages; (ii) you can't discover why a collection started by looking at the statistic in a mps_message_type_gc message; (iii) the fine tuning of the numbers in the test case is bound to decay as the MPS is modified and itself tuned for performance. So I've simply removed this feature of the test case by commenting out all calls to mps_arena_commit_limit_set. |
How found | automated_test |
Evidence | None |
Observed in | 1.110.0 |
Created by | Gareth Rees |
Created on | 2013-03-07 12:45:30 |
Last modified by | Gareth Rees |
Last modified on | 2013-03-07 17:08:07 |
History | 2013-03-07 GDR Created. |
Change | Effect | Date | User | Description |
---|---|---|---|---|
181081 | closed | 2013-03-07 17:08:07 | Gareth Rees | Comment out all calls to mps_arena_commit_limit_set in test case amcsshe. (This test case formerly set the commit limit "in the hope of getting one dynamic collection", but this was unreliable: see job003432 for details.) |