This issue was mainly caused by the excessively high number of GC retry
attempts seen (and fixed) in 7147724. Each time we retry the GC we
allocate a handle to hold the pending list lock and there is no
HandleMark around the code that retries the GC. As a result of the
combination of these two factors, we ran out of C heap and couldn't
allocate a new HandleArea. The fixes for 7147724 address the excessive
retry attempts - but we can still retry the GC if the prologue
operations are not successful and we still don't free the handles
allocated in the prologues of the attempted GC operations. The changes
for this CR address this last issue.
Many thanks to Mikael Gerdin for his initial diagnosis of the issue.
The failing test cases (with the changes for 7147724 removed and
instrumentation in the HandleMark class); GC test suite with