-
Type: Improvement
-
Resolution: Unresolved
-
Priority: Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
Query Integration
As part of our plan for monitoring and investigating the sporadic heap corruptions in SpiderMonkey (https://jira.mongodb.org/browse/SERVER-89758 ) , we would like to perform more rigorous garbage collection stress testing.
Currently, we are only able to provide a JS_GC_ZEAL setting statically in the .yml definition of the variant (see here ). Instead, we would like to be able to try different settings of JS_GC_ZEAL every time it is run in the CI pipeline. To do this, we will need to add new configuration fuzzer tasks that will provide a different value for MOZJS_JS_GC_ZEAL. In this PR , we introduced the variable "mozjs_js_gc_zeal" to provide the JS_GC_ZEAL value directly to spawned mongod/mongos processes .
We should be able to modify mongo_fuzzer_configs.fuzz_mongod_set_parameters (see here ) so that it returns an additional configuration value for MOZJS_JS_GC_ZEAL. We should return a value for JS_GC_ZEAL from a list of pre-selected values that don't cause timeouts for the variant.
For each of the existing tasks in the spider-monkey-dbg build variant, we should try to find an existing fuzzer task such as this one for jsCore and add it to the spider-monkey-dbg variant. If no such task exists, we should create our own using the aforementioned as an example. We will keep both the fuzzer tasks and non-fuzzer tasks running as part of build variant.
Currently, the tasks we have scheduled for the spider-monkey-dbg variant are:
- name: aggregation - name: aggregation_mongos_passthrough - name: auth_gen - name: concurrency_simultaneous_gen - name: jsCore - name: noPassthrough_gen - name: sharding_gen
We should add the config fuzzer version of these tasks as part of this ticket.
Some recommended settings for JS_GC_ZEAL:
- JS_GC_ZEAL='10' - JS_GC_ZEAL='1;2;15,100' - JS_GC_ZEAL='7;15,75' - JS_GC_ZEAL='1;15,100' - JS_GC_ZEAL='6' // needs to be tested for timeouts -JS_GC_ZEAL='13' // needs to be tested for timeouts -JS_GC_ZEAL='14' // needs to be tested for timeouts
The priority for this ticket is not urgent, but it aligns with Query's efforts this quarter for testing improvements.