v8/test/cctest/heap
Daniel Bevenius 7173685975 [heap] Add large_object_threshold to AllocateRaw
This commit adds a check in Heap::AllocateRaw when setting the
large_object variable, when the AllocationType is of type kCode, to
take into account the size of the CodeSpace's area size.

The motivation for this change is that without this check it is
possible that size_in_bytes is less than 128, and hence not considered
a large object, but it might be larger than the available space
in code_space->AreaSize(), which will cause the object to be created
in the CodeLargeObjectSpace. This will later cause a segmentation fault
when calling the following chain of functions:

   if (!large_object) {
      MemoryChunk::FromHeapObject(heap_object)
          ->GetCodeObjectRegistry()
          ->RegisterNewlyAllocatedCodeObject(heap_object.address());
   }

We (Red Hat) ran into this issue when running Node.js v12.16.1 in
combination with yarn on aarch64 (this was the only architecture that
this happed on).

Bug: v8:10808

Change-Id: I0c396b0eb64bc4cc91d9a3be521254f3130eac7b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2390665
Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#69876}
2020-09-14 12:12:40 +00:00
..
heap-tester.h [heap] Add large_object_threshold to AllocateRaw 2020-09-14 12:12:40 +00:00
heap-utils.cc [cctest][heap] Do not rely on page limit for full space simulation. 2020-09-10 12:46:50 +00:00
heap-utils.h Reland "[heap] Add concurrent typed slot recording" 2020-09-03 11:16:44 +00:00
test-alloc.cc Disable --stress-concurrent-allocation for tests that change free lists 2020-09-03 11:15:39 +00:00
test-array-buffer-tracker.cc [heap] Remove ArrayBufferTracker 2020-08-12 09:00:07 +00:00
test-compaction.cc [ptr-compr][ppc] Implement pointer compression 2020-05-06 19:06:32 +00:00
test-concurrent-allocation.cc Reland "[heap] Add concurrent typed slot recording" 2020-09-03 11:16:44 +00:00
test-concurrent-marking.cc [heap] Split marking worklist into global worklist and local worklists 2020-08-11 13:15:54 +00:00
test-embedder-tracing.cc Reland "[heap] Add concurrent typed slot recording" 2020-09-03 11:16:44 +00:00
test-external-string-tracker.cc Reland^2 "[heap] Move start of incremental marking in allocation" 2020-07-14 12:07:34 +00:00
test-heap.cc [heap] Add large_object_threshold to AllocateRaw 2020-09-14 12:12:40 +00:00
test-incremental-marking.cc Disable --stress-concurrent-allocation for tests that change free lists 2020-09-03 11:15:39 +00:00
test-invalidated-slots.cc Disable --stress-concurrent-allocation for tests that change free lists 2020-09-03 11:15:39 +00:00
test-iterators.cc Reland "[heap] Make ReadOnlySpace use bump pointer allocation" 2020-06-18 11:48:38 +00:00
test-lab.cc [torque] Use generated instance types, part 1 2019-10-28 18:30:31 +00:00
test-mark-compact.cc Disable --stress-concurrent-allocation for tests that change free lists 2020-09-03 11:15:39 +00:00
test-memory-measurement.cc [test] Fix UAF in cctest/test-memory-measurement/RandomizedTimeout 2020-07-10 08:52:00 +00:00
test-page-promotion.cc [heap] Remove ArrayBufferTracker 2020-08-12 09:00:07 +00:00
test-spaces.cc Disable --stress-concurrent-allocation for tests that change free lists 2020-09-03 11:15:39 +00:00
test-unmapper.cc Disable --stress-concurrent-allocation for tests that change free lists 2020-09-03 11:15:39 +00:00
test-weak-references.cc [nci] Replace CompilationTarget with a new Code::Kind value 2020-08-05 12:27:22 +00:00
test-write-barrier.cc [heap] Consolidate marking write barrier logic in MarkingBarrier 2020-07-07 10:34:37 +00:00