Project

General

Profile

Bug #1475

zfs spill block hold can access invalid spill blkptr

Added by Albert Lee about 8 years ago. Updated almost 8 years ago.

Status:
Resolved
Priority:
High
Assignee:
Category:
zfs - Zettabyte File System
Start date:
2011-09-06
Due date:
% Done:

100%

Estimated time:
6.00 h
Difficulty:
Medium
Tags:
needs-triage

Description

We've noticed that zfs recv can sometimes trigger a ddt_prefetch panic even when no DDT is present. This turns out to be related to http://opensolaris.org/jive/thread.jspa?threadID=135481

The spill tx hold does not check for the dnode's DNODE_FLAG_SPILL_BLKPTR and assumes dnodes have valid spill blkptrs in their bonus buffers (dn_phys->dn_spill member) if the blkptrs have not been zeroed out (satisfying the BP_IS_HOLE macro). This assumption appears to not hold true for some zfs send streams, at least.

History

#1

Updated by Albert Lee almost 8 years ago

  • % Done changed from 90 to 100

Fixed in:
changeset: 13469:b8e89e5c4167
tag: tip
user: Albert Lee <>
date: Sun Sep 25 03:07:35 2011 -0400
files: usr/src/uts/common/fs/zfs/dmu_tx.c
description:
1475 zfs spill block hold can access invalid spill blkptr
Reviewed by: Dan McDonald <>
Reviewed by: Gordon Ross <>
Reviewed by: Matthew Ahrens <>
Reviewed by: George Wilson <>
Approved by: Garrett D'Amore <>

#2

Updated by Albert Lee almost 8 years ago

  • Status changed from New to Resolved

Also available in: Atom PDF