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

Reply via email to