[Bug 297408] [zfs] pool checkpoint can eat up all available and unreasonable amount of space

[email protected]
Newsgroups gmane.os.freebsd.bugs
Message-ID <[email protected]/bugzilla/>
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=297408

            Bug ID: 297408
           Summary: [zfs] pool checkpoint can eat up all available and
                    unreasonable amount of space
           Product: Base System
           Version: 15.1-RELEASE
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: kern
          Assignee: [email protected]
          Reporter: [email protected]

FreeBSD 15.1-RELEASE. First seen on 15.0-RC1.

Each noon the following shell script works from cron:

===Cut===
for pool in zroot data
do
    zpool checkpoint -d -w $pool || true
    zpool checkpoint $pool
done

[dataset snapshotting and snapshot rotation]
===Cut===

Once in several days (like 7-10) the checkpoint eats up all of the available
space, and we're talking terabytes:

# zpool status
  pool: data
 state: ONLINE
checkpoint: created Mon Aug 10 00:00:00 2026, consumes 3.61T
config:

        NAME        STATE     READ WRITE CKSUM
        data        ONLINE       0     0     0
          raidz1-0  ONLINE       0     0     0
            nda0    ONLINE       0     0     0
            nda1    ONLINE       0     0     0
            nda2    ONLINE       0     0     0
            nda3    ONLINE       0     0     0

errors: No known data errors

Under normal conditions the pool is about 50% used:

# zpool list
NAME    SIZE  ALLOC   FREE  CKPOINT  EXPANDSZ   FRAG    CAP  DEDUP    HEALTH 
ALTROOT
data   14.0T  7.70T  6.27T        -         -    34%    55%  1.00x    ONLINE  -
zroot  1.72T   192G  1.53T    5.61M         -     5%    10%  1.00x    ONLINE  -

The pool normally holds small amount of daily rotated snapshots. Snapshotting,
their rotation and zpool checkpointing all take place from one single script
running commands sequentially.

Dataset layout:


# zfs list -t all
NAME                                       USED  AVAIL  REFER  MOUNTPOINT
data                                      5.60T  4.43T   140K  /data
data/attic                                 407G  4.43T   407G 
/usr/local/public/attic
data/mongodb                              1.37T  4.43T  1.37T  /var/db/mongodb
data/mongodb@06-08-2026                    442K      -  1.37T  -
data/mongodb@07-08-2026                    494K      -  1.37T  -
data/mongodb@08-08-2026                    494K      -  1.37T  -
data/mongodb@09-08-2026                    465K      -  1.37T  -
data/mongodb@10-08-2026                    418K      -  1.37T  -
data/mysql                                3.69T  4.43T  3.62T  /var/db/mysql
data/mysql@06-08-2026                     14.8G      -  3.61T  -
data/mysql@07-08-2026                     8.57G      -  3.62T  -
data/mysql@08-08-2026                     8.22G      -  3.62T  -
data/mysql@09-08-2026                     8.12G      -  3.62T  -
data/mysql@10-08-2026                     6.85G      -  3.63T  -
zroot                                      192G  1.48T    96K  /zroot
zroot/ROOT                                8.40G  1.48T    96K  none
zroot/ROOT/default                        8.40G  1.48T  8.40G  /
zroot/home                                 420M  1.48T   398M  /home
zroot/home/emz                            22.5M  1.48T  22.5M  /home/emz
zroot/tmp                                 22.8M  1.48T  22.8M  /tmp
zroot/usr                                 58.1G  1.48T    96K  /usr
zroot/usr/local                           49.5G  1.48T  2.07G  /usr/local
zroot/usr/local/etc                       1.38M  1.48T  1.38M  /usr/local/etc
zroot/usr/local/public                    47.4G  1.48T   104K 
/usr/local/public
zroot/usr/local/public/jails              47.4G  1.48T   112K 
/usr/local/public/jails
zroot/usr/local/public/jails/php74        32.2G  1.48T  9.33G 
/usr/local/public/jails/php74
zroot/usr/local/public/jails/php74@reloc  22.8G      -  32.1G  -
zroot/usr/local/public/jails/php84        7.45G  1.48T  7.45G 
/usr/local/public/jails/php84
zroot/usr/local/public/jails/php84@reloc   336K      -  7.45G  -
zroot/usr/local/public/jails/php85        7.77G  1.48T  7.44G 
/usr/local/public/jails/php85
zroot/usr/local/public/jails/php85@reloc   337M      -  6.95G  -
zroot/usr/ports                           5.74G  1.48T  5.74G  /usr/ports
zroot/usr/src                             2.92G  1.48T  2.92G  /usr/src
zroot/var                                  125G  1.48T    96K  /var
zroot/var/audit                             96K  1.48T    96K  /var/audit
zroot/var/crash                             96K  1.48T    96K  /var/crash
zroot/var/db                               231M  1.48T    96K  /var/db
zroot/var/db/mongodb-config                231M  1.48T   209M 
/var/db/mongodb-config
zroot/var/db/mongodb-config@29-03-2026     320K      -   211M  -
zroot/var/db/mongodb-config@30-03-2026     252K      -   216M  -
zroot/var/db/mongodb-config@31-03-2026     324K      -   210M  -
zroot/var/db/mongodb-config@01-04-2026     272K      -   215M  -
zroot/var/db/mongodb-config@02-04-2026       0B      -   209M  -
zroot/var/db/mongodb-config@06-08-2026       0B      -   209M  -
zroot/var/db/mongodb-config@07-08-2026       0B      -   209M  -
zroot/var/db/mongodb-config@08-08-2026       0B      -   209M  -
zroot/var/db/mongodb-config@09-08-2026       0B      -   209M  -
zroot/var/db/mongodb-config@10-08-2026       0B      -   209M  -
zroot/var/log                             2.21M  1.48T  2.21M  /var/log
zroot/var/mail                            4.21M  1.48T  4.21M  /var/mail
zroot/var/tmp                              296K  1.48T   296K  /var/tmp
zroot/var/www                              125G  1.48T   123G  /var/www
zroot/var/www@13-03-2026                  83.2M      -   124G  -
zroot/var/www@14-03-2026                  79.4M      -   124G  -
zroot/var/www@15-03-2026                  59.7M      -   124G  -
zroot/var/www@16-03-2026                  41.4M      -   124G  -
zroot/var/www@17-03-2026                   338M      -   124G  -
zroot/var/www@06-08-2026                     0B      -   123G  -
zroot/var/www@07-08-2026                     0B      -   123G  -
zroot/var/www@08-08-2026                     0B      -   123G  -
zroot/var/www@09-08-2026                     0B      -   123G  -
zroot/var/www@10-08-2026                     0B      -   123G  -

The server runs Mysql database.

-- 
You are receiving this mail because:
You are the assignee for the bug.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.