We use a type 'ObservableEvent' that is a fixed-size key-value store using an fixed byte array, mapping semantics to untyped values. The event generation is working fine unless the code is called in a bursted context in a release build; it seems to fill the data with zeroes and not much else (from what I can tell).
I've tried with various BurstCompile settings on the assembly level to see if I could reproduce the problem in-editor, but I can't. The build logs none of the related errors either. My initial hunch was this has something to do with type sizes/offsets, but I didn't have any real idea yet. After putting debug logs everywhere, things suddenly worked... so I made several builds to figure out where, and I found that if I put logs in ObservableEventBuilder.Build(), the code does what it's supposed to do.
I assume this is a burst compiler bug. We're on 1.8.7 currently. Before I submit a bug report, I figured perhaps it's a known issue. Did anyone see something similar?
Code below.