Jeremy Archer wrote:
> I started to look at ref counting to convince myself that the db_bu field in 
> a cached dmu_impl_t object
>  is guaranteed to point at a valid arc_buf_t.
> 
> I have seen a  "deadbeef" crash on a busy system when zfs_write() is 
> pre-pagefaulting in 
> the file's pages.
> 
> The page  fault handler eventually winds its way to dbuf_hold_impl, who 
> manages to 
> find a cached dmu_impl_t record.  This record however, points to a freed 
> arc_buf_t 
> via its b_data field. The field is not null, but it points to a freed object, 
> hence the 
> crash upon trying to lock the rwlock of the alleged arc_buf.
> 
> Ref counting  should prevent something like this, correct?

Correct.  If you are running recent bits and have a core file please
file a bug on this.

-Mark

Reply via email to