Comment 3 for bug 1912605

Revision history for this message
Christian Ehrhardt  (paelzer) wrote :

The breakage is on:

1. page_set_flags calls assert_memory_lock();
2. that is defined as tcg_debug_assert(have_mmap_lock())
3. That is just
 25 static __thread int mmap_lock_count;
 ...
 41 bool have_mmap_lock(void)
 42 {
 43 return mmap_lock_count > 0 ? true : false;
 44 }
4. if that returns false then this will with the config qemu has for qemu-user-static turn into
 242 do { if (!(X)) { __builtin_unreachable(); } } while (0)

That is our segfault.
So we are actually looking at a lack of an expected mmap lock.

We didn't mess with the locking or MM of qmeu-user-static.
The non-wrong linking should - if anything - in that regard only help.