FWIW, in working on making abd better for openzfsonosx's memory peculiarities,
@lundman and I found a case of abd_copy(a, b, s) where a == b in
vdev_raidz_reconstruct_q(). In your code it's the abd_copy() here:
```
if (c == rm->rm_firstdatacol) {
- abd_copy(dst, src, size);
- if (rm->rm_col[x].rc_size > size)
- abd_zero_off(dst, size,
- rm->rm_col[x].rc_size - size);
```
In light of illumos issue 8100 it's not hard to imagine that later operations
could assume that a and b are different, leading to one being freed and the
other being operated on in some other way (or also freed).
Illumos landed abd with KMC_NOTOUCH when creating abd_chunk_cache -- it might
be worth doing a build with assertions enabled and some KMF debugging flags
like (KMF_BUFTAG | KMF_LITE) and exploring illumos issue 8100 further.
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/openzfs/openzfs/commit/4ee0199ec059ca9417a72125beae8d89fbc5a9df#commitcomment-21944024
------------------------------------------
openzfs-developer
Archives: https://openzfs.topicbox.com/groups/developer/
Powered by Topicbox: https://topicbox.com