zfs/module
Matthew Ahrens d66aab7c08
Assertion failure when logging large output of channel program
The output of ZFS channel programs is logged on-disk in the zpool
history, and printed by `zpool history -i`.  Channel programs can use
10MB of memory by default, and up to 100MB by using the `zfs program -m`
flag.  Therefore their output can be up to some fraction of 100MB.

In addition to being somewhat wasteful of the limited space reserved for
the pool history (which for large pools is 1GB), in extreme cases this
can result in a failure of `ASSERT(length <= DMU_MAX_ACCESS);` in
`dmu_buf_hold_array_by_dnode()`.

This commit limits the output size that will be logged to 1MB.  Larger
outputs will not be logged, instead a entry will be logged indicating
the size of the omitted output.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Matthew Ahrens <mahrens@delphix.com>
Closes #11194
2020-11-14 10:17:16 -08:00
..
avl Links in Source Files 2020-09-02 09:42:12 -07:00
icp Introduce CPU_SEQID_UNSTABLE 2020-11-02 11:51:12 -08:00
lua Use known license string for zlua 2020-10-27 09:43:36 -07:00
nvpair Links in Source Files 2020-09-02 09:42:12 -07:00
os Distributed Spare (dRAID) Feature 2020-11-13 13:51:51 -08:00
spl Cleanup linux module kbuild files 2020-06-10 09:24:15 -07:00
unicode Throw const on some strings 2020-10-02 17:44:10 -07:00
zcommon Distributed Spare (dRAID) Feature 2020-11-13 13:51:51 -08:00
zfs Assertion failure when logging large output of channel program 2020-11-14 10:17:16 -08:00
zstd Optimize locking checks in mempool allocator 2020-11-02 12:10:07 -08:00
.gitignore Cleanup linux module kbuild files 2020-06-10 09:24:15 -07:00
Kbuild.in Add zstd support to zfs 2020-08-20 10:30:06 -07:00
Makefile.bsd Distributed Spare (dRAID) Feature 2020-11-13 13:51:51 -08:00
Makefile.in Fix Linux modules uninstall 2020-10-08 20:07:10 -07:00