DF-5704 / run.userland.log
=== A. wedge (same source as kernel) === == control: a1=["x"] vs a2=["y"] (types match, equals false by value) == [child] built a1/a2, calling prop_array_equals... [child] equals -> 0 [child] calling prop_array_add (wrlock on a1)... [child] add returned TRUE (no wedge) -> child exited 0: add() completed == buggy: a1=["x"] vs a2=[5] (type mismatch at depth 1) == [child] built a1/a2, calling prop_array_equals... [child] equals -> 0 [child] calling prop_array_add (wrlock on a1)... -> child STILL BLOCKED in prop_array_add after 5s: rdlock LEAKED (exit 42) DF-5704 wedge result: REPRODUCED (control unwedged, buggy wedged) wedge exit=1 === B. extern-elem leak === == leak: 17-deep chains, type mismatch at leaf == (each prop_array_equals() abandons exactly one malloc'd _prop_stack_extern_elem) [start] after 0 equals(): ru_maxrss = 0 kB [leak] after 100000 equals(): ru_maxrss = 5128 kB [leak] after 200000 equals(): ru_maxrss = 10428 kB [leak] after 300000 equals(): ru_maxrss = 14868 kB [leak] after 400000 equals(): ru_maxrss = 19352 kB -> if ru_maxrss climbed ~ 18750 kB, the extern elements leaked leak exit=0