[Bug 222288] g_bio leak after zfs ABD commit

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Wed Sep 13 14:57:01 UTC 2017


            Bug ID: 222288
           Summary: g_bio leak after zfs ABD commit
           Product: Base System
           Version: 11.1-STABLE
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Many People
          Priority: ---
         Component: kern
          Assignee: freebsd-bugs at FreeBSD.org
          Reporter: dnelson at allantgroup.com

It looks like the ABD commit may have introduced a leak of geom bio structs. 
It's a slow leak so it's not obvious, but after a few weeks of uptime, one of
my 8GB-RAM systems had accumulated a couple million g_bio objects according to
vmstat (over 2GB of RAM) and was starting to swap.  I rebooted it, and after 11
hours, I'm up to 310182:

# uptime
 9:55AM  up 11:08, 11 users, load averages: 0.50, 0.54, 0.55
# vmstat -z | egrep 'ITEM|g_bio' 
ITEM                   SIZE   LIMIT     USED     FREE       REQ   FAIL SLEEP
g_bio:                  376,      0,  310182,     818, 38182778,     0,   0

Looking at base r321610 itself, it looks like there's a g_bio_destroy() call
that got relocated from vdev_geom_io_intr() to vdev_geom_io_done(); maybe there
are cases where vdev_geom_io_intr is called, but vdev_geom_io_done isn't?  I
don't know enough about ZFS internals to get any farther than this.

Rolling the kernel back to r321609 makes the leak stop, and updating to r321610
makes it appear again.

You are receiving this mail because:
You are the assignee for the bug.

More information about the freebsd-bugs mailing list