Repository navigation
Commit 3ed7da2
committed
Fix CI failures across Ruby versions and platforms
Three separate failures:
Ruby 2.6 and earlier have no rb_gc_mark_movable, rb_gc_location, or
dcompact field, so closure.c did not compile. Detect rb_gc_mark_movable
in extconf. Without it there is no compaction either, so plain marking
holds the reference in place and the compact callback can be omitted.
Ruby 3.1 and earlier spell GC.verify_compaction_references's
expand_heap: keyword as double_heap:, so the new test raised
ArgumentError there. Rescue and retry with the old spelling, and treat
a Ruby without compaction support as nothing to provoke.
expand_heap: doubles the heap, and the pages stay. That changes how
often the collector runs for the rest of the suite, and
test_no_memory_leak read the extra growth inside its measured block as
a leak on Linux. Run the compaction scenario in a separate process, so
the expansion dies with it. The subprocess still reports the fault: the
child dies with SIGSEGV when closure.c stores the closure address
without the mark and compact callbacks.1 parent f695b26 commit 3ed7da2
3 files changed
Lines changed: 49 additions & 15 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
55 | 55 | | |
56 | 56 | | |
57 | 57 | | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
58 | 64 | | |
59 | 65 | | |
60 | 66 | | |
| |||
68 | 74 | | |
69 | 75 | | |
70 | 76 | | |
| 77 | + | |
71 | 78 | | |
72 | 79 | | |
73 | 80 | | |
| |||
76 | 83 | | |
77 | 84 | | |
78 | 85 | | |
| 86 | + | |
79 | 87 | | |
80 | 88 | | |
81 | 89 | | |
82 | 90 | | |
83 | 91 | | |
84 | 92 | | |
85 | 93 | | |
86 | | - | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
87 | 97 | | |
88 | 98 | | |
89 | 99 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
241 | 241 | | |
242 | 242 | | |
243 | 243 | | |
| 244 | + | |
244 | 245 | | |
245 | 246 | | |
246 | 247 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
177 | 177 | | |
178 | 178 | | |
179 | 179 | | |
| 180 | + | |
180 | 181 | | |
181 | | - | |
182 | | - | |
183 | | - | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
184 | 192 | | |
185 | | - | |
186 | 193 | | |
187 | | - | |
188 | | - | |
189 | | - | |
190 | | - | |
191 | | - | |
192 | | - | |
193 | | - | |
194 | | - | |
195 | | - | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
196 | 214 | | |
197 | | - | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
198 | 221 | | |
199 | 222 | | |
200 | 223 | | |
| |||
0 commit comments