-
Type: Bug
-
Resolution: Unresolved
-
Priority: Major - P3
-
None
-
Affects Version/s: None
-
Component/s: Core
-
None
-
?
-
7006
-
Not Needed
Issues which may be related to overlapping blocks in the freelists.
- Double free but also corrupt file, which means it is different from the stuff fixed in https://github.com/realm/realm-core/issues/6813
- #6531
- Overlaps among blocks freed over separate transactions - this is detected by GroupWriter::recreate_freelist()
- #6071
- #6189
- #6378
OH also: #5993, was a presumably fix for several bugs with similar stacks:
- #5300
This may indicate that we did not fix the root cause, but merely changed the timing enough to hide the real problem.
A few similar old issue from differents repos either closed without fix or known cause or still presumably valid:
- https://github.com/realm/realm-java-private/issues/261
- https://github.com/Clipy/Clipy/issues/375
- https://github.com/realm/realm-swift/issues/6489
- https://github.com/realm/realm-swift/issues/7932
Root cause unknown, prime suspects:
- Mutex emulation on iOS (and possibly windows) (but if so, then the data races will need a different explanation)
- Online compaction
- Invalid changes to the m_baseline member of the allocator (this could be some interaction between online compaction and async commit)
- Invalid sharing of history objects (or part of their representation).
Cleared:
- Reclaiming intermediate versions - only changes release time stamps of already released blocks, so cannot possibly produce a free block, which was not a free block to begin with.
- Data races which may be explained by (wrong) allocation of an already allocated block:
#6474
#6624
#6738
These are just encryption specific false positives. There is no indication that they could be relevant.