[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


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=222288

            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