We were forgetting to remove the remembered set in transition to
background. This resulted in remembered sets being added for
spaces which no longer existed. This finally caused an error when
a new space happened to have the same address as the old space,
resulting in a CHECK failure.
Also tuned the number of ParallelGC to prevent spurrious failures
and removed the ParallelGC from broken tests in the make file.
Bug:
16532086
Bug:
16406852
Change-Id: I00bbcbd7daa03c867732d165be62b72e6c43bce1
// Remove the main space so that we don't try to trim it, this doens't work for debug
// builds since RosAlloc attempts to read the magic number from a protected page.
RemoveSpace(main_space_);
+ RemoveRememberedSet(main_space_);
+ RemoveRememberedSet(main_space_backup_.get());
+ main_space_backup_.reset(nullptr);
+ main_space_ = nullptr;
temp_space_ = space::BumpPointerSpace::CreateFromMemMap("Bump pointer space 2",
mem_map.release());
AddSpace(temp_space_);
public void run() {
List l = new ArrayList();
- for (int i = 0; i < 500; i++) {
+ for (int i = 0; i < 400; i++) {
l.add(new ArrayList(i));
}
}
# Tests that need more than 2MB of RAM or are running into other corner cases in GC stress related
# to OOMEs.
-TEST_ART_BROKEN_GCSTRESS_RUN_TESTS := \
- 114-ParallelGC
+TEST_ART_BROKEN_GCSTRESS_RUN_TESTS :=
ART_TEST_KNOWN_BROKEN += $(foreach test, $(TEST_ART_BROKEN_GCSTRESS_RUN_TESTS), $(call all-run-test-names,$(test),-gcstress,-relocate))
ART_TEST_KNOWN_BROKEN += $(foreach test, $(TEST_ART_BROKEN_GCSTRESS_RUN_TESTS), $(call all-run-test-names,$(test),-gcstress,-no-prebuild))