[Bug 217138] head (e.g.) -r313999 for arm64: sh vs. jemalloc asserts: include/jemalloc/internal/tsd.h:687: Failed assertion: "tsd_booted" once swapped in after being swapped out (comment 10)

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Tue Mar 14 08:23:27 UTC 2017


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=217138

--- Comment #18 from Mark Millard <markmi at dsl-only.net> ---
Created attachment 180808
  --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=180808&action=edit
C source for showing fork/swap memory corruption failure

I'm still at a loss about how to figure out what stages are messed
up. (Memory coherency? Some memory not swapped out? Bad data swapped
out? Wrong data swapped in?)

But at least I've found a much smaller/simpler example to demonstrate
some problem with in my Pine64+_ 2GB context.

The Pine64+ 2GB is the only arm64 context that I have access to.

The attached program fails its check for data
having its expected byte pattern in dynamically
allocated memory after a fork/swap-out/swap-in
sequence. The bytes end up all zero instead.

I'll note that the program sleeps for 60s after
forking to give time to do something else to
cause the parent and child processes to swap
out (RES=0 as seen in top).

A point is the size of the region matters: <= 14K Bytes
fails and > 14K Bytes works for as much has I have tested.

https://lists.freebsd.org/pipermail/freebsd-arm/2017-March/015869.html

has more material, including lldb's disassembly of the
compiled and linked C code.

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the freebsd-bugs mailing list