From 482a982913218738d4381fc91512068c34d580dd Mon Sep 17 00:00:00 2001 From: Serapheim Dimitropoulos Date: Tue, 4 Apr 2023 10:12:28 -0700 Subject: [PATCH] Miscellaneous Test Suite And Userland Core Support Changes (#324) Contains the following changes: 1] New Crash Dump Directory Hierarchy Instead of unarchiving one reference dump at a time and testing it it is now possible to have multiple unpacked crash dumps at the same time and run the regression tests against both. Each dump is now automatically unpacked under `test/integration/data/dumps/`. It is also possible now to generate regression output for multiple dumps at the same time. 2] Better support for automatically loading userland shared libs The `-s`/`load_debug_info()` functionality would only look for `.ko` files (e.g. kernel modules) given a directory. Now it can also automatically detect debug links and shared objects. 3] Self-Descriptive Regression Output All regression output files now contain the following appendix: ``` @#$ EXIT CODE $#@ ``` This makes it easier for us to not have to declare in the test suite code whether a test case is negative or positive. Simplifying our test code. 4] Test Infrastructure Refactor & Userland Support The test suite infrastructure code has been refactored to handle userland core dumps together with kernel crash dumps. Unfortuantely due to a bug in drgn we can't use a ztest core dump for regressions (even though sdb/drgn can handle a userland core dump just fine in the host system). I'll come up with a smaller userland core dump soon so we can test the userland version of stacks and work on the drgn bug when my free time allows. --- .github/scripts/clear-dump.sh | 14 +- .github/scripts/download-dump-from-s3.sh | 18 +- .gitignore | 3 + README.md | 24 +- sdb/internal/cli.py | 29 +- .../dump.201912060006/core/addr bogus | 2 + .../dump.201912060006/core/addr fget | deref | 2 + .../core/addr jiffies | deref | 2 + .../core/addr jiffies | deref | deref | 2 + .../core/addr spa_namespace_avl | 2 + ...r spa_namespace_avl zfs_dbgmsgs | print -d | 2 + .../core/addr spa_namespace_avl | deref | 2 + .../addr spa_namespace_avl | deref | addr | 2 + .../addr spa_namespace_avl | deref | print | 2 + ...| member avl_root->avl_child[0]->avl_child | 2 + ...mespace_avl | member avl_root->avl_child[1 | 2 + ...espace_avl | member avl_root->avl_child[3] | 2 + ...espace_avl | member avl_root->avl_child[a] | 2 + ...l | member avl_root.avl_child[0].avl_child | 2 + ...ace_avl | member avl_root.avl_pcb avl_size | 2 + .../core/addr spa_namespace_avl | print | 2 + .../core/addr spa_namespace_avl | print --RAW | 2 + .../core/addr spa_namespace_avl | print -d | 2 + .../core/addr spa_namespace_avl | print -n | 2 + .../core/addr spa_namespace_avl | print -nr | 2 + .../core/addr spa_namespace_avl | print -r | 2 + .../core/echo 0x0 0x1 0x2 | filter 'obj < 1' | 2 + .../core/echo 0x0 0x1 0x2 | filter 'obj <= 1' | 2 + .../core/echo 0x0 0x1 0x2 | filter 'obj == 1' | 2 + .../core/echo 0x0 0x1 0x2 | filter 'obj > 1' | 2 + .../core/echo 0x0 0x1 0x2 | filter 'obj >= 1' | 2 + ... 0x1 | cast avl_tree_t * | member avl_root | 2 + .../core/echo 0x0 | cast int * | array 1 | 2 + .../core/echo 0x0 | cast int * | deref | 2 + .../echo 0x0 | cast spa_t * | member spa_name | 2 + .../core/echo 0x0 | cast void * | array 1 | 2 + .../core/echo 0x0 | filter 'obj == 0' | 2 + .../core/echo 0x0 | filter 'obj == 1' | 2 + .../core/echo 0x1 | filter 'obj == obj' | 2 + .../core/echo 0x10 | cast int * | deref | 2 + ...| cast dmu_recv_cookie_t * | member drc_os | 2 + .../core/echo 0xffff90cc11b28000 | deref | 2 + .../core/echo 1 | echo 2 | sum | 2 + .../core/echo 1234 | cast int | array | 2 + .../dump.201912060006/core/filter 'obj == 1' | 2 + .../dump.201912060006/core/member no_object | 2 + .../dump.201912060006/core/ptype $abc | 2 + .../dump.201912060006/core/ptype 'a b c' | 2 + .../core/ptype 'bogus union' | 2 + .../core/ptype 'struct bogus' | 2 + .../dump.201912060006/core/ptype 'struct spa' | 2 + .../core/ptype 'struct union' | 2 + .../dump.201912060006/core/ptype 'struct' | 2 + .../core/ptype 'union struct struct' | 2 + .../dump.201912060006/core/ptype 2abc | 2 + .../dump.201912060006/core/ptype @ | 2 + .../dump.201912060006/core/ptype bogus_t | 2 + .../dump.201912060006/core/ptype spa vdev | 2 + .../dump.201912060006/core/ptype spa_t | 2 + .../dump.201912060006/core/ptype struct spa | 2 + .../ptype zfs_case 'struct v' thread_union | 2 + .../dump.201912060006/core/sizeof bogus | 2 + .../dump.201912060006/core/sizeof size_t | 2 + .../dump.201912060006/core/sizeof spa vdev | 2 + .../dump.201912060006/core/sizeof struct spa | 2 + .../dump.201912060006/core/sizeof task_struct | 2 + .../spa rpool | filter 'obj.bogus == 1624' | 2 + ....spa_syncing_txg < 1624' | member spa_name | 2 + ...spa_syncing_txg <= 1624' | member spa_name | 2 + ...spa_syncing_txg == 1624' | member spa_name | 2 + ....spa_syncing_txg > 1624' | member spa_name | 2 + ...spa_syncing_txg >= 1624' | member spa_name | 2 + ...filter 'obj.spa_syncing_txg bogus_op 1624' | 2 + .../dump.201912060006/core/spa | deref | sum | 2 + .../spa | head 1 | deref | print --RAW -s | 2 + .../core/spa | head 1 | deref | print -rs | 2 + .../spa | head 1 | member spa_name[1] | print | 2 + ...a | head 1 | member spa_name[1] | print -c | 2 + ... | head 1 | member spa_name[1] | print -cr | 2 + ... 1 | member spa_zio_taskq[0][0].stqs_taskq | 2 + ...| member spa_zio_taskq[0][0].stqs_taskq[0] | 2 + .../core/spa | member spa_ubsync->ub_rootbp | 2 + .../core/spa | member spa_ubsync.bogus | 2 + ...r spa_ubsync.ub_rootbp.blk_dva[0].dva_word | 2 + ...ber spa_zio_taskq[0][0].stqs_taskq | array | 2 + ...r spa_zio_taskq[0][0].stqs_taskq | array 2 | 2 + ... | member spa_zio_taskq[0][0].stqs_taskq-> | 2 + ...a | member spa_zio_taskq[0][0].stqs_taskq. | 2 + .../dump.201912060006/core/spa | range_tree | 2 + ...a | vdev | metaslab | deref | sizeof | sum | 2 + .../dump.201912060006/core/sum | 2 + ...er \"obj.comm == \\\"bogus\\\"\" | thread" | 2 + .../core/threads | deref | sizeof | sum | 2 + .../core/threads | sizeof | sum | 2 + .../core/zfs_dbgmsg | filter '== obj' | 2 + .../core/zfs_dbgmsg | filter 'obj ==' | 2 + .../core/zfs_dbgmsg | filter 'obj' | 2 + ...s_dbgmsg | head 1 | member zdm_msg | array | 2 + ...bgmsg | head 1 | member zdm_msg | array -1 | 2 + ...dbgmsg | head 1 | member zdm_msg | array 0 | 2 + ...dbgmsg | head 1 | member zdm_msg | array 2 | 2 + .../zfs_dbgmsg | head 1 | member zdm_msg[2] | 2 + ...container_of bogus_type comm | cast void * | 2 + ...addr | container_of int comm | cast void * | 2 + ...addr | container_of pid comm | cast void * | 2 + ..._of task_struct bogus_member | cast void * | 2 + ...ontainer_of task_struct comm | cast void * | 2 + ...ontainer_of task_struct comm | cast void * | 2 + ...list bogus_type pid_links[3] | member comm | 2 + ...ist task_struct bogus_member | member comm | 2 + ...ist task_struct pid_links[3] | member comm | 2 + ...les | lxlist bogus_type list | member name | 2 + ...| lxlist module bogus_member | member name | 2 + ...modules | lxlist module list | member name | 2 + .../addr spa_namespace_avl | cpu_counter_sum | 2 + .../addr tcp_orphan_count | cpu_counter_sum | 2 + ...dr tcp_sockets_allocated | cpu_counter_sum | 2 + .../addr vm_committed_as | cpu_counter_sum | 2 + ...vmap_area_root | rbtree bogus_type rb_node | 2 + ..._area_root | rbtree vmap_area bogus_member | 2 + ... vmap_area_root | rbtree vmap_area rb_node | 2 + .../dump.201912060006/linux/crashed_thread | 2 + .../linux/crashed_thread | stacks | 2 + ...dbuf |head 1 |deref |member db_buf |whatis | 2 + .../dump.201912060006/linux/dmesg | 2 + .../dmesg | filter 'obj.level == 3' | dmesg | 2 + .../dump.201912060006/linux/dmesg | pp | 2 + .../linux/echo 0x0 | cpu_counter_sum | 2 + .../linux/echo 0xffffa089669edc00 | stack | 2 + .../dump.201912060006/linux/find_task 1 | 2 + .../dump.201912060006/linux/find_task 1 2 | 2 + .../linux/find_task 1 2 | member comm | 2 + .../linux/find_task 1 | fget 1 4 | 2 + .../linux/find_task 1 | fget 1 4 123123 | 2 + .../dump.201912060006/linux/pid 1 | 2 + .../dump.201912060006/linux/pid 1 10 12437 | 2 + .../dump.201912060006/linux/slabs | 2 + .../dump.201912060006/linux/slabs -o bogus | 2 + ...bs -s active_objs -o active_objs,util,name | 2 + .../linux/slabs -s active_objs -o util | 2 + .../dump.201912060006/linux/slabs -s bogus | 2 + .../dump.201912060006/linux/slabs -s util | 2 + .../linux/slabs -s util | slabs | 2 + .../dump.201912060006/linux/slabs -v | 2 + ...bj.name == \"UNIX\"' | slub_cache | count" | 2 + ...mber dn_phys |member dn_blkptr[0] |blkptr" | 2 + ...mber dn_phys |member dn_blkptr[0] |blkptr" | 2 + ...\"kmalloc-8\"' | member cpu_slab | percpu" | 2 + ...kmalloc-8\"' | member cpu_slab | percpu 0" | 2 + ...alloc-8\"' | member cpu_slab | percpu 0 1" | 2 + ...loc-8\"' | member cpu_slab | percpu 0 2 1" | 2 + ...kmalloc-8\"' | member cpu_slab | percpu 1" | 2 + ...alloc-8\"' | member cpu_slab | percpu 100" | 2 + ...kmalloc-8\"' | member cpu_slab | percpu 2" | 2 + ...kmalloc-8\"' | member cpu_slab | percpu 3" | 2 + ... 'obj.name == \"zio_cache\"' | slub_cache" | 2 + ...e | cast zio_t * | member io_spa.spa_name" | 2 + ...me == \"zio_cache\"' | slub_cache | count" | 2 + ...filter 'obj.name == \"zio_cache\"' | walk" | 2 + .../linux/slabs | head 2 | slabs | 2 + .../dump.201912060006/linux/slabs | pp | 2 + .../dump.201912060006/linux/stacks | 2 + .../dump.201912060006/linux/stacks -a | 2 + .../dump.201912060006/linux/stacks -c bogus | 2 + .../linux/stacks -c spa_sync | 2 + .../dump.201912060006/linux/stacks -m bogus | 2 + .../linux/stacks -m bogus | count | 2 + .../dump.201912060006/linux/stacks -m zfs | 2 + .../linux/stacks -m zfs -c spa_sync | 2 + .../linux/stacks -m zfs -c zthr_procedure | 2 + .../linux/stacks -m zfs | count | 2 + .../dump.201912060006/linux/stacks -t bogus | 2 + .../dump.201912060006/linux/thread | 2 + .../dump.201912060006/linux/threads | 2 + .../dump.201912060006/linux/threads | count | 2 + ...s | filter 'obj.comm == \"java\"' | stack" | 2 + ...| filter 'obj.comm == \"java\"' | threads" | 2 + .../linux/whatis 0xf987kkbbh | 2 + .../dump.201912060006/linux/whatis 0xffff | 2 + ...atis 0xffffa0888c766000 0xffffa089407ca870 | 2 + .../linux/whatis 0xffffa089407ca870 | 2 + ...member [0].arcs_list[1] | multilist | head | 2 + ...ru | member [0].arcs_list[1] | walk | head | 2 + .../spl/addr spa_namespace_avl | avl | 2 + .../spl/addr spa_namespace_avl | walk | 2 + .../spa | member spa_config_list | spl_list | 2 + .../spl/spa | member spa_config_list | walk | 2 + ...a | member spa_evicting_os_list | spl_list | 2 + .../spa | member spa_evicting_os_list | walk | 2 + ...mal_class.mc_metaslab_txg_list | multilist | 2 + ...a_normal_class.mc_metaslab_txg_list | walk | 2 + .../dump.201912060006/spl/spl_kmem_caches | 2 + ...em_caches -o name,entry_size -s entry_size | 2 + .../spl/spl_kmem_caches -o name,source | 2 + .../spl/spl_kmem_caches -s entry_size | 2 + ...s -s entry_size | head 4 | spl_kmem_caches | 2 + .../dump.201912060006/spl/spl_kmem_caches -v | 2 + ...ter 'obj.skc_linux_cache == 0' | spl_cache | 2 + ...bj.skc_linux_cache == 0' | spl_cache | cnt | 2 + ...bj.skc_obj_alloc > 0' | head 1 | spl_cache | 2 + ...er 'obj.skc_name == \"ddt_cache\"' | walk" | 2 + .../spl/spl_kmem_caches | pp | 2 + .../dump.201912060006/zfs/arc | 2 + .../dump.201912060006/zfs/dbuf | 2 + .../dump.201912060006/zfs/dbuf -l 1 | 2 + .../dump.201912060006/zfs/dbuf | dbuf -l 1 | 2 + .../zfs/dbuf | dbuf -l 1 | head | dbuf | 2 + .../dbuf | head 1 | member db_blkptr | blkptr | 2 + .../dump.201912060006/zfs/spa | 2 + .../dump.201912060006/zfs/spa -H | 2 + .../dump.201912060006/zfs/spa -mH | 2 + .../dump.201912060006/zfs/spa -v | 2 + .../dump.201912060006/zfs/spa -vH | 2 + .../dump.201912060006/zfs/spa -vm | 2 + .../dump.201912060006/zfs/spa -vmH | 2 + ..._normal_class.mc_histogram | zfs_histogram | 2 + ...member ms_allocatable.rt_histogram | zhist | 2 + ...member ms_sm.sm_phys.smp_histogram | zhist | 2 + ...mber ms_sm.sm_phys.smp_histogram | zhist 9 | 2 + .../dump.201912060006/zfs/spa rpool | 2 + ... spa_uberblock | member ub_rootbp | blkptr | 2 + .../dump.201912060006/zfs/spa | head 1 | spa | 2 + .../dump.201912060006/zfs/spa | pp | 2 + .../dump.201912060006/zfs/spa | vdev | 2 + .../zfs/spa | vdev | metaslab | 2 + .../zfs/spa | vdev | metaslab -w | 2 + ...aslab | member ms_allocatable | range_tree | 2 + ... member ms_allocatable.rt_root | zfs_btree | 2 + .../dump.201912060006/zfs/spa | vdev | pp | 2 + .../dump.201912060006/zfs/zfs_dbgmsg | 2 + .../zfs/zfs_dbgmsg | tail 5 | zfs_dbgmsg | 2 + .../dump.201912060006/zfs/zio | 2 + .../dump.201912060006/zfs/zio -r | 2 + .../dump.202303131823/core/addr bogus | 2 + .../dump.202303131823/core/addr fget | deref | 2 + .../core/addr jiffies | deref | 2 + .../core/addr jiffies | deref | deref | 2 + .../core/addr spa_namespace_avl | 2 + ...r spa_namespace_avl zfs_dbgmsgs | print -d | 2 + .../core/addr spa_namespace_avl | deref | 2 + .../addr spa_namespace_avl | deref | addr | 2 + .../addr spa_namespace_avl | deref | print | 2 + ...| member avl_root->avl_child[0]->avl_child | 2 + ...mespace_avl | member avl_root->avl_child[1 | 2 + ...espace_avl | member avl_root->avl_child[3] | 2 + ...espace_avl | member avl_root->avl_child[a] | 2 + ...l | member avl_root.avl_child[0].avl_child | 2 + ...ace_avl | member avl_root.avl_pcb avl_size | 2 + .../core/addr spa_namespace_avl | print | 2 + .../core/addr spa_namespace_avl | print --RAW | 2 + .../core/addr spa_namespace_avl | print -d | 2 + .../core/addr spa_namespace_avl | print -n | 2 + .../core/addr spa_namespace_avl | print -nr | 2 + .../core/addr spa_namespace_avl | print -r | 2 + .../core/echo 0x0 0x1 0x2 | filter 'obj < 1' | 2 + .../core/echo 0x0 0x1 0x2 | filter 'obj <= 1' | 2 + .../core/echo 0x0 0x1 0x2 | filter 'obj == 1' | 2 + .../core/echo 0x0 0x1 0x2 | filter 'obj > 1' | 2 + .../core/echo 0x0 0x1 0x2 | filter 'obj >= 1' | 2 + ... 0x1 | cast avl_tree_t * | member avl_root | 2 + .../core/echo 0x0 | cast int * | array 1 | 2 + .../core/echo 0x0 | cast int * | deref | 2 + .../echo 0x0 | cast spa_t * | member spa_name | 2 + .../core/echo 0x0 | cast void * | array 1 | 2 + .../core/echo 0x0 | filter 'obj == 0' | 2 + .../core/echo 0x0 | filter 'obj == 1' | 2 + .../core/echo 0x1 | filter 'obj == obj' | 2 + .../core/echo 0x10 | cast int * | deref | 2 + ...| cast dmu_recv_cookie_t * | member drc_os | 2 + .../core/echo 0xffff90cc11b28000 | deref | 2 + .../core/echo 1 | echo 2 | sum | 2 + .../core/echo 1234 | cast int | array | 2 + .../dump.202303131823/core/filter 'obj == 1' | 2 + .../dump.202303131823/core/member no_object | 2 + .../dump.202303131823/core/ptype $abc | 2 + .../dump.202303131823/core/ptype 'a b c' | 2 + .../core/ptype 'bogus union' | 2 + .../core/ptype 'struct bogus' | 2 + .../dump.202303131823/core/ptype 'struct spa' | 2 + .../core/ptype 'struct union' | 2 + .../dump.202303131823/core/ptype 'struct' | 2 + .../core/ptype 'union struct struct' | 2 + .../dump.202303131823/core/ptype 2abc | 2 + .../dump.202303131823/core/ptype @ | 2 + .../dump.202303131823/core/ptype bogus_t | 2 + .../dump.202303131823/core/ptype spa vdev | 2 + .../dump.202303131823/core/ptype spa_t | 2 + .../dump.202303131823/core/ptype struct spa | 2 + .../ptype zfs_case 'struct v' thread_union | 2 + .../dump.202303131823/core/sizeof bogus | 2 + .../dump.202303131823/core/sizeof size_t | 2 + .../dump.202303131823/core/sizeof spa vdev | 2 + .../dump.202303131823/core/sizeof struct spa | 2 + .../dump.202303131823/core/sizeof task_struct | 2 + .../spa rpool | filter 'obj.bogus == 1624' | 2 + ....spa_syncing_txg < 1624' | member spa_name | 2 + ...spa_syncing_txg <= 1624' | member spa_name | 2 + ...spa_syncing_txg == 1624' | member spa_name | 2 + ....spa_syncing_txg > 1624' | member spa_name | 2 + ...spa_syncing_txg >= 1624' | member spa_name | 2 + ...filter 'obj.spa_syncing_txg bogus_op 1624' | 2 + .../dump.202303131823/core/spa | deref | sum | 2 + .../spa | head 1 | deref | print --RAW -s | 2 + .../core/spa | head 1 | deref | print -rs | 2 + .../spa | head 1 | member spa_name[1] | print | 2 + ...a | head 1 | member spa_name[1] | print -c | 2 + ... | head 1 | member spa_name[1] | print -cr | 2 + ... 1 | member spa_zio_taskq[0][0].stqs_taskq | 2 + ...| member spa_zio_taskq[0][0].stqs_taskq[0] | 2 + .../core/spa | member spa_ubsync->ub_rootbp | 2 + .../core/spa | member spa_ubsync.bogus | 2 + ...r spa_ubsync.ub_rootbp.blk_dva[0].dva_word | 2 + ...ber spa_zio_taskq[0][0].stqs_taskq | array | 2 + ...r spa_zio_taskq[0][0].stqs_taskq | array 2 | 2 + ... | member spa_zio_taskq[0][0].stqs_taskq-> | 2 + ...a | member spa_zio_taskq[0][0].stqs_taskq. | 2 + .../dump.202303131823/core/spa | range_tree | 2 + ...a | vdev | metaslab | deref | sizeof | sum | 2 + .../dump.202303131823/core/sum | 2 + ...er \"obj.comm == \\\"bogus\\\"\" | thread" | 2 + .../core/threads | deref | sizeof | sum | 2 + .../core/threads | sizeof | sum | 2 + .../core/zfs_dbgmsg | filter '== obj' | 2 + .../core/zfs_dbgmsg | filter 'obj ==' | 2 + .../core/zfs_dbgmsg | filter 'obj' | 2 + ...s_dbgmsg | head 1 | member zdm_msg | array | 2 + ...bgmsg | head 1 | member zdm_msg | array -1 | 2 + ...dbgmsg | head 1 | member zdm_msg | array 0 | 2 + ...dbgmsg | head 1 | member zdm_msg | array 2 | 2 + .../zfs_dbgmsg | head 1 | member zdm_msg[2] | 2 + ...container_of bogus_type comm | cast void * | 2 + ...addr | container_of int comm | cast void * | 2 + ...addr | container_of pid comm | cast void * | 2 + ..._of task_struct bogus_member | cast void * | 2 + ...ontainer_of task_struct comm | cast void * | 2 + ...ontainer_of task_struct comm | cast void * | 2 + ...list bogus_type pid_links[3] | member comm | 2 + ...ist task_struct bogus_member | member comm | 2 + ...ist task_struct pid_links[3] | member comm | 2 + ...les | lxlist bogus_type list | member name | 2 + ...| lxlist module bogus_member | member name | 2 + ...modules | lxlist module list | member name | 2 + .../addr spa_namespace_avl | cpu_counter_sum | 2 + .../addr tcp_orphan_count | cpu_counter_sum | 2 + ...dr tcp_sockets_allocated | cpu_counter_sum | 2 + .../addr vm_committed_as | cpu_counter_sum | 2 + ...vmap_area_root | rbtree bogus_type rb_node | 2 + ..._area_root | rbtree vmap_area bogus_member | 2 + ... vmap_area_root | rbtree vmap_area rb_node | 2 + .../dump.202303131823/linux/crashed_thread | 2 + .../linux/crashed_thread | stacks | 2 + ...dbuf |head 1 |deref |member db_buf |whatis | 2 + .../dump.202303131823/linux/dmesg | 2 + .../dmesg | filter 'obj.level == 3' | dmesg | 2 + .../dump.202303131823/linux/dmesg | pp | 2 + .../linux/echo 0x0 | cpu_counter_sum | 2 + .../linux/echo 0xffffa089669edc00 | stack | 2 + .../dump.202303131823/linux/find_task 1 | 2 + .../dump.202303131823/linux/find_task 1 2 | 2 + .../linux/find_task 1 2 | member comm | 2 + .../linux/find_task 1 | fget 1 4 | 2 + .../linux/find_task 1 | fget 1 4 123123 | 2 + .../dump.202303131823/linux/pid 1 | 2 + .../dump.202303131823/linux/pid 1 10 12437 | 2 + .../dump.202303131823/linux/slabs | 2 + .../dump.202303131823/linux/slabs -o bogus | 2 + ...bs -s active_objs -o active_objs,util,name | 2 + .../linux/slabs -s active_objs -o util | 2 + .../dump.202303131823/linux/slabs -s bogus | 2 + .../dump.202303131823/linux/slabs -s util | 2 + .../linux/slabs -s util | slabs | 2 + .../dump.202303131823/linux/slabs -v | 2 + ...bj.name == \"UNIX\"' | slub_cache | count" | 2 + ...mber dn_phys |member dn_blkptr[0] |blkptr" | 2 + ...mber dn_phys |member dn_blkptr[0] |blkptr" | 2 + ...\"kmalloc-8\"' | member cpu_slab | percpu" | 2 + ...kmalloc-8\"' | member cpu_slab | percpu 0" | 2 + ...alloc-8\"' | member cpu_slab | percpu 0 1" | 2 + ...loc-8\"' | member cpu_slab | percpu 0 2 1" | 2 + ...kmalloc-8\"' | member cpu_slab | percpu 1" | 2 + ...alloc-8\"' | member cpu_slab | percpu 100" | 2 + ...kmalloc-8\"' | member cpu_slab | percpu 2" | 2 + ...kmalloc-8\"' | member cpu_slab | percpu 3" | 2 + ... 'obj.name == \"zio_cache\"' | slub_cache" | 2 + ...e | cast zio_t * | member io_spa.spa_name" | 2 + ...me == \"zio_cache\"' | slub_cache | count" | 2 + ...filter 'obj.name == \"zio_cache\"' | walk" | 2 + .../linux/slabs | head 2 | slabs | 2 + .../dump.202303131823/linux/slabs | pp | 2 + .../dump.202303131823/linux/stacks | 2 + .../dump.202303131823/linux/stacks -a | 2 + .../dump.202303131823/linux/stacks -c bogus | 2 + .../linux/stacks -c spa_sync | 2 + .../dump.202303131823/linux/stacks -m bogus | 2 + .../linux/stacks -m bogus | count | 2 + .../dump.202303131823/linux/stacks -m zfs | 2 + .../linux/stacks -m zfs -c spa_sync | 2 + .../linux/stacks -m zfs -c zthr_procedure | 2 + .../linux/stacks -m zfs | count | 2 + .../dump.202303131823/linux/stacks -t bogus | 2 + .../dump.202303131823/linux/thread | 2 + .../dump.202303131823/linux/threads | 2 + .../dump.202303131823/linux/threads | count | 2 + ...s | filter 'obj.comm == \"java\"' | stack" | 2 + ...| filter 'obj.comm == \"java\"' | threads" | 2 + .../linux/whatis 0xf987kkbbh | 2 + .../dump.202303131823/linux/whatis 0xffff | 2 + ...atis 0xffffa0888c766000 0xffffa089407ca870 | 2 + .../linux/whatis 0xffffa089407ca870 | 2 + ...member [0].arcs_list[1] | multilist | head | 2 + ...ru | member [0].arcs_list[1] | walk | head | 2 + .../spl/addr spa_namespace_avl | avl | 2 + .../spl/addr spa_namespace_avl | walk | 2 + .../spa | member spa_config_list | spl_list | 2 + .../spl/spa | member spa_config_list | walk | 2 + ...a | member spa_evicting_os_list | spl_list | 2 + .../spa | member spa_evicting_os_list | walk | 2 + ...mal_class.mc_metaslab_txg_list | multilist | 2 + ...a_normal_class.mc_metaslab_txg_list | walk | 2 + .../dump.202303131823/spl/spl_kmem_caches | 2 + ...em_caches -o name,entry_size -s entry_size | 2 + .../spl/spl_kmem_caches -o name,source | 2 + .../spl/spl_kmem_caches -s entry_size | 2 + ...s -s entry_size | head 4 | spl_kmem_caches | 2 + .../dump.202303131823/spl/spl_kmem_caches -v | 2 + ...ter 'obj.skc_linux_cache == 0' | spl_cache | 2 + ...bj.skc_linux_cache == 0' | spl_cache | cnt | 2 + ...bj.skc_obj_alloc > 0' | head 1 | spl_cache | 2 + ...er 'obj.skc_name == \"ddt_cache\"' | walk" | 2 + .../spl/spl_kmem_caches | pp | 2 + .../dump.202303131823/zfs/arc | 2 + .../dump.202303131823/zfs/dbuf | 2 + .../dump.202303131823/zfs/dbuf -l 1 | 2 + .../dump.202303131823/zfs/dbuf | dbuf -l 1 | 2 + .../zfs/dbuf | dbuf -l 1 | head | dbuf | 2 + .../dbuf | head 1 | member db_blkptr | blkptr | 2 + .../dump.202303131823/zfs/spa | 2 + .../dump.202303131823/zfs/spa -H | 2 + .../dump.202303131823/zfs/spa -mH | 2 + .../dump.202303131823/zfs/spa -v | 2 + .../dump.202303131823/zfs/spa -vH | 2 + .../dump.202303131823/zfs/spa -vm | 2 + .../dump.202303131823/zfs/spa -vmH | 2 + ..._normal_class.mc_histogram | zfs_histogram | 2 + ...member ms_allocatable.rt_histogram | zhist | 2 + ...member ms_sm.sm_phys.smp_histogram | zhist | 2 + ...mber ms_sm.sm_phys.smp_histogram | zhist 9 | 2 + .../dump.202303131823/zfs/spa rpool | 2 + ... spa_uberblock | member ub_rootbp | blkptr | 2 + .../dump.202303131823/zfs/spa | head 1 | spa | 2 + .../dump.202303131823/zfs/spa | pp | 2 + .../dump.202303131823/zfs/spa | vdev | 2 + .../zfs/spa | vdev | metaslab | 2 + .../zfs/spa | vdev | metaslab -w | 2 + ...aslab | member ms_allocatable | range_tree | 2 + ... member ms_allocatable.rt_root | zfs_btree | 2 + .../dump.202303131823/zfs/spa | vdev | pp | 2 + .../dump.202303131823/zfs/zfs_dbgmsg | 2 + .../zfs/zfs_dbgmsg | tail 5 | zfs_dbgmsg | 2 + .../dump.202303131823/zfs/zio | 2 + .../dump.202303131823/zfs/zio -r | 2 + tests/integration/gen_regression_output.py | 12 +- tests/integration/infra.py | 462 +++++++++++------- tests/integration/test_core_generic.py | 67 +-- tests/integration/test_linux_generic.py | 86 +--- tests/integration/test_spl_generic.py | 67 +-- tests/integration/test_zfs_generic.py | 19 +- 467 files changed, 1305 insertions(+), 408 deletions(-) diff --git a/.github/scripts/clear-dump.sh b/.github/scripts/clear-dump.sh index fab82fc8..b4498ca1 100755 --- a/.github/scripts/clear-dump.sh +++ b/.github/scripts/clear-dump.sh @@ -7,17 +7,7 @@ if [ ! -d $DATA_DIR ]; then exit 1 fi -echo "removing current crash dump if any ..." -rm -f $DATA_DIR/dump.* - -echo "removing any extracted vmlinux ..." -rm -f $DATA_DIR/vmlinux* - -echo "removing any extracted modules ..." -rm -rf $DATA_DIR/mods -rm -rf $DATA_DIR/usr - -echo "removing any savedump scripts ..." -rm -rf $DATA_DIR/run-*.sh +echo "removing all crash/core dumps ..." +rm -rf $DATA_DIR/dumps echo "Done" diff --git a/.github/scripts/download-dump-from-s3.sh b/.github/scripts/download-dump-from-s3.sh index d9a6267e..8c7754f5 100755 --- a/.github/scripts/download-dump-from-s3.sh +++ b/.github/scripts/download-dump-from-s3.sh @@ -41,31 +41,33 @@ else [ $? -eq 0 ] || exit 1 fi -if [[ $1 == *.lzma ]]; then +if [[ $1 == *.tar.lzma ]]; then # Profile A + dump_name=${1%.tar.lzma} echo "decompressing dump ..." tar -x --lzma -f $1 - echo "moving contents to tests/integration/data ..." - mv dump-data/* $DATA_DIR + echo "moving contents to tests/integration/data/dumps/${dump_name} ..." + mkdir -p $DATA_DIR/dumps/${dump_name} + mv dump-data/* $DATA_DIR/dumps/${dump_name} [ $? -eq 0 ] || exit 1 rmdir dump-data [ $? -eq 0 ] || exit 1 elif [[ $1 == *.tar.gz ]]; then # Profile B + dump_name=${1%.tar.gz} echo "decompressing dump ..." tar xzf $1 - decompressed_dir=${1%.tar.gz} - - echo "moving contents to tests/integration/data ..." - mv *$decompressed_dir/* $DATA_DIR + echo "moving contents to tests/integration/data/dumps/${dump_name} ..." + mkdir -p $DATA_DIR/dumps/${dump_name} + mv *${dump_name}/* $DATA_DIR/dumps/${dump_name} [ $? -eq 0 ] || exit 1 - rmdir *$decompressed_dir + rmdir *${dump_name} [ $? -eq 0 ] || exit 1 else echo "unknown dump profile" diff --git a/.gitignore b/.gitignore index e7a79341..08afaa80 100644 --- a/.gitignore +++ b/.gitignore @@ -114,3 +114,6 @@ tests/integration/data/mods/ # zipped folders - usually crash dumps *.lzma *.tar.gz + +# crash dump directory +tests/integration/data/dumps/ diff --git a/README.md b/README.md index 545d21bc..6e3eea6e 100644 --- a/README.md +++ b/README.md @@ -103,26 +103,8 @@ If you want `pytest` to stop on the first failure it encounters add `-x/--exitfirst` in the command above. If you've added new test commands or found mistakes in the current reference -output and you want (re)generate reference output for a crash dump - let's say -`dump.201912060006` from above: +output and you want (re)generate some reference output download all crash/core +dumps (or the specific one you want to correct) and run the following: ``` -$ PYTHONPATH=$(pwd) python3 tests/integration/gen_regression_output.py dump.201912060006 -``` - -or more generically: -``` -$ PYTHONPATH=$(pwd) python3 tests/integration/gen_regression_output.py -``` - -For the time being, the test suite is not smart enought to handle the testing -of multiple crash dumps at the same time. Until that happens, developers that -want to test multiple crash dumps need to delete their current crash dump -before downloading the next to run `pytest`. Here is a sequence of commands to -run `pytest` against two crash dumps: -``` -$ .github/scripts/download-dump-from-s3.sh dump.201912060006.tar.lzma -$ python3 -m pytest -v --cov sdb --cov-report xml tests -$ .github/scripts/clear-dump.sh -$ .github/scripts/download-dump-from-s3.sh dump.202303131823.tar.gz -$ python3 -m pytest -v --cov sdb --cov-report xml tests +$ PYTHONPATH=$(pwd) python3 tests/integration/gen_regression_output.py ``` diff --git a/sdb/internal/cli.py b/sdb/internal/cli.py index 637535fc..b72409fd 100644 --- a/sdb/internal/cli.py +++ b/sdb/internal/cli.py @@ -20,6 +20,7 @@ import argparse import os +import re import sys from typing import List @@ -126,7 +127,8 @@ def parse_arguments() -> argparse.Namespace: return args -def load_debug_info(prog: drgn.Program, dpaths: List[str]) -> None: +def load_debug_info(prog: drgn.Program, dpaths: List[str], quiet: bool, + no_filter: bool) -> None: """ Iterates over all the paths provided (`dpaths`) and attempts to load any debug information it finds. If the path provided @@ -140,9 +142,28 @@ def load_debug_info(prog: drgn.Program, dpaths: List[str]) -> None: kos = [] for (ppath, __, files) in os.walk(path): for i in files: - if i.endswith(".ko"): + if i.endswith(".ko") or i.endswith(".debug") or re.match( + r".+\.so(\.\d)?", i) or no_filter: + # matches: + # kernel modules - .ko suffix + # userland debug files - .debug suffix + # userland shared objects - .so suffix kos.append(os.sep.join([ppath, i])) - prog.load_debug_info(kos) + try: + prog.load_debug_info(kos) + except drgn.MissingDebugInfoError as debug_info_err: + # + # If we encounter such an error it means that we can't + # find the debug info for one or more kernel modules. + # That's fine because the user may not need those, so + # print a warning and proceed. + # + # Again because of the aforementioned short-coming of drgn + # we quiet any errors when loading the *default debug info* + # if we are looking at a crash/core dump. + # + if not quiet: + print("sdb: " + str(debug_info_err), file=sys.stderr) else: print("sdb: " + path + " is not a regular file or directory") @@ -191,7 +212,7 @@ def setup_target(args: argparse.Namespace) -> drgn.Program: if args.symbol_search: try: - load_debug_info(prog, args.symbol_search) + load_debug_info(prog, args.symbol_search, args.quiet, False) except ( drgn.MissingDebugInfoError, OSError, diff --git a/tests/integration/data/regression_output/dump.201912060006/core/addr bogus b/tests/integration/data/regression_output/dump.201912060006/core/addr bogus index a86e3e53..0149a607 100644 --- a/tests/integration/data/regression_output/dump.201912060006/core/addr bogus +++ b/tests/integration/data/regression_output/dump.201912060006/core/addr bogus @@ -1 +1,3 @@ sdb: addr: symbol not found: bogus +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.201912060006/core/addr fget | deref b/tests/integration/data/regression_output/dump.201912060006/core/addr fget | deref index e3d40941..baab73c1 100644 --- a/tests/integration/data/regression_output/dump.201912060006/core/addr fget | deref +++ b/tests/integration/data/regression_output/dump.201912060006/core/addr fget | deref @@ -1 +1,3 @@ sdb: deref: cannot dereference function pointer +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.201912060006/core/addr jiffies | deref b/tests/integration/data/regression_output/dump.201912060006/core/addr jiffies | deref index 7bfdfc99..6c64b277 100644 --- a/tests/integration/data/regression_output/dump.201912060006/core/addr jiffies | deref +++ b/tests/integration/data/regression_output/dump.201912060006/core/addr jiffies | deref @@ -1 +1,3 @@ (volatile unsigned long)4294968498 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/core/addr jiffies | deref | deref b/tests/integration/data/regression_output/dump.201912060006/core/addr jiffies | deref | deref index a7f18f22..e12a1cd4 100644 --- a/tests/integration/data/regression_output/dump.201912060006/core/addr jiffies | deref | deref +++ b/tests/integration/data/regression_output/dump.201912060006/core/addr jiffies | deref | deref @@ -1 +1,3 @@ sdb: deref: 'volatile unsigned long' is not a valid pointer type +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.201912060006/core/addr spa_namespace_avl b/tests/integration/data/regression_output/dump.201912060006/core/addr spa_namespace_avl index ca9b3927..0c0495fc 100644 --- a/tests/integration/data/regression_output/dump.201912060006/core/addr spa_namespace_avl +++ b/tests/integration/data/regression_output/dump.201912060006/core/addr spa_namespace_avl @@ -1 +1,3 @@ (avl_tree_t *)spa_namespace_avl+0x0 = 0xffffffffc07d0fe0 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/core/addr spa_namespace_avl zfs_dbgmsgs | print -d b/tests/integration/data/regression_output/dump.201912060006/core/addr spa_namespace_avl zfs_dbgmsgs | print -d index 04a770e3..854763c4 100644 --- a/tests/integration/data/regression_output/dump.201912060006/core/addr spa_namespace_avl zfs_dbgmsgs | print -d +++ b/tests/integration/data/regression_output/dump.201912060006/core/addr spa_namespace_avl zfs_dbgmsgs | print -d @@ -74,3 +74,5 @@ .kpe_proc = (struct proc_dir_entry *)0xffffa089659cbf00, }, } +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/core/addr spa_namespace_avl | deref b/tests/integration/data/regression_output/dump.201912060006/core/addr spa_namespace_avl | deref index 605534f4..c03aa87b 100644 --- a/tests/integration/data/regression_output/dump.201912060006/core/addr spa_namespace_avl | deref +++ b/tests/integration/data/regression_output/dump.201912060006/core/addr spa_namespace_avl | deref @@ -5,3 +5,5 @@ .avl_numnodes = (ulong_t)3, .avl_size = (size_t)9176, } +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/core/addr spa_namespace_avl | deref | addr b/tests/integration/data/regression_output/dump.201912060006/core/addr spa_namespace_avl | deref | addr index ca9b3927..0c0495fc 100644 --- a/tests/integration/data/regression_output/dump.201912060006/core/addr spa_namespace_avl | deref | addr +++ b/tests/integration/data/regression_output/dump.201912060006/core/addr spa_namespace_avl | deref | addr @@ -1 +1,3 @@ (avl_tree_t *)spa_namespace_avl+0x0 = 0xffffffffc07d0fe0 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/core/addr spa_namespace_avl | deref | print b/tests/integration/data/regression_output/dump.201912060006/core/addr spa_namespace_avl | deref | print index 605534f4..c03aa87b 100644 --- a/tests/integration/data/regression_output/dump.201912060006/core/addr spa_namespace_avl | deref | print +++ b/tests/integration/data/regression_output/dump.201912060006/core/addr spa_namespace_avl | deref | print @@ -5,3 +5,5 @@ .avl_numnodes = (ulong_t)3, .avl_size = (size_t)9176, } +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/core/addr spa_namespace_avl | member avl_root->avl_child[0]->avl_child b/tests/integration/data/regression_output/dump.201912060006/core/addr spa_namespace_avl | member avl_root->avl_child[0]->avl_child index cfe8f9e5..98d8f13f 100644 --- a/tests/integration/data/regression_output/dump.201912060006/core/addr spa_namespace_avl | member avl_root->avl_child[0]->avl_child +++ b/tests/integration/data/regression_output/dump.201912060006/core/addr spa_namespace_avl | member avl_root->avl_child[0]->avl_child @@ -1 +1,3 @@ (struct avl_node *[2]){} +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/core/addr spa_namespace_avl | member avl_root->avl_child[1 b/tests/integration/data/regression_output/dump.201912060006/core/addr spa_namespace_avl | member avl_root->avl_child[1 index c07687ab..bd2b941c 100644 --- a/tests/integration/data/regression_output/dump.201912060006/core/addr spa_namespace_avl | member avl_root->avl_child[1 +++ b/tests/integration/data/regression_output/dump.201912060006/core/addr spa_namespace_avl | member avl_root->avl_child[1 @@ -1 +1,3 @@ sdb: member: incomplete array expression: please use something of the format 'array_name[index]' +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.201912060006/core/addr spa_namespace_avl | member avl_root->avl_child[3] b/tests/integration/data/regression_output/dump.201912060006/core/addr spa_namespace_avl | member avl_root->avl_child[3] index c489ddb3..c3730455 100644 --- a/tests/integration/data/regression_output/dump.201912060006/core/addr spa_namespace_avl | member avl_root->avl_child[3] +++ b/tests/integration/data/regression_output/dump.201912060006/core/addr spa_namespace_avl | member avl_root->avl_child[3] @@ -1,2 +1,4 @@ warning: member: index out of bounds for array of type 'struct avl_node *[2]' (requested index: 3) (struct avl_node *)0xffffa08892703f60 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/core/addr spa_namespace_avl | member avl_root->avl_child[a] b/tests/integration/data/regression_output/dump.201912060006/core/addr spa_namespace_avl | member avl_root->avl_child[a] index a50a79b9..77d13c6e 100644 --- a/tests/integration/data/regression_output/dump.201912060006/core/addr spa_namespace_avl | member avl_root->avl_child[a] +++ b/tests/integration/data/regression_output/dump.201912060006/core/addr spa_namespace_avl | member avl_root->avl_child[a] @@ -1 +1,3 @@ sdb: member: incorrect index: 'a' is not a number +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.201912060006/core/addr spa_namespace_avl | member avl_root.avl_child[0].avl_child b/tests/integration/data/regression_output/dump.201912060006/core/addr spa_namespace_avl | member avl_root.avl_child[0].avl_child index cfe8f9e5..98d8f13f 100644 --- a/tests/integration/data/regression_output/dump.201912060006/core/addr spa_namespace_avl | member avl_root.avl_child[0].avl_child +++ b/tests/integration/data/regression_output/dump.201912060006/core/addr spa_namespace_avl | member avl_root.avl_child[0].avl_child @@ -1 +1,3 @@ (struct avl_node *[2]){} +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/core/addr spa_namespace_avl | member avl_root.avl_pcb avl_size b/tests/integration/data/regression_output/dump.201912060006/core/addr spa_namespace_avl | member avl_root.avl_pcb avl_size index 5d91477d..dc9de245 100644 --- a/tests/integration/data/regression_output/dump.201912060006/core/addr spa_namespace_avl | member avl_root.avl_pcb avl_size +++ b/tests/integration/data/regression_output/dump.201912060006/core/addr spa_namespace_avl | member avl_root.avl_pcb avl_size @@ -1,2 +1,4 @@ (uintptr_t)1 (size_t)9176 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/core/addr spa_namespace_avl | print b/tests/integration/data/regression_output/dump.201912060006/core/addr spa_namespace_avl | print index ca9b3927..0c0495fc 100644 --- a/tests/integration/data/regression_output/dump.201912060006/core/addr spa_namespace_avl | print +++ b/tests/integration/data/regression_output/dump.201912060006/core/addr spa_namespace_avl | print @@ -1 +1,3 @@ (avl_tree_t *)spa_namespace_avl+0x0 = 0xffffffffc07d0fe0 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/core/addr spa_namespace_avl | print --RAW b/tests/integration/data/regression_output/dump.201912060006/core/addr spa_namespace_avl | print --RAW index da550e97..0e8e437d 100644 --- a/tests/integration/data/regression_output/dump.201912060006/core/addr spa_namespace_avl | print --RAW +++ b/tests/integration/data/regression_output/dump.201912060006/core/addr spa_namespace_avl | print --RAW @@ -1 +1,3 @@ 0xffffffffc07d0fe0 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/core/addr spa_namespace_avl | print -d b/tests/integration/data/regression_output/dump.201912060006/core/addr spa_namespace_avl | print -d index aa48e6ad..e857654d 100644 --- a/tests/integration/data/regression_output/dump.201912060006/core/addr spa_namespace_avl | print -d +++ b/tests/integration/data/regression_output/dump.201912060006/core/addr spa_namespace_avl | print -d @@ -5,3 +5,5 @@ .avl_numnodes = (ulong_t)3, .avl_size = (size_t)9176, } +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/core/addr spa_namespace_avl | print -n b/tests/integration/data/regression_output/dump.201912060006/core/addr spa_namespace_avl | print -n index 2d290d45..a9be5fcd 100644 --- a/tests/integration/data/regression_output/dump.201912060006/core/addr spa_namespace_avl | print -n +++ b/tests/integration/data/regression_output/dump.201912060006/core/addr spa_namespace_avl | print -n @@ -1 +1,3 @@ (avl_tree_t *)0xffffffffc07d0fe0 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/core/addr spa_namespace_avl | print -nr b/tests/integration/data/regression_output/dump.201912060006/core/addr spa_namespace_avl | print -nr index da550e97..0e8e437d 100644 --- a/tests/integration/data/regression_output/dump.201912060006/core/addr spa_namespace_avl | print -nr +++ b/tests/integration/data/regression_output/dump.201912060006/core/addr spa_namespace_avl | print -nr @@ -1 +1,3 @@ 0xffffffffc07d0fe0 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/core/addr spa_namespace_avl | print -r b/tests/integration/data/regression_output/dump.201912060006/core/addr spa_namespace_avl | print -r index e19bf471..0b0231dd 100644 --- a/tests/integration/data/regression_output/dump.201912060006/core/addr spa_namespace_avl | print -r +++ b/tests/integration/data/regression_output/dump.201912060006/core/addr spa_namespace_avl | print -r @@ -1 +1,3 @@ spa_namespace_avl+0x0 = 0xffffffffc07d0fe0 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/core/echo 0x0 0x1 0x2 | filter 'obj < 1' b/tests/integration/data/regression_output/dump.201912060006/core/echo 0x0 0x1 0x2 | filter 'obj < 1' index 1195f3e5..aa4eaeb7 100644 --- a/tests/integration/data/regression_output/dump.201912060006/core/echo 0x0 0x1 0x2 | filter 'obj < 1' +++ b/tests/integration/data/regression_output/dump.201912060006/core/echo 0x0 0x1 0x2 | filter 'obj < 1' @@ -1 +1,3 @@ (void *)0x0 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/core/echo 0x0 0x1 0x2 | filter 'obj <= 1' b/tests/integration/data/regression_output/dump.201912060006/core/echo 0x0 0x1 0x2 | filter 'obj <= 1' index 6218040a..cf87594e 100644 --- a/tests/integration/data/regression_output/dump.201912060006/core/echo 0x0 0x1 0x2 | filter 'obj <= 1' +++ b/tests/integration/data/regression_output/dump.201912060006/core/echo 0x0 0x1 0x2 | filter 'obj <= 1' @@ -1,2 +1,4 @@ (void *)0x0 (void *)0x1 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/core/echo 0x0 0x1 0x2 | filter 'obj == 1' b/tests/integration/data/regression_output/dump.201912060006/core/echo 0x0 0x1 0x2 | filter 'obj == 1' index 0ada95c0..12e6e69c 100644 --- a/tests/integration/data/regression_output/dump.201912060006/core/echo 0x0 0x1 0x2 | filter 'obj == 1' +++ b/tests/integration/data/regression_output/dump.201912060006/core/echo 0x0 0x1 0x2 | filter 'obj == 1' @@ -1 +1,3 @@ (void *)0x1 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/core/echo 0x0 0x1 0x2 | filter 'obj > 1' b/tests/integration/data/regression_output/dump.201912060006/core/echo 0x0 0x1 0x2 | filter 'obj > 1' index 13ff7600..4e8a4e6b 100644 --- a/tests/integration/data/regression_output/dump.201912060006/core/echo 0x0 0x1 0x2 | filter 'obj > 1' +++ b/tests/integration/data/regression_output/dump.201912060006/core/echo 0x0 0x1 0x2 | filter 'obj > 1' @@ -1 +1,3 @@ (void *)0x2 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/core/echo 0x0 0x1 0x2 | filter 'obj >= 1' b/tests/integration/data/regression_output/dump.201912060006/core/echo 0x0 0x1 0x2 | filter 'obj >= 1' index a7451662..d14331bf 100644 --- a/tests/integration/data/regression_output/dump.201912060006/core/echo 0x0 0x1 0x2 | filter 'obj >= 1' +++ b/tests/integration/data/regression_output/dump.201912060006/core/echo 0x0 0x1 0x2 | filter 'obj >= 1' @@ -1,2 +1,4 @@ (void *)0x1 (void *)0x2 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/core/echo 0x0 | addr spa_namespace_avl | echo 0x1 | cast avl_tree_t * | member avl_root b/tests/integration/data/regression_output/dump.201912060006/core/echo 0x0 | addr spa_namespace_avl | echo 0x1 | cast avl_tree_t * | member avl_root index ce2d6642..acfa1509 100644 --- a/tests/integration/data/regression_output/dump.201912060006/core/echo 0x0 | addr spa_namespace_avl | echo 0x1 | cast avl_tree_t * | member avl_root +++ b/tests/integration/data/regression_output/dump.201912060006/core/echo 0x0 | addr spa_namespace_avl | echo 0x1 | cast avl_tree_t * | member avl_root @@ -1,3 +1,5 @@ sdb: member: invalid memory access: addresss 0x0 (struct avl_node *)0xffffa089413b8108 sdb: member: invalid memory access: addresss 0x1 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/core/echo 0x0 | cast int * | array 1 b/tests/integration/data/regression_output/dump.201912060006/core/echo 0x0 | cast int * | array 1 index f46b2bb5..e6c7c273 100644 --- a/tests/integration/data/regression_output/dump.201912060006/core/echo 0x0 | cast int * | array 1 +++ b/tests/integration/data/regression_output/dump.201912060006/core/echo 0x0 | cast int * | array 1 @@ -1 +1,3 @@ sdb: array: invalid memory access: addresss 0x0 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/core/echo 0x0 | cast int * | deref b/tests/integration/data/regression_output/dump.201912060006/core/echo 0x0 | cast int * | deref index e711ef02..23afc1e4 100644 --- a/tests/integration/data/regression_output/dump.201912060006/core/echo 0x0 | cast int * | deref +++ b/tests/integration/data/regression_output/dump.201912060006/core/echo 0x0 | cast int * | deref @@ -1 +1,3 @@ sdb: deref: invalid memory access: addresss 0x0 +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.201912060006/core/echo 0x0 | cast spa_t * | member spa_name b/tests/integration/data/regression_output/dump.201912060006/core/echo 0x0 | cast spa_t * | member spa_name index f79c5036..afc31aa8 100644 --- a/tests/integration/data/regression_output/dump.201912060006/core/echo 0x0 | cast spa_t * | member spa_name +++ b/tests/integration/data/regression_output/dump.201912060006/core/echo 0x0 | cast spa_t * | member spa_name @@ -1 +1,3 @@ sdb: member: invalid memory access: addresss 0x0 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/core/echo 0x0 | cast void * | array 1 b/tests/integration/data/regression_output/dump.201912060006/core/echo 0x0 | cast void * | array 1 index 51295f92..76136e78 100644 --- a/tests/integration/data/regression_output/dump.201912060006/core/echo 0x0 | cast void * | array 1 +++ b/tests/integration/data/regression_output/dump.201912060006/core/echo 0x0 | cast void * | array 1 @@ -1 +1,3 @@ sdb: array: can't walk pointer array of incomplete type 'void' +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.201912060006/core/echo 0x0 | filter 'obj == 0' b/tests/integration/data/regression_output/dump.201912060006/core/echo 0x0 | filter 'obj == 0' index 1195f3e5..aa4eaeb7 100644 --- a/tests/integration/data/regression_output/dump.201912060006/core/echo 0x0 | filter 'obj == 0' +++ b/tests/integration/data/regression_output/dump.201912060006/core/echo 0x0 | filter 'obj == 0' @@ -1 +1,3 @@ (void *)0x0 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/core/echo 0x0 | filter 'obj == 1' b/tests/integration/data/regression_output/dump.201912060006/core/echo 0x0 | filter 'obj == 1' index e69de29b..77f91668 100644 --- a/tests/integration/data/regression_output/dump.201912060006/core/echo 0x0 | filter 'obj == 1' +++ b/tests/integration/data/regression_output/dump.201912060006/core/echo 0x0 | filter 'obj == 1' @@ -0,0 +1,2 @@ +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/core/echo 0x1 | filter 'obj == obj' b/tests/integration/data/regression_output/dump.201912060006/core/echo 0x1 | filter 'obj == obj' index 0ada95c0..12e6e69c 100644 --- a/tests/integration/data/regression_output/dump.201912060006/core/echo 0x1 | filter 'obj == obj' +++ b/tests/integration/data/regression_output/dump.201912060006/core/echo 0x1 | filter 'obj == obj' @@ -1 +1,3 @@ (void *)0x1 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/core/echo 0x10 | cast int * | deref b/tests/integration/data/regression_output/dump.201912060006/core/echo 0x10 | cast int * | deref index d2f90a83..9ea037ed 100644 --- a/tests/integration/data/regression_output/dump.201912060006/core/echo 0x10 | cast int * | deref +++ b/tests/integration/data/regression_output/dump.201912060006/core/echo 0x10 | cast int * | deref @@ -1 +1,3 @@ sdb: deref: invalid memory access: addresss 0x10 +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.201912060006/core/echo 0x1234 | cast dmu_recv_cookie_t * | member drc_os b/tests/integration/data/regression_output/dump.201912060006/core/echo 0x1234 | cast dmu_recv_cookie_t * | member drc_os index 2c067a56..bcedfee7 100644 --- a/tests/integration/data/regression_output/dump.201912060006/core/echo 0x1234 | cast dmu_recv_cookie_t * | member drc_os +++ b/tests/integration/data/regression_output/dump.201912060006/core/echo 0x1234 | cast dmu_recv_cookie_t * | member drc_os @@ -1 +1,3 @@ sdb: member: invalid memory access: addresss 0x12c4 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/core/echo 0xffff90cc11b28000 | deref b/tests/integration/data/regression_output/dump.201912060006/core/echo 0xffff90cc11b28000 | deref index b517f0ba..ea1cf80b 100644 --- a/tests/integration/data/regression_output/dump.201912060006/core/echo 0xffff90cc11b28000 | deref +++ b/tests/integration/data/regression_output/dump.201912060006/core/echo 0xffff90cc11b28000 | deref @@ -1 +1,3 @@ sdb: deref: cannot dereference a void pointer +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.201912060006/core/echo 1 | echo 2 | sum b/tests/integration/data/regression_output/dump.201912060006/core/echo 1 | echo 2 | sum index 5b9bbfda..ecc2d55d 100644 --- a/tests/integration/data/regression_output/dump.201912060006/core/echo 1 | echo 2 | sum +++ b/tests/integration/data/regression_output/dump.201912060006/core/echo 1 | echo 2 | sum @@ -1 +1,3 @@ (uint64_t)3 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/core/echo 1234 | cast int | array b/tests/integration/data/regression_output/dump.201912060006/core/echo 1234 | cast int | array index 7c2439b7..27f23e44 100644 --- a/tests/integration/data/regression_output/dump.201912060006/core/echo 1234 | cast int | array +++ b/tests/integration/data/regression_output/dump.201912060006/core/echo 1234 | cast int | array @@ -1 +1,3 @@ sdb: array: 'int' is not an array nor a pointer type +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.201912060006/core/filter 'obj == 1' b/tests/integration/data/regression_output/dump.201912060006/core/filter 'obj == 1' index e69de29b..77f91668 100644 --- a/tests/integration/data/regression_output/dump.201912060006/core/filter 'obj == 1' +++ b/tests/integration/data/regression_output/dump.201912060006/core/filter 'obj == 1' @@ -0,0 +1,2 @@ +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/core/member no_object b/tests/integration/data/regression_output/dump.201912060006/core/member no_object index e69de29b..77f91668 100644 --- a/tests/integration/data/regression_output/dump.201912060006/core/member no_object +++ b/tests/integration/data/regression_output/dump.201912060006/core/member no_object @@ -0,0 +1,2 @@ +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/core/ptype $abc b/tests/integration/data/regression_output/dump.201912060006/core/ptype $abc index 778d3f1f..f0ecd377 100644 --- a/tests/integration/data/regression_output/dump.201912060006/core/ptype $abc +++ b/tests/integration/data/regression_output/dump.201912060006/core/ptype $abc @@ -1 +1,3 @@ sdb: ptype: input '$abc' is not a valid type name +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.201912060006/core/ptype 'a b c' b/tests/integration/data/regression_output/dump.201912060006/core/ptype 'a b c' index a01fdde4..0bc31243 100644 --- a/tests/integration/data/regression_output/dump.201912060006/core/ptype 'a b c' +++ b/tests/integration/data/regression_output/dump.201912060006/core/ptype 'a b c' @@ -1 +1,3 @@ sdb: ptype: input 'a b c' is not a valid type name +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.201912060006/core/ptype 'bogus union' b/tests/integration/data/regression_output/dump.201912060006/core/ptype 'bogus union' index cc1731b6..19da9489 100644 --- a/tests/integration/data/regression_output/dump.201912060006/core/ptype 'bogus union' +++ b/tests/integration/data/regression_output/dump.201912060006/core/ptype 'bogus union' @@ -1 +1,3 @@ sdb: ptype: input 'bogus union' is not a valid type name +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.201912060006/core/ptype 'struct bogus' b/tests/integration/data/regression_output/dump.201912060006/core/ptype 'struct bogus' index 70772673..a9b599d9 100644 --- a/tests/integration/data/regression_output/dump.201912060006/core/ptype 'struct bogus' +++ b/tests/integration/data/regression_output/dump.201912060006/core/ptype 'struct bogus' @@ -1 +1,3 @@ sdb: ptype: couldn't find type 'struct bogus' +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.201912060006/core/ptype 'struct spa' b/tests/integration/data/regression_output/dump.201912060006/core/ptype 'struct spa' index 4a4a06ee..b456895a 100644 --- a/tests/integration/data/regression_output/dump.201912060006/core/ptype 'struct spa' +++ b/tests/integration/data/regression_output/dump.201912060006/core/ptype 'struct spa' @@ -193,3 +193,5 @@ struct spa { zfs_refcount_t spa_refcount; taskq_t *spa_upgrade_taskq; } +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/core/ptype 'struct union' b/tests/integration/data/regression_output/dump.201912060006/core/ptype 'struct union' index 5cf94487..47418b5f 100644 --- a/tests/integration/data/regression_output/dump.201912060006/core/ptype 'struct union' +++ b/tests/integration/data/regression_output/dump.201912060006/core/ptype 'struct union' @@ -1 +1,3 @@ sdb: ptype: input 'struct union' is not a valid type name +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.201912060006/core/ptype 'struct' b/tests/integration/data/regression_output/dump.201912060006/core/ptype 'struct' index 3a998af7..3ad89ef4 100644 --- a/tests/integration/data/regression_output/dump.201912060006/core/ptype 'struct' +++ b/tests/integration/data/regression_output/dump.201912060006/core/ptype 'struct' @@ -1 +1,3 @@ sdb: ptype: skip keyword 'struct' or quote your type "struct " +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.201912060006/core/ptype 'union struct struct' b/tests/integration/data/regression_output/dump.201912060006/core/ptype 'union struct struct' index dd412f24..980d0532 100644 --- a/tests/integration/data/regression_output/dump.201912060006/core/ptype 'union struct struct' +++ b/tests/integration/data/regression_output/dump.201912060006/core/ptype 'union struct struct' @@ -1 +1,3 @@ sdb: ptype: input 'union struct struct' is not a valid type name +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.201912060006/core/ptype 2abc b/tests/integration/data/regression_output/dump.201912060006/core/ptype 2abc index 39f91fb4..ea544776 100644 --- a/tests/integration/data/regression_output/dump.201912060006/core/ptype 2abc +++ b/tests/integration/data/regression_output/dump.201912060006/core/ptype 2abc @@ -1 +1,3 @@ sdb: ptype: input '2abc' is not a valid type name +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.201912060006/core/ptype @ b/tests/integration/data/regression_output/dump.201912060006/core/ptype @ index ac8e79dd..0a28c42d 100644 --- a/tests/integration/data/regression_output/dump.201912060006/core/ptype @ +++ b/tests/integration/data/regression_output/dump.201912060006/core/ptype @ @@ -1 +1,3 @@ sdb: ptype: input '@' is not a valid type name +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.201912060006/core/ptype bogus_t b/tests/integration/data/regression_output/dump.201912060006/core/ptype bogus_t index 846cd783..ac038abd 100644 --- a/tests/integration/data/regression_output/dump.201912060006/core/ptype bogus_t +++ b/tests/integration/data/regression_output/dump.201912060006/core/ptype bogus_t @@ -1 +1,3 @@ sdb: ptype: couldn't find typedef, struct, enum, nor union named 'bogus_t' +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.201912060006/core/ptype spa vdev b/tests/integration/data/regression_output/dump.201912060006/core/ptype spa vdev index d72a990d..7f1e5499 100644 --- a/tests/integration/data/regression_output/dump.201912060006/core/ptype spa vdev +++ b/tests/integration/data/regression_output/dump.201912060006/core/ptype spa vdev @@ -335,3 +335,5 @@ struct vdev { zfs_ratelimit_t vdev_delay_rl; zfs_ratelimit_t vdev_checksum_rl; } +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/core/ptype spa_t b/tests/integration/data/regression_output/dump.201912060006/core/ptype spa_t index 7dbfe554..926d961d 100644 --- a/tests/integration/data/regression_output/dump.201912060006/core/ptype spa_t +++ b/tests/integration/data/regression_output/dump.201912060006/core/ptype spa_t @@ -1 +1,3 @@ typedef struct spa spa_t +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/core/ptype struct spa b/tests/integration/data/regression_output/dump.201912060006/core/ptype struct spa index 3a998af7..3ad89ef4 100644 --- a/tests/integration/data/regression_output/dump.201912060006/core/ptype struct spa +++ b/tests/integration/data/regression_output/dump.201912060006/core/ptype struct spa @@ -1 +1,3 @@ sdb: ptype: skip keyword 'struct' or quote your type "struct " +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.201912060006/core/ptype zfs_case 'struct v' thread_union b/tests/integration/data/regression_output/dump.201912060006/core/ptype zfs_case 'struct v' thread_union index 10ab01f0..d9d5efeb 100644 --- a/tests/integration/data/regression_output/dump.201912060006/core/ptype zfs_case 'struct v' thread_union +++ b/tests/integration/data/regression_output/dump.201912060006/core/ptype zfs_case 'struct v' thread_union @@ -10,3 +10,5 @@ union thread_union { struct task_struct task; unsigned long stack[2048]; } +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/core/sizeof bogus b/tests/integration/data/regression_output/dump.201912060006/core/sizeof bogus index c8133ac4..a4eafdcc 100644 --- a/tests/integration/data/regression_output/dump.201912060006/core/sizeof bogus +++ b/tests/integration/data/regression_output/dump.201912060006/core/sizeof bogus @@ -1 +1,3 @@ sdb: sizeof: couldn't find typedef, struct, enum, nor union named 'bogus' +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.201912060006/core/sizeof size_t b/tests/integration/data/regression_output/dump.201912060006/core/sizeof size_t index a6375e71..8acd38f6 100644 --- a/tests/integration/data/regression_output/dump.201912060006/core/sizeof size_t +++ b/tests/integration/data/regression_output/dump.201912060006/core/sizeof size_t @@ -1 +1,3 @@ (size_t)8 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/core/sizeof spa vdev b/tests/integration/data/regression_output/dump.201912060006/core/sizeof spa vdev index 0ef9fa6a..34c31799 100644 --- a/tests/integration/data/regression_output/dump.201912060006/core/sizeof spa vdev +++ b/tests/integration/data/regression_output/dump.201912060006/core/sizeof spa vdev @@ -1,2 +1,4 @@ (size_t)9176 (size_t)14440 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/core/sizeof struct spa b/tests/integration/data/regression_output/dump.201912060006/core/sizeof struct spa index 096a29d3..66a6bbdc 100644 --- a/tests/integration/data/regression_output/dump.201912060006/core/sizeof struct spa +++ b/tests/integration/data/regression_output/dump.201912060006/core/sizeof struct spa @@ -1 +1,3 @@ sdb: sizeof: skip keyword 'struct' or quote your type "struct " +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.201912060006/core/sizeof task_struct b/tests/integration/data/regression_output/dump.201912060006/core/sizeof task_struct index 8ff6bdc9..5a0e42aa 100644 --- a/tests/integration/data/regression_output/dump.201912060006/core/sizeof task_struct +++ b/tests/integration/data/regression_output/dump.201912060006/core/sizeof task_struct @@ -1 +1,3 @@ (size_t)9152 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/core/spa rpool | filter 'obj.bogus == 1624' b/tests/integration/data/regression_output/dump.201912060006/core/spa rpool | filter 'obj.bogus == 1624' index 53f844e8..245a8fc3 100644 --- a/tests/integration/data/regression_output/dump.201912060006/core/spa rpool | filter 'obj.bogus == 1624' +++ b/tests/integration/data/regression_output/dump.201912060006/core/spa rpool | filter 'obj.bogus == 1624' @@ -1 +1,3 @@ sdb: filter: 'spa_t' has no member 'bogus' +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.201912060006/core/spa rpool | filter 'obj.spa_syncing_txg < 1624' | member spa_name b/tests/integration/data/regression_output/dump.201912060006/core/spa rpool | filter 'obj.spa_syncing_txg < 1624' | member spa_name index e69de29b..77f91668 100644 --- a/tests/integration/data/regression_output/dump.201912060006/core/spa rpool | filter 'obj.spa_syncing_txg < 1624' | member spa_name +++ b/tests/integration/data/regression_output/dump.201912060006/core/spa rpool | filter 'obj.spa_syncing_txg < 1624' | member spa_name @@ -0,0 +1,2 @@ +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/core/spa rpool | filter 'obj.spa_syncing_txg <= 1624' | member spa_name b/tests/integration/data/regression_output/dump.201912060006/core/spa rpool | filter 'obj.spa_syncing_txg <= 1624' | member spa_name index 1379983a..751ae4ce 100644 --- a/tests/integration/data/regression_output/dump.201912060006/core/spa rpool | filter 'obj.spa_syncing_txg <= 1624' | member spa_name +++ b/tests/integration/data/regression_output/dump.201912060006/core/spa rpool | filter 'obj.spa_syncing_txg <= 1624' | member spa_name @@ -1 +1,3 @@ (char [256])"rpool" +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/core/spa rpool | filter 'obj.spa_syncing_txg == 1624' | member spa_name b/tests/integration/data/regression_output/dump.201912060006/core/spa rpool | filter 'obj.spa_syncing_txg == 1624' | member spa_name index 1379983a..751ae4ce 100644 --- a/tests/integration/data/regression_output/dump.201912060006/core/spa rpool | filter 'obj.spa_syncing_txg == 1624' | member spa_name +++ b/tests/integration/data/regression_output/dump.201912060006/core/spa rpool | filter 'obj.spa_syncing_txg == 1624' | member spa_name @@ -1 +1,3 @@ (char [256])"rpool" +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/core/spa rpool | filter 'obj.spa_syncing_txg > 1624' | member spa_name b/tests/integration/data/regression_output/dump.201912060006/core/spa rpool | filter 'obj.spa_syncing_txg > 1624' | member spa_name index e69de29b..77f91668 100644 --- a/tests/integration/data/regression_output/dump.201912060006/core/spa rpool | filter 'obj.spa_syncing_txg > 1624' | member spa_name +++ b/tests/integration/data/regression_output/dump.201912060006/core/spa rpool | filter 'obj.spa_syncing_txg > 1624' | member spa_name @@ -0,0 +1,2 @@ +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/core/spa rpool | filter 'obj.spa_syncing_txg >= 1624' | member spa_name b/tests/integration/data/regression_output/dump.201912060006/core/spa rpool | filter 'obj.spa_syncing_txg >= 1624' | member spa_name index 1379983a..751ae4ce 100644 --- a/tests/integration/data/regression_output/dump.201912060006/core/spa rpool | filter 'obj.spa_syncing_txg >= 1624' | member spa_name +++ b/tests/integration/data/regression_output/dump.201912060006/core/spa rpool | filter 'obj.spa_syncing_txg >= 1624' | member spa_name @@ -1 +1,3 @@ (char [256])"rpool" +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/core/spa rpool | filter 'obj.spa_syncing_txg bogus_op 1624' b/tests/integration/data/regression_output/dump.201912060006/core/spa rpool | filter 'obj.spa_syncing_txg bogus_op 1624' index fc761b9b..aea4edcc 100644 --- a/tests/integration/data/regression_output/dump.201912060006/core/spa rpool | filter 'obj.spa_syncing_txg bogus_op 1624' +++ b/tests/integration/data/regression_output/dump.201912060006/core/spa rpool | filter 'obj.spa_syncing_txg bogus_op 1624' @@ -1 +1,3 @@ sdb: filter: invalid input: comparison operator is missing +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.201912060006/core/spa | deref | sum b/tests/integration/data/regression_output/dump.201912060006/core/spa | deref | sum index 908ade20..5242fae8 100644 --- a/tests/integration/data/regression_output/dump.201912060006/core/spa | deref | sum +++ b/tests/integration/data/regression_output/dump.201912060006/core/spa | deref | sum @@ -1 +1,3 @@ sdb: sum: 'struct spa' is not an integer type +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.201912060006/core/spa | head 1 | deref | print --RAW -s b/tests/integration/data/regression_output/dump.201912060006/core/spa | head 1 | deref | print --RAW -s index 167d9ef0..9eac875b 100644 --- a/tests/integration/data/regression_output/dump.201912060006/core/spa | head 1 | deref | print --RAW -s +++ b/tests/integration/data/regression_output/dump.201912060006/core/spa | head 1 | deref | print --RAW -s @@ -1 +1,3 @@ { "data", 0x0, { {}, 18446639110098223369 }, 0xffffa0894b2ee120, 0x0, 0x0, 0xffffa08933526f80, 609, 0, POOL_STATE_ACTIVE, 0, 1, SPA_LOAD_NONE, B_TRUE, B_TRUE, SPA_CONFIG_SRC_MOS, 8, { { { 1, 0xffffa089369e8de0 }, { 0, 0x0 }, { 1, 0xffffa089369e8b08 } }, { { 1, 0xffffa089369e8a98 }, { 0, 0x0 }, { 8, 0xffffa0894b62a080 } }, { { 1, 0xffffa089369e87c8 }, { 1, 0xffffa089369e8e48 }, { 8, 0xffffa0894b62a1c0 }, { 1, 0xffffa089369e8c78 } }, { { 8, 0xffffa0894b62a3c0 }, { 0, 0x0 }, { 1, 0xffffa089369e8920 } }, { { 1, 0xffffa089369e8f08 }, { 0, 0x0 }, { 1, 0xffffa089369e8f40 } }, { { 1, 0xffffa089369e8eb8 }, { 0, 0x0 }, { 1, 0xffffa089369e8660 } }, { { 1, 0xffffa089369e8a28 }, { 0, 0x0 }, { 1, 0xffffa089369e8e88 } } }, 0xffffa0894e6e5000, B_FALSE, B_FALSE, 0xffffa089364ff000, 0xffffa089364ff400, 1, 0xffffa089364fe000, 0xffffa089364fc000, 606, 18446744073709551615, 18446744073709551615, 18446744073709551615, 606, { 1575590476, 696651663 }, 0xffffa0894e6e7000, { { { 0 }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { { 0 } }, { 0xffffa0894e7203b8, 0xffffa0894e7203b8 } }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, 0x0 }, { 1392, 624, { 0xffffa0894e7203e8, 0xffffa0894e7203e8 } }, { 879052276, { { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { 0xffffa0894e720408, 0xffffa0894e720408 } }, { { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { 0xffffa0894e720420, 0xffffa0894e720420 } }, { 1 }, { 0 }, 0x0 }, { { { { 0 }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { { 0 } }, { 0xffffa0894e720450, 0xffffa0894e720450 } }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, 0x0 }, 10584, 0xffffa0894e720000, {} }, 0xffffa089486fc000, 9, 9, 16281744902661189000, 14471461212339565814, 16281744902661189000, { 14440, 10632, { 0xffffa0894e7204d8, 0xffffa0894e7204d8 } }, { 14440, 10648, { 0xffffa0894e7204f8, 0xffffa0894e7204f8 } }, 0xffffa089351f8000, 0xffffa089351f8240, 4, { 0, 0x0, 0x0, 0, B_FALSE, 0x0, 0 }, { 0, 0x0, 0x0, 0, B_FALSE, 0x0, 0 }, 0xffffa0894ebafe20, 61, 0, 663, { { { { 0 }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { { 0 } }, { 0xffffa0894e7205b0, 0xffffa0894e7205b0 } }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, 0x0 }, 0xffffa0894e6e7000, 62, 128, 1, 1, 0, 0xffffa0894e7e2000, 0xffffa0894e729ab8, 0x0 }, { { { { { 0 }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { { 0 } }, { 0xffffa0894e720610, 0xffffa0894e720610 } }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, 0x0 }, { 144, 128, { 0xffffa0894e720640, 0xffffa0894e720640 } } }, { { { { 0 }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { { 0 } }, { 0xffffa0894e720660, 0xffffa0894e720660 } }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, 0x0 }, { 144, 128, { 0xffffa0894e720690, 0xffffa0894e720690 } } }, { { { { 0 }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { { 0 } }, { 0xffffa0894e7206b0, 0xffffa0894e7206b0 } }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, 0x0 }, { 144, 128, { 0xffffa0894e7206e0, 0xffffa0894e7206e0 } } }, { { { { 0 }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { { 0 } }, { 0xffffa0894e720700, 0xffffa0894e720700 } }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, 0x0 }, { 144, 128, { 0xffffa0894e720730, 0xffffa0894e720730 } } } }, { { 29, 112, 247, 71, 99, 164, 207, 30, 255, 87, 208, 253, 109, 15, 114, 49, 67, 131, 175, 188, 191, 248, 108, 202, 190, 103, 0, 52, 8, 29, 38, 174 } }, { { { 0 }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { { 0 } }, { 0xffffa0894e720770, 0xffffa0894e720770 } }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, 0x0 }, {}, { 12235020, 5000, 663, 3533450148585366880, 1575590748, { { { { 1, 4194319 } }, { { 1, 5242895 } }, { { 1, 8388717 } } }, 9226476022604496903, {}, 0, 609, 67, { { 40974415172, 4306566583308, 230231255450404, 8348538084823175 } } }, 5000, 2703026705, 0, 0, 0 }, { 12235020, 5000, 663, 3533450148585366880, 1575590748, { { { { 1, 4194319 } }, { { 1, 5242895 } }, { { 1, 8388717 } } }, 9226476022604496903, {}, 0, 609, 67, { { 40974415172, 4306566583308, 230231255450404, 8348538084823175 } } }, 5000, 2703026705, 0, 0, 0 }, B_FALSE, { { { 0 }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { { 0 } }, { 0xffffa0894e7209b8, 0xffffa0894e7209b8 } }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, 0x0 }, 0, 0, { 879052276, { { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { 0xffffa0894e7209f8, 0xffffa0894e7209f8 } }, { { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { 0xffffa0894e720a10, 0xffffa0894e720a10 } }, { 1 }, { 0 }, 0x0 }, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, B_FALSE, { { { 0 }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { { 0 } }, { 0xffffa0894e720a78, 0xffffa0894e720a78 } }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, 0x0 }, 0x0, 0, { 879052276, { { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { 0xffffa0894e720ab8, 0xffffa0894e720ab8 } }, { { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { 0xffffa0894e720ad0, 0xffffa0894e720ad0 } }, { 1 }, { 0 }, 0x0 }, 0, 0, 0, { 0, 18446744073709551615, 18446744073709551615, 0, 0, 0, 0 }, 0x0, { 0, 0, 0 }, 0x0, 0xffffa0894e7ee600, 0, { 0, 0 }, 0xffffa0894e7ef800, 0x0, { 0xffffa0894b3e32e0, 0xffffffffc0591f90, 32, 9, 56 }, { { { 0 }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { { 0 } }, { 0xffffa0894e720bd0, 0xffffa0894e720bd0 } }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, 0x0 }, { 0xffffa0894e6e3fb0, 0xffffffffc0569820, 1968, 15, 2048 }, { 456, 1000, 9 }, { 40, 24, { 0xffffa08942af7c98, 0xffffa08942af7c98 } }, 0, 0xffffa0894e7ef000, 0xffffa0894e7ef400, 0, { 0x0, 0x0, 0x0, B_FALSE, B_FALSE }, 0x0, 0, 0, 0, 0, 0, 1575588901, 0, 0, 602, { { { 0 }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { { 0 } }, { 0xffffa0894e720cf0, 0xffffa0894e720cf0 } }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, 0x0 }, 0, 0, { { { 0 }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { { 0 } }, { 0xffffa0894e720d30, 0xffffa0894e720d30 } }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, 0x0 }, { 0x0, 0xffffffffc057b9a0, 40, 0, 64 }, { 0x0, 0xffffffffc057b9a0, 40, 0, 64 }, 1, 60, { { { 0 }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { { 0 } }, { 0xffffa0894e720dc0, 0xffffa0894e720dc0 } }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, 0x0 }, 0x0, { { { 0 }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { { 0 } }, { 0xffffa0894e720df8, 0xffffa0894e720df8 } }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, 0x0 }, 0, 0, 0, 0, 1, { 24, 0, { 0xffffa08954d6a480, 0xffffa08954d6a480 } }, 0xffffa08942a76700, 0x0, { 0xffffa0895f2ec9c0, 0xffffa089469184e0, 0xffffa0895f2e9860, 0xffffa0884093c9c0 }, { { { 0 }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { { 0 } }, { 0xffffa0894e720ea0, 0xffffa0894e720ea0 } }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, 0x0 }, { 879052276, { { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { 0xffffa0894e720ed0, 0xffffa0894e720ed0 } }, { { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { 0xffffa0894e720ee8, 0xffffa0894e720ee8 } }, { 1 }, { 0 }, 0x0 }, ZIO_SUSPEND_NONE, 0, B_FALSE, 11, 3, SPA_LOG_GOOD, 0, { 0xffffa0895be8c2c0, 0xffffa0895be92400, 0xffffa0895be98540, 0xffffa0895be9e680, 0xffffa0895bea47c0, 0xffffa0895beaa900, 0xffffa08953680040, 0xffffa08953686180, 0xffffa0895368c2c0, 0xffffa08953692400, 0xffffa08953698540, 0xffffa0895369e680, 0xffffa089536a47c0, 0xffffa089536aa900 }, 0, 0, 8, 8053063680, { { { 0 }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { { 0 } }, { 0xffffa0894e720fc8, 0xffffa0894e720fc8 } }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, 0x0 }, { { { 0 }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { { 0 } }, { 0xffffa0894e720ff8, 0xffffa0894e720ff8 } }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, 0x0 }, { 879052276, { { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { 0xffffa0894e721028, 0xffffa0894e721028 } }, { { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { 0xffffa0894e721040, 0xffffa0894e721040 } }, { 1 }, { 0 }, 0x0 }, SPA_PROC_NONE, 0xffffffffc0403fc0, 0, B_FALSE, 0, 5000, 5000, 52, 51, 53, 63, { { { 0 }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { { 0 } }, { 0xffffa0894e7210c0, 0xffffa0894e7210c0 } }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, 0x0 }, 0xffffa089537d3580, { 0, 0, 1, 0, 24, 26, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1 }, 0, 0, 300000723999, 600000000000, 300000000000, 64, AVZ_ACTION_NONE, 0, 0, { { 0, { 0xffffa0894e721228, { { { 0 }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { { 0 } }, { 0xffffa0894e721248, 0xffffa0894e721248 } }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, 0x0 }, { 112, 88, { 0xffffa0894e721278, 0xffffa0894e721278 } }, 1, 0xffffffffc05fa130, 0xffffffffc05fa0d0, 0xffffffffc05fa9b0, 88, { "reads", "zfs/data", 0xffffa0894c273c00, { 0xffffa0894e721760, 0xffffa0894c273d10 }, 0xffffa0893a4476c0 } } }, { 58, { 0xffffa0894e7214d0, { { { 0 }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { { 0 } }, { 0xffffa0894e7214f0, 0xffffa0894e7214f0 } }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, 0x0 }, { 120, 96, { 0xffffa0894b2786e0, 0xffffa0888d2848e0 } }, 59, 0xffffffffc05fa1d0, 0xffffffffc05fa170, 0xffffffffc05faa20, 96, { "txgs", "zfs/data", 0xffffa0894c273c00, { 0xffffa089364fdbb0, 0xffffa0894e7214b8 }, 0xffffa0893a447e40 } } }, { { { { 0 }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { { 0 } }, { 0xffffa0894e721788, 0xffffa0894e721788 } }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, 0x0 }, 42, 11424, 0xffffa089364fd800, 0xffffa0894e7b8000, { 0, 0, { 0x0, 0x0 } } }, { { { { 0 }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { { 0 } }, { 0xffffa0894e7217f8, 0xffffa0894e7217f8 } }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, 0x0 }, 0, 0, 0xffffa089364ff800, 0x0, { 0, 0, { 0x0, 0x0 } } }, { 0, { 0xffffa0894e721858, { { { 0 }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { { 0 } }, { 0xffffa0894e721878, 0xffffa0894e721878 } }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, 0x0 }, { 96, 72, { 0xffffa0894e7218a8, 0xffffa0894e7218a8 } }, 1, 0xffffffffc05fa2d0, 0xffffffffc05fa280, 0xffffffffc05faa90, 72, { "multihost", "zfs/data", 0xffffa0894c273c00, { 0xffffa089364fd7b0, 0xffffa089364ffbb0 }, 0xffffa0893a4473c0 } } }, { { { { 0 }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { { 0 } }, { 0xffffa0894e721b10, 0xffffa0894e721b10 } }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, 0x0 }, 0, 0, 0xffffa089364fd400, 0x0, { 0, 0, { 0x0, 0x0 } } }, { { { { 0 }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { { 0 } }, { 0xffffa0894e721b80, 0xffffa0894e721b80 } }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, 0x0 }, 0, 0, 0xffffa089364fec00, 0x0, { 0, 0, { 0x0, 0x0 } } } }, { { { { 0 }, { 0xffffa0894e721be8, 0xffffa0894e721be8 }, { { { { 0 }, { 0, 0 }, { 0, 0 } } } }, { { 0 } }, 0x0 }, 0x0 }, { 0x0, 0xffffffffc0535e90, 0, 0, 328 }, { { { 0 }, { 0xffffa0894e721c40, 0xffffa0894e721c40 }, { { { { 0 }, { 0, 0 }, { 0, 0 } } } }, { { 0 } }, 0x0 }, 0x0 }, { 0x0, 0xffffffffc0535ec0, 0, 0, 48 }, { { { 0 }, { 0xffffa0894e721c98, 0xffffa0894e721c98 }, { { { { 0 }, { 0, 0 }, { 0, 0 } } } }, { { 0 } }, 0x0 }, 0x0 }, { 0x0, 0xffffffffc0535ef0, 0, 0, 88 } }, 0, 0, 0, 0xffffa08951c5b200, 0xffffa08951c5be00, 0, { { { { 0 }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { { 0 } }, { 0xffffa0894e721d28, 0xffffa0894e721d28 } }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, 0x0 }, { 879052276, { { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { 0xffffb38f02c53db8, 0xffffb38f02c53db8 } }, { { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { 0xffffa0894e721d70, 0xffffa0894e721d70 } }, { 2 }, { 1 }, 0xffffa0894e721d18 }, 0xffffa089553adc00, 0, { { { 0 }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { { 0 } }, { 0xffffa0894e721db0, 0xffffa0894e721db0 } }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, 0x0 }, 28026656746, 1000000000, { 0, 0, 0, 0, 0, { {}, 0, {}, 0, 0, 0, { {} } }, 0, 0, 0, 0, 0 }, 0x0, 1, 0, 0x0, 0, 0 }, { 14440, 14120, { 0xffffa08949e5b728, 0xffffa08948afb728 } }, 9, 0, { { { 0 }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { { 0 } }, { 0xffffa0894e721f20, 0xffffa0894e721f20 } }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, 0x0 }, { 879052276, { { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { 0xffffa0894e721f50, 0xffffa0894e721f50 } }, { { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { 0xffffa0894e721f68, 0xffffa0894e721f68 } }, { 1 }, { 0 }, 0x0 }, { 879052276, { { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { 0xffffa0894e721f98, 0xffffa0894e721f98 } }, { { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { 0xffffa0894e721fb0, 0xffffa0894e721fb0 } }, { 1 }, { 0 }, 0x0 }, 0, B_FALSE, { { { { { 0 }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { { 0 } }, { 0xffffa0894e721fe8, 0xffffa0894e721fe8 } }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, 0x0 }, 0x0, 0, { 879052276, { { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { 0xffffa0894e722028, 0xffffa0894e722028 } }, { { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { 0xffffa0894e722040, 0xffffa0894e722040 } }, { 1 }, { 0 }, 0x0 }, { 0 } }, { { { { 0 }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { { 0 } }, { 0xffffa0894e722078, 0xffffa0894e722078 } }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, 0x0 }, 0x0, 0, { 879052276, { { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { 0xffffa0894e7220b8, 0xffffa0894e7220b8 } }, { { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { 0xffffa0894e7220d0, 0xffffa0894e7220d0 } }, { 1 }, { 0 }, 0x0 }, { 0 } }, { { { { 0 }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { { 0 } }, { 0xffffa0894e722108, 0xffffa0894e722108 } }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, 0x0 }, 0x0, 0, { 879052276, { { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { 0xffffa0894e722148, 0xffffa0894e722148 } }, { { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { 0xffffa0894e722160, 0xffffa0894e722160 } }, { 1 }, { 0 }, 0x0 }, { 0 } }, { { { { 0 }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { { 0 } }, { 0xffffa0894e722198, 0xffffa0894e722198 } }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, 0x0 }, 0x0, 0, { 879052276, { { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { 0xffffa0894e7221d8, 0xffffa0894e7221d8 } }, { { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { 0xffffa0894e7221f0, 0xffffa0894e7221f0 } }, { 1 }, { 0 }, 0x0 }, { 0 } }, { { { { 0 }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { { 0 } }, { 0xffffa0894e722228, 0xffffa0894e722228 } }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, 0x0 }, 0x0, 0, { 879052276, { { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { 0xffffa0894e722268, 0xffffa0894e722268 } }, { { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { 0xffffa0894e722280, 0xffffa0894e722280 } }, { 1 }, { 0 }, 0x0 }, { 0 } }, { { { { 0 }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { { 0 } }, { 0xffffa0894e7222b8, 0xffffa0894e7222b8 } }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, 0x0 }, 0x0, 0, { 879052276, { { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { 0xffffa0894e7222f8, 0xffffa0894e7222f8 } }, { { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { 0xffffa0894e722310, 0xffffa0894e722310 } }, { 1 }, { 0 }, 0x0 }, { 0 } }, { { { { 0 }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { { 0 } }, { 0xffffa0894e722348, 0xffffa0894e722348 } }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, 0x0 }, 0x0, 0, { 879052276, { { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { 0xffffa0894e722388, 0xffffa0894e722388 } }, { { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { 0xffffa0894e7223a0, 0xffffa0894e7223a0 } }, { 1 }, { 0 }, 0x0 }, { 0 } } }, { 12 }, 0xffffa08951c5b500 } +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/core/spa | head 1 | deref | print -rs b/tests/integration/data/regression_output/dump.201912060006/core/spa | head 1 | deref | print -rs index a24b7615..4305d41b 100644 --- a/tests/integration/data/regression_output/dump.201912060006/core/spa | head 1 | deref | print -rs +++ b/tests/integration/data/regression_output/dump.201912060006/core/spa | head 1 | deref | print -rs @@ -1 +1,3 @@ { .spa_name = "data", .spa_comment = 0x0, .spa_avl = { .avl_child = {}, .avl_pcb = 18446639110098223369 }, .spa_config = 0xffffa0894b2ee120, .spa_config_syncing = 0x0, .spa_config_splitting = 0x0, .spa_load_info = 0xffffa08933526f80, .spa_config_txg = 609, .spa_sync_pass = 0, .spa_state = POOL_STATE_ACTIVE, .spa_inject_ref = 0, .spa_sync_on = 1, .spa_load_state = SPA_LOAD_NONE, .spa_indirect_vdevs_loaded = B_TRUE, .spa_trust_config = B_TRUE, .spa_config_source = SPA_CONFIG_SRC_MOS, .spa_import_flags = 8, .spa_zio_taskq = { [0] = { [0] = { .stqs_count = 1, .stqs_taskq = 0xffffa089369e8de0 }, [2] = { .stqs_count = 1, .stqs_taskq = 0xffffa089369e8b08 } }, [1] = { [0] = { .stqs_count = 1, .stqs_taskq = 0xffffa089369e8a98 }, [2] = { .stqs_count = 8, .stqs_taskq = 0xffffa0894b62a080 } }, [2] = { [0] = { .stqs_count = 1, .stqs_taskq = 0xffffa089369e87c8 }, [1] = { .stqs_count = 1, .stqs_taskq = 0xffffa089369e8e48 }, [2] = { .stqs_count = 8, .stqs_taskq = 0xffffa0894b62a1c0 }, [3] = { .stqs_count = 1, .stqs_taskq = 0xffffa089369e8c78 } }, [3] = { [0] = { .stqs_count = 8, .stqs_taskq = 0xffffa0894b62a3c0 }, [2] = { .stqs_count = 1, .stqs_taskq = 0xffffa089369e8920 } }, [4] = { [0] = { .stqs_count = 1, .stqs_taskq = 0xffffa089369e8f08 }, [2] = { .stqs_count = 1, .stqs_taskq = 0xffffa089369e8f40 } }, [5] = { [0] = { .stqs_count = 1, .stqs_taskq = 0xffffa089369e8eb8 }, [2] = { .stqs_count = 1, .stqs_taskq = 0xffffa089369e8660 } }, [6] = { [0] = { .stqs_count = 1, .stqs_taskq = 0xffffa089369e8a28 }, [2] = { .stqs_count = 1, .stqs_taskq = 0xffffa089369e8e88 } } }, .spa_dsl_pool = 0xffffa0894e6e5000, .spa_is_initializing = B_FALSE, .spa_is_exporting = B_FALSE, .spa_normal_class = 0xffffa089364ff000, .spa_log_class = 0xffffa089364ff400, .spa_log_devices = 1, .spa_special_class = 0xffffa089364fe000, .spa_dedup_class = 0xffffa089364fc000, .spa_first_txg = 606, .spa_final_txg = 18446744073709551615, .spa_freeze_txg = 18446744073709551615, .spa_load_max_txg = 18446744073709551615, .spa_claim_max_txg = 606, .spa_loaded_ts = { .tv_sec = 1575590476, .tv_nsec = 696651663 }, .spa_meta_objset = 0xffffa0894e6e7000, .spa_evicting_os_lock = { .m_mutex = { .owner = { .counter = 0 }, .wait_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .osq = { .tail = { .counter = 0 } }, .wait_list = { .next = 0xffffa0894e7203b8, .prev = 0xffffa0894e7203b8 } }, .m_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .m_owner = 0x0 }, .spa_evicting_os_list = { .list_size = 1392, .list_offset = 624, .list_head = { .next = 0xffffa0894e7203e8, .prev = 0xffffa0894e7203e8 } }, .spa_evicting_os_cv = { .cv_magic = 879052276, .cv_event = { .lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .head = { .next = 0xffffa0894e720408, .prev = 0xffffa0894e720408 } }, .cv_destroy = { .lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .head = { .next = 0xffffa0894e720420, .prev = 0xffffa0894e720420 } }, .cv_refs = { .counter = 1 }, .cv_waiters = { .counter = 0 }, .cv_mutex = 0x0 }, .spa_vdev_txg_list = { .tl_lock = { .m_mutex = { .owner = { .counter = 0 }, .wait_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .osq = { .tail = { .counter = 0 } }, .wait_list = { .next = 0xffffa0894e720450, .prev = 0xffffa0894e720450 } }, .m_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .m_owner = 0x0 }, .tl_offset = 10584, .tl_spa = 0xffffa0894e720000, .tl_head = {} }, .spa_root_vdev = 0xffffa089486fc000, .spa_min_ashift = 9, .spa_max_ashift = 9, .spa_config_guid = 16281744902661189000, .spa_load_guid = 14471461212339565814, .spa_last_synced_guid = 16281744902661189000, .spa_config_dirty_list = { .list_size = 14440, .list_offset = 10632, .list_head = { .next = 0xffffa0894e7204d8, .prev = 0xffffa0894e7204d8 } }, .spa_state_dirty_list = { .list_size = 14440, .list_offset = 10648, .list_head = { .next = 0xffffa0894e7204f8, .prev = 0xffffa0894e7204f8 } }, .spa_alloc_locks = 0xffffa089351f8000, .spa_alloc_trees = 0xffffa089351f8240, .spa_alloc_count = 4, .spa_spares = { .sav_object = 0, .sav_config = 0x0, .sav_vdevs = 0x0, .sav_count = 0, .sav_sync = B_FALSE, .sav_pending = 0x0, .sav_npending = 0 }, .spa_l2cache = { .sav_object = 0, .sav_config = 0x0, .sav_vdevs = 0x0, .sav_count = 0, .sav_sync = B_FALSE, .sav_pending = 0x0, .sav_npending = 0 }, .spa_label_features = 0xffffa0894ebafe20, .spa_config_object = 61, .spa_config_generation = 0, .spa_syncing_txg = 663, .spa_deferred_bpobj = { .bpo_lock = { .m_mutex = { .owner = { .counter = 0 }, .wait_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .osq = { .tail = { .counter = 0 } }, .wait_list = { .next = 0xffffa0894e7205b0, .prev = 0xffffa0894e7205b0 } }, .m_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .m_owner = 0x0 }, .bpo_os = 0xffffa0894e6e7000, .bpo_object = 62, .bpo_epb = 128, .bpo_havecomp = 1, .bpo_havesubobj = 1, .bpo_havefreed = 0, .bpo_phys = 0xffffa0894e7e2000, .bpo_dbuf = 0xffffa0894e729ab8, .bpo_cached_dbuf = 0x0 }, .spa_free_bplist = { [0] = { .bpl_lock = { .m_mutex = { .owner = { .counter = 0 }, .wait_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .osq = { .tail = { .counter = 0 } }, .wait_list = { .next = 0xffffa0894e720610, .prev = 0xffffa0894e720610 } }, .m_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .m_owner = 0x0 }, .bpl_list = { .list_size = 144, .list_offset = 128, .list_head = { .next = 0xffffa0894e720640, .prev = 0xffffa0894e720640 } } }, [1] = { .bpl_lock = { .m_mutex = { .owner = { .counter = 0 }, .wait_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .osq = { .tail = { .counter = 0 } }, .wait_list = { .next = 0xffffa0894e720660, .prev = 0xffffa0894e720660 } }, .m_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .m_owner = 0x0 }, .bpl_list = { .list_size = 144, .list_offset = 128, .list_head = { .next = 0xffffa0894e720690, .prev = 0xffffa0894e720690 } } }, [2] = { .bpl_lock = { .m_mutex = { .owner = { .counter = 0 }, .wait_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .osq = { .tail = { .counter = 0 } }, .wait_list = { .next = 0xffffa0894e7206b0, .prev = 0xffffa0894e7206b0 } }, .m_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .m_owner = 0x0 }, .bpl_list = { .list_size = 144, .list_offset = 128, .list_head = { .next = 0xffffa0894e7206e0, .prev = 0xffffa0894e7206e0 } } }, [3] = { .bpl_lock = { .m_mutex = { .owner = { .counter = 0 }, .wait_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .osq = { .tail = { .counter = 0 } }, .wait_list = { .next = 0xffffa0894e720700, .prev = 0xffffa0894e720700 } }, .m_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .m_owner = 0x0 }, .bpl_list = { .list_size = 144, .list_offset = 128, .list_head = { .next = 0xffffa0894e720730, .prev = 0xffffa0894e720730 } } } }, .spa_cksum_salt = { .zcs_bytes = { [0] = 29, [1] = 112, [2] = 247, [3] = 71, [4] = 99, [5] = 164, [6] = 207, [7] = 30, [8] = 255, [9] = 87, [10] = 208, [11] = 253, [12] = 109, [13] = 15, [14] = 114, [15] = 49, [16] = 67, [17] = 131, [18] = 175, [19] = 188, [20] = 191, [21] = 248, [22] = 108, [23] = 202, [24] = 190, [25] = 103, [27] = 52, [28] = 8, [29] = 29, [30] = 38, [31] = 174 } }, .spa_cksum_tmpls_lock = { .m_mutex = { .owner = { .counter = 0 }, .wait_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .osq = { .tail = { .counter = 0 } }, .wait_list = { .next = 0xffffa0894e720770, .prev = 0xffffa0894e720770 } }, .m_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .m_owner = 0x0 }, .spa_cksum_tmpls = {}, .spa_ubsync = { .ub_magic = 12235020, .ub_version = 5000, .ub_txg = 663, .ub_guid_sum = 3533450148585366880, .ub_timestamp = 1575590748, .ub_rootbp = { .blk_dva = { [0] = { .dva_word = { [0] = 1, [1] = 4194319 } }, [1] = { .dva_word = { [0] = 1, [1] = 5242895 } }, [2] = { .dva_word = { [0] = 1, [1] = 8388717 } } }, .blk_prop = 9226476022604496903, .blk_pad = {}, .blk_phys_birth = 0, .blk_birth = 609, .blk_fill = 67, .blk_cksum = { .zc_word = { [0] = 40974415172, [1] = 4306566583308, [2] = 230231255450404, [3] = 8348538084823175 } } }, .ub_software_version = 5000, .ub_mmp_magic = 2703026705, .ub_mmp_delay = 0, .ub_mmp_config = 0, .ub_checkpoint_txg = 0 }, .spa_uberblock = { .ub_magic = 12235020, .ub_version = 5000, .ub_txg = 663, .ub_guid_sum = 3533450148585366880, .ub_timestamp = 1575590748, .ub_rootbp = { .blk_dva = { [0] = { .dva_word = { [0] = 1, [1] = 4194319 } }, [1] = { .dva_word = { [0] = 1, [1] = 5242895 } }, [2] = { .dva_word = { [0] = 1, [1] = 8388717 } } }, .blk_prop = 9226476022604496903, .blk_pad = {}, .blk_phys_birth = 0, .blk_birth = 609, .blk_fill = 67, .blk_cksum = { .zc_word = { [0] = 40974415172, [1] = 4306566583308, [2] = 230231255450404, [3] = 8348538084823175 } } }, .ub_software_version = 5000, .ub_mmp_magic = 2703026705, .ub_mmp_delay = 0, .ub_mmp_config = 0, .ub_checkpoint_txg = 0 }, .spa_extreme_rewind = B_FALSE, .spa_scrub_lock = { .m_mutex = { .owner = { .counter = 0 }, .wait_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .osq = { .tail = { .counter = 0 } }, .wait_list = { .next = 0xffffa0894e7209b8, .prev = 0xffffa0894e7209b8 } }, .m_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .m_owner = 0x0 }, .spa_scrub_inflight = 0, .spa_load_verify_bytes = 0, .spa_scrub_io_cv = { .cv_magic = 879052276, .cv_event = { .lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .head = { .next = 0xffffa0894e7209f8, .prev = 0xffffa0894e7209f8 } }, .cv_destroy = { .lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .head = { .next = 0xffffa0894e720a10, .prev = 0xffffa0894e720a10 } }, .cv_refs = { .counter = 1 }, .cv_waiters = { .counter = 0 }, .cv_mutex = 0x0 }, .spa_scrub_active = 0, .spa_scrub_type = 0, .spa_scrub_finished = 0, .spa_scrub_started = 0, .spa_scrub_reopen = 0, .spa_scan_pass_start = 0, .spa_scan_pass_scrub_pause = 0, .spa_scan_pass_scrub_spent_paused = 0, .spa_scan_pass_exam = 0, .spa_scan_pass_issued = 0, .spa_resilver_deferred = B_FALSE, .spa_async_lock = { .m_mutex = { .owner = { .counter = 0 }, .wait_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .osq = { .tail = { .counter = 0 } }, .wait_list = { .next = 0xffffa0894e720a78, .prev = 0xffffa0894e720a78 } }, .m_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .m_owner = 0x0 }, .spa_async_thread = 0x0, .spa_async_suspended = 0, .spa_async_cv = { .cv_magic = 879052276, .cv_event = { .lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .head = { .next = 0xffffa0894e720ab8, .prev = 0xffffa0894e720ab8 } }, .cv_destroy = { .lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .head = { .next = 0xffffa0894e720ad0, .prev = 0xffffa0894e720ad0 } }, .cv_refs = { .counter = 1 }, .cv_waiters = { .counter = 0 }, .cv_mutex = 0x0 }, .spa_async_tasks = 0, .spa_missing_tvds = 0, .spa_missing_tvds_allowed = 0, .spa_removing_phys = { .sr_state = 0, .sr_removing_vdev = 18446744073709551615, .sr_prev_indirect_vdev = 18446744073709551615, .sr_start_time = 0, .sr_end_time = 0, .sr_to_copy = 0, .sr_copied = 0 }, .spa_vdev_removal = 0x0, .spa_condensing_indirect_phys = { .scip_vdev = 0, .scip_prev_obsolete_sm_object = 0, .scip_next_mapping_object = 0 }, .spa_condensing_indirect = 0x0, .spa_condense_zthr = 0xffffa0894e7ee600, .spa_checkpoint_txg = 0, .spa_checkpoint_info = { .sci_timestamp = 0, .sci_dspace = 0 }, .spa_checkpoint_discard_zthr = 0xffffa0894e7ef800, .spa_syncing_log_sm = 0x0, .spa_sm_logs_by_txg = { .avl_root = 0xffffa0894b3e32e0, .avl_compar = spa_log_sm_sort_by_txg+0x0 = 0xffffffffc0591f90, .avl_offset = 32, .avl_numnodes = 9, .avl_size = 56 }, .spa_flushed_ms_lock = { .m_mutex = { .owner = { .counter = 0 }, .wait_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .osq = { .tail = { .counter = 0 } }, .wait_list = { .next = 0xffffa0894e720bd0, .prev = 0xffffa0894e720bd0 } }, .m_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .m_owner = 0x0 }, .spa_metaslabs_by_flushed = { .avl_root = 0xffffa0894e6e3fb0, .avl_compar = metaslab_sort_by_flushed+0x0 = 0xffffffffc0569820, .avl_offset = 1968, .avl_numnodes = 15, .avl_size = 2048 }, .spa_unflushed_stats = { .sus_memused = 456, .sus_blocklimit = 1000, .sus_nblocks = 9 }, .spa_log_summary = { .list_size = 40, .list_offset = 24, .list_head = { .next = 0xffffa08942af7c98, .prev = 0xffffa08942af7c98 } }, .spa_log_flushall_txg = 0, .spa_livelist_delete_zthr = 0xffffa0894e7ef000, .spa_livelist_condense_zthr = 0xffffa0894e7ef400, .spa_livelists_to_delete = 0, .spa_to_condense = { .ds = 0x0, .first = 0x0, .next = 0x0, .syncing = B_FALSE, .cancelled = B_FALSE }, .spa_root = 0x0, .spa_ena = 0, .spa_last_open_failed = 0, .spa_last_ubsync_txg = 0, .spa_last_ubsync_txg_ts = 0, .spa_load_txg = 0, .spa_load_txg_ts = 1575588901, .spa_load_meta_errors = 0, .spa_load_data_errors = 0, .spa_verify_min_txg = 602, .spa_errlog_lock = { .m_mutex = { .owner = { .counter = 0 }, .wait_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .osq = { .tail = { .counter = 0 } }, .wait_list = { .next = 0xffffa0894e720cf0, .prev = 0xffffa0894e720cf0 } }, .m_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .m_owner = 0x0 }, .spa_errlog_last = 0, .spa_errlog_scrub = 0, .spa_errlist_lock = { .m_mutex = { .owner = { .counter = 0 }, .wait_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .osq = { .tail = { .counter = 0 } }, .wait_list = { .next = 0xffffa0894e720d30, .prev = 0xffffa0894e720d30 } }, .m_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .m_owner = 0x0 }, .spa_errlist_last = { .avl_root = 0x0, .avl_compar = spa_error_entry_compare+0x0 = 0xffffffffc057b9a0, .avl_offset = 40, .avl_numnodes = 0, .avl_size = 64 }, .spa_errlist_scrub = { .avl_root = 0x0, .avl_compar = spa_error_entry_compare+0x0 = 0xffffffffc057b9a0, .avl_offset = 40, .avl_numnodes = 0, .avl_size = 64 }, .spa_deflate = 1, .spa_history = 60, .spa_history_lock = { .m_mutex = { .owner = { .counter = 0 }, .wait_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .osq = { .tail = { .counter = 0 } }, .wait_list = { .next = 0xffffa0894e720dc0, .prev = 0xffffa0894e720dc0 } }, .m_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .m_owner = 0x0 }, .spa_pending_vdev = 0x0, .spa_props_lock = { .m_mutex = { .owner = { .counter = 0 }, .wait_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .osq = { .tail = { .counter = 0 } }, .wait_list = { .next = 0xffffa0894e720df8, .prev = 0xffffa0894e720df8 } }, .m_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .m_owner = 0x0 }, .spa_pool_props_object = 0, .spa_bootfs = 0, .spa_failmode = 0, .spa_deadman_failmode = 0, .spa_delegation = 1, .spa_config_list = { .list_size = 24, .list_offset = 0, .list_head = { .next = 0xffffa08954d6a480, .prev = 0xffffa08954d6a480 } }, .spa_async_zio_root = 0xffffa08942a76700, .spa_suspend_zio_root = 0x0, .spa_txg_zio = { [0] = 0xffffa0895f2ec9c0, [1] = 0xffffa089469184e0, [2] = 0xffffa0895f2e9860, [3] = 0xffffa0884093c9c0 }, .spa_suspend_lock = { .m_mutex = { .owner = { .counter = 0 }, .wait_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .osq = { .tail = { .counter = 0 } }, .wait_list = { .next = 0xffffa0894e720ea0, .prev = 0xffffa0894e720ea0 } }, .m_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .m_owner = 0x0 }, .spa_suspend_cv = { .cv_magic = 879052276, .cv_event = { .lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .head = { .next = 0xffffa0894e720ed0, .prev = 0xffffa0894e720ed0 } }, .cv_destroy = { .lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .head = { .next = 0xffffa0894e720ee8, .prev = 0xffffa0894e720ee8 } }, .cv_refs = { .counter = 1 }, .cv_waiters = { .counter = 0 }, .cv_mutex = 0x0 }, .spa_suspended = ZIO_SUSPEND_NONE, .spa_claiming = 0, .spa_is_root = B_FALSE, .spa_minref = 11, .spa_mode = 3, .spa_log_state = SPA_LOG_GOOD, .spa_autoexpand = 0, .spa_ddt = { [0] = 0xffffa0895be8c2c0, [1] = 0xffffa0895be92400, [2] = 0xffffa0895be98540, [3] = 0xffffa0895be9e680, [4] = 0xffffa0895bea47c0, [5] = 0xffffa0895beaa900, [6] = 0xffffa08953680040, [7] = 0xffffa08953686180, [8] = 0xffffa0895368c2c0, [9] = 0xffffa08953692400, [10] = 0xffffa08953698540, [11] = 0xffffa0895369e680, [12] = 0xffffa089536a47c0, [13] = 0xffffa089536aa900 }, .spa_ddt_stat_object = 0, .spa_dedup_dspace = 0, .spa_dedup_checksum = 8, .spa_dspace = 8053063680, .spa_vdev_top_lock = { .m_mutex = { .owner = { .counter = 0 }, .wait_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .osq = { .tail = { .counter = 0 } }, .wait_list = { .next = 0xffffa0894e720fc8, .prev = 0xffffa0894e720fc8 } }, .m_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .m_owner = 0x0 }, .spa_proc_lock = { .m_mutex = { .owner = { .counter = 0 }, .wait_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .osq = { .tail = { .counter = 0 } }, .wait_list = { .next = 0xffffa0894e720ff8, .prev = 0xffffa0894e720ff8 } }, .m_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .m_owner = 0x0 }, .spa_proc_cv = { .cv_magic = 879052276, .cv_event = { .lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .head = { .next = 0xffffa0894e721028, .prev = 0xffffa0894e721028 } }, .cv_destroy = { .lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .head = { .next = 0xffffa0894e721040, .prev = 0xffffa0894e721040 } }, .cv_refs = { .counter = 1 }, .cv_waiters = { .counter = 0 }, .cv_mutex = 0x0 }, .spa_proc_state = SPA_PROC_NONE, .spa_proc = p0+0x0 = 0xffffffffc0403fc0, .spa_did = 0, .spa_autoreplace = B_FALSE, .spa_vdev_locks = 0, .spa_creation_version = 5000, .spa_prev_software_version = 5000, .spa_feat_for_write_obj = 52, .spa_feat_for_read_obj = 51, .spa_feat_desc_obj = 53, .spa_feat_enabled_txg_obj = 63, .spa_feat_stats_lock = { .m_mutex = { .owner = { .counter = 0 }, .wait_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .osq = { .tail = { .counter = 0 } }, .wait_list = { .next = 0xffffa0894e7210c0, .prev = 0xffffa0894e7210c0 } }, .m_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .m_owner = 0x0 }, .spa_feat_stats = 0xffffa089537d3580, .spa_feat_refcount_cache = { [2] = 1, [4] = 24, [5] = 26, [6] = 1, [7] = 1, [8] = 1, [16] = 1, [18] = 1, [22] = 1, [29] = 1 }, .spa_deadman_tqid = 0, .spa_deadman_calls = 0, .spa_sync_starttime = 300000723999, .spa_deadman_synctime = 600000000000, .spa_deadman_ziotime = 300000000000, .spa_all_vdev_zaps = 64, .spa_avz_action = AVZ_ACTION_NONE, .spa_autotrim = 0, .spa_errata = 0, .spa_stats = { .read_history = { .size = 0, .procfs_list = { .pl_private = 0xffffa0894e721228, .pl_lock = { .m_mutex = { .owner = { .counter = 0 }, .wait_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .osq = { .tail = { .counter = 0 } }, .wait_list = { .next = 0xffffa0894e721248, .prev = 0xffffa0894e721248 } }, .m_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .m_owner = 0x0 }, .pl_list = { .list_size = 112, .list_offset = 88, .list_head = { .next = 0xffffa0894e721278, .prev = 0xffffa0894e721278 } }, .pl_next_id = 1, .pl_show = spa_read_history_show+0x0 = 0xffffffffc05fa130, .pl_show_header = spa_read_history_show_header+0x0 = 0xffffffffc05fa0d0, .pl_clear = spa_read_history_clear+0x0 = 0xffffffffc05fa9b0, .pl_node_offset = 88, .pl_kstat_entry = { .kpe_name = "reads", .kpe_module = "zfs/data", .kpe_owner = 0xffffa0894c273c00, .kpe_list = { .next = 0xffffa0894e721760, .prev = 0xffffa0894c273d10 }, .kpe_proc = 0xffffa0893a4476c0 } } }, .txg_history = { .size = 58, .procfs_list = { .pl_private = 0xffffa0894e7214d0, .pl_lock = { .m_mutex = { .owner = { .counter = 0 }, .wait_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .osq = { .tail = { .counter = 0 } }, .wait_list = { .next = 0xffffa0894e7214f0, .prev = 0xffffa0894e7214f0 } }, .m_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .m_owner = 0x0 }, .pl_list = { .list_size = 120, .list_offset = 96, .list_head = { .next = 0xffffa0894b2786e0, .prev = 0xffffa0888d2848e0 } }, .pl_next_id = 59, .pl_show = spa_txg_history_show+0x0 = 0xffffffffc05fa1d0, .pl_show_header = spa_txg_history_show_header+0x0 = 0xffffffffc05fa170, .pl_clear = spa_txg_history_clear+0x0 = 0xffffffffc05faa20, .pl_node_offset = 96, .pl_kstat_entry = { .kpe_name = "txgs", .kpe_module = "zfs/data", .kpe_owner = 0xffffa0894c273c00, .kpe_list = { .next = 0xffffa089364fdbb0, .prev = 0xffffa0894e7214b8 }, .kpe_proc = 0xffffa0893a447e40 } } }, .tx_assign_histogram = { .lock = { .m_mutex = { .owner = { .counter = 0 }, .wait_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .osq = { .tail = { .counter = 0 } }, .wait_list = { .next = 0xffffa0894e721788, .prev = 0xffffa0894e721788 } }, .m_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .m_owner = 0x0 }, .count = 42, .size = 11424, .kstat = 0xffffa089364fd800, .private = 0xffffa0894e7b8000, .list = { .list_size = 0, .list_offset = 0, .list_head = { .next = 0x0, .prev = 0x0 } } }, .io_history = { .lock = { .m_mutex = { .owner = { .counter = 0 }, .wait_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .osq = { .tail = { .counter = 0 } }, .wait_list = { .next = 0xffffa0894e7217f8, .prev = 0xffffa0894e7217f8 } }, .m_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .m_owner = 0x0 }, .count = 0, .size = 0, .kstat = 0xffffa089364ff800, .private = 0x0, .list = { .list_size = 0, .list_offset = 0, .list_head = { .next = 0x0, .prev = 0x0 } } }, .mmp_history = { .size = 0, .procfs_list = { .pl_private = 0xffffa0894e721858, .pl_lock = { .m_mutex = { .owner = { .counter = 0 }, .wait_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .osq = { .tail = { .counter = 0 } }, .wait_list = { .next = 0xffffa0894e721878, .prev = 0xffffa0894e721878 } }, .m_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .m_owner = 0x0 }, .pl_list = { .list_size = 96, .list_offset = 72, .list_head = { .next = 0xffffa0894e7218a8, .prev = 0xffffa0894e7218a8 } }, .pl_next_id = 1, .pl_show = spa_mmp_history_show+0x0 = 0xffffffffc05fa2d0, .pl_show_header = spa_mmp_history_show_header+0x0 = 0xffffffffc05fa280, .pl_clear = spa_mmp_history_clear+0x0 = 0xffffffffc05faa90, .pl_node_offset = 72, .pl_kstat_entry = { .kpe_name = "multihost", .kpe_module = "zfs/data", .kpe_owner = 0xffffa0894c273c00, .kpe_list = { .next = 0xffffa089364fd7b0, .prev = 0xffffa089364ffbb0 }, .kpe_proc = 0xffffa0893a4473c0 } } }, .state = { .lock = { .m_mutex = { .owner = { .counter = 0 }, .wait_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .osq = { .tail = { .counter = 0 } }, .wait_list = { .next = 0xffffa0894e721b10, .prev = 0xffffa0894e721b10 } }, .m_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .m_owner = 0x0 }, .count = 0, .size = 0, .kstat = 0xffffa089364fd400, .private = 0x0, .list = { .list_size = 0, .list_offset = 0, .list_head = { .next = 0x0, .prev = 0x0 } } }, .iostats = { .lock = { .m_mutex = { .owner = { .counter = 0 }, .wait_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .osq = { .tail = { .counter = 0 } }, .wait_list = { .next = 0xffffa0894e721b80, .prev = 0xffffa0894e721b80 } }, .m_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .m_owner = 0x0 }, .count = 0, .size = 0, .kstat = 0xffffa089364fec00, .private = 0x0, .list = { .list_size = 0, .list_offset = 0, .list_head = { .next = 0x0, .prev = 0x0 } } } }, .spa_keystore = { .sk_dk_lock = { .rw_rwlock = { .count = { .counter = 0 }, .wait_list = { .next = 0xffffa0894e721be8, .prev = 0xffffa0894e721be8 }, .wait_lock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } }, .osq = { .tail = { .counter = 0 } }, .owner = 0x0 }, .rw_owner = 0x0 }, .sk_dsl_keys = { .avl_root = 0x0, .avl_compar = spa_crypto_key_compare+0x0 = 0xffffffffc0535e90, .avl_offset = 0, .avl_numnodes = 0, .avl_size = 328 }, .sk_km_lock = { .rw_rwlock = { .count = { .counter = 0 }, .wait_list = { .next = 0xffffa0894e721c40, .prev = 0xffffa0894e721c40 }, .wait_lock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } }, .osq = { .tail = { .counter = 0 } }, .owner = 0x0 }, .rw_owner = 0x0 }, .sk_key_mappings = { .avl_root = 0x0, .avl_compar = spa_key_mapping_compare+0x0 = 0xffffffffc0535ec0, .avl_offset = 0, .avl_numnodes = 0, .avl_size = 48 }, .sk_wkeys_lock = { .rw_rwlock = { .count = { .counter = 0 }, .wait_list = { .next = 0xffffa0894e721c98, .prev = 0xffffa0894e721c98 }, .wait_lock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } }, .osq = { .tail = { .counter = 0 } }, .owner = 0x0 }, .rw_owner = 0x0 }, .sk_wkeys = { .avl_root = 0x0, .avl_compar = spa_wkey_compare+0x0 = 0xffffffffc0535ef0, .avl_offset = 0, .avl_numnodes = 0, .avl_size = 88 } }, .spa_lowmem_page_load = 0, .spa_lowmem_last_txg = 0, .spa_ccw_fail_time = 0, .spa_zvol_taskq = 0xffffa08951c5b200, .spa_prefetch_taskq = 0xffffa08951c5be00, .spa_multihost = 0, .spa_mmp = { .mmp_thread_lock = { .m_mutex = { .owner = { .counter = 0 }, .wait_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .osq = { .tail = { .counter = 0 } }, .wait_list = { .next = 0xffffa0894e721d28, .prev = 0xffffa0894e721d28 } }, .m_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .m_owner = 0x0 }, .mmp_thread_cv = { .cv_magic = 879052276, .cv_event = { .lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .head = { .next = 0xffffb38f02c53db8, .prev = 0xffffb38f02c53db8 } }, .cv_destroy = { .lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .head = { .next = 0xffffa0894e721d70, .prev = 0xffffa0894e721d70 } }, .cv_refs = { .counter = 2 }, .cv_waiters = { .counter = 1 }, .cv_mutex = 0xffffa0894e721d18 }, .mmp_thread = 0xffffa089553adc00, .mmp_thread_exiting = 0, .mmp_io_lock = { .m_mutex = { .owner = { .counter = 0 }, .wait_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .osq = { .tail = { .counter = 0 } }, .wait_list = { .next = 0xffffa0894e721db0, .prev = 0xffffa0894e721db0 } }, .m_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .m_owner = 0x0 }, .mmp_last_write = 28026656746, .mmp_delay = 1000000000, .mmp_ub = { .ub_magic = 0, .ub_version = 0, .ub_txg = 0, .ub_guid_sum = 0, .ub_timestamp = 0, .ub_rootbp = { .blk_dva = {}, .blk_prop = 0, .blk_pad = {}, .blk_phys_birth = 0, .blk_birth = 0, .blk_fill = 0, .blk_cksum = { .zc_word = {} } }, .ub_software_version = 0, .ub_mmp_magic = 0, .ub_mmp_delay = 0, .ub_mmp_config = 0, .ub_checkpoint_txg = 0 }, .mmp_zio_root = 0x0, .mmp_kstat_id = 1, .mmp_skip_error = 0, .mmp_last_leaf = 0x0, .mmp_leaf_last_gen = 0, .mmp_seq = 0 }, .spa_leaf_list = { .list_size = 14440, .list_offset = 14120, .list_head = { .next = 0xffffa08949e5b728, .prev = 0xffffa08948afb728 } }, .spa_leaf_list_gen = 9, .spa_hostid = 0, .spa_activities_lock = { .m_mutex = { .owner = { .counter = 0 }, .wait_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .osq = { .tail = { .counter = 0 } }, .wait_list = { .next = 0xffffa0894e721f20, .prev = 0xffffa0894e721f20 } }, .m_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .m_owner = 0x0 }, .spa_activities_cv = { .cv_magic = 879052276, .cv_event = { .lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .head = { .next = 0xffffa0894e721f50, .prev = 0xffffa0894e721f50 } }, .cv_destroy = { .lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .head = { .next = 0xffffa0894e721f68, .prev = 0xffffa0894e721f68 } }, .cv_refs = { .counter = 1 }, .cv_waiters = { .counter = 0 }, .cv_mutex = 0x0 }, .spa_waiters_cv = { .cv_magic = 879052276, .cv_event = { .lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .head = { .next = 0xffffa0894e721f98, .prev = 0xffffa0894e721f98 } }, .cv_destroy = { .lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .head = { .next = 0xffffa0894e721fb0, .prev = 0xffffa0894e721fb0 } }, .cv_refs = { .counter = 1 }, .cv_waiters = { .counter = 0 }, .cv_mutex = 0x0 }, .spa_waiters = 0, .spa_waiters_cancel = B_FALSE, .spa_config_lock = { [0] = { .scl_lock = { .m_mutex = { .owner = { .counter = 0 }, .wait_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .osq = { .tail = { .counter = 0 } }, .wait_list = { .next = 0xffffa0894e721fe8, .prev = 0xffffa0894e721fe8 } }, .m_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .m_owner = 0x0 }, .scl_writer = 0x0, .scl_write_wanted = 0, .scl_cv = { .cv_magic = 879052276, .cv_event = { .lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .head = { .next = 0xffffa0894e722028, .prev = 0xffffa0894e722028 } }, .cv_destroy = { .lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .head = { .next = 0xffffa0894e722040, .prev = 0xffffa0894e722040 } }, .cv_refs = { .counter = 1 }, .cv_waiters = { .counter = 0 }, .cv_mutex = 0x0 }, .scl_count = { .rc_count = 0 } }, [1] = { .scl_lock = { .m_mutex = { .owner = { .counter = 0 }, .wait_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .osq = { .tail = { .counter = 0 } }, .wait_list = { .next = 0xffffa0894e722078, .prev = 0xffffa0894e722078 } }, .m_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .m_owner = 0x0 }, .scl_writer = 0x0, .scl_write_wanted = 0, .scl_cv = { .cv_magic = 879052276, .cv_event = { .lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .head = { .next = 0xffffa0894e7220b8, .prev = 0xffffa0894e7220b8 } }, .cv_destroy = { .lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .head = { .next = 0xffffa0894e7220d0, .prev = 0xffffa0894e7220d0 } }, .cv_refs = { .counter = 1 }, .cv_waiters = { .counter = 0 }, .cv_mutex = 0x0 }, .scl_count = { .rc_count = 0 } }, [2] = { .scl_lock = { .m_mutex = { .owner = { .counter = 0 }, .wait_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .osq = { .tail = { .counter = 0 } }, .wait_list = { .next = 0xffffa0894e722108, .prev = 0xffffa0894e722108 } }, .m_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .m_owner = 0x0 }, .scl_writer = 0x0, .scl_write_wanted = 0, .scl_cv = { .cv_magic = 879052276, .cv_event = { .lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .head = { .next = 0xffffa0894e722148, .prev = 0xffffa0894e722148 } }, .cv_destroy = { .lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .head = { .next = 0xffffa0894e722160, .prev = 0xffffa0894e722160 } }, .cv_refs = { .counter = 1 }, .cv_waiters = { .counter = 0 }, .cv_mutex = 0x0 }, .scl_count = { .rc_count = 0 } }, [3] = { .scl_lock = { .m_mutex = { .owner = { .counter = 0 }, .wait_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .osq = { .tail = { .counter = 0 } }, .wait_list = { .next = 0xffffa0894e722198, .prev = 0xffffa0894e722198 } }, .m_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .m_owner = 0x0 }, .scl_writer = 0x0, .scl_write_wanted = 0, .scl_cv = { .cv_magic = 879052276, .cv_event = { .lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .head = { .next = 0xffffa0894e7221d8, .prev = 0xffffa0894e7221d8 } }, .cv_destroy = { .lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .head = { .next = 0xffffa0894e7221f0, .prev = 0xffffa0894e7221f0 } }, .cv_refs = { .counter = 1 }, .cv_waiters = { .counter = 0 }, .cv_mutex = 0x0 }, .scl_count = { .rc_count = 0 } }, [4] = { .scl_lock = { .m_mutex = { .owner = { .counter = 0 }, .wait_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .osq = { .tail = { .counter = 0 } }, .wait_list = { .next = 0xffffa0894e722228, .prev = 0xffffa0894e722228 } }, .m_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .m_owner = 0x0 }, .scl_writer = 0x0, .scl_write_wanted = 0, .scl_cv = { .cv_magic = 879052276, .cv_event = { .lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .head = { .next = 0xffffa0894e722268, .prev = 0xffffa0894e722268 } }, .cv_destroy = { .lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .head = { .next = 0xffffa0894e722280, .prev = 0xffffa0894e722280 } }, .cv_refs = { .counter = 1 }, .cv_waiters = { .counter = 0 }, .cv_mutex = 0x0 }, .scl_count = { .rc_count = 0 } }, [5] = { .scl_lock = { .m_mutex = { .owner = { .counter = 0 }, .wait_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .osq = { .tail = { .counter = 0 } }, .wait_list = { .next = 0xffffa0894e7222b8, .prev = 0xffffa0894e7222b8 } }, .m_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .m_owner = 0x0 }, .scl_writer = 0x0, .scl_write_wanted = 0, .scl_cv = { .cv_magic = 879052276, .cv_event = { .lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .head = { .next = 0xffffa0894e7222f8, .prev = 0xffffa0894e7222f8 } }, .cv_destroy = { .lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .head = { .next = 0xffffa0894e722310, .prev = 0xffffa0894e722310 } }, .cv_refs = { .counter = 1 }, .cv_waiters = { .counter = 0 }, .cv_mutex = 0x0 }, .scl_count = { .rc_count = 0 } }, [6] = { .scl_lock = { .m_mutex = { .owner = { .counter = 0 }, .wait_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .osq = { .tail = { .counter = 0 } }, .wait_list = { .next = 0xffffa0894e722348, .prev = 0xffffa0894e722348 } }, .m_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .m_owner = 0x0 }, .scl_writer = 0x0, .scl_write_wanted = 0, .scl_cv = { .cv_magic = 879052276, .cv_event = { .lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .head = { .next = 0xffffa0894e722388, .prev = 0xffffa0894e722388 } }, .cv_destroy = { .lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .head = { .next = 0xffffa0894e7223a0, .prev = 0xffffa0894e7223a0 } }, .cv_refs = { .counter = 1 }, .cv_waiters = { .counter = 0 }, .cv_mutex = 0x0 }, .scl_count = { .rc_count = 0 } } }, .spa_refcount = { .rc_count = 12 }, .spa_upgrade_taskq = 0xffffa08951c5b500 } +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/core/spa | head 1 | member spa_name[1] | print b/tests/integration/data/regression_output/dump.201912060006/core/spa | head 1 | member spa_name[1] | print index bde4c717..b906ba6f 100644 --- a/tests/integration/data/regression_output/dump.201912060006/core/spa | head 1 | member spa_name[1] | print +++ b/tests/integration/data/regression_output/dump.201912060006/core/spa | head 1 | member spa_name[1] | print @@ -1 +1,3 @@ (char)97 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/core/spa | head 1 | member spa_name[1] | print -c b/tests/integration/data/regression_output/dump.201912060006/core/spa | head 1 | member spa_name[1] | print -c index c986a5d0..0ba2b18a 100644 --- a/tests/integration/data/regression_output/dump.201912060006/core/spa | head 1 | member spa_name[1] | print -c +++ b/tests/integration/data/regression_output/dump.201912060006/core/spa | head 1 | member spa_name[1] | print -c @@ -1 +1,3 @@ (char)'a' +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/core/spa | head 1 | member spa_name[1] | print -cr b/tests/integration/data/regression_output/dump.201912060006/core/spa | head 1 | member spa_name[1] | print -cr index 67fe32da..5ad98ac7 100644 --- a/tests/integration/data/regression_output/dump.201912060006/core/spa | head 1 | member spa_name[1] | print -cr +++ b/tests/integration/data/regression_output/dump.201912060006/core/spa | head 1 | member spa_name[1] | print -cr @@ -1 +1,3 @@ 'a' +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/core/spa | head 1 | member spa_zio_taskq[0][0].stqs_taskq b/tests/integration/data/regression_output/dump.201912060006/core/spa | head 1 | member spa_zio_taskq[0][0].stqs_taskq index df2e19ad..62e2c9a9 100644 --- a/tests/integration/data/regression_output/dump.201912060006/core/spa | head 1 | member spa_zio_taskq[0][0].stqs_taskq +++ b/tests/integration/data/regression_output/dump.201912060006/core/spa | head 1 | member spa_zio_taskq[0][0].stqs_taskq @@ -1 +1,3 @@ (taskq_t **)0xffffa089369e8de0 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/core/spa | head 1 | member spa_zio_taskq[0][0].stqs_taskq[0] b/tests/integration/data/regression_output/dump.201912060006/core/spa | head 1 | member spa_zio_taskq[0][0].stqs_taskq[0] index d20c5331..3a1db000 100644 --- a/tests/integration/data/regression_output/dump.201912060006/core/spa | head 1 | member spa_zio_taskq[0][0].stqs_taskq[0] +++ b/tests/integration/data/regression_output/dump.201912060006/core/spa | head 1 | member spa_zio_taskq[0][0].stqs_taskq[0] @@ -1 +1,3 @@ (taskq_t *)0xffffa0893876bf00 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/core/spa | member spa_ubsync->ub_rootbp b/tests/integration/data/regression_output/dump.201912060006/core/spa | member spa_ubsync->ub_rootbp index e641dffd..a2b5fe74 100644 --- a/tests/integration/data/regression_output/dump.201912060006/core/spa | member spa_ubsync->ub_rootbp +++ b/tests/integration/data/regression_output/dump.201912060006/core/spa | member spa_ubsync->ub_rootbp @@ -1 +1,3 @@ sdb: member: 'typedef struct uberblock uberblock_t' is a struct - use the dot(.) notation for member access +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.201912060006/core/spa | member spa_ubsync.bogus b/tests/integration/data/regression_output/dump.201912060006/core/spa | member spa_ubsync.bogus index fe86be8f..9d1f7a65 100644 --- a/tests/integration/data/regression_output/dump.201912060006/core/spa | member spa_ubsync.bogus +++ b/tests/integration/data/regression_output/dump.201912060006/core/spa | member spa_ubsync.bogus @@ -1 +1,3 @@ sdb: member: 'uberblock_t' has no member 'bogus' +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.201912060006/core/spa | member spa_ubsync.ub_rootbp.blk_dva[0].dva_word b/tests/integration/data/regression_output/dump.201912060006/core/spa | member spa_ubsync.ub_rootbp.blk_dva[0].dva_word index dceaec62..54aede48 100644 --- a/tests/integration/data/regression_output/dump.201912060006/core/spa | member spa_ubsync.ub_rootbp.blk_dva[0].dva_word +++ b/tests/integration/data/regression_output/dump.201912060006/core/spa | member spa_ubsync.ub_rootbp.blk_dva[0].dva_word @@ -1,3 +1,5 @@ (uint64_t [2]){ 1, 4194319 } (uint64_t [2]){ 2, 2163730 } (uint64_t [2]){ 1, 15663270 } +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/core/spa | member spa_zio_taskq[0][0].stqs_taskq | array b/tests/integration/data/regression_output/dump.201912060006/core/spa | member spa_zio_taskq[0][0].stqs_taskq | array index 852eba97..d92d9b55 100644 --- a/tests/integration/data/regression_output/dump.201912060006/core/spa | member spa_zio_taskq[0][0].stqs_taskq | array +++ b/tests/integration/data/regression_output/dump.201912060006/core/spa | member spa_zio_taskq[0][0].stqs_taskq | array @@ -1 +1,3 @@ sdb: array: 'taskq_t **' is a pointer - please specify the number of elements +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.201912060006/core/spa | member spa_zio_taskq[0][0].stqs_taskq | array 2 b/tests/integration/data/regression_output/dump.201912060006/core/spa | member spa_zio_taskq[0][0].stqs_taskq | array 2 index dd730927..f56fe12f 100644 --- a/tests/integration/data/regression_output/dump.201912060006/core/spa | member spa_zio_taskq[0][0].stqs_taskq | array 2 +++ b/tests/integration/data/regression_output/dump.201912060006/core/spa | member spa_zio_taskq[0][0].stqs_taskq | array 2 @@ -4,3 +4,5 @@ (taskq_t *)0x87100a2a7aab6d9b (taskq_t *)0xffffa0895334d200 (taskq_t *)0x746c7561666564 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/core/spa | member spa_zio_taskq[0][0].stqs_taskq-> b/tests/integration/data/regression_output/dump.201912060006/core/spa | member spa_zio_taskq[0][0].stqs_taskq-> index 643f596c..ebc45236 100644 --- a/tests/integration/data/regression_output/dump.201912060006/core/spa | member spa_zio_taskq[0][0].stqs_taskq-> +++ b/tests/integration/data/regression_output/dump.201912060006/core/spa | member spa_zio_taskq[0][0].stqs_taskq-> @@ -1 +1,3 @@ sdb: member: no identifier specified after -> +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.201912060006/core/spa | member spa_zio_taskq[0][0].stqs_taskq. b/tests/integration/data/regression_output/dump.201912060006/core/spa | member spa_zio_taskq[0][0].stqs_taskq. index bb6f90a3..d8615951 100644 --- a/tests/integration/data/regression_output/dump.201912060006/core/spa | member spa_zio_taskq[0][0].stqs_taskq. +++ b/tests/integration/data/regression_output/dump.201912060006/core/spa | member spa_zio_taskq[0][0].stqs_taskq. @@ -1 +1,3 @@ sdb: member: no identifier specified after . +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.201912060006/core/spa | range_tree b/tests/integration/data/regression_output/dump.201912060006/core/spa | range_tree index 91a26850..16b41ebb 100644 --- a/tests/integration/data/regression_output/dump.201912060006/core/spa | range_tree +++ b/tests/integration/data/regression_output/dump.201912060006/core/spa | range_tree @@ -1 +1,3 @@ sdb: range_tree: expected input of type range_tree_t *, but received type spa_t * +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.201912060006/core/spa | vdev | metaslab | deref | sizeof | sum b/tests/integration/data/regression_output/dump.201912060006/core/spa | vdev | metaslab | deref | sizeof | sum index 8bae3206..66afb436 100644 --- a/tests/integration/data/regression_output/dump.201912060006/core/spa | vdev | metaslab | deref | sizeof | sum +++ b/tests/integration/data/regression_output/dump.201912060006/core/spa | vdev | metaslab | deref | sizeof | sum @@ -1 +1,3 @@ (uint64_t)368640 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/core/sum b/tests/integration/data/regression_output/dump.201912060006/core/sum index 8d8f8e43..4d8c136a 100644 --- a/tests/integration/data/regression_output/dump.201912060006/core/sum +++ b/tests/integration/data/regression_output/dump.201912060006/core/sum @@ -1 +1,3 @@ (uint64_t)0 +@#$ EXIT CODE $#@ +0 diff --git "a/tests/integration/data/regression_output/dump.201912060006/core/thread | filter \"obj.comm == \\\"bogus\\\"\" | thread" "b/tests/integration/data/regression_output/dump.201912060006/core/thread | filter \"obj.comm == \\\"bogus\\\"\" | thread" index ab7ddfc3..4f793a3a 100644 --- "a/tests/integration/data/regression_output/dump.201912060006/core/thread | filter \"obj.comm == \\\"bogus\\\"\" | thread" +++ "b/tests/integration/data/regression_output/dump.201912060006/core/thread | filter \"obj.comm == \\\"bogus\\\"\" | thread" @@ -1,2 +1,4 @@ task state pid prio comm cmdline ---- ----- --- ---- ---- ------- +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/core/threads | deref | sizeof | sum b/tests/integration/data/regression_output/dump.201912060006/core/threads | deref | sizeof | sum index a23552ef..6f4d465d 100644 --- a/tests/integration/data/regression_output/dump.201912060006/core/threads | deref | sizeof | sum +++ b/tests/integration/data/regression_output/dump.201912060006/core/threads | deref | sizeof | sum @@ -1 +1,3 @@ (uint64_t)5244096 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/core/threads | sizeof | sum b/tests/integration/data/regression_output/dump.201912060006/core/threads | sizeof | sum index d6fdeb70..ef08da8b 100644 --- a/tests/integration/data/regression_output/dump.201912060006/core/threads | sizeof | sum +++ b/tests/integration/data/regression_output/dump.201912060006/core/threads | sizeof | sum @@ -1 +1,3 @@ (uint64_t)4584 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/core/zfs_dbgmsg | filter '== obj' b/tests/integration/data/regression_output/dump.201912060006/core/zfs_dbgmsg | filter '== obj' index ea6dd70c..79cf39bf 100644 --- a/tests/integration/data/regression_output/dump.201912060006/core/zfs_dbgmsg | filter '== obj' +++ b/tests/integration/data/regression_output/dump.201912060006/core/zfs_dbgmsg | filter '== obj' @@ -1 +1,3 @@ sdb: filter: invalid input: left hand side of expression is missing +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.201912060006/core/zfs_dbgmsg | filter 'obj ==' b/tests/integration/data/regression_output/dump.201912060006/core/zfs_dbgmsg | filter 'obj ==' index 2777a82e..b65b0e49 100644 --- a/tests/integration/data/regression_output/dump.201912060006/core/zfs_dbgmsg | filter 'obj ==' +++ b/tests/integration/data/regression_output/dump.201912060006/core/zfs_dbgmsg | filter 'obj ==' @@ -1 +1,3 @@ sdb: filter: invalid input: right hand side of expression is missing +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.201912060006/core/zfs_dbgmsg | filter 'obj' b/tests/integration/data/regression_output/dump.201912060006/core/zfs_dbgmsg | filter 'obj' index fc761b9b..aea4edcc 100644 --- a/tests/integration/data/regression_output/dump.201912060006/core/zfs_dbgmsg | filter 'obj' +++ b/tests/integration/data/regression_output/dump.201912060006/core/zfs_dbgmsg | filter 'obj' @@ -1 +1,3 @@ sdb: filter: invalid input: comparison operator is missing +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.201912060006/core/zfs_dbgmsg | head 1 | member zdm_msg | array b/tests/integration/data/regression_output/dump.201912060006/core/zfs_dbgmsg | head 1 | member zdm_msg | array index 83108c97..199f4bd5 100644 --- a/tests/integration/data/regression_output/dump.201912060006/core/zfs_dbgmsg | head 1 | member zdm_msg | array +++ b/tests/integration/data/regression_output/dump.201912060006/core/zfs_dbgmsg | head 1 | member zdm_msg | array @@ -1 +1,3 @@ (char)115 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/core/zfs_dbgmsg | head 1 | member zdm_msg | array -1 b/tests/integration/data/regression_output/dump.201912060006/core/zfs_dbgmsg | head 1 | member zdm_msg | array -1 index e69de29b..77f91668 100644 --- a/tests/integration/data/regression_output/dump.201912060006/core/zfs_dbgmsg | head 1 | member zdm_msg | array -1 +++ b/tests/integration/data/regression_output/dump.201912060006/core/zfs_dbgmsg | head 1 | member zdm_msg | array -1 @@ -0,0 +1,2 @@ +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/core/zfs_dbgmsg | head 1 | member zdm_msg | array 0 b/tests/integration/data/regression_output/dump.201912060006/core/zfs_dbgmsg | head 1 | member zdm_msg | array 0 index e69de29b..77f91668 100644 --- a/tests/integration/data/regression_output/dump.201912060006/core/zfs_dbgmsg | head 1 | member zdm_msg | array 0 +++ b/tests/integration/data/regression_output/dump.201912060006/core/zfs_dbgmsg | head 1 | member zdm_msg | array 0 @@ -0,0 +1,2 @@ +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/core/zfs_dbgmsg | head 1 | member zdm_msg | array 2 b/tests/integration/data/regression_output/dump.201912060006/core/zfs_dbgmsg | head 1 | member zdm_msg | array 2 index f43fe3a1..22a6b557 100644 --- a/tests/integration/data/regression_output/dump.201912060006/core/zfs_dbgmsg | head 1 | member zdm_msg | array 2 +++ b/tests/integration/data/regression_output/dump.201912060006/core/zfs_dbgmsg | head 1 | member zdm_msg | array 2 @@ -1,3 +1,5 @@ warning: requested size 2 exceeds type size 1 (char)115 (char)112 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/core/zfs_dbgmsg | head 1 | member zdm_msg[2] b/tests/integration/data/regression_output/dump.201912060006/core/zfs_dbgmsg | head 1 | member zdm_msg[2] index 5dbcc210..e1535feb 100644 --- a/tests/integration/data/regression_output/dump.201912060006/core/zfs_dbgmsg | head 1 | member zdm_msg[2] +++ b/tests/integration/data/regression_output/dump.201912060006/core/zfs_dbgmsg | head 1 | member zdm_msg[2] @@ -1,2 +1,4 @@ warning: member: index out of bounds for array of type 'char [1]' (requested index: 2) (char)97 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/linux/addr init_task | member comm | addr | container_of bogus_type comm | cast void * b/tests/integration/data/regression_output/dump.201912060006/linux/addr init_task | member comm | addr | container_of bogus_type comm | cast void * index 24d3c12c..680a3717 100644 --- a/tests/integration/data/regression_output/dump.201912060006/linux/addr init_task | member comm | addr | container_of bogus_type comm | cast void * +++ b/tests/integration/data/regression_output/dump.201912060006/linux/addr init_task | member comm | addr | container_of bogus_type comm | cast void * @@ -1 +1,3 @@ sdb: container_of: couldn't find typedef, struct, enum, nor union named 'bogus_type' +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.201912060006/linux/addr init_task | member comm | addr | container_of int comm | cast void * b/tests/integration/data/regression_output/dump.201912060006/linux/addr init_task | member comm | addr | container_of int comm | cast void * index 7329f422..d4c8f381 100644 --- a/tests/integration/data/regression_output/dump.201912060006/linux/addr init_task | member comm | addr | container_of int comm | cast void * +++ b/tests/integration/data/regression_output/dump.201912060006/linux/addr init_task | member comm | addr | container_of int comm | cast void * @@ -1 +1,3 @@ sdb: container_of: int is not a struct nor a typedef to a struct +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.201912060006/linux/addr init_task | member comm | addr | container_of pid comm | cast void * b/tests/integration/data/regression_output/dump.201912060006/linux/addr init_task | member comm | addr | container_of pid comm | cast void * index 9f234c7b..c8ba3d04 100644 --- a/tests/integration/data/regression_output/dump.201912060006/linux/addr init_task | member comm | addr | container_of pid comm | cast void * +++ b/tests/integration/data/regression_output/dump.201912060006/linux/addr init_task | member comm | addr | container_of pid comm | cast void * @@ -1 +1,3 @@ sdb: container_of: 'struct pid' has no member 'comm' +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.201912060006/linux/addr init_task | member comm | addr | container_of task_struct bogus_member | cast void * b/tests/integration/data/regression_output/dump.201912060006/linux/addr init_task | member comm | addr | container_of task_struct bogus_member | cast void * index 9e574ce9..988cbf9e 100644 --- a/tests/integration/data/regression_output/dump.201912060006/linux/addr init_task | member comm | addr | container_of task_struct bogus_member | cast void * +++ b/tests/integration/data/regression_output/dump.201912060006/linux/addr init_task | member comm | addr | container_of task_struct bogus_member | cast void * @@ -1 +1,3 @@ sdb: container_of: 'struct task_struct' has no member 'bogus_member' +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.201912060006/linux/addr init_task | member comm | addr | container_of task_struct comm | cast void * b/tests/integration/data/regression_output/dump.201912060006/linux/addr init_task | member comm | addr | container_of task_struct comm | cast void * index d6308edd..708fd6db 100644 --- a/tests/integration/data/regression_output/dump.201912060006/linux/addr init_task | member comm | addr | container_of task_struct comm | cast void * +++ b/tests/integration/data/regression_output/dump.201912060006/linux/addr init_task | member comm | addr | container_of task_struct comm | cast void * @@ -1 +1,3 @@ (void *)init_task+0x0 = 0xffffffff8c817740 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/linux/addr init_task | member comm | container_of task_struct comm | cast void * b/tests/integration/data/regression_output/dump.201912060006/linux/addr init_task | member comm | container_of task_struct comm | cast void * index 66ad8f29..28ed1471 100644 --- a/tests/integration/data/regression_output/dump.201912060006/linux/addr init_task | member comm | container_of task_struct comm | cast void * +++ b/tests/integration/data/regression_output/dump.201912060006/linux/addr init_task | member comm | container_of task_struct comm | cast void * @@ -1 +1,3 @@ sdb: container_of: container_of() argument must be a pointer, not 'char [16]' +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.201912060006/linux/addr init_task | member thread_pid.tasks[3] | lxhlist bogus_type pid_links[3] | member comm b/tests/integration/data/regression_output/dump.201912060006/linux/addr init_task | member thread_pid.tasks[3] | lxhlist bogus_type pid_links[3] | member comm index 93c7930d..b64800bb 100644 --- a/tests/integration/data/regression_output/dump.201912060006/linux/addr init_task | member thread_pid.tasks[3] | lxhlist bogus_type pid_links[3] | member comm +++ b/tests/integration/data/regression_output/dump.201912060006/linux/addr init_task | member thread_pid.tasks[3] | lxhlist bogus_type pid_links[3] | member comm @@ -1 +1,3 @@ sdb: lxhlist: couldn't find typedef, struct, enum, nor union named 'bogus_type' +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.201912060006/linux/addr init_task | member thread_pid.tasks[3] | lxhlist task_struct bogus_member | member comm b/tests/integration/data/regression_output/dump.201912060006/linux/addr init_task | member thread_pid.tasks[3] | lxhlist task_struct bogus_member | member comm index d6aa6382..049cddaa 100644 --- a/tests/integration/data/regression_output/dump.201912060006/linux/addr init_task | member thread_pid.tasks[3] | lxhlist task_struct bogus_member | member comm +++ b/tests/integration/data/regression_output/dump.201912060006/linux/addr init_task | member thread_pid.tasks[3] | lxhlist task_struct bogus_member | member comm @@ -1 +1,3 @@ sdb: lxhlist: 'struct task_struct' has no member 'bogus_member' +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.201912060006/linux/addr init_task | member thread_pid.tasks[3] | lxhlist task_struct pid_links[3] | member comm b/tests/integration/data/regression_output/dump.201912060006/linux/addr init_task | member thread_pid.tasks[3] | lxhlist task_struct pid_links[3] | member comm index f0e8533e..d2d57c2d 100644 --- a/tests/integration/data/regression_output/dump.201912060006/linux/addr init_task | member thread_pid.tasks[3] | lxhlist task_struct pid_links[3] | member comm +++ b/tests/integration/data/regression_output/dump.201912060006/linux/addr init_task | member thread_pid.tasks[3] | lxhlist task_struct pid_links[3] | member comm @@ -360,3 +360,5 @@ (char [16])"rcu_par_gp" (char [16])"rcu_gp" (char [16])"kthreadd" +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/linux/addr modules | lxlist bogus_type list | member name b/tests/integration/data/regression_output/dump.201912060006/linux/addr modules | lxlist bogus_type list | member name index a0dcea05..17012b4c 100644 --- a/tests/integration/data/regression_output/dump.201912060006/linux/addr modules | lxlist bogus_type list | member name +++ b/tests/integration/data/regression_output/dump.201912060006/linux/addr modules | lxlist bogus_type list | member name @@ -1 +1,3 @@ sdb: lxlist: couldn't find typedef, struct, enum, nor union named 'bogus_type' +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.201912060006/linux/addr modules | lxlist module bogus_member | member name b/tests/integration/data/regression_output/dump.201912060006/linux/addr modules | lxlist module bogus_member | member name index f6627ead..ec39ce86 100644 --- a/tests/integration/data/regression_output/dump.201912060006/linux/addr modules | lxlist module bogus_member | member name +++ b/tests/integration/data/regression_output/dump.201912060006/linux/addr modules | lxlist module bogus_member | member name @@ -1 +1,3 @@ sdb: lxlist: 'struct module' has no member 'bogus_member' +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.201912060006/linux/addr modules | lxlist module list | member name b/tests/integration/data/regression_output/dump.201912060006/linux/addr modules | lxlist module list | member name index 3ee304d9..5ae55bf4 100644 --- a/tests/integration/data/regression_output/dump.201912060006/linux/addr modules | lxlist module list | member name +++ b/tests/integration/data/regression_output/dump.201912060006/linux/addr modules | lxlist module list | member name @@ -76,3 +76,5 @@ (char [56])"i2c_piix4" (char [56])"pata_acpi" (char [56])"vmxnet3" +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/linux/addr spa_namespace_avl | cpu_counter_sum b/tests/integration/data/regression_output/dump.201912060006/linux/addr spa_namespace_avl | cpu_counter_sum index 8faabf08..136368da 100644 --- a/tests/integration/data/regression_output/dump.201912060006/linux/addr spa_namespace_avl | cpu_counter_sum +++ b/tests/integration/data/regression_output/dump.201912060006/linux/addr spa_namespace_avl | cpu_counter_sum @@ -1 +1,3 @@ sdb: cpu_counter_sum: input is not a percpu_counter +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.201912060006/linux/addr tcp_orphan_count | cpu_counter_sum b/tests/integration/data/regression_output/dump.201912060006/linux/addr tcp_orphan_count | cpu_counter_sum index 4ec5ed45..ff9fcd9c 100644 --- a/tests/integration/data/regression_output/dump.201912060006/linux/addr tcp_orphan_count | cpu_counter_sum +++ b/tests/integration/data/regression_output/dump.201912060006/linux/addr tcp_orphan_count | cpu_counter_sum @@ -1 +1,3 @@ (s64)0 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/linux/addr tcp_sockets_allocated | cpu_counter_sum b/tests/integration/data/regression_output/dump.201912060006/linux/addr tcp_sockets_allocated | cpu_counter_sum index 07401c5a..8ae7d5f5 100644 --- a/tests/integration/data/regression_output/dump.201912060006/linux/addr tcp_sockets_allocated | cpu_counter_sum +++ b/tests/integration/data/regression_output/dump.201912060006/linux/addr tcp_sockets_allocated | cpu_counter_sum @@ -1 +1,3 @@ (s64)59 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/linux/addr vm_committed_as | cpu_counter_sum b/tests/integration/data/regression_output/dump.201912060006/linux/addr vm_committed_as | cpu_counter_sum index 1e23c715..29062e95 100644 --- a/tests/integration/data/regression_output/dump.201912060006/linux/addr vm_committed_as | cpu_counter_sum +++ b/tests/integration/data/regression_output/dump.201912060006/linux/addr vm_committed_as | cpu_counter_sum @@ -1 +1,3 @@ (s64)779864 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/linux/addr vmap_area_root | rbtree bogus_type rb_node b/tests/integration/data/regression_output/dump.201912060006/linux/addr vmap_area_root | rbtree bogus_type rb_node index 0e236835..4c4f4edf 100644 --- a/tests/integration/data/regression_output/dump.201912060006/linux/addr vmap_area_root | rbtree bogus_type rb_node +++ b/tests/integration/data/regression_output/dump.201912060006/linux/addr vmap_area_root | rbtree bogus_type rb_node @@ -1 +1,3 @@ sdb: rbtree: couldn't find typedef, struct, enum, nor union named 'bogus_type' +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.201912060006/linux/addr vmap_area_root | rbtree vmap_area bogus_member b/tests/integration/data/regression_output/dump.201912060006/linux/addr vmap_area_root | rbtree vmap_area bogus_member index 384d99f7..760cbe96 100644 --- a/tests/integration/data/regression_output/dump.201912060006/linux/addr vmap_area_root | rbtree vmap_area bogus_member +++ b/tests/integration/data/regression_output/dump.201912060006/linux/addr vmap_area_root | rbtree vmap_area bogus_member @@ -1 +1,3 @@ sdb: rbtree: 'struct vmap_area' has no member 'bogus_member' +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.201912060006/linux/addr vmap_area_root | rbtree vmap_area rb_node b/tests/integration/data/regression_output/dump.201912060006/linux/addr vmap_area_root | rbtree vmap_area rb_node index 9dbe2aee..a9192492 100644 --- a/tests/integration/data/regression_output/dump.201912060006/linux/addr vmap_area_root | rbtree vmap_area rb_node +++ b/tests/integration/data/regression_output/dump.201912060006/linux/addr vmap_area_root | rbtree vmap_area rb_node @@ -1654,3 +1654,5 @@ (struct vmap_area *)0xffffa088f89f79c0 (struct vmap_area *)0xffffa088f1769180 (struct vmap_area *)0xffffa088f1df0480 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/linux/crashed_thread b/tests/integration/data/regression_output/dump.201912060006/linux/crashed_thread index 3b8a5962..617788cf 100644 --- a/tests/integration/data/regression_output/dump.201912060006/linux/crashed_thread +++ b/tests/integration/data/regression_output/dump.201912060006/linux/crashed_thread @@ -17,3 +17,5 @@ TASK_STRUCT STATE COUNT do_syscall_64+0x5a entry_SYSCALL_64+0x7c +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/linux/crashed_thread | stacks b/tests/integration/data/regression_output/dump.201912060006/linux/crashed_thread | stacks index 3b8a5962..617788cf 100644 --- a/tests/integration/data/regression_output/dump.201912060006/linux/crashed_thread | stacks +++ b/tests/integration/data/regression_output/dump.201912060006/linux/crashed_thread | stacks @@ -17,3 +17,5 @@ TASK_STRUCT STATE COUNT do_syscall_64+0x5a entry_SYSCALL_64+0x7c +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/linux/dbuf |head 1 |deref |member db_buf |whatis b/tests/integration/data/regression_output/dump.201912060006/linux/dbuf |head 1 |deref |member db_buf |whatis index 3fe189cd..b2aafa65 100644 --- a/tests/integration/data/regression_output/dump.201912060006/linux/dbuf |head 1 |deref |member db_buf |whatis +++ b/tests/integration/data/regression_output/dump.201912060006/linux/dbuf |head 1 |deref |member db_buf |whatis @@ -1 +1,3 @@ 0xffffa08943a90050 is allocated from arc_buf_t +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/linux/dmesg b/tests/integration/data/regression_output/dump.201912060006/linux/dmesg index 8784b670..90a198e0 100644 --- a/tests/integration/data/regression_output/dump.201912060006/linux/dmesg +++ b/tests/integration/data/regression_output/dump.201912060006/linux/dmesg @@ -1265,3 +1265,5 @@ [ 305.374703]: RBP: 000055e5f13d2a20 R08: 000000000000000a R09: 0000000000000001 [ 305.376456]: R10: 000000000000000a R11: 0000000000000246 R12: 00007faa4ecec760 [ 305.378189]: R13: 0000000000000002 R14: 00007faa4ece82a0 R15: 00007faa4ece7760 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/linux/dmesg | filter 'obj.level == 3' | dmesg b/tests/integration/data/regression_output/dump.201912060006/linux/dmesg | filter 'obj.level == 3' | dmesg index d4fdec51..0a8cf7b0 100644 --- a/tests/integration/data/regression_output/dump.201912060006/linux/dmesg | filter 'obj.level == 3' | dmesg +++ b/tests/integration/data/regression_output/dump.201912060006/linux/dmesg | filter 'obj.level == 3' | dmesg @@ -4,3 +4,5 @@ [ 4.363435]: sd 2:0:2:0: [sdc] Assuming drive cache: write throughSUBSYSTEM=scsi [ 4.366085]: sd 2:0:3:0: [sdd] Assuming drive cache: write throughSUBSYSTEM=scsi [ 48.368009]: db_root: cannot open: /etc/target +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/linux/dmesg | pp b/tests/integration/data/regression_output/dump.201912060006/linux/dmesg | pp index 8784b670..90a198e0 100644 --- a/tests/integration/data/regression_output/dump.201912060006/linux/dmesg | pp +++ b/tests/integration/data/regression_output/dump.201912060006/linux/dmesg | pp @@ -1265,3 +1265,5 @@ [ 305.374703]: RBP: 000055e5f13d2a20 R08: 000000000000000a R09: 0000000000000001 [ 305.376456]: R10: 000000000000000a R11: 0000000000000246 R12: 00007faa4ecec760 [ 305.378189]: R13: 0000000000000002 R14: 00007faa4ece82a0 R15: 00007faa4ece7760 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/linux/echo 0x0 | cpu_counter_sum b/tests/integration/data/regression_output/dump.201912060006/linux/echo 0x0 | cpu_counter_sum index c4445251..665b1dbe 100644 --- a/tests/integration/data/regression_output/dump.201912060006/linux/echo 0x0 | cpu_counter_sum +++ b/tests/integration/data/regression_output/dump.201912060006/linux/echo 0x0 | cpu_counter_sum @@ -1 +1,3 @@ sdb: cpu_counter_sum: invalid memory access: could not read memory from kdump: Cannot get page I/O address: PDPT table not present: p4d[0] = 0x0: 0x8 +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.201912060006/linux/echo 0xffffa089669edc00 | stack b/tests/integration/data/regression_output/dump.201912060006/linux/echo 0xffffa089669edc00 | stack index 3e555fbc..be1e869b 100644 --- a/tests/integration/data/regression_output/dump.201912060006/linux/echo 0xffffa089669edc00 | stack +++ b/tests/integration/data/regression_output/dump.201912060006/linux/echo 0xffffa089669edc00 | stack @@ -14,3 +14,5 @@ TASK_STRUCT STATE COUNT do_syscall_64+0x5a entry_SYSCALL_64+0x7c +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/linux/find_task 1 b/tests/integration/data/regression_output/dump.201912060006/linux/find_task 1 index 90a9cb58..8e2efefc 100644 --- a/tests/integration/data/regression_output/dump.201912060006/linux/find_task 1 +++ b/tests/integration/data/regression_output/dump.201912060006/linux/find_task 1 @@ -1 +1,3 @@ (struct task_struct *)0xffffa089669edc00 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/linux/find_task 1 2 b/tests/integration/data/regression_output/dump.201912060006/linux/find_task 1 2 index eb9cf78a..1f6f5a3b 100644 --- a/tests/integration/data/regression_output/dump.201912060006/linux/find_task 1 2 +++ b/tests/integration/data/regression_output/dump.201912060006/linux/find_task 1 2 @@ -1,2 +1,4 @@ (struct task_struct *)0xffffa089669edc00 (struct task_struct *)0xffffa089669ec500 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/linux/find_task 1 2 | member comm b/tests/integration/data/regression_output/dump.201912060006/linux/find_task 1 2 | member comm index 6812d697..4bfcd37a 100644 --- a/tests/integration/data/regression_output/dump.201912060006/linux/find_task 1 2 | member comm +++ b/tests/integration/data/regression_output/dump.201912060006/linux/find_task 1 2 | member comm @@ -1,2 +1,4 @@ (char [16])"systemd" (char [16])"kthreadd" +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/linux/find_task 1 | fget 1 4 b/tests/integration/data/regression_output/dump.201912060006/linux/find_task 1 | fget 1 4 index 7c0e5e39..bef60944 100644 --- a/tests/integration/data/regression_output/dump.201912060006/linux/find_task 1 | fget 1 4 +++ b/tests/integration/data/regression_output/dump.201912060006/linux/find_task 1 | fget 1 4 @@ -1,2 +1,4 @@ (struct file *)0xffffa08956638e00 (struct file *)0xffffa08965431c00 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/linux/find_task 1 | fget 1 4 123123 b/tests/integration/data/regression_output/dump.201912060006/linux/find_task 1 | fget 1 4 123123 index 2d053008..76c1a51e 100644 --- a/tests/integration/data/regression_output/dump.201912060006/linux/find_task 1 | fget 1 4 123123 +++ b/tests/integration/data/regression_output/dump.201912060006/linux/find_task 1 | fget 1 4 123123 @@ -1,3 +1,5 @@ (struct file *)0xffffa08956638e00 (struct file *)0xffffa08965431c00 (struct file *)0xe901d3e0317c1084 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/linux/pid 1 b/tests/integration/data/regression_output/dump.201912060006/linux/pid 1 index d67c625e..41c9563c 100644 --- a/tests/integration/data/regression_output/dump.201912060006/linux/pid 1 +++ b/tests/integration/data/regression_output/dump.201912060006/linux/pid 1 @@ -1 +1,3 @@ (struct pid *)0xffffa089669b5180 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/linux/pid 1 10 12437 b/tests/integration/data/regression_output/dump.201912060006/linux/pid 1 10 12437 index d1cede1e..135a8718 100644 --- a/tests/integration/data/regression_output/dump.201912060006/linux/pid 1 10 12437 +++ b/tests/integration/data/regression_output/dump.201912060006/linux/pid 1 10 12437 @@ -1,3 +1,5 @@ (struct pid *)0xffffa089669b5180 (struct pid *)0xffffa089669b5080 (struct pid *)0x0 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/linux/slabs b/tests/integration/data/regression_output/dump.201912060006/linux/slabs index a4d41299..cb5d9005 100644 --- a/tests/integration/data/regression_output/dump.201912060006/linux/slabs +++ b/tests/integration/data/regression_output/dump.201912060006/linux/slabs @@ -207,3 +207,5 @@ btrfs_delayed_ref_head 160 0 0.0B 0.0B btrfs_delayed_node 312 0 0.0B 0.0B 0 arc_buf_hdr_t_full_crypt 392 0 0.0B 0.0B 0 PING 960 0 0.0B 0.0B 0 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/linux/slabs -o bogus b/tests/integration/data/regression_output/dump.201912060006/linux/slabs -o bogus index 3e2248bc..a328a38a 100644 --- a/tests/integration/data/regression_output/dump.201912060006/linux/slabs -o bogus +++ b/tests/integration/data/regression_output/dump.201912060006/linux/slabs -o bogus @@ -1 +1,3 @@ sdb: slabs: 'bogus' is not a valid field +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.201912060006/linux/slabs -s active_objs -o active_objs,util,name b/tests/integration/data/regression_output/dump.201912060006/linux/slabs -s active_objs -o active_objs,util,name index 4cad54f5..2f1003b9 100644 --- a/tests/integration/data/regression_output/dump.201912060006/linux/slabs -s active_objs -o active_objs,util,name +++ b/tests/integration/data/regression_output/dump.201912060006/linux/slabs -s active_objs -o active_objs,util,name @@ -207,3 +207,5 @@ active_objs util name 0 0 btrfs_delayed_node 0 0 arc_buf_hdr_t_full_crypt 0 0 PING +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/linux/slabs -s active_objs -o util b/tests/integration/data/regression_output/dump.201912060006/linux/slabs -s active_objs -o util index d60d1f31..17443d39 100644 --- a/tests/integration/data/regression_output/dump.201912060006/linux/slabs -s active_objs -o util +++ b/tests/integration/data/regression_output/dump.201912060006/linux/slabs -s active_objs -o util @@ -1 +1,3 @@ sdb: slabs: invalid input: 'active_objs' is not in field set (util) +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.201912060006/linux/slabs -s bogus b/tests/integration/data/regression_output/dump.201912060006/linux/slabs -s bogus index 2cfb68ba..f0187c6c 100644 --- a/tests/integration/data/regression_output/dump.201912060006/linux/slabs -s bogus +++ b/tests/integration/data/regression_output/dump.201912060006/linux/slabs -s bogus @@ -1,2 +1,4 @@ sdb: slabs: invalid input: 'bogus' is not in field set (name, entry_size, active_objs, active_memory, total_memory, util) +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.201912060006/linux/slabs -s util b/tests/integration/data/regression_output/dump.201912060006/linux/slabs -s util index 638ec3b2..63d95fa8 100644 --- a/tests/integration/data/regression_output/dump.201912060006/linux/slabs -s util +++ b/tests/integration/data/regression_output/dump.201912060006/linux/slabs -s util @@ -207,3 +207,5 @@ btrfs_delayed_ref_head 160 0 0.0B 0.0B btrfs_delayed_node 312 0 0.0B 0.0B 0 arc_buf_hdr_t_full_crypt 392 0 0.0B 0.0B 0 PING 960 0 0.0B 0.0B 0 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/linux/slabs -s util | slabs b/tests/integration/data/regression_output/dump.201912060006/linux/slabs -s util | slabs index a4d41299..cb5d9005 100644 --- a/tests/integration/data/regression_output/dump.201912060006/linux/slabs -s util | slabs +++ b/tests/integration/data/regression_output/dump.201912060006/linux/slabs -s util | slabs @@ -207,3 +207,5 @@ btrfs_delayed_ref_head 160 0 0.0B 0.0B btrfs_delayed_node 312 0 0.0B 0.0B 0 arc_buf_hdr_t_full_crypt 392 0 0.0B 0.0B 0 PING 960 0 0.0B 0.0B 0 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/linux/slabs -v b/tests/integration/data/regression_output/dump.201912060006/linux/slabs -v index 896f747e..ac2467c1 100644 --- a/tests/integration/data/regression_output/dump.201912060006/linux/slabs -v +++ b/tests/integration/data/regression_output/dump.201912060006/linux/slabs -v @@ -207,3 +207,5 @@ 0xffffa0894cd7f080 nfsd4_stateids 168 168 24 0 0.0B 0.0B 0 0 0 0 0xffffa0894cd7ea80 nfsd4_delegations 232 232 17 0 0.0B 0.0B 0 0 0 0 0xffffa0892074f800 t10_pr_reg_cache 704 704 23 0 0.0B 0.0B 0 0 0 0 +@#$ EXIT CODE $#@ +0 diff --git "a/tests/integration/data/regression_output/dump.201912060006/linux/slabs | filter 'obj.name == \"UNIX\"' | slub_cache | count" "b/tests/integration/data/regression_output/dump.201912060006/linux/slabs | filter 'obj.name == \"UNIX\"' | slub_cache | count" index f49ddb1d..2e3fddd1 100644 --- "a/tests/integration/data/regression_output/dump.201912060006/linux/slabs | filter 'obj.name == \"UNIX\"' | slub_cache | count" +++ "b/tests/integration/data/regression_output/dump.201912060006/linux/slabs | filter 'obj.name == \"UNIX\"' | slub_cache | count" @@ -1 +1,3 @@ (unsigned long long)57 +@#$ EXIT CODE $#@ +0 diff --git "a/tests/integration/data/regression_output/dump.201912060006/linux/slabs | filter 'obj.name == \"dnode_t\"' |walk | head 6056 | tail 1| cast dnode_t * | deref |member dn_phys |member dn_blkptr[0] |blkptr" "b/tests/integration/data/regression_output/dump.201912060006/linux/slabs | filter 'obj.name == \"dnode_t\"' |walk | head 6056 | tail 1| cast dnode_t * | deref |member dn_phys |member dn_blkptr[0] |blkptr" index 1bad16c8..596815e7 100644 --- "a/tests/integration/data/regression_output/dump.201912060006/linux/slabs | filter 'obj.name == \"dnode_t\"' |walk | head 6056 | tail 1| cast dnode_t * | deref |member dn_phys |member dn_blkptr[0] |blkptr" +++ "b/tests/integration/data/regression_output/dump.201912060006/linux/slabs | filter 'obj.name == \"dnode_t\"' |walk | head 6056 | tail 1| cast dnode_t * | deref |member dn_phys |member dn_blkptr[0] |blkptr" @@ -4,3 +4,5 @@ DVA[2]=<0:0x50002c00:0x800> [L0 SPA space map] fletcher4 lz4 layer=0 unencrypted LE contiguous unique triple size=0x20000L/0x400P birth=10L/10P fill=1 cksum=0x8c1caab0a6:0x45de629e8318:0x13bfbe391d06f8:0x41fc70c3e1d38f2 +@#$ EXIT CODE $#@ +0 diff --git "a/tests/integration/data/regression_output/dump.201912060006/linux/slabs | filter 'obj.name == \"dnode_t\"' |walk | tail 8 | head 1 | cast dnode_t * | deref |member dn_phys |member dn_blkptr[0] |blkptr" "b/tests/integration/data/regression_output/dump.201912060006/linux/slabs | filter 'obj.name == \"dnode_t\"' |walk | tail 8 | head 1 | cast dnode_t * | deref |member dn_phys |member dn_blkptr[0] |blkptr" index 24e4eb23..c3aeb76c 100644 --- "a/tests/integration/data/regression_output/dump.201912060006/linux/slabs | filter 'obj.name == \"dnode_t\"' |walk | tail 8 | head 1 | cast dnode_t * | deref |member dn_phys |member dn_blkptr[0] |blkptr" +++ "b/tests/integration/data/regression_output/dump.201912060006/linux/slabs | filter 'obj.name == \"dnode_t\"' |walk | tail 8 | head 1 | cast dnode_t * | deref |member dn_phys |member dn_blkptr[0] |blkptr" @@ -1 +1,3 @@ HOLE [L0 unallocated] size=0x200L birth=0x0L +@#$ EXIT CODE $#@ +0 diff --git "a/tests/integration/data/regression_output/dump.201912060006/linux/slabs | filter 'obj.name == \"kmalloc-8\"' | member cpu_slab | percpu" "b/tests/integration/data/regression_output/dump.201912060006/linux/slabs | filter 'obj.name == \"kmalloc-8\"' | member cpu_slab | percpu" index 95e89e37..2c185f2b 100644 --- "a/tests/integration/data/regression_output/dump.201912060006/linux/slabs | filter 'obj.name == \"kmalloc-8\"' | member cpu_slab | percpu" +++ "b/tests/integration/data/regression_output/dump.201912060006/linux/slabs | filter 'obj.name == \"kmalloc-8\"' | member cpu_slab | percpu" @@ -1,2 +1,4 @@ (struct kmem_cache_cpu *)0xffffa0897fc27040 (struct kmem_cache_cpu *)0xffffa0897fd27040 +@#$ EXIT CODE $#@ +0 diff --git "a/tests/integration/data/regression_output/dump.201912060006/linux/slabs | filter 'obj.name == \"kmalloc-8\"' | member cpu_slab | percpu 0" "b/tests/integration/data/regression_output/dump.201912060006/linux/slabs | filter 'obj.name == \"kmalloc-8\"' | member cpu_slab | percpu 0" index cae55b5b..ae55e691 100644 --- "a/tests/integration/data/regression_output/dump.201912060006/linux/slabs | filter 'obj.name == \"kmalloc-8\"' | member cpu_slab | percpu 0" +++ "b/tests/integration/data/regression_output/dump.201912060006/linux/slabs | filter 'obj.name == \"kmalloc-8\"' | member cpu_slab | percpu 0" @@ -1 +1,3 @@ (struct kmem_cache_cpu *)0xffffa0897fc27040 +@#$ EXIT CODE $#@ +0 diff --git "a/tests/integration/data/regression_output/dump.201912060006/linux/slabs | filter 'obj.name == \"kmalloc-8\"' | member cpu_slab | percpu 0 1" "b/tests/integration/data/regression_output/dump.201912060006/linux/slabs | filter 'obj.name == \"kmalloc-8\"' | member cpu_slab | percpu 0 1" index 95e89e37..2c185f2b 100644 --- "a/tests/integration/data/regression_output/dump.201912060006/linux/slabs | filter 'obj.name == \"kmalloc-8\"' | member cpu_slab | percpu 0 1" +++ "b/tests/integration/data/regression_output/dump.201912060006/linux/slabs | filter 'obj.name == \"kmalloc-8\"' | member cpu_slab | percpu 0 1" @@ -1,2 +1,4 @@ (struct kmem_cache_cpu *)0xffffa0897fc27040 (struct kmem_cache_cpu *)0xffffa0897fd27040 +@#$ EXIT CODE $#@ +0 diff --git "a/tests/integration/data/regression_output/dump.201912060006/linux/slabs | filter 'obj.name == \"kmalloc-8\"' | member cpu_slab | percpu 0 2 1" "b/tests/integration/data/regression_output/dump.201912060006/linux/slabs | filter 'obj.name == \"kmalloc-8\"' | member cpu_slab | percpu 0 2 1" index 032a7541..cbde6a58 100644 --- "a/tests/integration/data/regression_output/dump.201912060006/linux/slabs | filter 'obj.name == \"kmalloc-8\"' | member cpu_slab | percpu 0 2 1" +++ "b/tests/integration/data/regression_output/dump.201912060006/linux/slabs | filter 'obj.name == \"kmalloc-8\"' | member cpu_slab | percpu 0 2 1" @@ -1,2 +1,4 @@ (struct kmem_cache_cpu *)0xffffa0897fc27040 sdb: percpu: available CPUs [0-1] - requested CPU 2 +@#$ EXIT CODE $#@ +1 diff --git "a/tests/integration/data/regression_output/dump.201912060006/linux/slabs | filter 'obj.name == \"kmalloc-8\"' | member cpu_slab | percpu 1" "b/tests/integration/data/regression_output/dump.201912060006/linux/slabs | filter 'obj.name == \"kmalloc-8\"' | member cpu_slab | percpu 1" index 901ccc35..aeb52f56 100644 --- "a/tests/integration/data/regression_output/dump.201912060006/linux/slabs | filter 'obj.name == \"kmalloc-8\"' | member cpu_slab | percpu 1" +++ "b/tests/integration/data/regression_output/dump.201912060006/linux/slabs | filter 'obj.name == \"kmalloc-8\"' | member cpu_slab | percpu 1" @@ -1 +1,3 @@ (struct kmem_cache_cpu *)0xffffa0897fd27040 +@#$ EXIT CODE $#@ +0 diff --git "a/tests/integration/data/regression_output/dump.201912060006/linux/slabs | filter 'obj.name == \"kmalloc-8\"' | member cpu_slab | percpu 100" "b/tests/integration/data/regression_output/dump.201912060006/linux/slabs | filter 'obj.name == \"kmalloc-8\"' | member cpu_slab | percpu 100" index d0d383d4..5dafe9ae 100644 --- "a/tests/integration/data/regression_output/dump.201912060006/linux/slabs | filter 'obj.name == \"kmalloc-8\"' | member cpu_slab | percpu 100" +++ "b/tests/integration/data/regression_output/dump.201912060006/linux/slabs | filter 'obj.name == \"kmalloc-8\"' | member cpu_slab | percpu 100" @@ -1 +1,3 @@ sdb: percpu: available CPUs [0-1] - requested CPU 100 +@#$ EXIT CODE $#@ +1 diff --git "a/tests/integration/data/regression_output/dump.201912060006/linux/slabs | filter 'obj.name == \"kmalloc-8\"' | member cpu_slab | percpu 2" "b/tests/integration/data/regression_output/dump.201912060006/linux/slabs | filter 'obj.name == \"kmalloc-8\"' | member cpu_slab | percpu 2" index 7058ca61..12f36d85 100644 --- "a/tests/integration/data/regression_output/dump.201912060006/linux/slabs | filter 'obj.name == \"kmalloc-8\"' | member cpu_slab | percpu 2" +++ "b/tests/integration/data/regression_output/dump.201912060006/linux/slabs | filter 'obj.name == \"kmalloc-8\"' | member cpu_slab | percpu 2" @@ -1 +1,3 @@ sdb: percpu: available CPUs [0-1] - requested CPU 2 +@#$ EXIT CODE $#@ +1 diff --git "a/tests/integration/data/regression_output/dump.201912060006/linux/slabs | filter 'obj.name == \"kmalloc-8\"' | member cpu_slab | percpu 3" "b/tests/integration/data/regression_output/dump.201912060006/linux/slabs | filter 'obj.name == \"kmalloc-8\"' | member cpu_slab | percpu 3" index e4a9c1fd..e2a9449b 100644 --- "a/tests/integration/data/regression_output/dump.201912060006/linux/slabs | filter 'obj.name == \"kmalloc-8\"' | member cpu_slab | percpu 3" +++ "b/tests/integration/data/regression_output/dump.201912060006/linux/slabs | filter 'obj.name == \"kmalloc-8\"' | member cpu_slab | percpu 3" @@ -1 +1,3 @@ sdb: percpu: available CPUs [0-1] - requested CPU 3 +@#$ EXIT CODE $#@ +1 diff --git "a/tests/integration/data/regression_output/dump.201912060006/linux/slabs | filter 'obj.name == \"zio_cache\"' | slub_cache" "b/tests/integration/data/regression_output/dump.201912060006/linux/slabs | filter 'obj.name == \"zio_cache\"' | slub_cache" index 969a3bcc..d467b5ef 100644 --- "a/tests/integration/data/regression_output/dump.201912060006/linux/slabs | filter 'obj.name == \"zio_cache\"' | slub_cache" +++ "b/tests/integration/data/regression_output/dump.201912060006/linux/slabs | filter 'obj.name == \"zio_cache\"' | slub_cache" @@ -16,3 +16,5 @@ (void *)0xffffa089533a2700 (void *)0xffffa0895f2e9860 (void *)0xffffa0895f2ec9c0 +@#$ EXIT CODE $#@ +0 diff --git "a/tests/integration/data/regression_output/dump.201912060006/linux/slabs | filter 'obj.name == \"zio_cache\"' | slub_cache | cast zio_t * | member io_spa.spa_name" "b/tests/integration/data/regression_output/dump.201912060006/linux/slabs | filter 'obj.name == \"zio_cache\"' | slub_cache | cast zio_t * | member io_spa.spa_name" index 0c170911..ff7a27e8 100644 --- "a/tests/integration/data/regression_output/dump.201912060006/linux/slabs | filter 'obj.name == \"zio_cache\"' | slub_cache | cast zio_t * | member io_spa.spa_name" +++ "b/tests/integration/data/regression_output/dump.201912060006/linux/slabs | filter 'obj.name == \"zio_cache\"' | slub_cache | cast zio_t * | member io_spa.spa_name" @@ -16,3 +16,5 @@ (char [256])"rpool" (char [256])"data" (char [256])"data" +@#$ EXIT CODE $#@ +0 diff --git "a/tests/integration/data/regression_output/dump.201912060006/linux/slabs | filter 'obj.name == \"zio_cache\"' | slub_cache | count" "b/tests/integration/data/regression_output/dump.201912060006/linux/slabs | filter 'obj.name == \"zio_cache\"' | slub_cache | count" index 1694329f..4a717f68 100644 --- "a/tests/integration/data/regression_output/dump.201912060006/linux/slabs | filter 'obj.name == \"zio_cache\"' | slub_cache | count" +++ "b/tests/integration/data/regression_output/dump.201912060006/linux/slabs | filter 'obj.name == \"zio_cache\"' | slub_cache | count" @@ -1 +1,3 @@ (unsigned long long)18 +@#$ EXIT CODE $#@ +0 diff --git "a/tests/integration/data/regression_output/dump.201912060006/linux/slabs | filter 'obj.name == \"zio_cache\"' | walk" "b/tests/integration/data/regression_output/dump.201912060006/linux/slabs | filter 'obj.name == \"zio_cache\"' | walk" index 969a3bcc..d467b5ef 100644 --- "a/tests/integration/data/regression_output/dump.201912060006/linux/slabs | filter 'obj.name == \"zio_cache\"' | walk" +++ "b/tests/integration/data/regression_output/dump.201912060006/linux/slabs | filter 'obj.name == \"zio_cache\"' | walk" @@ -16,3 +16,5 @@ (void *)0xffffa089533a2700 (void *)0xffffa0895f2e9860 (void *)0xffffa0895f2ec9c0 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/linux/slabs | head 2 | slabs b/tests/integration/data/regression_output/dump.201912060006/linux/slabs | head 2 | slabs index 69088bac..d68f3a72 100644 --- a/tests/integration/data/regression_output/dump.201912060006/linux/slabs | head 2 | slabs +++ b/tests/integration/data/regression_output/dump.201912060006/linux/slabs | head 2 | slabs @@ -2,3 +2,5 @@ name entry_size active_objs active_memory total_memory util ---------------- ---------- ----------- ------------- ------------ ---- AF_VSOCK 1216 26 30.9KB 30.9KB 100 t10_pr_reg_cache 704 0 0.0B 0.0B 0 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/linux/slabs | pp b/tests/integration/data/regression_output/dump.201912060006/linux/slabs | pp index a4d41299..cb5d9005 100644 --- a/tests/integration/data/regression_output/dump.201912060006/linux/slabs | pp +++ b/tests/integration/data/regression_output/dump.201912060006/linux/slabs | pp @@ -207,3 +207,5 @@ btrfs_delayed_ref_head 160 0 0.0B 0.0B btrfs_delayed_node 312 0 0.0B 0.0B 0 arc_buf_hdr_t_full_crypt 392 0 0.0B 0.0B 0 PING 960 0 0.0B 0.0B 0 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/linux/stacks b/tests/integration/data/regression_output/dump.201912060006/linux/stacks index 69409db3..e6ea1519 100644 --- a/tests/integration/data/regression_output/dump.201912060006/linux/stacks +++ b/tests/integration/data/regression_output/dump.201912060006/linux/stacks @@ -599,3 +599,5 @@ TASK_STRUCT STATE COUNT do_syscall_64+0x5a entry_SYSCALL_64+0x7c +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/linux/stacks -a b/tests/integration/data/regression_output/dump.201912060006/linux/stacks -a index 3c4adefc..1ea5d2fd 100644 --- a/tests/integration/data/regression_output/dump.201912060006/linux/stacks -a +++ b/tests/integration/data/regression_output/dump.201912060006/linux/stacks -a @@ -1123,3 +1123,5 @@ TASK_STRUCT STATE do_syscall_64+0x5a entry_SYSCALL_64+0x7c +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/linux/stacks -c bogus b/tests/integration/data/regression_output/dump.201912060006/linux/stacks -c bogus index b548356e..a9a071da 100644 --- a/tests/integration/data/regression_output/dump.201912060006/linux/stacks -c bogus +++ b/tests/integration/data/regression_output/dump.201912060006/linux/stacks -c bogus @@ -1 +1,3 @@ sdb: stacks: symbol 'bogus' does not exist +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.201912060006/linux/stacks -c spa_sync b/tests/integration/data/regression_output/dump.201912060006/linux/stacks -c spa_sync index 4c5d1965..f9efc779 100644 --- a/tests/integration/data/regression_output/dump.201912060006/linux/stacks -c spa_sync +++ b/tests/integration/data/regression_output/dump.201912060006/linux/stacks -c spa_sync @@ -1,2 +1,4 @@ TASK_STRUCT STATE COUNT ========================================== +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/linux/stacks -m bogus b/tests/integration/data/regression_output/dump.201912060006/linux/stacks -m bogus index 5f410b10..ddf82d7c 100644 --- a/tests/integration/data/regression_output/dump.201912060006/linux/stacks -m bogus +++ b/tests/integration/data/regression_output/dump.201912060006/linux/stacks -m bogus @@ -1 +1,3 @@ sdb: stacks: module 'bogus' doesn't exist or isn't currently loaded +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.201912060006/linux/stacks -m bogus | count b/tests/integration/data/regression_output/dump.201912060006/linux/stacks -m bogus | count index 5f410b10..ddf82d7c 100644 --- a/tests/integration/data/regression_output/dump.201912060006/linux/stacks -m bogus | count +++ b/tests/integration/data/regression_output/dump.201912060006/linux/stacks -m bogus | count @@ -1 +1,3 @@ sdb: stacks: module 'bogus' doesn't exist or isn't currently loaded +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.201912060006/linux/stacks -m zfs b/tests/integration/data/regression_output/dump.201912060006/linux/stacks -m zfs index fe9792a7..fee8f43c 100644 --- a/tests/integration/data/regression_output/dump.201912060006/linux/stacks -m zfs +++ b/tests/integration/data/regression_output/dump.201912060006/linux/stacks -m zfs @@ -140,3 +140,5 @@ TASK_STRUCT STATE COUNT do_syscall_64+0x5a entry_SYSCALL_64+0x7c +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/linux/stacks -m zfs -c spa_sync b/tests/integration/data/regression_output/dump.201912060006/linux/stacks -m zfs -c spa_sync index 4c5d1965..f9efc779 100644 --- a/tests/integration/data/regression_output/dump.201912060006/linux/stacks -m zfs -c spa_sync +++ b/tests/integration/data/regression_output/dump.201912060006/linux/stacks -m zfs -c spa_sync @@ -1,2 +1,4 @@ TASK_STRUCT STATE COUNT ========================================== +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/linux/stacks -m zfs -c zthr_procedure b/tests/integration/data/regression_output/dump.201912060006/linux/stacks -m zfs -c zthr_procedure index 1584b540..796c428b 100644 --- a/tests/integration/data/regression_output/dump.201912060006/linux/stacks -m zfs -c zthr_procedure +++ b/tests/integration/data/regression_output/dump.201912060006/linux/stacks -m zfs -c zthr_procedure @@ -25,3 +25,5 @@ TASK_STRUCT STATE COUNT kthread+0x121 ret_from_fork+0x1f +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/linux/stacks -m zfs | count b/tests/integration/data/regression_output/dump.201912060006/linux/stacks -m zfs | count index b17ba54c..2b22f8f7 100644 --- a/tests/integration/data/regression_output/dump.201912060006/linux/stacks -m zfs | count +++ b/tests/integration/data/regression_output/dump.201912060006/linux/stacks -m zfs | count @@ -1 +1,3 @@ (unsigned long long)27 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/linux/stacks -t bogus b/tests/integration/data/regression_output/dump.201912060006/linux/stacks -t bogus index 8e3d2a79..fe8bb1ec 100644 --- a/tests/integration/data/regression_output/dump.201912060006/linux/stacks -t bogus +++ b/tests/integration/data/regression_output/dump.201912060006/linux/stacks -t bogus @@ -1 +1,3 @@ sdb: stacks: 'bogus' is not a valid task state (acceptable states: RUNNING, INTERRUPTIBLE, UNINTERRUPTIBLE, STOPPED, TRACED, DEAD, ZOMBIE, PARKED, IDLE) +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.201912060006/linux/thread b/tests/integration/data/regression_output/dump.201912060006/linux/thread index 572a5f5e..3e218510 100644 --- a/tests/integration/data/regression_output/dump.201912060006/linux/thread +++ b/tests/integration/data/regression_output/dump.201912060006/linux/thread @@ -573,3 +573,5 @@ task state pid prio comm cmdline 0xffffa08966bd2e00 INTERRUPTIBLE 30 139 khugepaged 0xffffa08966bd4500 IDLE 34 100 tpm_dev_wq 0xffffa08966bd5c00 IDLE 33 100 kblockd +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/linux/threads b/tests/integration/data/regression_output/dump.201912060006/linux/threads index 572a5f5e..3e218510 100644 --- a/tests/integration/data/regression_output/dump.201912060006/linux/threads +++ b/tests/integration/data/regression_output/dump.201912060006/linux/threads @@ -573,3 +573,5 @@ task state pid prio comm cmdline 0xffffa08966bd2e00 INTERRUPTIBLE 30 139 khugepaged 0xffffa08966bd4500 IDLE 34 100 tpm_dev_wq 0xffffa08966bd5c00 IDLE 33 100 kblockd +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/linux/threads | count b/tests/integration/data/regression_output/dump.201912060006/linux/threads | count index 823ba53b..616168fd 100644 --- a/tests/integration/data/regression_output/dump.201912060006/linux/threads | count +++ b/tests/integration/data/regression_output/dump.201912060006/linux/threads | count @@ -1 +1,3 @@ (unsigned long long)573 +@#$ EXIT CODE $#@ +0 diff --git "a/tests/integration/data/regression_output/dump.201912060006/linux/threads | filter 'obj.comm == \"java\"' | stack" "b/tests/integration/data/regression_output/dump.201912060006/linux/threads | filter 'obj.comm == \"java\"' | stack" index 1036da1c..aefa8dfa 100644 --- "a/tests/integration/data/regression_output/dump.201912060006/linux/threads | filter 'obj.comm == \"java\"' | stack" +++ "b/tests/integration/data/regression_output/dump.201912060006/linux/threads | filter 'obj.comm == \"java\"' | stack" @@ -101,3 +101,5 @@ TASK_STRUCT STATE COUNT do_syscall_64+0x5a entry_SYSCALL_64+0x7c +@#$ EXIT CODE $#@ +0 diff --git "a/tests/integration/data/regression_output/dump.201912060006/linux/threads | filter 'obj.comm == \"java\"' | threads" "b/tests/integration/data/regression_output/dump.201912060006/linux/threads | filter 'obj.comm == \"java\"' | threads" index d98675de..ac2d5bd6 100644 --- "a/tests/integration/data/regression_output/dump.201912060006/linux/threads | filter 'obj.comm == \"java\"' | threads" +++ "b/tests/integration/data/regression_output/dump.201912060006/linux/threads | filter 'obj.comm == \"java\"' | threads" @@ -83,3 +83,5 @@ task state pid prio comm cmdline 0xffffa08960a3ae00 INTERRUPTIBLE 2857 120 java 0xffffa08960a3c500 INTERRUPTIBLE 2858 120 java 0xffffa08960a3dc00 INTERRUPTIBLE 2856 120 java +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/linux/whatis 0xf987kkbbh b/tests/integration/data/regression_output/dump.201912060006/linux/whatis 0xf987kkbbh index 69470daf..22bd8502 100644 --- a/tests/integration/data/regression_output/dump.201912060006/linux/whatis 0xf987kkbbh +++ b/tests/integration/data/regression_output/dump.201912060006/linux/whatis 0xf987kkbbh @@ -1 +1,3 @@ 0xf987kkbbh is not a valid address +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/linux/whatis 0xffff b/tests/integration/data/regression_output/dump.201912060006/linux/whatis 0xffff index dfa6cea3..a166b230 100644 --- a/tests/integration/data/regression_output/dump.201912060006/linux/whatis 0xffff +++ b/tests/integration/data/regression_output/dump.201912060006/linux/whatis 0xffff @@ -1 +1,3 @@ 0xffff does not map to a kmem_cache +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/linux/whatis 0xffffa0888c766000 0xffffa089407ca870 b/tests/integration/data/regression_output/dump.201912060006/linux/whatis 0xffffa0888c766000 0xffffa089407ca870 index ffd82192..6418f69e 100644 --- a/tests/integration/data/regression_output/dump.201912060006/linux/whatis 0xffffa0888c766000 0xffffa089407ca870 +++ b/tests/integration/data/regression_output/dump.201912060006/linux/whatis 0xffffa0888c766000 0xffffa089407ca870 @@ -1,2 +1,4 @@ 0xffffa0888c766000 is allocated from arc_buf_hdr_t_full 0xffffa089407ca870 is allocated from dmu_buf_impl_t +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/linux/whatis 0xffffa089407ca870 b/tests/integration/data/regression_output/dump.201912060006/linux/whatis 0xffffa089407ca870 index 60a15428..190383da 100644 --- a/tests/integration/data/regression_output/dump.201912060006/linux/whatis 0xffffa089407ca870 +++ b/tests/integration/data/regression_output/dump.201912060006/linux/whatis 0xffffa089407ca870 @@ -1 +1,3 @@ 0xffffa089407ca870 is allocated from dmu_buf_impl_t +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/spl/addr arc_mru | member [0].arcs_list[1] | multilist | head b/tests/integration/data/regression_output/dump.201912060006/spl/addr arc_mru | member [0].arcs_list[1] | multilist | head index d5129dc6..1aff8041 100644 --- a/tests/integration/data/regression_output/dump.201912060006/spl/addr arc_mru | member [0].arcs_list[1] | multilist | head +++ b/tests/integration/data/regression_output/dump.201912060006/spl/addr arc_mru | member [0].arcs_list[1] | multilist | head @@ -8,3 +8,5 @@ (void *)0xffffa089598b6148 (void *)0xffffa08945de0a40 (void *)0xffffa088d1cdc000 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/spl/addr arc_mru | member [0].arcs_list[1] | walk | head b/tests/integration/data/regression_output/dump.201912060006/spl/addr arc_mru | member [0].arcs_list[1] | walk | head index d5129dc6..1aff8041 100644 --- a/tests/integration/data/regression_output/dump.201912060006/spl/addr arc_mru | member [0].arcs_list[1] | walk | head +++ b/tests/integration/data/regression_output/dump.201912060006/spl/addr arc_mru | member [0].arcs_list[1] | walk | head @@ -8,3 +8,5 @@ (void *)0xffffa089598b6148 (void *)0xffffa08945de0a40 (void *)0xffffa088d1cdc000 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/spl/addr spa_namespace_avl | avl b/tests/integration/data/regression_output/dump.201912060006/spl/addr spa_namespace_avl | avl index 8513d105..7250b0d4 100644 --- a/tests/integration/data/regression_output/dump.201912060006/spl/addr spa_namespace_avl | avl +++ b/tests/integration/data/regression_output/dump.201912060006/spl/addr spa_namespace_avl | avl @@ -1,3 +1,5 @@ (void *)0xffffa0894e720000 (void *)0xffffa089413b8000 (void *)0xffffa08955c44000 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/spl/addr spa_namespace_avl | walk b/tests/integration/data/regression_output/dump.201912060006/spl/addr spa_namespace_avl | walk index 8513d105..7250b0d4 100644 --- a/tests/integration/data/regression_output/dump.201912060006/spl/addr spa_namespace_avl | walk +++ b/tests/integration/data/regression_output/dump.201912060006/spl/addr spa_namespace_avl | walk @@ -1,3 +1,5 @@ (void *)0xffffa0894e720000 (void *)0xffffa089413b8000 (void *)0xffffa08955c44000 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/spl/spa | member spa_config_list | spl_list b/tests/integration/data/regression_output/dump.201912060006/spl/spa | member spa_config_list | spl_list index 21b61f03..63c82eb1 100644 --- a/tests/integration/data/regression_output/dump.201912060006/spl/spa | member spa_config_list | spl_list +++ b/tests/integration/data/regression_output/dump.201912060006/spl/spa | member spa_config_list | spl_list @@ -1,3 +1,5 @@ (void *)0xffffa08954d6a480 (void *)0xffffa089481ade80 (void *)0xffffa0895339bb20 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/spl/spa | member spa_config_list | walk b/tests/integration/data/regression_output/dump.201912060006/spl/spa | member spa_config_list | walk index 21b61f03..63c82eb1 100644 --- a/tests/integration/data/regression_output/dump.201912060006/spl/spa | member spa_config_list | walk +++ b/tests/integration/data/regression_output/dump.201912060006/spl/spa | member spa_config_list | walk @@ -1,3 +1,5 @@ (void *)0xffffa08954d6a480 (void *)0xffffa089481ade80 (void *)0xffffa0895339bb20 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/spl/spa | member spa_evicting_os_list | spl_list b/tests/integration/data/regression_output/dump.201912060006/spl/spa | member spa_evicting_os_list | spl_list index e69de29b..77f91668 100644 --- a/tests/integration/data/regression_output/dump.201912060006/spl/spa | member spa_evicting_os_list | spl_list +++ b/tests/integration/data/regression_output/dump.201912060006/spl/spa | member spa_evicting_os_list | spl_list @@ -0,0 +1,2 @@ +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/spl/spa | member spa_evicting_os_list | walk b/tests/integration/data/regression_output/dump.201912060006/spl/spa | member spa_evicting_os_list | walk index e69de29b..77f91668 100644 --- a/tests/integration/data/regression_output/dump.201912060006/spl/spa | member spa_evicting_os_list | walk +++ b/tests/integration/data/regression_output/dump.201912060006/spl/spa | member spa_evicting_os_list | walk @@ -0,0 +1,2 @@ +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/spl/spa | member spa_normal_class.mc_metaslab_txg_list | multilist b/tests/integration/data/regression_output/dump.201912060006/spl/spa | member spa_normal_class.mc_metaslab_txg_list | multilist index ce0fd69b..8d85374d 100644 --- a/tests/integration/data/regression_output/dump.201912060006/spl/spa | member spa_normal_class.mc_metaslab_txg_list | multilist +++ b/tests/integration/data/regression_output/dump.201912060006/spl/spa | member spa_normal_class.mc_metaslab_txg_list | multilist @@ -48,3 +48,5 @@ (void *)0xffffa08953506800 (void *)0xffffa089533f7800 (void *)0xffffa089533f0000 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/spl/spa | member spa_normal_class.mc_metaslab_txg_list | walk b/tests/integration/data/regression_output/dump.201912060006/spl/spa | member spa_normal_class.mc_metaslab_txg_list | walk index ce0fd69b..8d85374d 100644 --- a/tests/integration/data/regression_output/dump.201912060006/spl/spa | member spa_normal_class.mc_metaslab_txg_list | walk +++ b/tests/integration/data/regression_output/dump.201912060006/spl/spa | member spa_normal_class.mc_metaslab_txg_list | walk @@ -48,3 +48,5 @@ (void *)0xffffa08953506800 (void *)0xffffa089533f7800 (void *)0xffffa089533f0000 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/spl/spl_kmem_caches b/tests/integration/data/regression_output/dump.201912060006/spl/spl_kmem_caches index 38c30baa..724d42f9 100644 --- a/tests/integration/data/regression_output/dump.201912060006/spl/spl_kmem_caches +++ b/tests/integration/data/regression_output/dump.201912060006/spl/spl_kmem_caches @@ -138,3 +138,5 @@ kcf_areq_cache 512 0 0.0B kcf_areq ddt_entry_cache 448 0 0.0B ddt_entry_cache[SLUB] 0.0B 0 arc_buf_hdr_t_l2only 96 0 0.0B arc_buf_hdr_t_l2only[SLUB] 3.9KB 0 arc_buf_hdr_t_full_crypt 392 0 0.0B arc_buf_hdr_t_full_crypt[SLUB] 0.0B 0 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/spl/spl_kmem_caches -o name,entry_size -s entry_size b/tests/integration/data/regression_output/dump.201912060006/spl/spl_kmem_caches -o name,entry_size -s entry_size index b09ea5f6..7bdd8a40 100644 --- a/tests/integration/data/regression_output/dump.201912060006/spl/spl_kmem_caches -o name,entry_size -s entry_size +++ b/tests/integration/data/regression_output/dump.201912060006/spl/spl_kmem_caches -o name,entry_size -s entry_size @@ -138,3 +138,5 @@ arc_buf_t 80 zio_link_cache 48 abd_t 40 mod_hash_entries 24 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/spl/spl_kmem_caches -o name,source b/tests/integration/data/regression_output/dump.201912060006/spl/spl_kmem_caches -o name,source index 435d8165..d1403b7e 100644 --- a/tests/integration/data/regression_output/dump.201912060006/spl/spl_kmem_caches -o name,source +++ b/tests/integration/data/regression_output/dump.201912060006/spl/spl_kmem_caches -o name,source @@ -138,3 +138,5 @@ zio_data_buf_8388608 zio_data_buf_8388608[SPL ] zio_data_buf_917504 zio_data_buf_917504[SPL ] zio_data_buf_98304 zio_data_buf_98304[SPL ] zio_link_cache zio_link_cache[SLUB] +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/spl/spl_kmem_caches -s entry_size b/tests/integration/data/regression_output/dump.201912060006/spl/spl_kmem_caches -s entry_size index 0285f68d..9bb8fa41 100644 --- a/tests/integration/data/regression_output/dump.201912060006/spl/spl_kmem_caches -s entry_size +++ b/tests/integration/data/regression_output/dump.201912060006/spl/spl_kmem_caches -s entry_size @@ -138,3 +138,5 @@ arc_buf_t 80 4046 316.1KB arc zio_link_cache 48 0 0.0B zio_link_cache[SLUB] 127.5KB 0 abd_t 40 31047 1.2MB abd_t[SLUB] 1.2MB 96 mod_hash_entries 24 35 840.0B mod_hash_entries[SLUB] 4.0KB 20 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/spl/spl_kmem_caches -s entry_size | head 4 | spl_kmem_caches b/tests/integration/data/regression_output/dump.201912060006/spl/spl_kmem_caches -s entry_size | head 4 | spl_kmem_caches index 34435127..fc813c03 100644 --- a/tests/integration/data/regression_output/dump.201912060006/spl/spl_kmem_caches -s entry_size | head 4 | spl_kmem_caches +++ b/tests/integration/data/regression_output/dump.201912060006/spl/spl_kmem_caches -s entry_size | head 4 | spl_kmem_caches @@ -4,3 +4,5 @@ zio_data_buf_16777216 16785408 0 0.0B zio_data_buf_16777216 zio_data_buf_14680064 14686208 0 0.0B zio_data_buf_14680064[SPL ] 0.0B 0 zio_buf_16777216 16785408 0 0.0B zio_buf_16777216[SPL ] 0.0B 0 zio_buf_14680064 14686208 0 0.0B zio_buf_14680064[SPL ] 0.0B 0 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/spl/spl_kmem_caches -v b/tests/integration/data/regression_output/dump.201912060006/spl/spl_kmem_caches -v index 265f1e1b..bfae2ae1 100644 --- a/tests/integration/data/regression_output/dump.201912060006/spl/spl_kmem_caches -v +++ b/tests/integration/data/regression_output/dump.201912060006/spl/spl_kmem_caches -v @@ -138,3 +138,5 @@ 0xffffa08956637400 zil_zcw_cache KMC_NOMAGAZINE|KMC_SLAB 152 152 0 0 0 0 0 0.0B 7.7KB 0 0 0 zil_zcw_cache[SLUB] 0 0xffffa08956637200 sio_cache_0 KMC_NOMAGAZINE|KMC_SLAB 136 136 0 0 0 0 0 0.0B 0.0B 0 0 0 sio_cache_0[SLUB] 0 0xffffa08956636e00 arc_buf_hdr_t_l2only KMC_NOMAGAZINE|KMC_SLAB 96 96 0 0 0 0 0 0.0B 3.9KB 0 0 0 arc_buf_hdr_t_l2only[SLUB] 0 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/spl/spl_kmem_caches | filter 'obj.skc_linux_cache == 0' | spl_cache b/tests/integration/data/regression_output/dump.201912060006/spl/spl_kmem_caches | filter 'obj.skc_linux_cache == 0' | spl_cache index ae4e39a1..14eb3de5 100644 --- a/tests/integration/data/regression_output/dump.201912060006/spl/spl_kmem_caches | filter 'obj.skc_linux_cache == 0' | spl_cache +++ b/tests/integration/data/regression_output/dump.201912060006/spl/spl_kmem_caches | filter 'obj.skc_linux_cache == 0' | spl_cache @@ -3562,3 +3562,5 @@ (void *)0xffffa087d4ea6000 (void *)0xffffa087d4ec7000 (void *)0xffffa087d4ee8000 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/spl/spl_kmem_caches | filter 'obj.skc_linux_cache == 0' | spl_cache | cnt b/tests/integration/data/regression_output/dump.201912060006/spl/spl_kmem_caches | filter 'obj.skc_linux_cache == 0' | spl_cache | cnt index dbc7115a..cec72449 100644 --- a/tests/integration/data/regression_output/dump.201912060006/spl/spl_kmem_caches | filter 'obj.skc_linux_cache == 0' | spl_cache | cnt +++ b/tests/integration/data/regression_output/dump.201912060006/spl/spl_kmem_caches | filter 'obj.skc_linux_cache == 0' | spl_cache | cnt @@ -1 +1,3 @@ (unsigned long long)3564 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/spl/spl_kmem_caches | filter 'obj.skc_linux_cache > 0' | filter 'obj.skc_obj_alloc > 0' | head 1 | spl_cache b/tests/integration/data/regression_output/dump.201912060006/spl/spl_kmem_caches | filter 'obj.skc_linux_cache > 0' | filter 'obj.skc_obj_alloc > 0' | head 1 | spl_cache index 353cace0..afe56857 100644 --- a/tests/integration/data/regression_output/dump.201912060006/spl/spl_kmem_caches | filter 'obj.skc_linux_cache > 0' | filter 'obj.skc_obj_alloc > 0' | head 1 | spl_cache +++ b/tests/integration/data/regression_output/dump.201912060006/spl/spl_kmem_caches | filter 'obj.skc_linux_cache > 0' | filter 'obj.skc_obj_alloc > 0' | head 1 | spl_cache @@ -33,3 +33,5 @@ (void *)0xffffa089566daeb8 (void *)0xffffa089566daed0 (void *)0xffffa089566daf00 +@#$ EXIT CODE $#@ +0 diff --git "a/tests/integration/data/regression_output/dump.201912060006/spl/spl_kmem_caches | filter 'obj.skc_name == \"ddt_cache\"' | walk" "b/tests/integration/data/regression_output/dump.201912060006/spl/spl_kmem_caches | filter 'obj.skc_name == \"ddt_cache\"' | walk" index 149b31b1..1733670b 100644 --- "a/tests/integration/data/regression_output/dump.201912060006/spl/spl_kmem_caches | filter 'obj.skc_name == \"ddt_cache\"' | walk" +++ "b/tests/integration/data/regression_output/dump.201912060006/spl/spl_kmem_caches | filter 'obj.skc_name == \"ddt_cache\"' | walk" @@ -44,3 +44,5 @@ (void *)0xffffa0895365e680 (void *)0xffffa089536647c0 (void *)0xffffa0895366a900 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/spl/spl_kmem_caches | pp b/tests/integration/data/regression_output/dump.201912060006/spl/spl_kmem_caches | pp index 38c30baa..724d42f9 100644 --- a/tests/integration/data/regression_output/dump.201912060006/spl/spl_kmem_caches | pp +++ b/tests/integration/data/regression_output/dump.201912060006/spl/spl_kmem_caches | pp @@ -138,3 +138,5 @@ kcf_areq_cache 512 0 0.0B kcf_areq ddt_entry_cache 448 0 0.0B ddt_entry_cache[SLUB] 0.0B 0 arc_buf_hdr_t_l2only 96 0 0.0B arc_buf_hdr_t_l2only[SLUB] 3.9KB 0 arc_buf_hdr_t_full_crypt 392 0 0.0B arc_buf_hdr_t_full_crypt[SLUB] 0.0B 0 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/zfs/arc b/tests/integration/data/regression_output/dump.201912060006/zfs/arc index 2a163249..f1320af2 100644 --- a/tests/integration/data/regression_output/dump.201912060006/zfs/arc +++ b/tests/integration/data/regression_output/dump.201912060006/zfs/arc @@ -96,3 +96,5 @@ arcstat_demand_hit_prescient_prefetch = 0 arcstat_need_free = 0 arcstat_sys_free = 122268224 arcstat_raw_size = 0 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/zfs/dbuf b/tests/integration/data/regression_output/dump.201912060006/zfs/dbuf index c7716a56..b21093b5 100644 --- a/tests/integration/data/regression_output/dump.201912060006/zfs/dbuf +++ b/tests/integration/data/regression_output/dump.201912060006/zfs/dbuf @@ -4033,3 +4033,5 @@ 0xffffa0895a1c4870 166891 0 843 0 rpool/ROOT/delphix.gX9jjSh/root 0xffffa08941260f78 0 0 887 32 rpool/ROOT/delphix.gX9jjSh/home 0xffffa08847e64168 2 0 555 0 meta-domain/fs-tmp +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/zfs/dbuf -l 1 b/tests/integration/data/regression_output/dump.201912060006/zfs/dbuf -l 1 index 2d159896..cef54a48 100644 --- a/tests/integration/data/regression_output/dump.201912060006/zfs/dbuf -l 1 +++ b/tests/integration/data/regression_output/dump.201912060006/zfs/dbuf -l 1 @@ -273,3 +273,5 @@ 0xffffa08937b83950 168241 1 0 0 rpool/ROOT/delphix.gX9jjSh/root 0xffffa089448305a0 25932 1 0 0 rpool/ROOT/delphix.gX9jjSh/root 0xffffa089642e6870 5741 1 0 0 rpool/ROOT/delphix.gX9jjSh/root +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/zfs/dbuf | dbuf -l 1 b/tests/integration/data/regression_output/dump.201912060006/zfs/dbuf | dbuf -l 1 index 2d159896..cef54a48 100644 --- a/tests/integration/data/regression_output/dump.201912060006/zfs/dbuf | dbuf -l 1 +++ b/tests/integration/data/regression_output/dump.201912060006/zfs/dbuf | dbuf -l 1 @@ -273,3 +273,5 @@ 0xffffa08937b83950 168241 1 0 0 rpool/ROOT/delphix.gX9jjSh/root 0xffffa089448305a0 25932 1 0 0 rpool/ROOT/delphix.gX9jjSh/root 0xffffa089642e6870 5741 1 0 0 rpool/ROOT/delphix.gX9jjSh/root +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/zfs/dbuf | dbuf -l 1 | head | dbuf b/tests/integration/data/regression_output/dump.201912060006/zfs/dbuf | dbuf -l 1 | head | dbuf index 8482dc25..e9a52625 100644 --- a/tests/integration/data/regression_output/dump.201912060006/zfs/dbuf | dbuf -l 1 | head | dbuf +++ b/tests/integration/data/regression_output/dump.201912060006/zfs/dbuf | dbuf -l 1 | head | dbuf @@ -9,3 +9,5 @@ 0xffffa08937e593b0 166892 1 2 39 rpool/ROOT/delphix.gX9jjSh/root 0xffffa08954d437e8 0 1 5 139 rpool/ROOT/delphix.gX9jjSh/root 0xffffa088d346d3b0 168248 1 0 0 rpool/ROOT/delphix.gX9jjSh/root +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/zfs/dbuf | head 1 | member db_blkptr | blkptr b/tests/integration/data/regression_output/dump.201912060006/zfs/dbuf | head 1 | member db_blkptr | blkptr index b3010d79..f4f00167 100644 --- a/tests/integration/data/regression_output/dump.201912060006/zfs/dbuf | head 1 | member db_blkptr | blkptr +++ b/tests/integration/data/regression_output/dump.201912060006/zfs/dbuf | head 1 | member db_blkptr | blkptr @@ -2,3 +2,5 @@ DVA[0]=<0:0x2cefd5e00:0x20000> [L0 ZFS plain file] fletcher4 uncompressed layer=0 unencrypted LE contiguous unique single size=0x20000L/0x20000P birth=1624L/1624P fill=1 cksum=0x3feb86d3fa14:0xff98411222361a1:0x7cd8eb3816d141e1:0x2d65ae38a67197c7 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/zfs/spa b/tests/integration/data/regression_output/dump.201912060006/zfs/spa index 921f0052..96cdd000 100644 --- a/tests/integration/data/regression_output/dump.201912060006/zfs/spa +++ b/tests/integration/data/regression_output/dump.201912060006/zfs/spa @@ -3,3 +3,5 @@ ADDR NAME 0xffffa0894e720000 data 0xffffa089413b8000 meta-domain 0xffffa08955c44000 rpool +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/zfs/spa -H b/tests/integration/data/regression_output/dump.201912060006/zfs/spa -H index bc85223f..fcb75038 100644 --- a/tests/integration/data/regression_output/dump.201912060006/zfs/spa -H +++ b/tests/integration/data/regression_output/dump.201912060006/zfs/spa -H @@ -48,3 +48,5 @@ ADDR NAME Approx. Median: 92.0MB 0xffffa08955c44000 rpool ** No histogram data available ** +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/zfs/spa -mH b/tests/integration/data/regression_output/dump.201912060006/zfs/spa -mH index d84b9fae..634f50f8 100644 --- a/tests/integration/data/regression_output/dump.201912060006/zfs/spa -mH +++ b/tests/integration/data/regression_output/dump.201912060006/zfs/spa -mH @@ -845,3 +845,5 @@ ADDR NAME 0xffffa0895374f000 136 0x1100000000 512MB - 0B 0xffffa0895374e800 137 0x1120000000 512MB - 0B 0xffffa0895374d000 138 0x1140000000 512MB - 0B +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/zfs/spa -v b/tests/integration/data/regression_output/dump.201912060006/zfs/spa -v index dfde9240..5048fba3 100644 --- a/tests/integration/data/regression_output/dump.201912060006/zfs/spa -v +++ b/tests/integration/data/regression_output/dump.201912060006/zfs/spa -v @@ -24,3 +24,5 @@ ADDR NAME ------------------------------------------------------------ 0xffffa08952efc000 HEALTHY NONE root 0xffffa08953300000 HEALTHY NONE /dev/sda1 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/zfs/spa -vH b/tests/integration/data/regression_output/dump.201912060006/zfs/spa -vH index 648e0a04..548c26ff 100644 --- a/tests/integration/data/regression_output/dump.201912060006/zfs/spa -vH +++ b/tests/integration/data/regression_output/dump.201912060006/zfs/spa -vH @@ -115,3 +115,5 @@ ADDR NAME 0xffffa08952efc000 HEALTHY NONE root 0xffffa08953300000 HEALTHY NONE /dev/sda1 ** No histogram data available ** +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/zfs/spa -vm b/tests/integration/data/regression_output/dump.201912060006/zfs/spa -vm index ea37ea3a..d657f662 100644 --- a/tests/integration/data/regression_output/dump.201912060006/zfs/spa -vm +++ b/tests/integration/data/regression_output/dump.201912060006/zfs/spa -vm @@ -212,3 +212,5 @@ ADDR NAME 0xffffa0895374f000 136 0x1100000000 512MB - 0B 0xffffa0895374e800 137 0x1120000000 512MB - 0B 0xffffa0895374d000 138 0x1140000000 512MB - 0B +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/zfs/spa -vmH b/tests/integration/data/regression_output/dump.201912060006/zfs/spa -vmH index d84b9fae..634f50f8 100644 --- a/tests/integration/data/regression_output/dump.201912060006/zfs/spa -vmH +++ b/tests/integration/data/regression_output/dump.201912060006/zfs/spa -vmH @@ -845,3 +845,5 @@ ADDR NAME 0xffffa0895374f000 136 0x1100000000 512MB - 0B 0xffffa0895374e800 137 0x1120000000 512MB - 0B 0xffffa0895374d000 138 0x1140000000 512MB - 0B +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/zfs/spa data | member spa_normal_class.mc_histogram | zfs_histogram b/tests/integration/data/regression_output/dump.201912060006/zfs/spa data | member spa_normal_class.mc_histogram | zfs_histogram index 54a3ac16..23c9cdc7 100644 --- a/tests/integration/data/regression_output/dump.201912060006/zfs/spa data | member spa_normal_class.mc_histogram | zfs_histogram +++ b/tests/integration/data/regression_output/dump.201912060006/zfs/spa data | member spa_normal_class.mc_histogram | zfs_histogram @@ -21,3 +21,5 @@ seg-size count 128.0MB: 0 256.0MB: 15 *************** Approx. Median: 192.0MB +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/zfs/spa data | vdev | metaslab | filter 'obj.ms_loaded == 1' | head 1 | member ms_allocatable.rt_histogram | zhist b/tests/integration/data/regression_output/dump.201912060006/zfs/spa data | vdev | metaslab | filter 'obj.ms_loaded == 1' | head 1 | member ms_allocatable.rt_histogram | zhist index af035907..abb46697 100644 --- a/tests/integration/data/regression_output/dump.201912060006/zfs/spa data | vdev | metaslab | filter 'obj.ms_loaded == 1' | head 1 | member ms_allocatable.rt_histogram | zhist +++ b/tests/integration/data/regression_output/dump.201912060006/zfs/spa data | vdev | metaslab | filter 'obj.ms_loaded == 1' | head 1 | member ms_allocatable.rt_histogram | zhist @@ -20,3 +20,5 @@ seg-size count 128.0MB: 0 256.0MB: 1 * Approx. Median: 192.0MB +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/zfs/spa data | vdev | metaslab | filter 'obj.ms_loaded == 1' | head 1 | member ms_sm.sm_phys.smp_histogram | zhist b/tests/integration/data/regression_output/dump.201912060006/zfs/spa data | vdev | metaslab | filter 'obj.ms_loaded == 1' | head 1 | member ms_sm.sm_phys.smp_histogram | zhist index 4a78270f..0149d2f0 100644 --- a/tests/integration/data/regression_output/dump.201912060006/zfs/spa data | vdev | metaslab | filter 'obj.ms_loaded == 1' | head 1 | member ms_sm.sm_phys.smp_histogram | zhist +++ b/tests/integration/data/regression_output/dump.201912060006/zfs/spa data | vdev | metaslab | filter 'obj.ms_loaded == 1' | head 1 | member ms_sm.sm_phys.smp_histogram | zhist @@ -21,3 +21,5 @@ seg-size count 256.0KB: 0 512.0KB: 1 * Approx. Median: 384.0KB +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/zfs/spa data | vdev | metaslab | filter 'obj.ms_loaded == 1' | head 1 | member ms_sm.sm_phys.smp_histogram | zhist 9 b/tests/integration/data/regression_output/dump.201912060006/zfs/spa data | vdev | metaslab | filter 'obj.ms_loaded == 1' | head 1 | member ms_sm.sm_phys.smp_histogram | zhist 9 index 9538b4c8..6b3a30c2 100644 --- a/tests/integration/data/regression_output/dump.201912060006/zfs/spa data | vdev | metaslab | filter 'obj.ms_loaded == 1' | head 1 | member ms_sm.sm_phys.smp_histogram | zhist 9 +++ b/tests/integration/data/regression_output/dump.201912060006/zfs/spa data | vdev | metaslab | filter 'obj.ms_loaded == 1' | head 1 | member ms_sm.sm_phys.smp_histogram | zhist 9 @@ -21,3 +21,5 @@ seg-size count 128.0MB: 0 256.0MB: 1 * Approx. Median: 192.0MB +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/zfs/spa rpool b/tests/integration/data/regression_output/dump.201912060006/zfs/spa rpool index 8cab5cbc..ddc9840b 100644 --- a/tests/integration/data/regression_output/dump.201912060006/zfs/spa rpool +++ b/tests/integration/data/regression_output/dump.201912060006/zfs/spa rpool @@ -1,3 +1,5 @@ ADDR NAME ------------------------------------------------------------ 0xffffa08955c44000 rpool +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/zfs/spa | head 1 | deref |member spa_uberblock | member ub_rootbp | blkptr b/tests/integration/data/regression_output/dump.201912060006/zfs/spa | head 1 | deref |member spa_uberblock | member ub_rootbp | blkptr index dc5648cf..48d70db4 100644 --- a/tests/integration/data/regression_output/dump.201912060006/zfs/spa | head 1 | deref |member spa_uberblock | member ub_rootbp | blkptr +++ b/tests/integration/data/regression_output/dump.201912060006/zfs/spa | head 1 | deref |member spa_uberblock | member ub_rootbp | blkptr @@ -4,3 +4,5 @@ DVA[2]=<0:0x10000da00:0x200> [L0 DMU objset] fletcher4 lz4 layer=0 unencrypted LE contiguous unique triple size=0x1000L/0x200P birth=609L/609P fill=67 cksum=0x98a43f544:0x3eab35f140c:0xd164e4328324:0x1da8f37ef09087 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/zfs/spa | head 1 | spa b/tests/integration/data/regression_output/dump.201912060006/zfs/spa | head 1 | spa index 3c7b53f8..45f1043b 100644 --- a/tests/integration/data/regression_output/dump.201912060006/zfs/spa | head 1 | spa +++ b/tests/integration/data/regression_output/dump.201912060006/zfs/spa | head 1 | spa @@ -1,3 +1,5 @@ ADDR NAME ------------------------------------------------------------ 0xffffa0894e720000 data +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/zfs/spa | pp b/tests/integration/data/regression_output/dump.201912060006/zfs/spa | pp index 921f0052..96cdd000 100644 --- a/tests/integration/data/regression_output/dump.201912060006/zfs/spa | pp +++ b/tests/integration/data/regression_output/dump.201912060006/zfs/spa | pp @@ -3,3 +3,5 @@ ADDR NAME 0xffffa0894e720000 data 0xffffa089413b8000 meta-domain 0xffffa08955c44000 rpool +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/zfs/spa | vdev b/tests/integration/data/regression_output/dump.201912060006/zfs/spa | vdev index 6d623b0b..061d4fba 100644 --- a/tests/integration/data/regression_output/dump.201912060006/zfs/spa | vdev +++ b/tests/integration/data/regression_output/dump.201912060006/zfs/spa | vdev @@ -15,3 +15,5 @@ 0xffffa088ce7d0000 HEALTHY NONE /tmp/dks3 0xffffa08952efc000 HEALTHY NONE root 0xffffa08953300000 HEALTHY NONE /dev/sda1 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/zfs/spa | vdev | metaslab b/tests/integration/data/regression_output/dump.201912060006/zfs/spa | vdev | metaslab index 1700caf3..67767eeb 100644 --- a/tests/integration/data/regression_output/dump.201912060006/zfs/spa | vdev | metaslab +++ b/tests/integration/data/regression_output/dump.201912060006/zfs/spa | vdev | metaslab @@ -180,3 +180,5 @@ 0xffffa0895374f000 136 0x1100000000 512MB - 0B 0xffffa0895374e800 137 0x1120000000 512MB - 0B 0xffffa0895374d000 138 0x1140000000 512MB - 0B +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/zfs/spa | vdev | metaslab -w b/tests/integration/data/regression_output/dump.201912060006/zfs/spa | vdev | metaslab -w index e5a54b5a..e04cf72b 100644 --- a/tests/integration/data/regression_output/dump.201912060006/zfs/spa | vdev | metaslab -w +++ b/tests/integration/data/regression_output/dump.201912060006/zfs/spa | vdev | metaslab -w @@ -180,3 +180,5 @@ 136 - SPACE - 0M (0.0%) 0B 523MB 137 - SPACE - 0M (0.0%) 0B 519MB 138 - SPACE - 0M (0.0%) 0B 515MB +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/zfs/spa | vdev | metaslab | member ms_allocatable | range_tree b/tests/integration/data/regression_output/dump.201912060006/zfs/spa | vdev | metaslab | member ms_allocatable | range_tree index 7df2f3c4..1457960c 100644 --- a/tests/integration/data/regression_output/dump.201912060006/zfs/spa | vdev | metaslab | member ms_allocatable | range_tree +++ b/tests/integration/data/regression_output/dump.201912060006/zfs/spa | vdev | metaslab | member ms_allocatable | range_tree @@ -2876,3 +2876,5 @@ 0xffffa08953770000: range tree of 0 entries, 0 bytes 0xffffa08953774000: range tree of 0 entries, 0 bytes 0xffffa08953775c00: range tree of 0 entries, 0 bytes +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/zfs/spa | vdev | metaslab | member ms_allocatable.rt_root | zfs_btree b/tests/integration/data/regression_output/dump.201912060006/zfs/spa | vdev | metaslab | member ms_allocatable.rt_root | zfs_btree index 91710c2e..310f5ce8 100644 --- a/tests/integration/data/regression_output/dump.201912060006/zfs/spa | vdev | metaslab | member ms_allocatable.rt_root | zfs_btree +++ b/tests/integration/data/regression_output/dump.201912060006/zfs/spa | vdev | metaslab | member ms_allocatable.rt_root | zfs_btree @@ -2696,3 +2696,5 @@ (void *)0xffffa08954fac020 (void *)0xffffa08954fac028 (void *)0xffffa08954fac030 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/zfs/spa | vdev | pp b/tests/integration/data/regression_output/dump.201912060006/zfs/spa | vdev | pp index 6d623b0b..061d4fba 100644 --- a/tests/integration/data/regression_output/dump.201912060006/zfs/spa | vdev | pp +++ b/tests/integration/data/regression_output/dump.201912060006/zfs/spa | vdev | pp @@ -15,3 +15,5 @@ 0xffffa088ce7d0000 HEALTHY NONE /tmp/dks3 0xffffa08952efc000 HEALTHY NONE root 0xffffa08953300000 HEALTHY NONE /dev/sda1 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/zfs/zfs_dbgmsg b/tests/integration/data/regression_output/dump.201912060006/zfs/zfs_dbgmsg index 83df96d7..efef19b5 100644 --- a/tests/integration/data/regression_output/dump.201912060006/zfs/zfs_dbgmsg +++ b/tests/integration/data/regression_output/dump.201912060006/zfs/zfs_dbgmsg @@ -97,3 +97,5 @@ spa_history.c:306:spa_history_log_sync(): command: zpool create meta-domain raid spa_history.c:314:spa_history_log_sync(): txg 8 create meta-domain/fs-tmp (id 69) spa_history.c:339:spa_history_log_sync(): ioctl create spa_history.c:306:spa_history_log_sync(): command: zfs create meta-domain/fs-tmp +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/zfs/zfs_dbgmsg | tail 5 | zfs_dbgmsg b/tests/integration/data/regression_output/dump.201912060006/zfs/zfs_dbgmsg | tail 5 | zfs_dbgmsg index 93c6c1a6..595a0073 100644 --- a/tests/integration/data/regression_output/dump.201912060006/zfs/zfs_dbgmsg | tail 5 | zfs_dbgmsg +++ b/tests/integration/data/regression_output/dump.201912060006/zfs/zfs_dbgmsg | tail 5 | zfs_dbgmsg @@ -3,3 +3,5 @@ spa_history.c:306:spa_history_log_sync(): command: zpool create meta-domain raid spa_history.c:314:spa_history_log_sync(): txg 8 create meta-domain/fs-tmp (id 69) spa_history.c:339:spa_history_log_sync(): ioctl create spa_history.c:306:spa_history_log_sync(): command: zfs create meta-domain/fs-tmp +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/zfs/zio b/tests/integration/data/regression_output/dump.201912060006/zfs/zio index 39b276a6..47df4b67 100644 --- a/tests/integration/data/regression_output/dump.201912060006/zfs/zio +++ b/tests/integration/data/regression_output/dump.201912060006/zfs/zio @@ -17,3 +17,5 @@ 0xffffa089533a2700 NULL OPEN - - 0xffffa0895f2e9860 NULL OPEN - - 0xffffa0895f2ec9c0 NULL OPEN - - +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.201912060006/zfs/zio -r b/tests/integration/data/regression_output/dump.201912060006/zfs/zio -r index 39b276a6..47df4b67 100644 --- a/tests/integration/data/regression_output/dump.201912060006/zfs/zio -r +++ b/tests/integration/data/regression_output/dump.201912060006/zfs/zio -r @@ -17,3 +17,5 @@ 0xffffa089533a2700 NULL OPEN - - 0xffffa0895f2e9860 NULL OPEN - - 0xffffa0895f2ec9c0 NULL OPEN - - +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/core/addr bogus b/tests/integration/data/regression_output/dump.202303131823/core/addr bogus index a86e3e53..0149a607 100644 --- a/tests/integration/data/regression_output/dump.202303131823/core/addr bogus +++ b/tests/integration/data/regression_output/dump.202303131823/core/addr bogus @@ -1 +1,3 @@ sdb: addr: symbol not found: bogus +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.202303131823/core/addr fget | deref b/tests/integration/data/regression_output/dump.202303131823/core/addr fget | deref index e3d40941..baab73c1 100644 --- a/tests/integration/data/regression_output/dump.202303131823/core/addr fget | deref +++ b/tests/integration/data/regression_output/dump.202303131823/core/addr fget | deref @@ -1 +1,3 @@ sdb: deref: cannot dereference function pointer +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.202303131823/core/addr jiffies | deref b/tests/integration/data/regression_output/dump.202303131823/core/addr jiffies | deref index 37ee6a8b..7a9dead8 100644 --- a/tests/integration/data/regression_output/dump.202303131823/core/addr jiffies | deref +++ b/tests/integration/data/regression_output/dump.202303131823/core/addr jiffies | deref @@ -1 +1,3 @@ (volatile unsigned long)4295291579 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/core/addr jiffies | deref | deref b/tests/integration/data/regression_output/dump.202303131823/core/addr jiffies | deref | deref index a7f18f22..e12a1cd4 100644 --- a/tests/integration/data/regression_output/dump.202303131823/core/addr jiffies | deref | deref +++ b/tests/integration/data/regression_output/dump.202303131823/core/addr jiffies | deref | deref @@ -1 +1,3 @@ sdb: deref: 'volatile unsigned long' is not a valid pointer type +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.202303131823/core/addr spa_namespace_avl b/tests/integration/data/regression_output/dump.202303131823/core/addr spa_namespace_avl index cb233e57..1f4578fe 100644 --- a/tests/integration/data/regression_output/dump.202303131823/core/addr spa_namespace_avl +++ b/tests/integration/data/regression_output/dump.202303131823/core/addr spa_namespace_avl @@ -1 +1,3 @@ (avl_tree_t *)spa_namespace_avl+0x0 = 0xffffffffc08934a0 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/core/addr spa_namespace_avl zfs_dbgmsgs | print -d b/tests/integration/data/regression_output/dump.202303131823/core/addr spa_namespace_avl zfs_dbgmsgs | print -d index d90b636e..d7111a24 100644 --- a/tests/integration/data/regression_output/dump.202303131823/core/addr spa_namespace_avl zfs_dbgmsgs | print -d +++ b/tests/integration/data/regression_output/dump.202303131823/core/addr spa_namespace_avl zfs_dbgmsgs | print -d @@ -73,3 +73,5 @@ .kpe_proc = (struct proc_dir_entry *)0xffff9ac65ee273c0, }, } +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/core/addr spa_namespace_avl | deref b/tests/integration/data/regression_output/dump.202303131823/core/addr spa_namespace_avl | deref index f051c07a..e065190a 100644 --- a/tests/integration/data/regression_output/dump.202303131823/core/addr spa_namespace_avl | deref +++ b/tests/integration/data/regression_output/dump.202303131823/core/addr spa_namespace_avl | deref @@ -4,3 +4,5 @@ .avl_offset = (size_t)264, .avl_numnodes = (ulong_t)3, } +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/core/addr spa_namespace_avl | deref | addr b/tests/integration/data/regression_output/dump.202303131823/core/addr spa_namespace_avl | deref | addr index cb233e57..1f4578fe 100644 --- a/tests/integration/data/regression_output/dump.202303131823/core/addr spa_namespace_avl | deref | addr +++ b/tests/integration/data/regression_output/dump.202303131823/core/addr spa_namespace_avl | deref | addr @@ -1 +1,3 @@ (avl_tree_t *)spa_namespace_avl+0x0 = 0xffffffffc08934a0 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/core/addr spa_namespace_avl | deref | print b/tests/integration/data/regression_output/dump.202303131823/core/addr spa_namespace_avl | deref | print index f051c07a..e065190a 100644 --- a/tests/integration/data/regression_output/dump.202303131823/core/addr spa_namespace_avl | deref | print +++ b/tests/integration/data/regression_output/dump.202303131823/core/addr spa_namespace_avl | deref | print @@ -4,3 +4,5 @@ .avl_offset = (size_t)264, .avl_numnodes = (ulong_t)3, } +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/core/addr spa_namespace_avl | member avl_root->avl_child[0]->avl_child b/tests/integration/data/regression_output/dump.202303131823/core/addr spa_namespace_avl | member avl_root->avl_child[0]->avl_child index cfe8f9e5..98d8f13f 100644 --- a/tests/integration/data/regression_output/dump.202303131823/core/addr spa_namespace_avl | member avl_root->avl_child[0]->avl_child +++ b/tests/integration/data/regression_output/dump.202303131823/core/addr spa_namespace_avl | member avl_root->avl_child[0]->avl_child @@ -1 +1,3 @@ (struct avl_node *[2]){} +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/core/addr spa_namespace_avl | member avl_root->avl_child[1 b/tests/integration/data/regression_output/dump.202303131823/core/addr spa_namespace_avl | member avl_root->avl_child[1 index c07687ab..bd2b941c 100644 --- a/tests/integration/data/regression_output/dump.202303131823/core/addr spa_namespace_avl | member avl_root->avl_child[1 +++ b/tests/integration/data/regression_output/dump.202303131823/core/addr spa_namespace_avl | member avl_root->avl_child[1 @@ -1 +1,3 @@ sdb: member: incomplete array expression: please use something of the format 'array_name[index]' +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.202303131823/core/addr spa_namespace_avl | member avl_root->avl_child[3] b/tests/integration/data/regression_output/dump.202303131823/core/addr spa_namespace_avl | member avl_root->avl_child[3] index 8637301a..514052f6 100644 --- a/tests/integration/data/regression_output/dump.202303131823/core/addr spa_namespace_avl | member avl_root->avl_child[3] +++ b/tests/integration/data/regression_output/dump.202303131823/core/addr spa_namespace_avl | member avl_root->avl_child[3] @@ -1,2 +1,4 @@ warning: member: index out of bounds for array of type 'struct avl_node *[2]' (requested index: 3) (struct avl_node *)0xffff9ac64ca9a360 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/core/addr spa_namespace_avl | member avl_root->avl_child[a] b/tests/integration/data/regression_output/dump.202303131823/core/addr spa_namespace_avl | member avl_root->avl_child[a] index a50a79b9..77d13c6e 100644 --- a/tests/integration/data/regression_output/dump.202303131823/core/addr spa_namespace_avl | member avl_root->avl_child[a] +++ b/tests/integration/data/regression_output/dump.202303131823/core/addr spa_namespace_avl | member avl_root->avl_child[a] @@ -1 +1,3 @@ sdb: member: incorrect index: 'a' is not a number +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.202303131823/core/addr spa_namespace_avl | member avl_root.avl_child[0].avl_child b/tests/integration/data/regression_output/dump.202303131823/core/addr spa_namespace_avl | member avl_root.avl_child[0].avl_child index cfe8f9e5..98d8f13f 100644 --- a/tests/integration/data/regression_output/dump.202303131823/core/addr spa_namespace_avl | member avl_root.avl_child[0].avl_child +++ b/tests/integration/data/regression_output/dump.202303131823/core/addr spa_namespace_avl | member avl_root.avl_child[0].avl_child @@ -1 +1,3 @@ (struct avl_node *[2]){} +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/core/addr spa_namespace_avl | member avl_root.avl_pcb avl_size b/tests/integration/data/regression_output/dump.202303131823/core/addr spa_namespace_avl | member avl_root.avl_pcb avl_size index 1e80c324..29ef3627 100644 --- a/tests/integration/data/regression_output/dump.202303131823/core/addr spa_namespace_avl | member avl_root.avl_pcb avl_size +++ b/tests/integration/data/regression_output/dump.202303131823/core/addr spa_namespace_avl | member avl_root.avl_pcb avl_size @@ -1,2 +1,4 @@ (uintptr_t)1 sdb: member: 'avl_tree_t' has no member 'avl_size' +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.202303131823/core/addr spa_namespace_avl | print b/tests/integration/data/regression_output/dump.202303131823/core/addr spa_namespace_avl | print index cb233e57..1f4578fe 100644 --- a/tests/integration/data/regression_output/dump.202303131823/core/addr spa_namespace_avl | print +++ b/tests/integration/data/regression_output/dump.202303131823/core/addr spa_namespace_avl | print @@ -1 +1,3 @@ (avl_tree_t *)spa_namespace_avl+0x0 = 0xffffffffc08934a0 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/core/addr spa_namespace_avl | print --RAW b/tests/integration/data/regression_output/dump.202303131823/core/addr spa_namespace_avl | print --RAW index 67b9d37b..dcb95e81 100644 --- a/tests/integration/data/regression_output/dump.202303131823/core/addr spa_namespace_avl | print --RAW +++ b/tests/integration/data/regression_output/dump.202303131823/core/addr spa_namespace_avl | print --RAW @@ -1 +1,3 @@ 0xffffffffc08934a0 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/core/addr spa_namespace_avl | print -d b/tests/integration/data/regression_output/dump.202303131823/core/addr spa_namespace_avl | print -d index 6adbd52e..5cf1027f 100644 --- a/tests/integration/data/regression_output/dump.202303131823/core/addr spa_namespace_avl | print -d +++ b/tests/integration/data/regression_output/dump.202303131823/core/addr spa_namespace_avl | print -d @@ -4,3 +4,5 @@ .avl_offset = (size_t)264, .avl_numnodes = (ulong_t)3, } +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/core/addr spa_namespace_avl | print -n b/tests/integration/data/regression_output/dump.202303131823/core/addr spa_namespace_avl | print -n index ec05b9f9..5cf32487 100644 --- a/tests/integration/data/regression_output/dump.202303131823/core/addr spa_namespace_avl | print -n +++ b/tests/integration/data/regression_output/dump.202303131823/core/addr spa_namespace_avl | print -n @@ -1 +1,3 @@ (avl_tree_t *)0xffffffffc08934a0 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/core/addr spa_namespace_avl | print -nr b/tests/integration/data/regression_output/dump.202303131823/core/addr spa_namespace_avl | print -nr index 67b9d37b..dcb95e81 100644 --- a/tests/integration/data/regression_output/dump.202303131823/core/addr spa_namespace_avl | print -nr +++ b/tests/integration/data/regression_output/dump.202303131823/core/addr spa_namespace_avl | print -nr @@ -1 +1,3 @@ 0xffffffffc08934a0 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/core/addr spa_namespace_avl | print -r b/tests/integration/data/regression_output/dump.202303131823/core/addr spa_namespace_avl | print -r index d99a190a..d463b1b2 100644 --- a/tests/integration/data/regression_output/dump.202303131823/core/addr spa_namespace_avl | print -r +++ b/tests/integration/data/regression_output/dump.202303131823/core/addr spa_namespace_avl | print -r @@ -1 +1,3 @@ spa_namespace_avl+0x0 = 0xffffffffc08934a0 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/core/echo 0x0 0x1 0x2 | filter 'obj < 1' b/tests/integration/data/regression_output/dump.202303131823/core/echo 0x0 0x1 0x2 | filter 'obj < 1' index 1195f3e5..aa4eaeb7 100644 --- a/tests/integration/data/regression_output/dump.202303131823/core/echo 0x0 0x1 0x2 | filter 'obj < 1' +++ b/tests/integration/data/regression_output/dump.202303131823/core/echo 0x0 0x1 0x2 | filter 'obj < 1' @@ -1 +1,3 @@ (void *)0x0 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/core/echo 0x0 0x1 0x2 | filter 'obj <= 1' b/tests/integration/data/regression_output/dump.202303131823/core/echo 0x0 0x1 0x2 | filter 'obj <= 1' index 6218040a..cf87594e 100644 --- a/tests/integration/data/regression_output/dump.202303131823/core/echo 0x0 0x1 0x2 | filter 'obj <= 1' +++ b/tests/integration/data/regression_output/dump.202303131823/core/echo 0x0 0x1 0x2 | filter 'obj <= 1' @@ -1,2 +1,4 @@ (void *)0x0 (void *)0x1 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/core/echo 0x0 0x1 0x2 | filter 'obj == 1' b/tests/integration/data/regression_output/dump.202303131823/core/echo 0x0 0x1 0x2 | filter 'obj == 1' index 0ada95c0..12e6e69c 100644 --- a/tests/integration/data/regression_output/dump.202303131823/core/echo 0x0 0x1 0x2 | filter 'obj == 1' +++ b/tests/integration/data/regression_output/dump.202303131823/core/echo 0x0 0x1 0x2 | filter 'obj == 1' @@ -1 +1,3 @@ (void *)0x1 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/core/echo 0x0 0x1 0x2 | filter 'obj > 1' b/tests/integration/data/regression_output/dump.202303131823/core/echo 0x0 0x1 0x2 | filter 'obj > 1' index 13ff7600..4e8a4e6b 100644 --- a/tests/integration/data/regression_output/dump.202303131823/core/echo 0x0 0x1 0x2 | filter 'obj > 1' +++ b/tests/integration/data/regression_output/dump.202303131823/core/echo 0x0 0x1 0x2 | filter 'obj > 1' @@ -1 +1,3 @@ (void *)0x2 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/core/echo 0x0 0x1 0x2 | filter 'obj >= 1' b/tests/integration/data/regression_output/dump.202303131823/core/echo 0x0 0x1 0x2 | filter 'obj >= 1' index a7451662..d14331bf 100644 --- a/tests/integration/data/regression_output/dump.202303131823/core/echo 0x0 0x1 0x2 | filter 'obj >= 1' +++ b/tests/integration/data/regression_output/dump.202303131823/core/echo 0x0 0x1 0x2 | filter 'obj >= 1' @@ -1,2 +1,4 @@ (void *)0x1 (void *)0x2 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/core/echo 0x0 | addr spa_namespace_avl | echo 0x1 | cast avl_tree_t * | member avl_root b/tests/integration/data/regression_output/dump.202303131823/core/echo 0x0 | addr spa_namespace_avl | echo 0x1 | cast avl_tree_t * | member avl_root index 1c378367..f516d48c 100644 --- a/tests/integration/data/regression_output/dump.202303131823/core/echo 0x0 | addr spa_namespace_avl | echo 0x1 | cast avl_tree_t * | member avl_root +++ b/tests/integration/data/regression_output/dump.202303131823/core/echo 0x0 | addr spa_namespace_avl | echo 0x1 | cast avl_tree_t * | member avl_root @@ -1,3 +1,5 @@ sdb: member: invalid memory access: addresss 0x0 (struct avl_node *)0xffff9ac658924108 sdb: member: invalid memory access: addresss 0x1 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/core/echo 0x0 | cast int * | array 1 b/tests/integration/data/regression_output/dump.202303131823/core/echo 0x0 | cast int * | array 1 index f46b2bb5..e6c7c273 100644 --- a/tests/integration/data/regression_output/dump.202303131823/core/echo 0x0 | cast int * | array 1 +++ b/tests/integration/data/regression_output/dump.202303131823/core/echo 0x0 | cast int * | array 1 @@ -1 +1,3 @@ sdb: array: invalid memory access: addresss 0x0 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/core/echo 0x0 | cast int * | deref b/tests/integration/data/regression_output/dump.202303131823/core/echo 0x0 | cast int * | deref index e711ef02..23afc1e4 100644 --- a/tests/integration/data/regression_output/dump.202303131823/core/echo 0x0 | cast int * | deref +++ b/tests/integration/data/regression_output/dump.202303131823/core/echo 0x0 | cast int * | deref @@ -1 +1,3 @@ sdb: deref: invalid memory access: addresss 0x0 +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.202303131823/core/echo 0x0 | cast spa_t * | member spa_name b/tests/integration/data/regression_output/dump.202303131823/core/echo 0x0 | cast spa_t * | member spa_name index f79c5036..afc31aa8 100644 --- a/tests/integration/data/regression_output/dump.202303131823/core/echo 0x0 | cast spa_t * | member spa_name +++ b/tests/integration/data/regression_output/dump.202303131823/core/echo 0x0 | cast spa_t * | member spa_name @@ -1 +1,3 @@ sdb: member: invalid memory access: addresss 0x0 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/core/echo 0x0 | cast void * | array 1 b/tests/integration/data/regression_output/dump.202303131823/core/echo 0x0 | cast void * | array 1 index 51295f92..76136e78 100644 --- a/tests/integration/data/regression_output/dump.202303131823/core/echo 0x0 | cast void * | array 1 +++ b/tests/integration/data/regression_output/dump.202303131823/core/echo 0x0 | cast void * | array 1 @@ -1 +1,3 @@ sdb: array: can't walk pointer array of incomplete type 'void' +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.202303131823/core/echo 0x0 | filter 'obj == 0' b/tests/integration/data/regression_output/dump.202303131823/core/echo 0x0 | filter 'obj == 0' index 1195f3e5..aa4eaeb7 100644 --- a/tests/integration/data/regression_output/dump.202303131823/core/echo 0x0 | filter 'obj == 0' +++ b/tests/integration/data/regression_output/dump.202303131823/core/echo 0x0 | filter 'obj == 0' @@ -1 +1,3 @@ (void *)0x0 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/core/echo 0x0 | filter 'obj == 1' b/tests/integration/data/regression_output/dump.202303131823/core/echo 0x0 | filter 'obj == 1' index e69de29b..77f91668 100644 --- a/tests/integration/data/regression_output/dump.202303131823/core/echo 0x0 | filter 'obj == 1' +++ b/tests/integration/data/regression_output/dump.202303131823/core/echo 0x0 | filter 'obj == 1' @@ -0,0 +1,2 @@ +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/core/echo 0x1 | filter 'obj == obj' b/tests/integration/data/regression_output/dump.202303131823/core/echo 0x1 | filter 'obj == obj' index 0ada95c0..12e6e69c 100644 --- a/tests/integration/data/regression_output/dump.202303131823/core/echo 0x1 | filter 'obj == obj' +++ b/tests/integration/data/regression_output/dump.202303131823/core/echo 0x1 | filter 'obj == obj' @@ -1 +1,3 @@ (void *)0x1 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/core/echo 0x10 | cast int * | deref b/tests/integration/data/regression_output/dump.202303131823/core/echo 0x10 | cast int * | deref index d2f90a83..9ea037ed 100644 --- a/tests/integration/data/regression_output/dump.202303131823/core/echo 0x10 | cast int * | deref +++ b/tests/integration/data/regression_output/dump.202303131823/core/echo 0x10 | cast int * | deref @@ -1 +1,3 @@ sdb: deref: invalid memory access: addresss 0x10 +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.202303131823/core/echo 0x1234 | cast dmu_recv_cookie_t * | member drc_os b/tests/integration/data/regression_output/dump.202303131823/core/echo 0x1234 | cast dmu_recv_cookie_t * | member drc_os index 2c067a56..bcedfee7 100644 --- a/tests/integration/data/regression_output/dump.202303131823/core/echo 0x1234 | cast dmu_recv_cookie_t * | member drc_os +++ b/tests/integration/data/regression_output/dump.202303131823/core/echo 0x1234 | cast dmu_recv_cookie_t * | member drc_os @@ -1 +1,3 @@ sdb: member: invalid memory access: addresss 0x12c4 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/core/echo 0xffff90cc11b28000 | deref b/tests/integration/data/regression_output/dump.202303131823/core/echo 0xffff90cc11b28000 | deref index b517f0ba..ea1cf80b 100644 --- a/tests/integration/data/regression_output/dump.202303131823/core/echo 0xffff90cc11b28000 | deref +++ b/tests/integration/data/regression_output/dump.202303131823/core/echo 0xffff90cc11b28000 | deref @@ -1 +1,3 @@ sdb: deref: cannot dereference a void pointer +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.202303131823/core/echo 1 | echo 2 | sum b/tests/integration/data/regression_output/dump.202303131823/core/echo 1 | echo 2 | sum index 5b9bbfda..ecc2d55d 100644 --- a/tests/integration/data/regression_output/dump.202303131823/core/echo 1 | echo 2 | sum +++ b/tests/integration/data/regression_output/dump.202303131823/core/echo 1 | echo 2 | sum @@ -1 +1,3 @@ (uint64_t)3 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/core/echo 1234 | cast int | array b/tests/integration/data/regression_output/dump.202303131823/core/echo 1234 | cast int | array index 7c2439b7..27f23e44 100644 --- a/tests/integration/data/regression_output/dump.202303131823/core/echo 1234 | cast int | array +++ b/tests/integration/data/regression_output/dump.202303131823/core/echo 1234 | cast int | array @@ -1 +1,3 @@ sdb: array: 'int' is not an array nor a pointer type +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.202303131823/core/filter 'obj == 1' b/tests/integration/data/regression_output/dump.202303131823/core/filter 'obj == 1' index e69de29b..77f91668 100644 --- a/tests/integration/data/regression_output/dump.202303131823/core/filter 'obj == 1' +++ b/tests/integration/data/regression_output/dump.202303131823/core/filter 'obj == 1' @@ -0,0 +1,2 @@ +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/core/member no_object b/tests/integration/data/regression_output/dump.202303131823/core/member no_object index e69de29b..77f91668 100644 --- a/tests/integration/data/regression_output/dump.202303131823/core/member no_object +++ b/tests/integration/data/regression_output/dump.202303131823/core/member no_object @@ -0,0 +1,2 @@ +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/core/ptype $abc b/tests/integration/data/regression_output/dump.202303131823/core/ptype $abc index 778d3f1f..f0ecd377 100644 --- a/tests/integration/data/regression_output/dump.202303131823/core/ptype $abc +++ b/tests/integration/data/regression_output/dump.202303131823/core/ptype $abc @@ -1 +1,3 @@ sdb: ptype: input '$abc' is not a valid type name +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.202303131823/core/ptype 'a b c' b/tests/integration/data/regression_output/dump.202303131823/core/ptype 'a b c' index a01fdde4..0bc31243 100644 --- a/tests/integration/data/regression_output/dump.202303131823/core/ptype 'a b c' +++ b/tests/integration/data/regression_output/dump.202303131823/core/ptype 'a b c' @@ -1 +1,3 @@ sdb: ptype: input 'a b c' is not a valid type name +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.202303131823/core/ptype 'bogus union' b/tests/integration/data/regression_output/dump.202303131823/core/ptype 'bogus union' index cc1731b6..19da9489 100644 --- a/tests/integration/data/regression_output/dump.202303131823/core/ptype 'bogus union' +++ b/tests/integration/data/regression_output/dump.202303131823/core/ptype 'bogus union' @@ -1 +1,3 @@ sdb: ptype: input 'bogus union' is not a valid type name +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.202303131823/core/ptype 'struct bogus' b/tests/integration/data/regression_output/dump.202303131823/core/ptype 'struct bogus' index 70772673..a9b599d9 100644 --- a/tests/integration/data/regression_output/dump.202303131823/core/ptype 'struct bogus' +++ b/tests/integration/data/regression_output/dump.202303131823/core/ptype 'struct bogus' @@ -1 +1,3 @@ sdb: ptype: couldn't find type 'struct bogus' +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.202303131823/core/ptype 'struct spa' b/tests/integration/data/regression_output/dump.202303131823/core/ptype 'struct spa' index bc5e62b9..a3594e75 100644 --- a/tests/integration/data/regression_output/dump.202303131823/core/ptype 'struct spa' +++ b/tests/integration/data/regression_output/dump.202303131823/core/ptype 'struct spa' @@ -200,3 +200,5 @@ struct spa { zfs_refcount_t spa_refcount; taskq_t *spa_upgrade_taskq; } +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/core/ptype 'struct union' b/tests/integration/data/regression_output/dump.202303131823/core/ptype 'struct union' index 5cf94487..47418b5f 100644 --- a/tests/integration/data/regression_output/dump.202303131823/core/ptype 'struct union' +++ b/tests/integration/data/regression_output/dump.202303131823/core/ptype 'struct union' @@ -1 +1,3 @@ sdb: ptype: input 'struct union' is not a valid type name +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.202303131823/core/ptype 'struct' b/tests/integration/data/regression_output/dump.202303131823/core/ptype 'struct' index 3a998af7..3ad89ef4 100644 --- a/tests/integration/data/regression_output/dump.202303131823/core/ptype 'struct' +++ b/tests/integration/data/regression_output/dump.202303131823/core/ptype 'struct' @@ -1 +1,3 @@ sdb: ptype: skip keyword 'struct' or quote your type "struct " +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.202303131823/core/ptype 'union struct struct' b/tests/integration/data/regression_output/dump.202303131823/core/ptype 'union struct struct' index dd412f24..980d0532 100644 --- a/tests/integration/data/regression_output/dump.202303131823/core/ptype 'union struct struct' +++ b/tests/integration/data/regression_output/dump.202303131823/core/ptype 'union struct struct' @@ -1 +1,3 @@ sdb: ptype: input 'union struct struct' is not a valid type name +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.202303131823/core/ptype 2abc b/tests/integration/data/regression_output/dump.202303131823/core/ptype 2abc index 39f91fb4..ea544776 100644 --- a/tests/integration/data/regression_output/dump.202303131823/core/ptype 2abc +++ b/tests/integration/data/regression_output/dump.202303131823/core/ptype 2abc @@ -1 +1,3 @@ sdb: ptype: input '2abc' is not a valid type name +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.202303131823/core/ptype @ b/tests/integration/data/regression_output/dump.202303131823/core/ptype @ index ac8e79dd..0a28c42d 100644 --- a/tests/integration/data/regression_output/dump.202303131823/core/ptype @ +++ b/tests/integration/data/regression_output/dump.202303131823/core/ptype @ @@ -1 +1,3 @@ sdb: ptype: input '@' is not a valid type name +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.202303131823/core/ptype bogus_t b/tests/integration/data/regression_output/dump.202303131823/core/ptype bogus_t index 846cd783..ac038abd 100644 --- a/tests/integration/data/regression_output/dump.202303131823/core/ptype bogus_t +++ b/tests/integration/data/regression_output/dump.202303131823/core/ptype bogus_t @@ -1 +1,3 @@ sdb: ptype: couldn't find typedef, struct, enum, nor union named 'bogus_t' +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.202303131823/core/ptype spa vdev b/tests/integration/data/regression_output/dump.202303131823/core/ptype spa vdev index 4d56288d..ee3515f1 100644 --- a/tests/integration/data/regression_output/dump.202303131823/core/ptype spa vdev +++ b/tests/integration/data/regression_output/dump.202303131823/core/ptype spa vdev @@ -363,3 +363,5 @@ struct vdev { uint64_t vdev_io_n; uint64_t vdev_io_t; } +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/core/ptype spa_t b/tests/integration/data/regression_output/dump.202303131823/core/ptype spa_t index 7dbfe554..926d961d 100644 --- a/tests/integration/data/regression_output/dump.202303131823/core/ptype spa_t +++ b/tests/integration/data/regression_output/dump.202303131823/core/ptype spa_t @@ -1 +1,3 @@ typedef struct spa spa_t +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/core/ptype struct spa b/tests/integration/data/regression_output/dump.202303131823/core/ptype struct spa index 3a998af7..3ad89ef4 100644 --- a/tests/integration/data/regression_output/dump.202303131823/core/ptype struct spa +++ b/tests/integration/data/regression_output/dump.202303131823/core/ptype struct spa @@ -1 +1,3 @@ sdb: ptype: skip keyword 'struct' or quote your type "struct " +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.202303131823/core/ptype zfs_case 'struct v' thread_union b/tests/integration/data/regression_output/dump.202303131823/core/ptype zfs_case 'struct v' thread_union index f6d20581..2aa32ee9 100644 --- a/tests/integration/data/regression_output/dump.202303131823/core/ptype zfs_case 'struct v' thread_union +++ b/tests/integration/data/regression_output/dump.202303131823/core/ptype zfs_case 'struct v' thread_union @@ -10,3 +10,5 @@ union thread_union { struct task_struct task; unsigned long stack[2048]; } +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/core/sizeof bogus b/tests/integration/data/regression_output/dump.202303131823/core/sizeof bogus index c8133ac4..a4eafdcc 100644 --- a/tests/integration/data/regression_output/dump.202303131823/core/sizeof bogus +++ b/tests/integration/data/regression_output/dump.202303131823/core/sizeof bogus @@ -1 +1,3 @@ sdb: sizeof: couldn't find typedef, struct, enum, nor union named 'bogus' +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.202303131823/core/sizeof size_t b/tests/integration/data/regression_output/dump.202303131823/core/sizeof size_t index a6375e71..8acd38f6 100644 --- a/tests/integration/data/regression_output/dump.202303131823/core/sizeof size_t +++ b/tests/integration/data/regression_output/dump.202303131823/core/sizeof size_t @@ -1 +1,3 @@ (size_t)8 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/core/sizeof spa vdev b/tests/integration/data/regression_output/dump.202303131823/core/sizeof spa vdev index cc635c67..ce331863 100644 --- a/tests/integration/data/regression_output/dump.202303131823/core/sizeof spa vdev +++ b/tests/integration/data/regression_output/dump.202303131823/core/sizeof spa vdev @@ -1,2 +1,4 @@ (size_t)9792 (size_t)15800 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/core/sizeof struct spa b/tests/integration/data/regression_output/dump.202303131823/core/sizeof struct spa index 096a29d3..66a6bbdc 100644 --- a/tests/integration/data/regression_output/dump.202303131823/core/sizeof struct spa +++ b/tests/integration/data/regression_output/dump.202303131823/core/sizeof struct spa @@ -1 +1,3 @@ sdb: sizeof: skip keyword 'struct' or quote your type "struct " +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.202303131823/core/sizeof task_struct b/tests/integration/data/regression_output/dump.202303131823/core/sizeof task_struct index e4670493..139394cb 100644 --- a/tests/integration/data/regression_output/dump.202303131823/core/sizeof task_struct +++ b/tests/integration/data/regression_output/dump.202303131823/core/sizeof task_struct @@ -1 +1,3 @@ (size_t)9280 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/core/spa rpool | filter 'obj.bogus == 1624' b/tests/integration/data/regression_output/dump.202303131823/core/spa rpool | filter 'obj.bogus == 1624' index 53f844e8..245a8fc3 100644 --- a/tests/integration/data/regression_output/dump.202303131823/core/spa rpool | filter 'obj.bogus == 1624' +++ b/tests/integration/data/regression_output/dump.202303131823/core/spa rpool | filter 'obj.bogus == 1624' @@ -1 +1,3 @@ sdb: filter: 'spa_t' has no member 'bogus' +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.202303131823/core/spa rpool | filter 'obj.spa_syncing_txg < 1624' | member spa_name b/tests/integration/data/regression_output/dump.202303131823/core/spa rpool | filter 'obj.spa_syncing_txg < 1624' | member spa_name index 1379983a..751ae4ce 100644 --- a/tests/integration/data/regression_output/dump.202303131823/core/spa rpool | filter 'obj.spa_syncing_txg < 1624' | member spa_name +++ b/tests/integration/data/regression_output/dump.202303131823/core/spa rpool | filter 'obj.spa_syncing_txg < 1624' | member spa_name @@ -1 +1,3 @@ (char [256])"rpool" +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/core/spa rpool | filter 'obj.spa_syncing_txg <= 1624' | member spa_name b/tests/integration/data/regression_output/dump.202303131823/core/spa rpool | filter 'obj.spa_syncing_txg <= 1624' | member spa_name index 1379983a..751ae4ce 100644 --- a/tests/integration/data/regression_output/dump.202303131823/core/spa rpool | filter 'obj.spa_syncing_txg <= 1624' | member spa_name +++ b/tests/integration/data/regression_output/dump.202303131823/core/spa rpool | filter 'obj.spa_syncing_txg <= 1624' | member spa_name @@ -1 +1,3 @@ (char [256])"rpool" +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/core/spa rpool | filter 'obj.spa_syncing_txg == 1624' | member spa_name b/tests/integration/data/regression_output/dump.202303131823/core/spa rpool | filter 'obj.spa_syncing_txg == 1624' | member spa_name index e69de29b..77f91668 100644 --- a/tests/integration/data/regression_output/dump.202303131823/core/spa rpool | filter 'obj.spa_syncing_txg == 1624' | member spa_name +++ b/tests/integration/data/regression_output/dump.202303131823/core/spa rpool | filter 'obj.spa_syncing_txg == 1624' | member spa_name @@ -0,0 +1,2 @@ +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/core/spa rpool | filter 'obj.spa_syncing_txg > 1624' | member spa_name b/tests/integration/data/regression_output/dump.202303131823/core/spa rpool | filter 'obj.spa_syncing_txg > 1624' | member spa_name index e69de29b..77f91668 100644 --- a/tests/integration/data/regression_output/dump.202303131823/core/spa rpool | filter 'obj.spa_syncing_txg > 1624' | member spa_name +++ b/tests/integration/data/regression_output/dump.202303131823/core/spa rpool | filter 'obj.spa_syncing_txg > 1624' | member spa_name @@ -0,0 +1,2 @@ +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/core/spa rpool | filter 'obj.spa_syncing_txg >= 1624' | member spa_name b/tests/integration/data/regression_output/dump.202303131823/core/spa rpool | filter 'obj.spa_syncing_txg >= 1624' | member spa_name index e69de29b..77f91668 100644 --- a/tests/integration/data/regression_output/dump.202303131823/core/spa rpool | filter 'obj.spa_syncing_txg >= 1624' | member spa_name +++ b/tests/integration/data/regression_output/dump.202303131823/core/spa rpool | filter 'obj.spa_syncing_txg >= 1624' | member spa_name @@ -0,0 +1,2 @@ +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/core/spa rpool | filter 'obj.spa_syncing_txg bogus_op 1624' b/tests/integration/data/regression_output/dump.202303131823/core/spa rpool | filter 'obj.spa_syncing_txg bogus_op 1624' index fc761b9b..aea4edcc 100644 --- a/tests/integration/data/regression_output/dump.202303131823/core/spa rpool | filter 'obj.spa_syncing_txg bogus_op 1624' +++ b/tests/integration/data/regression_output/dump.202303131823/core/spa rpool | filter 'obj.spa_syncing_txg bogus_op 1624' @@ -1 +1,3 @@ sdb: filter: invalid input: comparison operator is missing +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.202303131823/core/spa | deref | sum b/tests/integration/data/regression_output/dump.202303131823/core/spa | deref | sum index 908ade20..5242fae8 100644 --- a/tests/integration/data/regression_output/dump.202303131823/core/spa | deref | sum +++ b/tests/integration/data/regression_output/dump.202303131823/core/spa | deref | sum @@ -1 +1,3 @@ sdb: sum: 'struct spa' is not an integer type +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.202303131823/core/spa | head 1 | deref | print --RAW -s b/tests/integration/data/regression_output/dump.202303131823/core/spa | head 1 | deref | print --RAW -s index 8839ea40..4b029ee0 100644 --- a/tests/integration/data/regression_output/dump.202303131823/core/spa | head 1 | deref | print --RAW -s +++ b/tests/integration/data/regression_output/dump.202303131823/core/spa | head 1 | deref | print --RAW -s @@ -1 +1,3 @@ { "objpool", 0x0, { {}, 18446632775413022985 }, 0xffff9ac65c473fa0, 0x0, 0x0, 0xffff9ac616feeb60, 4, 0, POOL_STATE_ACTIVE, 0, 1, SPA_LOAD_NONE, B_TRUE, B_TRUE, B_FALSE, SPA_CONFIG_SRC_NONE, 0, { { { 1, 0xffff9ac64543de20 }, { 0, 0x0 }, { 1, 0xffff9ac64543dcc8 } }, { { 1, 0xffff9ac645636af0 }, { 0, 0x0 }, { 1, 0xffff9ac6456365d8 } }, { { 1, 0xffff9ac64543ddf8 }, { 1, 0xffff9ac64543da20 }, { 1, 0xffff9ac6456365c0 }, { 1, 0xffff9ac64543d758 } }, { { 1, 0xffff9ac645636a98 }, { 0, 0x0 }, { 1, 0xffff9ac645636cb8 } }, { { 1, 0xffff9ac64543d8d8 }, { 0, 0x0 }, { 1, 0xffff9ac64543d9f8 } }, { { 1, 0xffff9ac645636728 }, { 0, 0x0 }, { 1, 0xffff9ac645636188 } }, { { 1, 0xffff9ac64543df68 }, { 0, 0x0 }, { 1, 0xffff9ac64543dbe8 } } }, 0xffff9ac48f0a8000, B_FALSE, B_FALSE, 0xffff9ac559f74800, 0xffff9ac559f77c00, 0xffff9ac610619400, 0xffff9ac61061b400, 0xffff9ac60523e000, 0xffff9ac49990ec00, 4, 18446744073709551615, 18446744073709551615, 18446744073709551615, 0, { 0, 0 }, 0xffff9ac618a49000, { { { 0 }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { { 0 } }, { 0xffff9ac6538603c8, 0xffff9ac6538603c8 } }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, 0x0 }, { 1480, 592, { 0xffff9ac6538603f8, 0xffff9ac6538603f8 } }, { 879052276, { { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { 0xffff9ac653860418, 0xffff9ac653860418 } }, { { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { 0xffff9ac653860430, 0xffff9ac653860430 } }, { 1 }, { 0 }, 0x0 }, { { { { 0 }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { { 0 } }, { 0xffff9ac653860460, 0xffff9ac653860460 } }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, 0x0 }, 11384, 0xffff9ac653860000, {} }, 0xffff9ac5764e0000, 9, 9, 512, 0, 627585233783221890, 14188352787665702174, { 15800, 11432, { 0xffff9ac6538604f8, 0xffff9ac6538604f8 } }, { 15800, 11448, { 0xffff9ac653860518, 0xffff9ac653860518 } }, 0xffff9ac5e5662a00, 4, { 0, 0x0, 0x0, 0, B_FALSE, 0x0, 0 }, { 0, 0x0, 0x0, 0, B_FALSE, 0x0, 0 }, 0xffff9ac616fee680, 61, 0, 249, { { { { 0 }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { { 0 } }, { 0xffff9ac6538605c8, 0xffff9ac6538605c8 } }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, 0x0 }, 0xffff9ac618a49000, 62, 128, 1, 1, 0, 0xffff9ac647852400, 0xffff9ac47a9bfa08, 0x0 }, { { { { { 0 }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { { 0 } }, { 0xffff9ac653860628, 0xffff9ac653860628 } }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, 0x0 }, { 144, 128, { 0xffff9ac653860658, 0xffff9ac653860658 } } }, { { { { 0 }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { { 0 } }, { 0xffff9ac653860678, 0xffff9ac653860678 } }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, 0x0 }, { 144, 128, { 0xffff9ac6538606a8, 0xffff9ac6538606a8 } } }, { { { { 0 }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { { 0 } }, { 0xffff9ac6538606c8, 0xffff9ac6538606c8 } }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, 0x0 }, { 144, 128, { 0xffff9ac6538606f8, 0xffff9ac6538606f8 } } }, { { { { 0 }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { { 0 } }, { 0xffff9ac653860718, 0xffff9ac653860718 } }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, 0x0 }, { 144, 128, { 0xffff9ac653860748, 0xffff9ac653860748 } } } }, { { 144, 242, 241, 167, 165, 91, 236, 121, 228, 81, 133, 86, 112, 169, 239, 134, 204, 182, 222, 87, 11, 61, 148, 9, 78, 173, 19, 253, 117, 136, 6, 184 } }, { { { 0 }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { { 0 } }, { 0xffff9ac653860788, 0xffff9ac653860788 } }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, 0x0 }, {}, { 12235020, 5000, 249, 15871353990467969697, 1678731761, { { { { 1, 239589 } } }, 9226476022604496903, {}, 0, 249, 50, { { 40441827631, 4279632404698, 229752974238664, 8344914455449193 } } }, 5000, 2703026705, 0, 0, 0, 0, 0, 0 }, { 12235020, 5000, 249, 15871353990467969697, 1678731761, { { { { 1, 239589 } } }, 9226476022604496903, {}, 0, 249, 50, { { 40441827631, 4279632404698, 229752974238664, 8344914455449193 } } }, 5000, 2703026705, 0, 0, 0, 0, 0, 0 }, B_FALSE, { { { 0 }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { { 0 } }, { 0xffff9ac653860a08, 0xffff9ac653860a08 } }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, 0x0 }, 0, SPA_TYPE_OBJECT_STORE, 0, { 879052276, { { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { 0xffff9ac653860a50, 0xffff9ac653860a50 } }, { { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { 0xffff9ac653860a68, 0xffff9ac653860a68 } }, { 1 }, { 0 }, 0x0 }, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, B_FALSE, { { { 0 }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { { 0 } }, { 0xffff9ac653860ad0, 0xffff9ac653860ad0 } }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, 0x0 }, 0x0, 0, { 879052276, { { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { 0xffff9ac653860b10, 0xffff9ac653860b10 } }, { { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { 0xffff9ac653860b28, 0xffff9ac653860b28 } }, { 1 }, { 0 }, 0x0 }, 0, 0, 0, 0, { 0, 18446744073709551615, 18446744073709551615, 0, 0, 0, 0 }, 0x0, { 0, 0, 0 }, 0x0, 0xffff9ac646b55200, 0, { 0, 0 }, 0xffff9ac646b54e00, 0x0, { 0x0, 0xffffffffc06659d0, 32, 0 }, { { { 0 }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { { 0 } }, { 0xffff9ac653860c28, 0xffff9ac653860c28 } }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, 0x0 }, { 0x0, 0xffffffffc063ae10, 1984, 0 }, { 0, 0, 0 }, { 64, 48, { 0xffff9ac653860c90, 0xffff9ac653860c90 } }, 0, 0xffff9ac646b54000, 0xffff9ac659315200, 0, { 0x0, 0x0, 0x0, B_FALSE, B_FALSE }, 0x0, 0, 0, 0, 0, 0, 0, 0, 0, 0, { { { 0 }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { { 0 } }, { 0xffff9ac653860d40, 0xffff9ac653860d40 } }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, 0x0 }, 0, 0, { { { 0 }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { { 0 } }, { 0xffff9ac653860d80, 0xffff9ac653860d80 } }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, 0x0 }, { 0x0, 0xffffffffc064d6a0, 40, 0 }, { 0x0, 0xffffffffc064d6a0, 40, 0 }, { 0x0, 0xffffffffc064d6a0, 40, 0 }, 1, 60, { { { 0 }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { { 0 } }, { 0xffff9ac653860e20, 0xffff9ac653860e20 } }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, 0x0 }, 0x0, { { { 0 }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { { 0 } }, { 0xffff9ac653860e58, 0xffff9ac653860e58 } }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, 0x0 }, 0, 0, 0, 0, 1, { 24, 0, { 0xffff9ac614eb2160, 0xffff9ac614eb2160 } }, 0xffff9ac4c9eeb0f0, 0x0, { 0xffff9ac543cb2c70, 0xffff9ac5ee3598b0, 0xffff9ac54ecf8000, 0xffff9ac5af513b40 }, { { { 0 }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { { 0 } }, { 0xffff9ac653860f00, 0xffff9ac653860f00 } }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, 0x0 }, { 879052276, { { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { 0xffff9ac653860f30, 0xffff9ac653860f30 } }, { { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { 0xffff9ac653860f48, 0xffff9ac653860f48 } }, { 1 }, { 0 }, 0x0 }, ZIO_SUSPEND_NONE, 0, B_FALSE, 11, 3, B_FALSE, SPA_LOG_UNKNOWN, 0, { 0xffffb715807db040, 0xffffb71581aa5890, 0xffffb71581a9f760, 0xffffb71581a99630, 0xffffb71581a93500, 0xffffb71581a8d3d0, 0xffffb71581a872a0, 0xffffb71581a81170, 0xffffb71581a7b040, 0xffffb715868b3890, 0xffffb715868ad760, 0xffffb715868a7630, 0xffffb715868a1500, 0xffffb7158689b3d0, 0xffffb715868952a0 }, 0, 0, 8, 576460752303423488, { { { 0 }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { { 0 } }, { 0xffff9ac653861038, 0xffff9ac653861038 } }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, 0x0 }, { { { 0 }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { { 0 } }, { 0xffff9ac653861068, 0xffff9ac653861068 } }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, 0x0 }, { 879052276, { { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { 0xffff9ac653861098, 0xffff9ac653861098 } }, { { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { 0xffff9ac6538610b0, 0xffff9ac6538610b0 } }, { 1 }, { 0 }, 0x0 }, SPA_PROC_NONE, 0xffffffffc04f77c0, 0, B_FALSE, 0, 0, 0, 52, 51, 53, 63, { { { 0 }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { { 0 } }, { 0xffff9ac653861130, 0xffff9ac653861130 } }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, 0x0 }, 0xffff9ac556f319e0, { 0, 2, 1, 0, 0, 32, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1 }, 0, 0, 1596316451748, 600000000000, 300000000000, 128, AVZ_ACTION_NONE, 0, 0, { { 0, { 0xffff9ac6538612d0, { { { 0 }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { { 0 } }, { 0xffff9ac6538612f0, 0xffff9ac6538612f0 } }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, 0x0 }, { 112, 88, { 0xffff9ac653861320, 0xffff9ac653861320 } }, 1, 0xffffffffc066b260, 0xffffffffc066b200, 0xffffffffc066bd20, 88, { "reads", "zfs/objpool", 0xffff9ac5e5663e00, { 0xffff9ac653861808, 0xffff9ac5e5663f10 }, 0xffff9ac61c8753c0 } } }, { 100, { 0xffff9ac653861578, { { { 0 }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { { 0 } }, { 0xffff9ac653861598, 0xffff9ac653861598 } }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, 0x0 }, { 120, 96, { 0xffff9ac5fcaa3260, 0xffff9ac6009f8d60 } }, 247, 0xffffffffc066b300, 0xffffffffc066b2a0, 0xffffffffc066be10, 96, { "txgs", "zfs/objpool", 0xffff9ac5e5663e00, { 0xffff9ac576f3a7b0, 0xffff9ac653861560 }, 0xffff9ac61c8756c0 } } }, { { { { 0 }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { { 0 } }, { 0xffff9ac653861830, 0xffff9ac653861830 } }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, 0x0 }, 42, 11424, 0xffff9ac576f3a400, 0xffff9ac547c68000, { 0, 0, { 0x0, 0x0 } } }, { 0, { 0xffff9ac653861890, { { { 0 }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { { 0 } }, { 0xffff9ac6538618b0, 0xffff9ac6538618b0 } }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, 0x0 }, { 96, 72, { 0xffff9ac6538618e0, 0xffff9ac6538618e0 } }, 1, 0xffffffffc066b400, 0xffffffffc066b3b0, 0xffffffffc066bf10, 72, { "multihost", "zfs/objpool", 0xffff9ac5e5663e00, { 0xffff9ac5563e63b0, 0xffff9ac576f3a7b0 }, 0xffff9ac61c875c00 } } }, { { { { 0 }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { { 0 } }, { 0xffff9ac653861b48, 0xffff9ac653861b48 } }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, 0x0 }, 0, 0, 0xffff9ac5563e6000, 0x0, { 0, 0, { 0x0, 0x0 } } }, { { { { 0 }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { { 0 } }, { 0xffff9ac653861bb8, 0xffff9ac653861bb8 } }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, 0x0 }, 0, 0, 0xffff9ac62403f000, 0x0, { 0, 0, { 0x0, 0x0 } } }, { { { { 0 }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { { 0 } }, { 0xffff9ac653861c28, 0xffff9ac653861c28 } }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, 0x0 }, 0, 0, 0xffff9ac62403c800, 0x0, { 0, 0, { 0x0, 0x0 } } } }, { { { { 0 }, { 0 }, { { 0 } }, { { { { 0 }, { 0, 0 }, { 0, 0 } } } }, { 0xffff9ac653861ca0, 0xffff9ac653861ca0 } }, 0x0 }, { 0x0, 0xffffffffc06051f0, 0, 0 }, { { { 0 }, { 0 }, { { 0 } }, { { { { 0 }, { 0, 0 }, { 0, 0 } } } }, { 0xffff9ac653861cf0, 0xffff9ac653861cf0 } }, 0x0 }, { 0x0, 0xffffffffc0605220, 0, 0 }, { { { 0 }, { 0 }, { { 0 } }, { { { { 0 }, { 0, 0 }, { 0, 0 } } } }, { 0xffff9ac653861d40, 0xffff9ac653861d40 } }, 0x0 }, { 0x0, 0xffffffffc0605240, 0, 0 } }, 0, 250, 0, 0xffff9ac600170a00, 0xffff9ac600170800, 0, { { { { 0 }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { { 0 } }, { 0xffff9ac653861db8, 0xffff9ac653861db8 } }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, 0x0 }, { 879052276, { { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { 0xffffb71586b33d58, 0xffffb71586b33d58 } }, { { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { 0xffff9ac653861e00, 0xffff9ac653861e00 } }, { 2 }, { 1 }, 0xffff9ac653861da8 }, 0xffff9ac5e3060000, 0, { { { 0 }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { { 0 } }, { 0xffff9ac653861e40, 0xffff9ac653861e40 } }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, 0x0 }, 884589941565, 1000000000, { 0, 0, 0, 0, 0, { {}, 0, {}, 0, 0, 0, { {} } }, 0, 0, 0, 0, 0, 0, 0, 0 }, 0x0, 1, 0, 0x0, 0, 0 }, { 15800, 15368, { 0xffff9ac547077c08, 0xffff9ac547077c08 } }, 1, 0, { { { 0 }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { { 0 } }, { 0xffff9ac653861fc8, 0xffff9ac653861fc8 } }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, 0x0 }, { 879052276, { { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { 0xffff9ac653861ff8, 0xffff9ac653861ff8 } }, { { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { 0xffff9ac653862010, 0xffff9ac653862010 } }, { 1 }, { 0 }, 0x0 }, { 879052276, { { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { 0xffff9ac653862040, 0xffff9ac653862040 } }, { { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { 0xffff9ac653862058, 0xffff9ac653862058 } }, { 1 }, { 0 }, 0x0 }, 0, B_FALSE, 0x0, { { { { { 0 }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { { 0 } }, { 0xffff9ac6538620d0, 0xffff9ac6538620d0 } }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, 0x0 }, 0x0, 0, 0, { 879052276, { { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { 0xffff9ac653862110, 0xffff9ac653862110 } }, { { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { 0xffff9ac653862128, 0xffff9ac653862128 } }, { 1 }, { 0 }, 0x0 } }, { { { { 0 }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { { 0 } }, { 0xffff9ac653862190, 0xffff9ac653862190 } }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, 0x0 }, 0x0, 0, 0, { 879052276, { { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { 0xffff9ac6538621d0, 0xffff9ac6538621d0 } }, { { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { 0xffff9ac6538621e8, 0xffff9ac6538621e8 } }, { 1 }, { 0 }, 0x0 } }, { { { { 0 }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { { 0 } }, { 0xffff9ac653862250, 0xffff9ac653862250 } }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, 0x0 }, 0x0, 0, 0, { 879052276, { { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { 0xffff9ac653862290, 0xffff9ac653862290 } }, { { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { 0xffff9ac6538622a8, 0xffff9ac6538622a8 } }, { 1 }, { 0 }, 0x0 } }, { { { { 0 }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { { 0 } }, { 0xffff9ac653862310, 0xffff9ac653862310 } }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, 0x0 }, 0x0, 0, 0, { 879052276, { { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { 0xffff9ac653862350, 0xffff9ac653862350 } }, { { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { 0xffff9ac653862368, 0xffff9ac653862368 } }, { 1 }, { 0 }, 0x0 } }, { { { { 0 }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { { 0 } }, { 0xffff9ac6538623d0, 0xffff9ac6538623d0 } }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, 0x0 }, 0x0, 0, 4, { 879052276, { { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { 0xffff9ac653862410, 0xffff9ac653862410 } }, { { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { 0xffff9ac653862428, 0xffff9ac653862428 } }, { 1 }, { 0 }, 0x0 } }, { { { { 0 }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { { 0 } }, { 0xffff9ac653862490, 0xffff9ac653862490 } }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, 0x0 }, 0x0, 0, 0, { 879052276, { { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { 0xffff9ac6538624d0, 0xffff9ac6538624d0 } }, { { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { 0xffff9ac6538624e8, 0xffff9ac6538624e8 } }, { 1 }, { 0 }, 0x0 } }, { { { { 0 }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { { 0 } }, { 0xffff9ac653862550, 0xffff9ac653862550 } }, { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, 0x0 }, 0x0, 0, 0, { 879052276, { { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { 0xffff9ac653862590, 0xffff9ac653862590 } }, { { { { { { { 0 }, { 0, 0 }, { 0, 0 } } } } } }, { 0xffff9ac6538625a8, 0xffff9ac6538625a8 } }, { 1 }, { 0 }, 0x0 } } }, { 18 }, 0xffff9ac55a328200 } +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/core/spa | head 1 | deref | print -rs b/tests/integration/data/regression_output/dump.202303131823/core/spa | head 1 | deref | print -rs index 1f50ad21..afc4b191 100644 --- a/tests/integration/data/regression_output/dump.202303131823/core/spa | head 1 | deref | print -rs +++ b/tests/integration/data/regression_output/dump.202303131823/core/spa | head 1 | deref | print -rs @@ -1 +1,3 @@ { .spa_name = "objpool", .spa_comment = 0x0, .spa_avl = { .avl_child = {}, .avl_pcb = 18446632775413022985 }, .spa_config = 0xffff9ac65c473fa0, .spa_config_syncing = 0x0, .spa_config_splitting = 0x0, .spa_load_info = 0xffff9ac616feeb60, .spa_config_txg = 4, .spa_sync_pass = 0, .spa_state = POOL_STATE_ACTIVE, .spa_inject_ref = 0, .spa_sync_on = 1, .spa_load_state = SPA_LOAD_NONE, .spa_indirect_vdevs_loaded = B_TRUE, .spa_trust_config = B_TRUE, .spa_is_splitting = B_FALSE, .spa_config_source = SPA_CONFIG_SRC_NONE, .spa_import_flags = 0, .spa_zio_taskq = { [0] = { [0] = { .stqs_count = 1, .stqs_taskq = 0xffff9ac64543de20 }, [2] = { .stqs_count = 1, .stqs_taskq = 0xffff9ac64543dcc8 } }, [1] = { [0] = { .stqs_count = 1, .stqs_taskq = 0xffff9ac645636af0 }, [2] = { .stqs_count = 1, .stqs_taskq = 0xffff9ac6456365d8 } }, [2] = { [0] = { .stqs_count = 1, .stqs_taskq = 0xffff9ac64543ddf8 }, [1] = { .stqs_count = 1, .stqs_taskq = 0xffff9ac64543da20 }, [2] = { .stqs_count = 1, .stqs_taskq = 0xffff9ac6456365c0 }, [3] = { .stqs_count = 1, .stqs_taskq = 0xffff9ac64543d758 } }, [3] = { [0] = { .stqs_count = 1, .stqs_taskq = 0xffff9ac645636a98 }, [2] = { .stqs_count = 1, .stqs_taskq = 0xffff9ac645636cb8 } }, [4] = { [0] = { .stqs_count = 1, .stqs_taskq = 0xffff9ac64543d8d8 }, [2] = { .stqs_count = 1, .stqs_taskq = 0xffff9ac64543d9f8 } }, [5] = { [0] = { .stqs_count = 1, .stqs_taskq = 0xffff9ac645636728 }, [2] = { .stqs_count = 1, .stqs_taskq = 0xffff9ac645636188 } }, [6] = { [0] = { .stqs_count = 1, .stqs_taskq = 0xffff9ac64543df68 }, [2] = { .stqs_count = 1, .stqs_taskq = 0xffff9ac64543dbe8 } } }, .spa_dsl_pool = 0xffff9ac48f0a8000, .spa_is_initializing = B_FALSE, .spa_is_exporting = B_FALSE, .spa_normal_class = 0xffff9ac559f74800, .spa_object_store_class = 0xffff9ac559f77c00, .spa_log_class = 0xffff9ac610619400, .spa_embedded_log_class = 0xffff9ac61061b400, .spa_special_class = 0xffff9ac60523e000, .spa_dedup_class = 0xffff9ac49990ec00, .spa_first_txg = 4, .spa_final_txg = 18446744073709551615, .spa_freeze_txg = 18446744073709551615, .spa_load_max_txg = 18446744073709551615, .spa_claim_max_txg = 0, .spa_loaded_ts = { .tv_sec = 0, .tv_nsec = 0 }, .spa_meta_objset = 0xffff9ac618a49000, .spa_evicting_os_lock = { .m_mutex = { .owner = { .counter = 0 }, .wait_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .osq = { .tail = { .counter = 0 } }, .wait_list = { .next = 0xffff9ac6538603c8, .prev = 0xffff9ac6538603c8 } }, .m_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .m_owner = 0x0 }, .spa_evicting_os_list = { .list_size = 1480, .list_offset = 592, .list_head = { .next = 0xffff9ac6538603f8, .prev = 0xffff9ac6538603f8 } }, .spa_evicting_os_cv = { .cv_magic = 879052276, .cv_event = { .lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .head = { .next = 0xffff9ac653860418, .prev = 0xffff9ac653860418 } }, .cv_destroy = { .lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .head = { .next = 0xffff9ac653860430, .prev = 0xffff9ac653860430 } }, .cv_refs = { .counter = 1 }, .cv_waiters = { .counter = 0 }, .cv_mutex = 0x0 }, .spa_vdev_txg_list = { .tl_lock = { .m_mutex = { .owner = { .counter = 0 }, .wait_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .osq = { .tail = { .counter = 0 } }, .wait_list = { .next = 0xffff9ac653860460, .prev = 0xffff9ac653860460 } }, .m_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .m_owner = 0x0 }, .tl_offset = 11384, .tl_spa = 0xffff9ac653860000, .tl_head = {} }, .spa_root_vdev = 0xffff9ac5764e0000, .spa_min_ashift = 9, .spa_max_ashift = 9, .spa_min_alloc = 512, .spa_config_guid = 0, .spa_load_guid = 627585233783221890, .spa_last_synced_guid = 14188352787665702174, .spa_config_dirty_list = { .list_size = 15800, .list_offset = 11432, .list_head = { .next = 0xffff9ac6538604f8, .prev = 0xffff9ac6538604f8 } }, .spa_state_dirty_list = { .list_size = 15800, .list_offset = 11448, .list_head = { .next = 0xffff9ac653860518, .prev = 0xffff9ac653860518 } }, .spa_allocs = 0xffff9ac5e5662a00, .spa_alloc_count = 4, .spa_spares = { .sav_object = 0, .sav_config = 0x0, .sav_vdevs = 0x0, .sav_count = 0, .sav_sync = B_FALSE, .sav_pending = 0x0, .sav_npending = 0 }, .spa_l2cache = { .sav_object = 0, .sav_config = 0x0, .sav_vdevs = 0x0, .sav_count = 0, .sav_sync = B_FALSE, .sav_pending = 0x0, .sav_npending = 0 }, .spa_label_features = 0xffff9ac616fee680, .spa_config_object = 61, .spa_config_generation = 0, .spa_syncing_txg = 249, .spa_deferred_bpobj = { .bpo_lock = { .m_mutex = { .owner = { .counter = 0 }, .wait_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .osq = { .tail = { .counter = 0 } }, .wait_list = { .next = 0xffff9ac6538605c8, .prev = 0xffff9ac6538605c8 } }, .m_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .m_owner = 0x0 }, .bpo_os = 0xffff9ac618a49000, .bpo_object = 62, .bpo_epb = 128, .bpo_havecomp = 1, .bpo_havesubobj = 1, .bpo_havefreed = 0, .bpo_phys = 0xffff9ac647852400, .bpo_dbuf = 0xffff9ac47a9bfa08, .bpo_cached_dbuf = 0x0 }, .spa_free_bplist = { [0] = { .bpl_lock = { .m_mutex = { .owner = { .counter = 0 }, .wait_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .osq = { .tail = { .counter = 0 } }, .wait_list = { .next = 0xffff9ac653860628, .prev = 0xffff9ac653860628 } }, .m_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .m_owner = 0x0 }, .bpl_list = { .list_size = 144, .list_offset = 128, .list_head = { .next = 0xffff9ac653860658, .prev = 0xffff9ac653860658 } } }, [1] = { .bpl_lock = { .m_mutex = { .owner = { .counter = 0 }, .wait_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .osq = { .tail = { .counter = 0 } }, .wait_list = { .next = 0xffff9ac653860678, .prev = 0xffff9ac653860678 } }, .m_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .m_owner = 0x0 }, .bpl_list = { .list_size = 144, .list_offset = 128, .list_head = { .next = 0xffff9ac6538606a8, .prev = 0xffff9ac6538606a8 } } }, [2] = { .bpl_lock = { .m_mutex = { .owner = { .counter = 0 }, .wait_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .osq = { .tail = { .counter = 0 } }, .wait_list = { .next = 0xffff9ac6538606c8, .prev = 0xffff9ac6538606c8 } }, .m_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .m_owner = 0x0 }, .bpl_list = { .list_size = 144, .list_offset = 128, .list_head = { .next = 0xffff9ac6538606f8, .prev = 0xffff9ac6538606f8 } } }, [3] = { .bpl_lock = { .m_mutex = { .owner = { .counter = 0 }, .wait_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .osq = { .tail = { .counter = 0 } }, .wait_list = { .next = 0xffff9ac653860718, .prev = 0xffff9ac653860718 } }, .m_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .m_owner = 0x0 }, .bpl_list = { .list_size = 144, .list_offset = 128, .list_head = { .next = 0xffff9ac653860748, .prev = 0xffff9ac653860748 } } } }, .spa_cksum_salt = { .zcs_bytes = { [0] = 144, [1] = 242, [2] = 241, [3] = 167, [4] = 165, [5] = 91, [6] = 236, [7] = 121, [8] = 228, [9] = 81, [10] = 133, [11] = 86, [12] = 112, [13] = 169, [14] = 239, [15] = 134, [16] = 204, [17] = 182, [18] = 222, [19] = 87, [20] = 11, [21] = 61, [22] = 148, [23] = 9, [24] = 78, [25] = 173, [26] = 19, [27] = 253, [28] = 117, [29] = 136, [30] = 6, [31] = 184 } }, .spa_cksum_tmpls_lock = { .m_mutex = { .owner = { .counter = 0 }, .wait_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .osq = { .tail = { .counter = 0 } }, .wait_list = { .next = 0xffff9ac653860788, .prev = 0xffff9ac653860788 } }, .m_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .m_owner = 0x0 }, .spa_cksum_tmpls = {}, .spa_ubsync = { .ub_magic = 12235020, .ub_version = 5000, .ub_txg = 249, .ub_guid_sum = 15871353990467969697, .ub_timestamp = 1678731761, .ub_rootbp = { .blk_dva = { [0] = { .dva_word = { [0] = 1, [1] = 239589 } } }, .blk_prop = 9226476022604496903, .blk_pad = {}, .blk_phys_birth = 0, .blk_birth = 249, .blk_fill = 50, .blk_cksum = { .zc_word = { [0] = 40441827631, [1] = 4279632404698, [2] = 229752974238664, [3] = 8344914455449193 } } }, .ub_software_version = 5000, .ub_mmp_magic = 2703026705, .ub_mmp_delay = 0, .ub_mmp_config = 0, .ub_checkpoint_txg = 0, .ub_dp_mos_used_delta = 0, .ub_dp_mos_compressed_delta = 0, .ub_dp_mos_uncompressed_delta = 0 }, .spa_uberblock = { .ub_magic = 12235020, .ub_version = 5000, .ub_txg = 249, .ub_guid_sum = 15871353990467969697, .ub_timestamp = 1678731761, .ub_rootbp = { .blk_dva = { [0] = { .dva_word = { [0] = 1, [1] = 239589 } } }, .blk_prop = 9226476022604496903, .blk_pad = {}, .blk_phys_birth = 0, .blk_birth = 249, .blk_fill = 50, .blk_cksum = { .zc_word = { [0] = 40441827631, [1] = 4279632404698, [2] = 229752974238664, [3] = 8344914455449193 } } }, .ub_software_version = 5000, .ub_mmp_magic = 2703026705, .ub_mmp_delay = 0, .ub_mmp_config = 0, .ub_checkpoint_txg = 0, .ub_dp_mos_used_delta = 0, .ub_dp_mos_compressed_delta = 0, .ub_dp_mos_uncompressed_delta = 0 }, .spa_extreme_rewind = B_FALSE, .spa_scrub_lock = { .m_mutex = { .owner = { .counter = 0 }, .wait_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .osq = { .tail = { .counter = 0 } }, .wait_list = { .next = 0xffff9ac653860a08, .prev = 0xffff9ac653860a08 } }, .m_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .m_owner = 0x0 }, .spa_scrub_inflight = 0, .spa_pool_type = SPA_TYPE_OBJECT_STORE, .spa_load_verify_bytes = 0, .spa_scrub_io_cv = { .cv_magic = 879052276, .cv_event = { .lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .head = { .next = 0xffff9ac653860a50, .prev = 0xffff9ac653860a50 } }, .cv_destroy = { .lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .head = { .next = 0xffff9ac653860a68, .prev = 0xffff9ac653860a68 } }, .cv_refs = { .counter = 1 }, .cv_waiters = { .counter = 0 }, .cv_mutex = 0x0 }, .spa_scrub_active = 0, .spa_scrub_type = 0, .spa_scrub_finished = 0, .spa_scrub_started = 0, .spa_scrub_reopen = 0, .spa_scan_pass_start = 0, .spa_scan_pass_scrub_pause = 0, .spa_scan_pass_scrub_spent_paused = 0, .spa_scan_pass_exam = 0, .spa_scan_pass_issued = 0, .spa_resilver_deferred = B_FALSE, .spa_async_lock = { .m_mutex = { .owner = { .counter = 0 }, .wait_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .osq = { .tail = { .counter = 0 } }, .wait_list = { .next = 0xffff9ac653860ad0, .prev = 0xffff9ac653860ad0 } }, .m_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .m_owner = 0x0 }, .spa_async_thread = 0x0, .spa_async_suspended = 0, .spa_async_cv = { .cv_magic = 879052276, .cv_event = { .lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .head = { .next = 0xffff9ac653860b10, .prev = 0xffff9ac653860b10 } }, .cv_destroy = { .lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .head = { .next = 0xffff9ac653860b28, .prev = 0xffff9ac653860b28 } }, .cv_refs = { .counter = 1 }, .cv_waiters = { .counter = 0 }, .cv_mutex = 0x0 }, .spa_async_tasks = 0, .spa_missing_tvds = 0, .spa_missing_tvds_allowed = 0, .spa_nonallocating_dspace = 0, .spa_removing_phys = { .sr_state = 0, .sr_removing_vdev = 18446744073709551615, .sr_prev_indirect_vdev = 18446744073709551615, .sr_start_time = 0, .sr_end_time = 0, .sr_to_copy = 0, .sr_copied = 0 }, .spa_vdev_removal = 0x0, .spa_condensing_indirect_phys = { .scip_vdev = 0, .scip_prev_obsolete_sm_object = 0, .scip_next_mapping_object = 0 }, .spa_condensing_indirect = 0x0, .spa_condense_zthr = 0xffff9ac646b55200, .spa_checkpoint_txg = 0, .spa_checkpoint_info = { .sci_timestamp = 0, .sci_dspace = 0 }, .spa_checkpoint_discard_zthr = 0xffff9ac646b54e00, .spa_syncing_log_sm = 0x0, .spa_sm_logs_by_txg = { .avl_root = 0x0, .avl_compar = spa_log_sm_sort_by_txg+0x0 = 0xffffffffc06659d0, .avl_offset = 32, .avl_numnodes = 0 }, .spa_flushed_ms_lock = { .m_mutex = { .owner = { .counter = 0 }, .wait_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .osq = { .tail = { .counter = 0 } }, .wait_list = { .next = 0xffff9ac653860c28, .prev = 0xffff9ac653860c28 } }, .m_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .m_owner = 0x0 }, .spa_metaslabs_by_flushed = { .avl_root = 0x0, .avl_compar = metaslab_sort_by_flushed+0x0 = 0xffffffffc063ae10, .avl_offset = 1984, .avl_numnodes = 0 }, .spa_unflushed_stats = { .sus_memused = 0, .sus_blocklimit = 0, .sus_nblocks = 0 }, .spa_log_summary = { .list_size = 64, .list_offset = 48, .list_head = { .next = 0xffff9ac653860c90, .prev = 0xffff9ac653860c90 } }, .spa_log_flushall_txg = 0, .spa_livelist_delete_zthr = 0xffff9ac646b54000, .spa_livelist_condense_zthr = 0xffff9ac659315200, .spa_livelists_to_delete = 0, .spa_to_condense = { .ds = 0x0, .first = 0x0, .next = 0x0, .syncing = B_FALSE, .cancelled = B_FALSE }, .spa_root = 0x0, .spa_ena = 0, .spa_last_open_failed = 0, .spa_last_ubsync_txg = 0, .spa_last_ubsync_txg_ts = 0, .spa_load_txg = 0, .spa_load_txg_ts = 0, .spa_load_meta_errors = 0, .spa_load_data_errors = 0, .spa_verify_min_txg = 0, .spa_errlog_lock = { .m_mutex = { .owner = { .counter = 0 }, .wait_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .osq = { .tail = { .counter = 0 } }, .wait_list = { .next = 0xffff9ac653860d40, .prev = 0xffff9ac653860d40 } }, .m_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .m_owner = 0x0 }, .spa_errlog_last = 0, .spa_errlog_scrub = 0, .spa_errlist_lock = { .m_mutex = { .owner = { .counter = 0 }, .wait_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .osq = { .tail = { .counter = 0 } }, .wait_list = { .next = 0xffff9ac653860d80, .prev = 0xffff9ac653860d80 } }, .m_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .m_owner = 0x0 }, .spa_errlist_last = { .avl_root = 0x0, .avl_compar = spa_error_entry_compare+0x0 = 0xffffffffc064d6a0, .avl_offset = 40, .avl_numnodes = 0 }, .spa_errlist_scrub = { .avl_root = 0x0, .avl_compar = spa_error_entry_compare+0x0 = 0xffffffffc064d6a0, .avl_offset = 40, .avl_numnodes = 0 }, .spa_errlist_healed = { .avl_root = 0x0, .avl_compar = spa_error_entry_compare+0x0 = 0xffffffffc064d6a0, .avl_offset = 40, .avl_numnodes = 0 }, .spa_deflate = 1, .spa_history = 60, .spa_history_lock = { .m_mutex = { .owner = { .counter = 0 }, .wait_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .osq = { .tail = { .counter = 0 } }, .wait_list = { .next = 0xffff9ac653860e20, .prev = 0xffff9ac653860e20 } }, .m_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .m_owner = 0x0 }, .spa_pending_vdev = 0x0, .spa_props_lock = { .m_mutex = { .owner = { .counter = 0 }, .wait_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .osq = { .tail = { .counter = 0 } }, .wait_list = { .next = 0xffff9ac653860e58, .prev = 0xffff9ac653860e58 } }, .m_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .m_owner = 0x0 }, .spa_pool_props_object = 0, .spa_bootfs = 0, .spa_failmode = 0, .spa_deadman_failmode = 0, .spa_delegation = 1, .spa_config_list = { .list_size = 24, .list_offset = 0, .list_head = { .next = 0xffff9ac614eb2160, .prev = 0xffff9ac614eb2160 } }, .spa_async_zio_root = 0xffff9ac4c9eeb0f0, .spa_suspend_zio_root = 0x0, .spa_txg_zio = { [0] = 0xffff9ac543cb2c70, [1] = 0xffff9ac5ee3598b0, [2] = 0xffff9ac54ecf8000, [3] = 0xffff9ac5af513b40 }, .spa_suspend_lock = { .m_mutex = { .owner = { .counter = 0 }, .wait_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .osq = { .tail = { .counter = 0 } }, .wait_list = { .next = 0xffff9ac653860f00, .prev = 0xffff9ac653860f00 } }, .m_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .m_owner = 0x0 }, .spa_suspend_cv = { .cv_magic = 879052276, .cv_event = { .lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .head = { .next = 0xffff9ac653860f30, .prev = 0xffff9ac653860f30 } }, .cv_destroy = { .lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .head = { .next = 0xffff9ac653860f48, .prev = 0xffff9ac653860f48 } }, .cv_refs = { .counter = 1 }, .cv_waiters = { .counter = 0 }, .cv_mutex = 0x0 }, .spa_suspended = ZIO_SUSPEND_NONE, .spa_claiming = 0, .spa_is_root = B_FALSE, .spa_minref = 11, .spa_mode = 3, .spa_read_spacemaps = B_FALSE, .spa_log_state = SPA_LOG_UNKNOWN, .spa_autoexpand = 0, .spa_ddt = { [0] = 0xffffb715807db040, [1] = 0xffffb71581aa5890, [2] = 0xffffb71581a9f760, [3] = 0xffffb71581a99630, [4] = 0xffffb71581a93500, [5] = 0xffffb71581a8d3d0, [6] = 0xffffb71581a872a0, [7] = 0xffffb71581a81170, [8] = 0xffffb71581a7b040, [9] = 0xffffb715868b3890, [10] = 0xffffb715868ad760, [11] = 0xffffb715868a7630, [12] = 0xffffb715868a1500, [13] = 0xffffb7158689b3d0, [14] = 0xffffb715868952a0 }, .spa_ddt_stat_object = 0, .spa_dedup_dspace = 0, .spa_dedup_checksum = 8, .spa_dspace = 576460752303423488, .spa_vdev_top_lock = { .m_mutex = { .owner = { .counter = 0 }, .wait_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .osq = { .tail = { .counter = 0 } }, .wait_list = { .next = 0xffff9ac653861038, .prev = 0xffff9ac653861038 } }, .m_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .m_owner = 0x0 }, .spa_proc_lock = { .m_mutex = { .owner = { .counter = 0 }, .wait_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .osq = { .tail = { .counter = 0 } }, .wait_list = { .next = 0xffff9ac653861068, .prev = 0xffff9ac653861068 } }, .m_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .m_owner = 0x0 }, .spa_proc_cv = { .cv_magic = 879052276, .cv_event = { .lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .head = { .next = 0xffff9ac653861098, .prev = 0xffff9ac653861098 } }, .cv_destroy = { .lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .head = { .next = 0xffff9ac6538610b0, .prev = 0xffff9ac6538610b0 } }, .cv_refs = { .counter = 1 }, .cv_waiters = { .counter = 0 }, .cv_mutex = 0x0 }, .spa_proc_state = SPA_PROC_NONE, .spa_proc = p0+0x0 = 0xffffffffc04f77c0, .spa_did = 0, .spa_autoreplace = B_FALSE, .spa_vdev_locks = 0, .spa_creation_version = 0, .spa_prev_software_version = 0, .spa_feat_for_write_obj = 52, .spa_feat_for_read_obj = 51, .spa_feat_desc_obj = 53, .spa_feat_enabled_txg_obj = 63, .spa_feat_stats_lock = { .m_mutex = { .owner = { .counter = 0 }, .wait_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .osq = { .tail = { .counter = 0 } }, .wait_list = { .next = 0xffff9ac653861130, .prev = 0xffff9ac653861130 } }, .m_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .m_owner = 0x0 }, .spa_feat_stats = 0xffff9ac556f319e0, .spa_feat_refcount_cache = { [1] = 2, [2] = 1, [5] = 32, [6] = 1, [7] = 2, [8] = 1, [16] = 2, [18] = 2, [22] = 1, [35] = 1, [37] = 1 }, .spa_deadman_tqid = 0, .spa_deadman_calls = 0, .spa_sync_starttime = 1596316451748, .spa_deadman_synctime = 600000000000, .spa_deadman_ziotime = 300000000000, .spa_all_vdev_zaps = 128, .spa_avz_action = AVZ_ACTION_NONE, .spa_autotrim = 0, .spa_errata = 0, .spa_stats = { .read_history = { .size = 0, .procfs_list = { .pl_private = 0xffff9ac6538612d0, .pl_lock = { .m_mutex = { .owner = { .counter = 0 }, .wait_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .osq = { .tail = { .counter = 0 } }, .wait_list = { .next = 0xffff9ac6538612f0, .prev = 0xffff9ac6538612f0 } }, .m_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .m_owner = 0x0 }, .pl_list = { .list_size = 112, .list_offset = 88, .list_head = { .next = 0xffff9ac653861320, .prev = 0xffff9ac653861320 } }, .pl_next_id = 1, .pl_show = spa_read_history_show+0x0 = 0xffffffffc066b260, .pl_show_header = spa_read_history_show_header+0x0 = 0xffffffffc066b200, .pl_clear = spa_read_history_clear+0x0 = 0xffffffffc066bd20, .pl_node_offset = 88, .pl_kstat_entry = { .kpe_name = "reads", .kpe_module = "zfs/objpool", .kpe_owner = 0xffff9ac5e5663e00, .kpe_list = { .next = 0xffff9ac653861808, .prev = 0xffff9ac5e5663f10 }, .kpe_proc = 0xffff9ac61c8753c0 } } }, .txg_history = { .size = 100, .procfs_list = { .pl_private = 0xffff9ac653861578, .pl_lock = { .m_mutex = { .owner = { .counter = 0 }, .wait_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .osq = { .tail = { .counter = 0 } }, .wait_list = { .next = 0xffff9ac653861598, .prev = 0xffff9ac653861598 } }, .m_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .m_owner = 0x0 }, .pl_list = { .list_size = 120, .list_offset = 96, .list_head = { .next = 0xffff9ac5fcaa3260, .prev = 0xffff9ac6009f8d60 } }, .pl_next_id = 247, .pl_show = spa_txg_history_show+0x0 = 0xffffffffc066b300, .pl_show_header = spa_txg_history_show_header+0x0 = 0xffffffffc066b2a0, .pl_clear = spa_txg_history_clear+0x0 = 0xffffffffc066be10, .pl_node_offset = 96, .pl_kstat_entry = { .kpe_name = "txgs", .kpe_module = "zfs/objpool", .kpe_owner = 0xffff9ac5e5663e00, .kpe_list = { .next = 0xffff9ac576f3a7b0, .prev = 0xffff9ac653861560 }, .kpe_proc = 0xffff9ac61c8756c0 } } }, .tx_assign_histogram = { .lock = { .m_mutex = { .owner = { .counter = 0 }, .wait_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .osq = { .tail = { .counter = 0 } }, .wait_list = { .next = 0xffff9ac653861830, .prev = 0xffff9ac653861830 } }, .m_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .m_owner = 0x0 }, .count = 42, .size = 11424, .kstat = 0xffff9ac576f3a400, .priv = 0xffff9ac547c68000, .list = { .list_size = 0, .list_offset = 0, .list_head = { .next = 0x0, .prev = 0x0 } } }, .mmp_history = { .size = 0, .procfs_list = { .pl_private = 0xffff9ac653861890, .pl_lock = { .m_mutex = { .owner = { .counter = 0 }, .wait_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .osq = { .tail = { .counter = 0 } }, .wait_list = { .next = 0xffff9ac6538618b0, .prev = 0xffff9ac6538618b0 } }, .m_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .m_owner = 0x0 }, .pl_list = { .list_size = 96, .list_offset = 72, .list_head = { .next = 0xffff9ac6538618e0, .prev = 0xffff9ac6538618e0 } }, .pl_next_id = 1, .pl_show = spa_mmp_history_show+0x0 = 0xffffffffc066b400, .pl_show_header = spa_mmp_history_show_header+0x0 = 0xffffffffc066b3b0, .pl_clear = spa_mmp_history_clear+0x0 = 0xffffffffc066bf10, .pl_node_offset = 72, .pl_kstat_entry = { .kpe_name = "multihost", .kpe_module = "zfs/objpool", .kpe_owner = 0xffff9ac5e5663e00, .kpe_list = { .next = 0xffff9ac5563e63b0, .prev = 0xffff9ac576f3a7b0 }, .kpe_proc = 0xffff9ac61c875c00 } } }, .state = { .lock = { .m_mutex = { .owner = { .counter = 0 }, .wait_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .osq = { .tail = { .counter = 0 } }, .wait_list = { .next = 0xffff9ac653861b48, .prev = 0xffff9ac653861b48 } }, .m_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .m_owner = 0x0 }, .count = 0, .size = 0, .kstat = 0xffff9ac5563e6000, .priv = 0x0, .list = { .list_size = 0, .list_offset = 0, .list_head = { .next = 0x0, .prev = 0x0 } } }, .guid = { .lock = { .m_mutex = { .owner = { .counter = 0 }, .wait_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .osq = { .tail = { .counter = 0 } }, .wait_list = { .next = 0xffff9ac653861bb8, .prev = 0xffff9ac653861bb8 } }, .m_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .m_owner = 0x0 }, .count = 0, .size = 0, .kstat = 0xffff9ac62403f000, .priv = 0x0, .list = { .list_size = 0, .list_offset = 0, .list_head = { .next = 0x0, .prev = 0x0 } } }, .iostats = { .lock = { .m_mutex = { .owner = { .counter = 0 }, .wait_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .osq = { .tail = { .counter = 0 } }, .wait_list = { .next = 0xffff9ac653861c28, .prev = 0xffff9ac653861c28 } }, .m_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .m_owner = 0x0 }, .count = 0, .size = 0, .kstat = 0xffff9ac62403c800, .priv = 0x0, .list = { .list_size = 0, .list_offset = 0, .list_head = { .next = 0x0, .prev = 0x0 } } } }, .spa_keystore = { .sk_dk_lock = { .rw_rwlock = { .count = { .counter = 0 }, .owner = { .counter = 0 }, .osq = { .tail = { .counter = 0 } }, .wait_lock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } }, .wait_list = { .next = 0xffff9ac653861ca0, .prev = 0xffff9ac653861ca0 } }, .rw_owner = 0x0 }, .sk_dsl_keys = { .avl_root = 0x0, .avl_compar = spa_crypto_key_compare+0x0 = 0xffffffffc06051f0, .avl_offset = 0, .avl_numnodes = 0 }, .sk_km_lock = { .rw_rwlock = { .count = { .counter = 0 }, .owner = { .counter = 0 }, .osq = { .tail = { .counter = 0 } }, .wait_lock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } }, .wait_list = { .next = 0xffff9ac653861cf0, .prev = 0xffff9ac653861cf0 } }, .rw_owner = 0x0 }, .sk_key_mappings = { .avl_root = 0x0, .avl_compar = spa_key_mapping_compare+0x0 = 0xffffffffc0605220, .avl_offset = 0, .avl_numnodes = 0 }, .sk_wkeys_lock = { .rw_rwlock = { .count = { .counter = 0 }, .owner = { .counter = 0 }, .osq = { .tail = { .counter = 0 } }, .wait_lock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } }, .wait_list = { .next = 0xffff9ac653861d40, .prev = 0xffff9ac653861d40 } }, .rw_owner = 0x0 }, .sk_wkeys = { .avl_root = 0x0, .avl_compar = spa_wkey_compare+0x0 = 0xffffffffc0605240, .avl_offset = 0, .avl_numnodes = 0 } }, .spa_lowmem_page_load = 0, .spa_lowmem_last_txg = 250, .spa_ccw_fail_time = 0, .spa_zvol_taskq = 0xffff9ac600170a00, .spa_prefetch_taskq = 0xffff9ac600170800, .spa_multihost = 0, .spa_mmp = { .mmp_thread_lock = { .m_mutex = { .owner = { .counter = 0 }, .wait_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .osq = { .tail = { .counter = 0 } }, .wait_list = { .next = 0xffff9ac653861db8, .prev = 0xffff9ac653861db8 } }, .m_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .m_owner = 0x0 }, .mmp_thread_cv = { .cv_magic = 879052276, .cv_event = { .lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .head = { .next = 0xffffb71586b33d58, .prev = 0xffffb71586b33d58 } }, .cv_destroy = { .lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .head = { .next = 0xffff9ac653861e00, .prev = 0xffff9ac653861e00 } }, .cv_refs = { .counter = 2 }, .cv_waiters = { .counter = 1 }, .cv_mutex = 0xffff9ac653861da8 }, .mmp_thread = 0xffff9ac5e3060000, .mmp_thread_exiting = 0, .mmp_io_lock = { .m_mutex = { .owner = { .counter = 0 }, .wait_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .osq = { .tail = { .counter = 0 } }, .wait_list = { .next = 0xffff9ac653861e40, .prev = 0xffff9ac653861e40 } }, .m_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .m_owner = 0x0 }, .mmp_last_write = 884589941565, .mmp_delay = 1000000000, .mmp_ub = { .ub_magic = 0, .ub_version = 0, .ub_txg = 0, .ub_guid_sum = 0, .ub_timestamp = 0, .ub_rootbp = { .blk_dva = {}, .blk_prop = 0, .blk_pad = {}, .blk_phys_birth = 0, .blk_birth = 0, .blk_fill = 0, .blk_cksum = { .zc_word = {} } }, .ub_software_version = 0, .ub_mmp_magic = 0, .ub_mmp_delay = 0, .ub_mmp_config = 0, .ub_checkpoint_txg = 0, .ub_dp_mos_used_delta = 0, .ub_dp_mos_compressed_delta = 0, .ub_dp_mos_uncompressed_delta = 0 }, .mmp_zio_root = 0x0, .mmp_kstat_id = 1, .mmp_skip_error = 0, .mmp_last_leaf = 0x0, .mmp_leaf_last_gen = 0, .mmp_seq = 0 }, .spa_leaf_list = { .list_size = 15800, .list_offset = 15368, .list_head = { .next = 0xffff9ac547077c08, .prev = 0xffff9ac547077c08 } }, .spa_leaf_list_gen = 1, .spa_hostid = 0, .spa_activities_lock = { .m_mutex = { .owner = { .counter = 0 }, .wait_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .osq = { .tail = { .counter = 0 } }, .wait_list = { .next = 0xffff9ac653861fc8, .prev = 0xffff9ac653861fc8 } }, .m_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .m_owner = 0x0 }, .spa_activities_cv = { .cv_magic = 879052276, .cv_event = { .lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .head = { .next = 0xffff9ac653861ff8, .prev = 0xffff9ac653861ff8 } }, .cv_destroy = { .lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .head = { .next = 0xffff9ac653862010, .prev = 0xffff9ac653862010 } }, .cv_refs = { .counter = 1 }, .cv_waiters = { .counter = 0 }, .cv_mutex = 0x0 }, .spa_waiters_cv = { .cv_magic = 879052276, .cv_event = { .lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .head = { .next = 0xffff9ac653862040, .prev = 0xffff9ac653862040 } }, .cv_destroy = { .lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .head = { .next = 0xffff9ac653862058, .prev = 0xffff9ac653862058 } }, .cv_refs = { .counter = 1 }, .cv_waiters = { .counter = 0 }, .cv_mutex = 0x0 }, .spa_waiters = 0, .spa_waiters_cancel = B_FALSE, .spa_compatibility = 0x0, .spa_config_lock = { [0] = { .scl_lock = { .m_mutex = { .owner = { .counter = 0 }, .wait_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .osq = { .tail = { .counter = 0 } }, .wait_list = { .next = 0xffff9ac6538620d0, .prev = 0xffff9ac6538620d0 } }, .m_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .m_owner = 0x0 }, .scl_writer = 0x0, .scl_write_wanted = 0, .scl_count = 0, .scl_cv = { .cv_magic = 879052276, .cv_event = { .lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .head = { .next = 0xffff9ac653862110, .prev = 0xffff9ac653862110 } }, .cv_destroy = { .lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .head = { .next = 0xffff9ac653862128, .prev = 0xffff9ac653862128 } }, .cv_refs = { .counter = 1 }, .cv_waiters = { .counter = 0 }, .cv_mutex = 0x0 } }, [1] = { .scl_lock = { .m_mutex = { .owner = { .counter = 0 }, .wait_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .osq = { .tail = { .counter = 0 } }, .wait_list = { .next = 0xffff9ac653862190, .prev = 0xffff9ac653862190 } }, .m_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .m_owner = 0x0 }, .scl_writer = 0x0, .scl_write_wanted = 0, .scl_count = 0, .scl_cv = { .cv_magic = 879052276, .cv_event = { .lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .head = { .next = 0xffff9ac6538621d0, .prev = 0xffff9ac6538621d0 } }, .cv_destroy = { .lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .head = { .next = 0xffff9ac6538621e8, .prev = 0xffff9ac6538621e8 } }, .cv_refs = { .counter = 1 }, .cv_waiters = { .counter = 0 }, .cv_mutex = 0x0 } }, [2] = { .scl_lock = { .m_mutex = { .owner = { .counter = 0 }, .wait_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .osq = { .tail = { .counter = 0 } }, .wait_list = { .next = 0xffff9ac653862250, .prev = 0xffff9ac653862250 } }, .m_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .m_owner = 0x0 }, .scl_writer = 0x0, .scl_write_wanted = 0, .scl_count = 0, .scl_cv = { .cv_magic = 879052276, .cv_event = { .lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .head = { .next = 0xffff9ac653862290, .prev = 0xffff9ac653862290 } }, .cv_destroy = { .lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .head = { .next = 0xffff9ac6538622a8, .prev = 0xffff9ac6538622a8 } }, .cv_refs = { .counter = 1 }, .cv_waiters = { .counter = 0 }, .cv_mutex = 0x0 } }, [3] = { .scl_lock = { .m_mutex = { .owner = { .counter = 0 }, .wait_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .osq = { .tail = { .counter = 0 } }, .wait_list = { .next = 0xffff9ac653862310, .prev = 0xffff9ac653862310 } }, .m_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .m_owner = 0x0 }, .scl_writer = 0x0, .scl_write_wanted = 0, .scl_count = 0, .scl_cv = { .cv_magic = 879052276, .cv_event = { .lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .head = { .next = 0xffff9ac653862350, .prev = 0xffff9ac653862350 } }, .cv_destroy = { .lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .head = { .next = 0xffff9ac653862368, .prev = 0xffff9ac653862368 } }, .cv_refs = { .counter = 1 }, .cv_waiters = { .counter = 0 }, .cv_mutex = 0x0 } }, [4] = { .scl_lock = { .m_mutex = { .owner = { .counter = 0 }, .wait_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .osq = { .tail = { .counter = 0 } }, .wait_list = { .next = 0xffff9ac6538623d0, .prev = 0xffff9ac6538623d0 } }, .m_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .m_owner = 0x0 }, .scl_writer = 0x0, .scl_write_wanted = 0, .scl_count = 4, .scl_cv = { .cv_magic = 879052276, .cv_event = { .lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .head = { .next = 0xffff9ac653862410, .prev = 0xffff9ac653862410 } }, .cv_destroy = { .lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .head = { .next = 0xffff9ac653862428, .prev = 0xffff9ac653862428 } }, .cv_refs = { .counter = 1 }, .cv_waiters = { .counter = 0 }, .cv_mutex = 0x0 } }, [5] = { .scl_lock = { .m_mutex = { .owner = { .counter = 0 }, .wait_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .osq = { .tail = { .counter = 0 } }, .wait_list = { .next = 0xffff9ac653862490, .prev = 0xffff9ac653862490 } }, .m_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .m_owner = 0x0 }, .scl_writer = 0x0, .scl_write_wanted = 0, .scl_count = 0, .scl_cv = { .cv_magic = 879052276, .cv_event = { .lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .head = { .next = 0xffff9ac6538624d0, .prev = 0xffff9ac6538624d0 } }, .cv_destroy = { .lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .head = { .next = 0xffff9ac6538624e8, .prev = 0xffff9ac6538624e8 } }, .cv_refs = { .counter = 1 }, .cv_waiters = { .counter = 0 }, .cv_mutex = 0x0 } }, [6] = { .scl_lock = { .m_mutex = { .owner = { .counter = 0 }, .wait_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .osq = { .tail = { .counter = 0 } }, .wait_list = { .next = 0xffff9ac653862550, .prev = 0xffff9ac653862550 } }, .m_lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .m_owner = 0x0 }, .scl_writer = 0x0, .scl_write_wanted = 0, .scl_count = 0, .scl_cv = { .cv_magic = 879052276, .cv_event = { .lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .head = { .next = 0xffff9ac653862590, .prev = 0xffff9ac653862590 } }, .cv_destroy = { .lock = { .rlock = { .raw_lock = { .val = { .counter = 0 }, .locked = 0, .pending = 0, .locked_pending = 0, .tail = 0 } } }, .head = { .next = 0xffff9ac6538625a8, .prev = 0xffff9ac6538625a8 } }, .cv_refs = { .counter = 1 }, .cv_waiters = { .counter = 0 }, .cv_mutex = 0x0 } } }, .spa_refcount = { .rc_count = 18 }, .spa_upgrade_taskq = 0xffff9ac55a328200 } +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/core/spa | head 1 | member spa_name[1] | print b/tests/integration/data/regression_output/dump.202303131823/core/spa | head 1 | member spa_name[1] | print index 67bafad1..1d0f974d 100644 --- a/tests/integration/data/regression_output/dump.202303131823/core/spa | head 1 | member spa_name[1] | print +++ b/tests/integration/data/regression_output/dump.202303131823/core/spa | head 1 | member spa_name[1] | print @@ -1 +1,3 @@ (char)98 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/core/spa | head 1 | member spa_name[1] | print -c b/tests/integration/data/regression_output/dump.202303131823/core/spa | head 1 | member spa_name[1] | print -c index b3d0ad8b..1542d4f4 100644 --- a/tests/integration/data/regression_output/dump.202303131823/core/spa | head 1 | member spa_name[1] | print -c +++ b/tests/integration/data/regression_output/dump.202303131823/core/spa | head 1 | member spa_name[1] | print -c @@ -1 +1,3 @@ (char)'b' +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/core/spa | head 1 | member spa_name[1] | print -cr b/tests/integration/data/regression_output/dump.202303131823/core/spa | head 1 | member spa_name[1] | print -cr index 0bdc348b..c8d8c72c 100644 --- a/tests/integration/data/regression_output/dump.202303131823/core/spa | head 1 | member spa_name[1] | print -cr +++ b/tests/integration/data/regression_output/dump.202303131823/core/spa | head 1 | member spa_name[1] | print -cr @@ -1 +1,3 @@ 'b' +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/core/spa | head 1 | member spa_zio_taskq[0][0].stqs_taskq b/tests/integration/data/regression_output/dump.202303131823/core/spa | head 1 | member spa_zio_taskq[0][0].stqs_taskq index 0d39611a..e239383a 100644 --- a/tests/integration/data/regression_output/dump.202303131823/core/spa | head 1 | member spa_zio_taskq[0][0].stqs_taskq +++ b/tests/integration/data/regression_output/dump.202303131823/core/spa | head 1 | member spa_zio_taskq[0][0].stqs_taskq @@ -1 +1,3 @@ (taskq_t **)0xffff9ac64543de20 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/core/spa | head 1 | member spa_zio_taskq[0][0].stqs_taskq[0] b/tests/integration/data/regression_output/dump.202303131823/core/spa | head 1 | member spa_zio_taskq[0][0].stqs_taskq[0] index 0ca7c37f..9b528554 100644 --- a/tests/integration/data/regression_output/dump.202303131823/core/spa | head 1 | member spa_zio_taskq[0][0].stqs_taskq[0] +++ b/tests/integration/data/regression_output/dump.202303131823/core/spa | head 1 | member spa_zio_taskq[0][0].stqs_taskq[0] @@ -1 +1,3 @@ (taskq_t *)0xffff9ac5e566ca00 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/core/spa | member spa_ubsync->ub_rootbp b/tests/integration/data/regression_output/dump.202303131823/core/spa | member spa_ubsync->ub_rootbp index e641dffd..a2b5fe74 100644 --- a/tests/integration/data/regression_output/dump.202303131823/core/spa | member spa_ubsync->ub_rootbp +++ b/tests/integration/data/regression_output/dump.202303131823/core/spa | member spa_ubsync->ub_rootbp @@ -1 +1,3 @@ sdb: member: 'typedef struct uberblock uberblock_t' is a struct - use the dot(.) notation for member access +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.202303131823/core/spa | member spa_ubsync.bogus b/tests/integration/data/regression_output/dump.202303131823/core/spa | member spa_ubsync.bogus index fe86be8f..9d1f7a65 100644 --- a/tests/integration/data/regression_output/dump.202303131823/core/spa | member spa_ubsync.bogus +++ b/tests/integration/data/regression_output/dump.202303131823/core/spa | member spa_ubsync.bogus @@ -1 +1,3 @@ sdb: member: 'uberblock_t' has no member 'bogus' +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.202303131823/core/spa | member spa_ubsync.ub_rootbp.blk_dva[0].dva_word b/tests/integration/data/regression_output/dump.202303131823/core/spa | member spa_ubsync.ub_rootbp.blk_dva[0].dva_word index 5cd5ecb2..db3432e7 100644 --- a/tests/integration/data/regression_output/dump.202303131823/core/spa | member spa_ubsync.ub_rootbp.blk_dva[0].dva_word +++ b/tests/integration/data/regression_output/dump.202303131823/core/spa | member spa_ubsync.ub_rootbp.blk_dva[0].dva_word @@ -1,3 +1,5 @@ (uint64_t [2]){ 1, 239589 } (uint64_t [2]){ 1, 40551803 } (uint64_t [2]){ 1, 12298524 } +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/core/spa | member spa_zio_taskq[0][0].stqs_taskq | array b/tests/integration/data/regression_output/dump.202303131823/core/spa | member spa_zio_taskq[0][0].stqs_taskq | array index 852eba97..d92d9b55 100644 --- a/tests/integration/data/regression_output/dump.202303131823/core/spa | member spa_zio_taskq[0][0].stqs_taskq | array +++ b/tests/integration/data/regression_output/dump.202303131823/core/spa | member spa_zio_taskq[0][0].stqs_taskq | array @@ -1 +1,3 @@ sdb: array: 'taskq_t **' is a pointer - please specify the number of elements +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.202303131823/core/spa | member spa_zio_taskq[0][0].stqs_taskq | array 2 b/tests/integration/data/regression_output/dump.202303131823/core/spa | member spa_zio_taskq[0][0].stqs_taskq | array 2 index 7991bd22..6fbdb04d 100644 --- a/tests/integration/data/regression_output/dump.202303131823/core/spa | member spa_zio_taskq[0][0].stqs_taskq | array 2 +++ b/tests/integration/data/regression_output/dump.202303131823/core/spa | member spa_zio_taskq[0][0].stqs_taskq | array 2 @@ -4,3 +4,5 @@ (taskq_t *)0x656c6269736976 (taskq_t *)0xffff9ac47de67400 (taskq_t *)0xffff9ac47de67a00 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/core/spa | member spa_zio_taskq[0][0].stqs_taskq-> b/tests/integration/data/regression_output/dump.202303131823/core/spa | member spa_zio_taskq[0][0].stqs_taskq-> index 643f596c..ebc45236 100644 --- a/tests/integration/data/regression_output/dump.202303131823/core/spa | member spa_zio_taskq[0][0].stqs_taskq-> +++ b/tests/integration/data/regression_output/dump.202303131823/core/spa | member spa_zio_taskq[0][0].stqs_taskq-> @@ -1 +1,3 @@ sdb: member: no identifier specified after -> +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.202303131823/core/spa | member spa_zio_taskq[0][0].stqs_taskq. b/tests/integration/data/regression_output/dump.202303131823/core/spa | member spa_zio_taskq[0][0].stqs_taskq. index bb6f90a3..d8615951 100644 --- a/tests/integration/data/regression_output/dump.202303131823/core/spa | member spa_zio_taskq[0][0].stqs_taskq. +++ b/tests/integration/data/regression_output/dump.202303131823/core/spa | member spa_zio_taskq[0][0].stqs_taskq. @@ -1 +1,3 @@ sdb: member: no identifier specified after . +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.202303131823/core/spa | range_tree b/tests/integration/data/regression_output/dump.202303131823/core/spa | range_tree index 91a26850..16b41ebb 100644 --- a/tests/integration/data/regression_output/dump.202303131823/core/spa | range_tree +++ b/tests/integration/data/regression_output/dump.202303131823/core/spa | range_tree @@ -1 +1,3 @@ sdb: range_tree: expected input of type range_tree_t *, but received type spa_t * +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.202303131823/core/spa | vdev | metaslab | deref | sizeof | sum b/tests/integration/data/regression_output/dump.202303131823/core/spa | vdev | metaslab | deref | sizeof | sum index a9405f35..9cf99661 100644 --- a/tests/integration/data/regression_output/dump.202303131823/core/spa | vdev | metaslab | deref | sizeof | sum +++ b/tests/integration/data/regression_output/dump.202303131823/core/spa | vdev | metaslab | deref | sizeof | sum @@ -1 +1,3 @@ (uint64_t)352240 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/core/sum b/tests/integration/data/regression_output/dump.202303131823/core/sum index 8d8f8e43..4d8c136a 100644 --- a/tests/integration/data/regression_output/dump.202303131823/core/sum +++ b/tests/integration/data/regression_output/dump.202303131823/core/sum @@ -1 +1,3 @@ (uint64_t)0 +@#$ EXIT CODE $#@ +0 diff --git "a/tests/integration/data/regression_output/dump.202303131823/core/thread | filter \"obj.comm == \\\"bogus\\\"\" | thread" "b/tests/integration/data/regression_output/dump.202303131823/core/thread | filter \"obj.comm == \\\"bogus\\\"\" | thread" index ab7ddfc3..4f793a3a 100644 --- "a/tests/integration/data/regression_output/dump.202303131823/core/thread | filter \"obj.comm == \\\"bogus\\\"\" | thread" +++ "b/tests/integration/data/regression_output/dump.202303131823/core/thread | filter \"obj.comm == \\\"bogus\\\"\" | thread" @@ -1,2 +1,4 @@ task state pid prio comm cmdline ---- ----- --- ---- ---- ------- +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/core/threads | deref | sizeof | sum b/tests/integration/data/regression_output/dump.202303131823/core/threads | deref | sizeof | sum index bb06e18b..e01ef0a7 100644 --- a/tests/integration/data/regression_output/dump.202303131823/core/threads | deref | sizeof | sum +++ b/tests/integration/data/regression_output/dump.202303131823/core/threads | deref | sizeof | sum @@ -1 +1,3 @@ (uint64_t)10495680 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/core/threads | sizeof | sum b/tests/integration/data/regression_output/dump.202303131823/core/threads | sizeof | sum index d0eb10c5..93d9fc97 100644 --- a/tests/integration/data/regression_output/dump.202303131823/core/threads | sizeof | sum +++ b/tests/integration/data/regression_output/dump.202303131823/core/threads | sizeof | sum @@ -1 +1,3 @@ (uint64_t)9048 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/core/zfs_dbgmsg | filter '== obj' b/tests/integration/data/regression_output/dump.202303131823/core/zfs_dbgmsg | filter '== obj' index ea6dd70c..79cf39bf 100644 --- a/tests/integration/data/regression_output/dump.202303131823/core/zfs_dbgmsg | filter '== obj' +++ b/tests/integration/data/regression_output/dump.202303131823/core/zfs_dbgmsg | filter '== obj' @@ -1 +1,3 @@ sdb: filter: invalid input: left hand side of expression is missing +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.202303131823/core/zfs_dbgmsg | filter 'obj ==' b/tests/integration/data/regression_output/dump.202303131823/core/zfs_dbgmsg | filter 'obj ==' index 2777a82e..b65b0e49 100644 --- a/tests/integration/data/regression_output/dump.202303131823/core/zfs_dbgmsg | filter 'obj ==' +++ b/tests/integration/data/regression_output/dump.202303131823/core/zfs_dbgmsg | filter 'obj ==' @@ -1 +1,3 @@ sdb: filter: invalid input: right hand side of expression is missing +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.202303131823/core/zfs_dbgmsg | filter 'obj' b/tests/integration/data/regression_output/dump.202303131823/core/zfs_dbgmsg | filter 'obj' index fc761b9b..aea4edcc 100644 --- a/tests/integration/data/regression_output/dump.202303131823/core/zfs_dbgmsg | filter 'obj' +++ b/tests/integration/data/regression_output/dump.202303131823/core/zfs_dbgmsg | filter 'obj' @@ -1 +1,3 @@ sdb: filter: invalid input: comparison operator is missing +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.202303131823/core/zfs_dbgmsg | head 1 | member zdm_msg | array b/tests/integration/data/regression_output/dump.202303131823/core/zfs_dbgmsg | head 1 | member zdm_msg | array index db595c85..28d8529b 100644 --- a/tests/integration/data/regression_output/dump.202303131823/core/zfs_dbgmsg | head 1 | member zdm_msg | array +++ b/tests/integration/data/regression_output/dump.202303131823/core/zfs_dbgmsg | head 1 | member zdm_msg | array @@ -1 +1,3 @@ sdb: array: zero-length array: please specify number of elements +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.202303131823/core/zfs_dbgmsg | head 1 | member zdm_msg | array -1 b/tests/integration/data/regression_output/dump.202303131823/core/zfs_dbgmsg | head 1 | member zdm_msg | array -1 index 8ffe77c2..6d6f0339 100644 --- a/tests/integration/data/regression_output/dump.202303131823/core/zfs_dbgmsg | head 1 | member zdm_msg | array -1 +++ b/tests/integration/data/regression_output/dump.202303131823/core/zfs_dbgmsg | head 1 | member zdm_msg | array -1 @@ -1 +1,3 @@ warning: operating on zero-length array +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/core/zfs_dbgmsg | head 1 | member zdm_msg | array 0 b/tests/integration/data/regression_output/dump.202303131823/core/zfs_dbgmsg | head 1 | member zdm_msg | array 0 index 8ffe77c2..6d6f0339 100644 --- a/tests/integration/data/regression_output/dump.202303131823/core/zfs_dbgmsg | head 1 | member zdm_msg | array 0 +++ b/tests/integration/data/regression_output/dump.202303131823/core/zfs_dbgmsg | head 1 | member zdm_msg | array 0 @@ -1 +1,3 @@ warning: operating on zero-length array +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/core/zfs_dbgmsg | head 1 | member zdm_msg | array 2 b/tests/integration/data/regression_output/dump.202303131823/core/zfs_dbgmsg | head 1 | member zdm_msg | array 2 index 1c57f972..a8c7eabf 100644 --- a/tests/integration/data/regression_output/dump.202303131823/core/zfs_dbgmsg | head 1 | member zdm_msg | array 2 +++ b/tests/integration/data/regression_output/dump.202303131823/core/zfs_dbgmsg | head 1 | member zdm_msg | array 2 @@ -1,3 +1,5 @@ warning: operating on zero-length array (char)115 (char)112 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/core/zfs_dbgmsg | head 1 | member zdm_msg[2] b/tests/integration/data/regression_output/dump.202303131823/core/zfs_dbgmsg | head 1 | member zdm_msg[2] index 0b6bad36..46a8bb57 100644 --- a/tests/integration/data/regression_output/dump.202303131823/core/zfs_dbgmsg | head 1 | member zdm_msg[2] +++ b/tests/integration/data/regression_output/dump.202303131823/core/zfs_dbgmsg | head 1 | member zdm_msg[2] @@ -1,2 +1,4 @@ warning: member: index out of bounds for array of type 'char []' (requested index: 2) (char)97 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/linux/addr init_task | member comm | addr | container_of bogus_type comm | cast void * b/tests/integration/data/regression_output/dump.202303131823/linux/addr init_task | member comm | addr | container_of bogus_type comm | cast void * index 24d3c12c..680a3717 100644 --- a/tests/integration/data/regression_output/dump.202303131823/linux/addr init_task | member comm | addr | container_of bogus_type comm | cast void * +++ b/tests/integration/data/regression_output/dump.202303131823/linux/addr init_task | member comm | addr | container_of bogus_type comm | cast void * @@ -1 +1,3 @@ sdb: container_of: couldn't find typedef, struct, enum, nor union named 'bogus_type' +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.202303131823/linux/addr init_task | member comm | addr | container_of int comm | cast void * b/tests/integration/data/regression_output/dump.202303131823/linux/addr init_task | member comm | addr | container_of int comm | cast void * index 7329f422..d4c8f381 100644 --- a/tests/integration/data/regression_output/dump.202303131823/linux/addr init_task | member comm | addr | container_of int comm | cast void * +++ b/tests/integration/data/regression_output/dump.202303131823/linux/addr init_task | member comm | addr | container_of int comm | cast void * @@ -1 +1,3 @@ sdb: container_of: int is not a struct nor a typedef to a struct +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.202303131823/linux/addr init_task | member comm | addr | container_of pid comm | cast void * b/tests/integration/data/regression_output/dump.202303131823/linux/addr init_task | member comm | addr | container_of pid comm | cast void * index 9f234c7b..c8ba3d04 100644 --- a/tests/integration/data/regression_output/dump.202303131823/linux/addr init_task | member comm | addr | container_of pid comm | cast void * +++ b/tests/integration/data/regression_output/dump.202303131823/linux/addr init_task | member comm | addr | container_of pid comm | cast void * @@ -1 +1,3 @@ sdb: container_of: 'struct pid' has no member 'comm' +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.202303131823/linux/addr init_task | member comm | addr | container_of task_struct bogus_member | cast void * b/tests/integration/data/regression_output/dump.202303131823/linux/addr init_task | member comm | addr | container_of task_struct bogus_member | cast void * index 9e574ce9..988cbf9e 100644 --- a/tests/integration/data/regression_output/dump.202303131823/linux/addr init_task | member comm | addr | container_of task_struct bogus_member | cast void * +++ b/tests/integration/data/regression_output/dump.202303131823/linux/addr init_task | member comm | addr | container_of task_struct bogus_member | cast void * @@ -1 +1,3 @@ sdb: container_of: 'struct task_struct' has no member 'bogus_member' +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.202303131823/linux/addr init_task | member comm | addr | container_of task_struct comm | cast void * b/tests/integration/data/regression_output/dump.202303131823/linux/addr init_task | member comm | addr | container_of task_struct comm | cast void * index 331994d4..d4412306 100644 --- a/tests/integration/data/regression_output/dump.202303131823/linux/addr init_task | member comm | addr | container_of task_struct comm | cast void * +++ b/tests/integration/data/regression_output/dump.202303131823/linux/addr init_task | member comm | addr | container_of task_struct comm | cast void * @@ -1 +1,3 @@ (void *)init_task+0x0 = 0xffffffff9bc13780 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/linux/addr init_task | member comm | container_of task_struct comm | cast void * b/tests/integration/data/regression_output/dump.202303131823/linux/addr init_task | member comm | container_of task_struct comm | cast void * index 66ad8f29..28ed1471 100644 --- a/tests/integration/data/regression_output/dump.202303131823/linux/addr init_task | member comm | container_of task_struct comm | cast void * +++ b/tests/integration/data/regression_output/dump.202303131823/linux/addr init_task | member comm | container_of task_struct comm | cast void * @@ -1 +1,3 @@ sdb: container_of: container_of() argument must be a pointer, not 'char [16]' +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.202303131823/linux/addr init_task | member thread_pid.tasks[3] | lxhlist bogus_type pid_links[3] | member comm b/tests/integration/data/regression_output/dump.202303131823/linux/addr init_task | member thread_pid.tasks[3] | lxhlist bogus_type pid_links[3] | member comm index 93c7930d..b64800bb 100644 --- a/tests/integration/data/regression_output/dump.202303131823/linux/addr init_task | member thread_pid.tasks[3] | lxhlist bogus_type pid_links[3] | member comm +++ b/tests/integration/data/regression_output/dump.202303131823/linux/addr init_task | member thread_pid.tasks[3] | lxhlist bogus_type pid_links[3] | member comm @@ -1 +1,3 @@ sdb: lxhlist: couldn't find typedef, struct, enum, nor union named 'bogus_type' +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.202303131823/linux/addr init_task | member thread_pid.tasks[3] | lxhlist task_struct bogus_member | member comm b/tests/integration/data/regression_output/dump.202303131823/linux/addr init_task | member thread_pid.tasks[3] | lxhlist task_struct bogus_member | member comm index d6aa6382..049cddaa 100644 --- a/tests/integration/data/regression_output/dump.202303131823/linux/addr init_task | member thread_pid.tasks[3] | lxhlist task_struct bogus_member | member comm +++ b/tests/integration/data/regression_output/dump.202303131823/linux/addr init_task | member thread_pid.tasks[3] | lxhlist task_struct bogus_member | member comm @@ -1 +1,3 @@ sdb: lxhlist: 'struct task_struct' has no member 'bogus_member' +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.202303131823/linux/addr init_task | member thread_pid.tasks[3] | lxhlist task_struct pid_links[3] | member comm b/tests/integration/data/regression_output/dump.202303131823/linux/addr init_task | member thread_pid.tasks[3] | lxhlist task_struct pid_links[3] | member comm index a5ea5f2e..6592ee5a 100644 --- a/tests/integration/data/regression_output/dump.202303131823/linux/addr init_task | member thread_pid.tasks[3] | lxhlist task_struct pid_links[3] | member comm +++ b/tests/integration/data/regression_output/dump.202303131823/linux/addr init_task | member thread_pid.tasks[3] | lxhlist task_struct pid_links[3] | member comm @@ -708,3 +708,5 @@ (char [16])"rcu_par_gp" (char [16])"rcu_gp" (char [16])"kthreadd" +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/linux/addr modules | lxlist bogus_type list | member name b/tests/integration/data/regression_output/dump.202303131823/linux/addr modules | lxlist bogus_type list | member name index a0dcea05..17012b4c 100644 --- a/tests/integration/data/regression_output/dump.202303131823/linux/addr modules | lxlist bogus_type list | member name +++ b/tests/integration/data/regression_output/dump.202303131823/linux/addr modules | lxlist bogus_type list | member name @@ -1 +1,3 @@ sdb: lxlist: couldn't find typedef, struct, enum, nor union named 'bogus_type' +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.202303131823/linux/addr modules | lxlist module bogus_member | member name b/tests/integration/data/regression_output/dump.202303131823/linux/addr modules | lxlist module bogus_member | member name index f6627ead..ec39ce86 100644 --- a/tests/integration/data/regression_output/dump.202303131823/linux/addr modules | lxlist module bogus_member | member name +++ b/tests/integration/data/regression_output/dump.202303131823/linux/addr modules | lxlist module bogus_member | member name @@ -1 +1,3 @@ sdb: lxlist: 'struct module' has no member 'bogus_member' +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.202303131823/linux/addr modules | lxlist module list | member name b/tests/integration/data/regression_output/dump.202303131823/linux/addr modules | lxlist module list | member name index f78828be..3a1fde27 100644 --- a/tests/integration/data/regression_output/dump.202303131823/linux/addr modules | lxlist module list | member name +++ b/tests/integration/data/regression_output/dump.202303131823/linux/addr modules | lxlist module list | member name @@ -65,3 +65,5 @@ (char [56])"ena" (char [56])"i2c_piix4" (char [56])"i2c_core" +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/linux/addr spa_namespace_avl | cpu_counter_sum b/tests/integration/data/regression_output/dump.202303131823/linux/addr spa_namespace_avl | cpu_counter_sum index 8faabf08..136368da 100644 --- a/tests/integration/data/regression_output/dump.202303131823/linux/addr spa_namespace_avl | cpu_counter_sum +++ b/tests/integration/data/regression_output/dump.202303131823/linux/addr spa_namespace_avl | cpu_counter_sum @@ -1 +1,3 @@ sdb: cpu_counter_sum: input is not a percpu_counter +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.202303131823/linux/addr tcp_orphan_count | cpu_counter_sum b/tests/integration/data/regression_output/dump.202303131823/linux/addr tcp_orphan_count | cpu_counter_sum index 4ec5ed45..ff9fcd9c 100644 --- a/tests/integration/data/regression_output/dump.202303131823/linux/addr tcp_orphan_count | cpu_counter_sum +++ b/tests/integration/data/regression_output/dump.202303131823/linux/addr tcp_orphan_count | cpu_counter_sum @@ -1 +1,3 @@ (s64)0 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/linux/addr tcp_sockets_allocated | cpu_counter_sum b/tests/integration/data/regression_output/dump.202303131823/linux/addr tcp_sockets_allocated | cpu_counter_sum index 43c1478c..f370835a 100644 --- a/tests/integration/data/regression_output/dump.202303131823/linux/addr tcp_sockets_allocated | cpu_counter_sum +++ b/tests/integration/data/regression_output/dump.202303131823/linux/addr tcp_sockets_allocated | cpu_counter_sum @@ -1 +1,3 @@ (s64)164 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/linux/addr vm_committed_as | cpu_counter_sum b/tests/integration/data/regression_output/dump.202303131823/linux/addr vm_committed_as | cpu_counter_sum index 370bb7a7..49173656 100644 --- a/tests/integration/data/regression_output/dump.202303131823/linux/addr vm_committed_as | cpu_counter_sum +++ b/tests/integration/data/regression_output/dump.202303131823/linux/addr vm_committed_as | cpu_counter_sum @@ -1 +1,3 @@ (s64)1058735 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/linux/addr vmap_area_root | rbtree bogus_type rb_node b/tests/integration/data/regression_output/dump.202303131823/linux/addr vmap_area_root | rbtree bogus_type rb_node index 0e236835..4c4f4edf 100644 --- a/tests/integration/data/regression_output/dump.202303131823/linux/addr vmap_area_root | rbtree bogus_type rb_node +++ b/tests/integration/data/regression_output/dump.202303131823/linux/addr vmap_area_root | rbtree bogus_type rb_node @@ -1 +1,3 @@ sdb: rbtree: couldn't find typedef, struct, enum, nor union named 'bogus_type' +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.202303131823/linux/addr vmap_area_root | rbtree vmap_area bogus_member b/tests/integration/data/regression_output/dump.202303131823/linux/addr vmap_area_root | rbtree vmap_area bogus_member index 384d99f7..760cbe96 100644 --- a/tests/integration/data/regression_output/dump.202303131823/linux/addr vmap_area_root | rbtree vmap_area bogus_member +++ b/tests/integration/data/regression_output/dump.202303131823/linux/addr vmap_area_root | rbtree vmap_area bogus_member @@ -1 +1,3 @@ sdb: rbtree: 'struct vmap_area' has no member 'bogus_member' +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.202303131823/linux/addr vmap_area_root | rbtree vmap_area rb_node b/tests/integration/data/regression_output/dump.202303131823/linux/addr vmap_area_root | rbtree vmap_area rb_node index b17fb067..4a96aa94 100644 --- a/tests/integration/data/regression_output/dump.202303131823/linux/addr vmap_area_root | rbtree vmap_area rb_node +++ b/tests/integration/data/regression_output/dump.202303131823/linux/addr vmap_area_root | rbtree vmap_area rb_node @@ -2788,3 +2788,5 @@ (struct vmap_area *)0xffff9ac6452cecc0 (struct vmap_area *)0xffff9ac6452ce340 (struct vmap_area *)0xffff9ac64c760b80 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/linux/crashed_thread b/tests/integration/data/regression_output/dump.202303131823/linux/crashed_thread index 305df3fa..cbbd6514 100644 --- a/tests/integration/data/regression_output/dump.202303131823/linux/crashed_thread +++ b/tests/integration/data/regression_output/dump.202303131823/linux/crashed_thread @@ -18,3 +18,5 @@ TASK_STRUCT STATE COUNT do_syscall_64+0x57 entry_SYSCALL_64+0x94 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/linux/crashed_thread | stacks b/tests/integration/data/regression_output/dump.202303131823/linux/crashed_thread | stacks index 305df3fa..cbbd6514 100644 --- a/tests/integration/data/regression_output/dump.202303131823/linux/crashed_thread | stacks +++ b/tests/integration/data/regression_output/dump.202303131823/linux/crashed_thread | stacks @@ -18,3 +18,5 @@ TASK_STRUCT STATE COUNT do_syscall_64+0x57 entry_SYSCALL_64+0x94 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/linux/dbuf |head 1 |deref |member db_buf |whatis b/tests/integration/data/regression_output/dump.202303131823/linux/dbuf |head 1 |deref |member db_buf |whatis index 2ccb8833..90a1aa3f 100644 --- a/tests/integration/data/regression_output/dump.202303131823/linux/dbuf |head 1 |deref |member db_buf |whatis +++ b/tests/integration/data/regression_output/dump.202303131823/linux/dbuf |head 1 |deref |member db_buf |whatis @@ -1 +1,3 @@ 0xffff9ac5afd51380 is allocated from arc_buf_t +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/linux/dmesg b/tests/integration/data/regression_output/dump.202303131823/linux/dmesg index b3f5039a..531837ca 100644 --- a/tests/integration/data/regression_output/dump.202303131823/linux/dmesg +++ b/tests/integration/data/regression_output/dump.202303131823/linux/dmesg @@ -612,3 +612,5 @@ Yy [ 1598.156735]: R10: 0000557540e13017 R11: 0000000000000246 R12: 0000000000000002 [ 1598.163456]: R13: 00007f1e15b766a0 R14: 00007f1e15b724a0 R15: 00007f1e15b718a0 [ 1598.171192]: disable async PF for cpu 1 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/linux/dmesg | filter 'obj.level == 3' | dmesg b/tests/integration/data/regression_output/dump.202303131823/linux/dmesg | filter 'obj.level == 3' | dmesg index 208fe510..e02be277 100644 --- a/tests/integration/data/regression_output/dump.202303131823/linux/dmesg | filter 'obj.level == 3' | dmesg +++ b/tests/integration/data/regression_output/dump.202303131823/linux/dmesg | filter 'obj.level == 3' | dmesg @@ -1,2 +1,4 @@ [ 2.310155]: ena 0000:00:05.0: LLQ is not supported Fallback to host mode policy.SUBSYSTEM=pci [ 42.095750]: db_root: cannot open: /etc/target +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/linux/dmesg | pp b/tests/integration/data/regression_output/dump.202303131823/linux/dmesg | pp index b3f5039a..531837ca 100644 --- a/tests/integration/data/regression_output/dump.202303131823/linux/dmesg | pp +++ b/tests/integration/data/regression_output/dump.202303131823/linux/dmesg | pp @@ -612,3 +612,5 @@ Yy [ 1598.156735]: R10: 0000557540e13017 R11: 0000000000000246 R12: 0000000000000002 [ 1598.163456]: R13: 00007f1e15b766a0 R14: 00007f1e15b724a0 R15: 00007f1e15b718a0 [ 1598.171192]: disable async PF for cpu 1 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/linux/echo 0x0 | cpu_counter_sum b/tests/integration/data/regression_output/dump.202303131823/linux/echo 0x0 | cpu_counter_sum index c4445251..665b1dbe 100644 --- a/tests/integration/data/regression_output/dump.202303131823/linux/echo 0x0 | cpu_counter_sum +++ b/tests/integration/data/regression_output/dump.202303131823/linux/echo 0x0 | cpu_counter_sum @@ -1 +1,3 @@ sdb: cpu_counter_sum: invalid memory access: could not read memory from kdump: Cannot get page I/O address: PDPT table not present: p4d[0] = 0x0: 0x8 +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.202303131823/linux/echo 0xffffa089669edc00 | stack b/tests/integration/data/regression_output/dump.202303131823/linux/echo 0xffffa089669edc00 | stack index c845069d..cb15a40d 100644 --- a/tests/integration/data/regression_output/dump.202303131823/linux/echo 0xffffa089669edc00 | stack +++ b/tests/integration/data/regression_output/dump.202303131823/linux/echo 0xffffa089669edc00 | stack @@ -1,3 +1,5 @@ TASK_STRUCT STATE COUNT ========================================== sdb: stack: invalid memory access: could not read memory from kdump: Cannot get page I/O address: PDPT table not present: p4d[321] = 0x0: 0xffffa089669edc10 +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.202303131823/linux/find_task 1 b/tests/integration/data/regression_output/dump.202303131823/linux/find_task 1 index 3831c5d8..569bf14d 100644 --- a/tests/integration/data/regression_output/dump.202303131823/linux/find_task 1 +++ b/tests/integration/data/regression_output/dump.202303131823/linux/find_task 1 @@ -1 +1,3 @@ (struct task_struct *)0xffff9ac6605e5b80 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/linux/find_task 1 2 b/tests/integration/data/regression_output/dump.202303131823/linux/find_task 1 2 index aed9b1c8..096feea7 100644 --- a/tests/integration/data/regression_output/dump.202303131823/linux/find_task 1 2 +++ b/tests/integration/data/regression_output/dump.202303131823/linux/find_task 1 2 @@ -1,2 +1,4 @@ (struct task_struct *)0xffff9ac6605e5b80 (struct task_struct *)0xffff9ac6605e0000 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/linux/find_task 1 2 | member comm b/tests/integration/data/regression_output/dump.202303131823/linux/find_task 1 2 | member comm index 6812d697..4bfcd37a 100644 --- a/tests/integration/data/regression_output/dump.202303131823/linux/find_task 1 2 | member comm +++ b/tests/integration/data/regression_output/dump.202303131823/linux/find_task 1 2 | member comm @@ -1,2 +1,4 @@ (char [16])"systemd" (char [16])"kthreadd" +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/linux/find_task 1 | fget 1 4 b/tests/integration/data/regression_output/dump.202303131823/linux/find_task 1 | fget 1 4 index 23cf47dd..033922d5 100644 --- a/tests/integration/data/regression_output/dump.202303131823/linux/find_task 1 | fget 1 4 +++ b/tests/integration/data/regression_output/dump.202303131823/linux/find_task 1 | fget 1 4 @@ -1,2 +1,4 @@ (struct file *)0xffff9ac65e957500 (struct file *)0xffff9ac65edad900 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/linux/find_task 1 | fget 1 4 123123 b/tests/integration/data/regression_output/dump.202303131823/linux/find_task 1 | fget 1 4 123123 index 3a142982..fab187da 100644 --- a/tests/integration/data/regression_output/dump.202303131823/linux/find_task 1 | fget 1 4 123123 +++ b/tests/integration/data/regression_output/dump.202303131823/linux/find_task 1 | fget 1 4 123123 @@ -1,3 +1,5 @@ (struct file *)0xffff9ac65e957500 (struct file *)0xffff9ac65edad900 (struct file *)0x0 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/linux/pid 1 b/tests/integration/data/regression_output/dump.202303131823/linux/pid 1 index 860e387e..7d241361 100644 --- a/tests/integration/data/regression_output/dump.202303131823/linux/pid 1 +++ b/tests/integration/data/regression_output/dump.202303131823/linux/pid 1 @@ -1 +1,3 @@ (struct pid *)0xffff9ac660552000 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/linux/pid 1 10 12437 b/tests/integration/data/regression_output/dump.202303131823/linux/pid 1 10 12437 index 816b53e7..12ddee79 100644 --- a/tests/integration/data/regression_output/dump.202303131823/linux/pid 1 10 12437 +++ b/tests/integration/data/regression_output/dump.202303131823/linux/pid 1 10 12437 @@ -1,3 +1,5 @@ (struct pid *)0xffff9ac660552000 (struct pid *)0xffff9ac660552980 (struct pid *)0x0 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/linux/slabs b/tests/integration/data/regression_output/dump.202303131823/linux/slabs index b052f88f..b05c4ad5 100644 --- a/tests/integration/data/regression_output/dump.202303131823/linux/slabs +++ b/tests/integration/data/regression_output/dump.202303131823/linux/slabs @@ -176,3 +176,5 @@ dm_uevent 2632 0 0.0B 0.0B ddt_entry_cache 448 0 0.0B 0.0B 0 arc_buf_hdr_t_l2only 96 0 0.0B 0.0B 0 arc_buf_hdr_t_full_crypt 336 0 0.0B 0.0B 0 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/linux/slabs -o bogus b/tests/integration/data/regression_output/dump.202303131823/linux/slabs -o bogus index 3e2248bc..a328a38a 100644 --- a/tests/integration/data/regression_output/dump.202303131823/linux/slabs -o bogus +++ b/tests/integration/data/regression_output/dump.202303131823/linux/slabs -o bogus @@ -1 +1,3 @@ sdb: slabs: 'bogus' is not a valid field +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.202303131823/linux/slabs -s active_objs -o active_objs,util,name b/tests/integration/data/regression_output/dump.202303131823/linux/slabs -s active_objs -o active_objs,util,name index c76bc9f8..47aada0e 100644 --- a/tests/integration/data/regression_output/dump.202303131823/linux/slabs -s active_objs -o active_objs,util,name +++ b/tests/integration/data/regression_output/dump.202303131823/linux/slabs -s active_objs -o active_objs,util,name @@ -176,3 +176,5 @@ active_objs util name 0 0 ddt_entry_cache 0 0 arc_buf_hdr_t_l2only 0 0 arc_buf_hdr_t_full_crypt +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/linux/slabs -s active_objs -o util b/tests/integration/data/regression_output/dump.202303131823/linux/slabs -s active_objs -o util index d60d1f31..17443d39 100644 --- a/tests/integration/data/regression_output/dump.202303131823/linux/slabs -s active_objs -o util +++ b/tests/integration/data/regression_output/dump.202303131823/linux/slabs -s active_objs -o util @@ -1 +1,3 @@ sdb: slabs: invalid input: 'active_objs' is not in field set (util) +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.202303131823/linux/slabs -s bogus b/tests/integration/data/regression_output/dump.202303131823/linux/slabs -s bogus index 2cfb68ba..f0187c6c 100644 --- a/tests/integration/data/regression_output/dump.202303131823/linux/slabs -s bogus +++ b/tests/integration/data/regression_output/dump.202303131823/linux/slabs -s bogus @@ -1,2 +1,4 @@ sdb: slabs: invalid input: 'bogus' is not in field set (name, entry_size, active_objs, active_memory, total_memory, util) +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.202303131823/linux/slabs -s util b/tests/integration/data/regression_output/dump.202303131823/linux/slabs -s util index 59b4d3bd..eca15708 100644 --- a/tests/integration/data/regression_output/dump.202303131823/linux/slabs -s util +++ b/tests/integration/data/regression_output/dump.202303131823/linux/slabs -s util @@ -176,3 +176,5 @@ dm_uevent 2632 0 0.0B 0.0B ddt_entry_cache 448 0 0.0B 0.0B 0 arc_buf_hdr_t_l2only 96 0 0.0B 0.0B 0 arc_buf_hdr_t_full_crypt 336 0 0.0B 0.0B 0 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/linux/slabs -s util | slabs b/tests/integration/data/regression_output/dump.202303131823/linux/slabs -s util | slabs index b052f88f..b05c4ad5 100644 --- a/tests/integration/data/regression_output/dump.202303131823/linux/slabs -s util | slabs +++ b/tests/integration/data/regression_output/dump.202303131823/linux/slabs -s util | slabs @@ -176,3 +176,5 @@ dm_uevent 2632 0 0.0B 0.0B ddt_entry_cache 448 0 0.0B 0.0B 0 arc_buf_hdr_t_l2only 96 0 0.0B 0.0B 0 arc_buf_hdr_t_full_crypt 336 0 0.0B 0.0B 0 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/linux/slabs -v b/tests/integration/data/regression_output/dump.202303131823/linux/slabs -v index 267695a0..85027830 100644 --- a/tests/integration/data/regression_output/dump.202303131823/linux/slabs -v +++ b/tests/integration/data/regression_output/dump.202303131823/linux/slabs -v @@ -176,3 +176,5 @@ 0xffff9ac65af281c0 ddt_entry_cache 448 448 18 0 0.0B 0.0B 0 0 0 0 0xffff9ac6590fea80 sio_cache_2 168 168 24 0 0.0B 0.0B 0 0 0 0 0xffff9ac64d67a000 nfs_direct_cache 224 224 18 0 0.0B 0.0B 0 0 0 0 +@#$ EXIT CODE $#@ +0 diff --git "a/tests/integration/data/regression_output/dump.202303131823/linux/slabs | filter 'obj.name == \"UNIX\"' | slub_cache | count" "b/tests/integration/data/regression_output/dump.202303131823/linux/slabs | filter 'obj.name == \"UNIX\"' | slub_cache | count" index 95574348..2658ef27 100644 --- "a/tests/integration/data/regression_output/dump.202303131823/linux/slabs | filter 'obj.name == \"UNIX\"' | slub_cache | count" +++ "b/tests/integration/data/regression_output/dump.202303131823/linux/slabs | filter 'obj.name == \"UNIX\"' | slub_cache | count" @@ -1 +1,3 @@ (unsigned long long)0 +@#$ EXIT CODE $#@ +0 diff --git "a/tests/integration/data/regression_output/dump.202303131823/linux/slabs | filter 'obj.name == \"dnode_t\"' |walk | head 6056 | tail 1| cast dnode_t * | deref |member dn_phys |member dn_blkptr[0] |blkptr" "b/tests/integration/data/regression_output/dump.202303131823/linux/slabs | filter 'obj.name == \"dnode_t\"' |walk | head 6056 | tail 1| cast dnode_t * | deref |member dn_phys |member dn_blkptr[0] |blkptr" index ce15dc73..0639b611 100644 --- "a/tests/integration/data/regression_output/dump.202303131823/linux/slabs | filter 'obj.name == \"dnode_t\"' |walk | head 6056 | tail 1| cast dnode_t * | deref |member dn_phys |member dn_blkptr[0] |blkptr" +++ "b/tests/integration/data/regression_output/dump.202303131823/linux/slabs | filter 'obj.name == \"dnode_t\"' |walk | head 6056 | tail 1| cast dnode_t * | deref |member dn_phys |member dn_blkptr[0] |blkptr" @@ -2,3 +2,5 @@ DVA[0]=<0:0x50ad98800:0x600> [L0 ZFS plain file] fletcher4 lzjb layer=0 unencrypted LE contiguous unique single size=0xa00L/0x600P birth=691L/691P fill=1 cksum=0x50b2435bac:0x4877d83d80e7:0x259e03cbed157d:0xe4d625e1f14d8cc +@#$ EXIT CODE $#@ +0 diff --git "a/tests/integration/data/regression_output/dump.202303131823/linux/slabs | filter 'obj.name == \"dnode_t\"' |walk | tail 8 | head 1 | cast dnode_t * | deref |member dn_phys |member dn_blkptr[0] |blkptr" "b/tests/integration/data/regression_output/dump.202303131823/linux/slabs | filter 'obj.name == \"dnode_t\"' |walk | tail 8 | head 1 | cast dnode_t * | deref |member dn_phys |member dn_blkptr[0] |blkptr" index 9083aad7..37ee7ae9 100644 --- "a/tests/integration/data/regression_output/dump.202303131823/linux/slabs | filter 'obj.name == \"dnode_t\"' |walk | tail 8 | head 1 | cast dnode_t * | deref |member dn_phys |member dn_blkptr[0] |blkptr" +++ "b/tests/integration/data/regression_output/dump.202303131823/linux/slabs | filter 'obj.name == \"dnode_t\"' |walk | tail 8 | head 1 | cast dnode_t * | deref |member dn_phys |member dn_blkptr[0] |blkptr" @@ -2,3 +2,5 @@ DVA[0]=<0:0xe01bd200:0x2e00> [L0 ZFS plain file] fletcher4 lzjb layer=0 unencrypted LE contiguous unique single size=0x8e00L/0x2e00P birth=25L/25P fill=1 cksum=0x2b4705c4d19:0xe6eacc837fede:0x3376b31cb9e47ade:0x6759b6b5446e1229 +@#$ EXIT CODE $#@ +0 diff --git "a/tests/integration/data/regression_output/dump.202303131823/linux/slabs | filter 'obj.name == \"kmalloc-8\"' | member cpu_slab | percpu" "b/tests/integration/data/regression_output/dump.202303131823/linux/slabs | filter 'obj.name == \"kmalloc-8\"' | member cpu_slab | percpu" index e2780f01..c270e165 100644 --- "a/tests/integration/data/regression_output/dump.202303131823/linux/slabs | filter 'obj.name == \"kmalloc-8\"' | member cpu_slab | percpu" +++ "b/tests/integration/data/regression_output/dump.202303131823/linux/slabs | filter 'obj.name == \"kmalloc-8\"' | member cpu_slab | percpu" @@ -1,2 +1,4 @@ (struct kmem_cache_cpu *)0xffff9ac679634040 (struct kmem_cache_cpu *)0xffff9ac679734040 +@#$ EXIT CODE $#@ +0 diff --git "a/tests/integration/data/regression_output/dump.202303131823/linux/slabs | filter 'obj.name == \"kmalloc-8\"' | member cpu_slab | percpu 0" "b/tests/integration/data/regression_output/dump.202303131823/linux/slabs | filter 'obj.name == \"kmalloc-8\"' | member cpu_slab | percpu 0" index e71bd4a1..dac93f7b 100644 --- "a/tests/integration/data/regression_output/dump.202303131823/linux/slabs | filter 'obj.name == \"kmalloc-8\"' | member cpu_slab | percpu 0" +++ "b/tests/integration/data/regression_output/dump.202303131823/linux/slabs | filter 'obj.name == \"kmalloc-8\"' | member cpu_slab | percpu 0" @@ -1 +1,3 @@ (struct kmem_cache_cpu *)0xffff9ac679634040 +@#$ EXIT CODE $#@ +0 diff --git "a/tests/integration/data/regression_output/dump.202303131823/linux/slabs | filter 'obj.name == \"kmalloc-8\"' | member cpu_slab | percpu 0 1" "b/tests/integration/data/regression_output/dump.202303131823/linux/slabs | filter 'obj.name == \"kmalloc-8\"' | member cpu_slab | percpu 0 1" index e2780f01..c270e165 100644 --- "a/tests/integration/data/regression_output/dump.202303131823/linux/slabs | filter 'obj.name == \"kmalloc-8\"' | member cpu_slab | percpu 0 1" +++ "b/tests/integration/data/regression_output/dump.202303131823/linux/slabs | filter 'obj.name == \"kmalloc-8\"' | member cpu_slab | percpu 0 1" @@ -1,2 +1,4 @@ (struct kmem_cache_cpu *)0xffff9ac679634040 (struct kmem_cache_cpu *)0xffff9ac679734040 +@#$ EXIT CODE $#@ +0 diff --git "a/tests/integration/data/regression_output/dump.202303131823/linux/slabs | filter 'obj.name == \"kmalloc-8\"' | member cpu_slab | percpu 0 2 1" "b/tests/integration/data/regression_output/dump.202303131823/linux/slabs | filter 'obj.name == \"kmalloc-8\"' | member cpu_slab | percpu 0 2 1" index 83d568f3..5cdfb12e 100644 --- "a/tests/integration/data/regression_output/dump.202303131823/linux/slabs | filter 'obj.name == \"kmalloc-8\"' | member cpu_slab | percpu 0 2 1" +++ "b/tests/integration/data/regression_output/dump.202303131823/linux/slabs | filter 'obj.name == \"kmalloc-8\"' | member cpu_slab | percpu 0 2 1" @@ -1,2 +1,4 @@ (struct kmem_cache_cpu *)0xffff9ac679634040 sdb: percpu: available CPUs [0-1] - requested CPU 2 +@#$ EXIT CODE $#@ +1 diff --git "a/tests/integration/data/regression_output/dump.202303131823/linux/slabs | filter 'obj.name == \"kmalloc-8\"' | member cpu_slab | percpu 1" "b/tests/integration/data/regression_output/dump.202303131823/linux/slabs | filter 'obj.name == \"kmalloc-8\"' | member cpu_slab | percpu 1" index b177717d..61f76b9b 100644 --- "a/tests/integration/data/regression_output/dump.202303131823/linux/slabs | filter 'obj.name == \"kmalloc-8\"' | member cpu_slab | percpu 1" +++ "b/tests/integration/data/regression_output/dump.202303131823/linux/slabs | filter 'obj.name == \"kmalloc-8\"' | member cpu_slab | percpu 1" @@ -1 +1,3 @@ (struct kmem_cache_cpu *)0xffff9ac679734040 +@#$ EXIT CODE $#@ +0 diff --git "a/tests/integration/data/regression_output/dump.202303131823/linux/slabs | filter 'obj.name == \"kmalloc-8\"' | member cpu_slab | percpu 100" "b/tests/integration/data/regression_output/dump.202303131823/linux/slabs | filter 'obj.name == \"kmalloc-8\"' | member cpu_slab | percpu 100" index d0d383d4..5dafe9ae 100644 --- "a/tests/integration/data/regression_output/dump.202303131823/linux/slabs | filter 'obj.name == \"kmalloc-8\"' | member cpu_slab | percpu 100" +++ "b/tests/integration/data/regression_output/dump.202303131823/linux/slabs | filter 'obj.name == \"kmalloc-8\"' | member cpu_slab | percpu 100" @@ -1 +1,3 @@ sdb: percpu: available CPUs [0-1] - requested CPU 100 +@#$ EXIT CODE $#@ +1 diff --git "a/tests/integration/data/regression_output/dump.202303131823/linux/slabs | filter 'obj.name == \"kmalloc-8\"' | member cpu_slab | percpu 2" "b/tests/integration/data/regression_output/dump.202303131823/linux/slabs | filter 'obj.name == \"kmalloc-8\"' | member cpu_slab | percpu 2" index 7058ca61..12f36d85 100644 --- "a/tests/integration/data/regression_output/dump.202303131823/linux/slabs | filter 'obj.name == \"kmalloc-8\"' | member cpu_slab | percpu 2" +++ "b/tests/integration/data/regression_output/dump.202303131823/linux/slabs | filter 'obj.name == \"kmalloc-8\"' | member cpu_slab | percpu 2" @@ -1 +1,3 @@ sdb: percpu: available CPUs [0-1] - requested CPU 2 +@#$ EXIT CODE $#@ +1 diff --git "a/tests/integration/data/regression_output/dump.202303131823/linux/slabs | filter 'obj.name == \"kmalloc-8\"' | member cpu_slab | percpu 3" "b/tests/integration/data/regression_output/dump.202303131823/linux/slabs | filter 'obj.name == \"kmalloc-8\"' | member cpu_slab | percpu 3" index e4a9c1fd..e2a9449b 100644 --- "a/tests/integration/data/regression_output/dump.202303131823/linux/slabs | filter 'obj.name == \"kmalloc-8\"' | member cpu_slab | percpu 3" +++ "b/tests/integration/data/regression_output/dump.202303131823/linux/slabs | filter 'obj.name == \"kmalloc-8\"' | member cpu_slab | percpu 3" @@ -1 +1,3 @@ sdb: percpu: available CPUs [0-1] - requested CPU 3 +@#$ EXIT CODE $#@ +1 diff --git "a/tests/integration/data/regression_output/dump.202303131823/linux/slabs | filter 'obj.name == \"zio_cache\"' | slub_cache" "b/tests/integration/data/regression_output/dump.202303131823/linux/slabs | filter 'obj.name == \"zio_cache\"' | slub_cache" index c072cc46..187f6e75 100644 --- "a/tests/integration/data/regression_output/dump.202303131823/linux/slabs | filter 'obj.name == \"zio_cache\"' | slub_cache" +++ "b/tests/integration/data/regression_output/dump.202303131823/linux/slabs | filter 'obj.name == \"zio_cache\"' | slub_cache" @@ -1605,3 +1605,5 @@ (void *)0xffff9ac65dbec520 (void *)0xffff9ac65dbeca10 (void *)0xffff9ac65dbed3f0 +@#$ EXIT CODE $#@ +0 diff --git "a/tests/integration/data/regression_output/dump.202303131823/linux/slabs | filter 'obj.name == \"zio_cache\"' | slub_cache | cast zio_t * | member io_spa.spa_name" "b/tests/integration/data/regression_output/dump.202303131823/linux/slabs | filter 'obj.name == \"zio_cache\"' | slub_cache | cast zio_t * | member io_spa.spa_name" index f73b69b5..40a3d96d 100644 --- "a/tests/integration/data/regression_output/dump.202303131823/linux/slabs | filter 'obj.name == \"zio_cache\"' | slub_cache | cast zio_t * | member io_spa.spa_name" +++ "b/tests/integration/data/regression_output/dump.202303131823/linux/slabs | filter 'obj.name == \"zio_cache\"' | slub_cache | cast zio_t * | member io_spa.spa_name" @@ -1605,3 +1605,5 @@ (char [256])"testpool" (char [256])"testpool" (char [256])"testpool" +@#$ EXIT CODE $#@ +0 diff --git "a/tests/integration/data/regression_output/dump.202303131823/linux/slabs | filter 'obj.name == \"zio_cache\"' | slub_cache | count" "b/tests/integration/data/regression_output/dump.202303131823/linux/slabs | filter 'obj.name == \"zio_cache\"' | slub_cache | count" index 58d9392e..221b5da7 100644 --- "a/tests/integration/data/regression_output/dump.202303131823/linux/slabs | filter 'obj.name == \"zio_cache\"' | slub_cache | count" +++ "b/tests/integration/data/regression_output/dump.202303131823/linux/slabs | filter 'obj.name == \"zio_cache\"' | slub_cache | count" @@ -1 +1,3 @@ (unsigned long long)1607 +@#$ EXIT CODE $#@ +0 diff --git "a/tests/integration/data/regression_output/dump.202303131823/linux/slabs | filter 'obj.name == \"zio_cache\"' | walk" "b/tests/integration/data/regression_output/dump.202303131823/linux/slabs | filter 'obj.name == \"zio_cache\"' | walk" index c072cc46..187f6e75 100644 --- "a/tests/integration/data/regression_output/dump.202303131823/linux/slabs | filter 'obj.name == \"zio_cache\"' | walk" +++ "b/tests/integration/data/regression_output/dump.202303131823/linux/slabs | filter 'obj.name == \"zio_cache\"' | walk" @@ -1605,3 +1605,5 @@ (void *)0xffff9ac65dbec520 (void *)0xffff9ac65dbeca10 (void *)0xffff9ac65dbed3f0 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/linux/slabs | head 2 | slabs b/tests/integration/data/regression_output/dump.202303131823/linux/slabs | head 2 | slabs index 005a661d..1bd91df7 100644 --- a/tests/integration/data/regression_output/dump.202303131823/linux/slabs | head 2 | slabs +++ b/tests/integration/data/regression_output/dump.202303131823/linux/slabs | head 2 | slabs @@ -2,3 +2,5 @@ name entry_size active_objs active_memory total_memory uti -------------------------- ---------- ----------- ------------- ------------ ---- vdev_object_store_io_cache 32 4608 144.0KB 144.0KB 100 ext4_groupinfo_4k 144 84 11.8KB 11.8KB 100 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/linux/slabs | pp b/tests/integration/data/regression_output/dump.202303131823/linux/slabs | pp index b052f88f..b05c4ad5 100644 --- a/tests/integration/data/regression_output/dump.202303131823/linux/slabs | pp +++ b/tests/integration/data/regression_output/dump.202303131823/linux/slabs | pp @@ -176,3 +176,5 @@ dm_uevent 2632 0 0.0B 0.0B ddt_entry_cache 448 0 0.0B 0.0B 0 arc_buf_hdr_t_l2only 96 0 0.0B 0.0B 0 arc_buf_hdr_t_full_crypt 336 0 0.0B 0.0B 0 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/linux/stacks b/tests/integration/data/regression_output/dump.202303131823/linux/stacks index d1b61511..d5160b81 100644 --- a/tests/integration/data/regression_output/dump.202303131823/linux/stacks +++ b/tests/integration/data/regression_output/dump.202303131823/linux/stacks @@ -898,3 +898,5 @@ TASK_STRUCT STATE COUNT kthread+0x104 ret_from_fork+0x1f +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/linux/stacks -a b/tests/integration/data/regression_output/dump.202303131823/linux/stacks -a index ecc213ae..ff5218bb 100644 --- a/tests/integration/data/regression_output/dump.202303131823/linux/stacks -a +++ b/tests/integration/data/regression_output/dump.202303131823/linux/stacks -a @@ -1961,3 +1961,5 @@ TASK_STRUCT STATE kthread+0x104 ret_from_fork+0x1f +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/linux/stacks -c bogus b/tests/integration/data/regression_output/dump.202303131823/linux/stacks -c bogus index b548356e..a9a071da 100644 --- a/tests/integration/data/regression_output/dump.202303131823/linux/stacks -c bogus +++ b/tests/integration/data/regression_output/dump.202303131823/linux/stacks -c bogus @@ -1 +1,3 @@ sdb: stacks: symbol 'bogus' does not exist +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.202303131823/linux/stacks -c spa_sync b/tests/integration/data/regression_output/dump.202303131823/linux/stacks -c spa_sync index 772c9087..a3655220 100644 --- a/tests/integration/data/regression_output/dump.202303131823/linux/stacks -c spa_sync +++ b/tests/integration/data/regression_output/dump.202303131823/linux/stacks -c spa_sync @@ -17,3 +17,5 @@ TASK_STRUCT STATE COUNT kthread+0x104 ret_from_fork+0x1f +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/linux/stacks -m bogus b/tests/integration/data/regression_output/dump.202303131823/linux/stacks -m bogus index 5f410b10..ddf82d7c 100644 --- a/tests/integration/data/regression_output/dump.202303131823/linux/stacks -m bogus +++ b/tests/integration/data/regression_output/dump.202303131823/linux/stacks -m bogus @@ -1 +1,3 @@ sdb: stacks: module 'bogus' doesn't exist or isn't currently loaded +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.202303131823/linux/stacks -m bogus | count b/tests/integration/data/regression_output/dump.202303131823/linux/stacks -m bogus | count index 5f410b10..ddf82d7c 100644 --- a/tests/integration/data/regression_output/dump.202303131823/linux/stacks -m bogus | count +++ b/tests/integration/data/regression_output/dump.202303131823/linux/stacks -m bogus | count @@ -1 +1,3 @@ sdb: stacks: module 'bogus' doesn't exist or isn't currently loaded +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.202303131823/linux/stacks -m zfs b/tests/integration/data/regression_output/dump.202303131823/linux/stacks -m zfs index a979d453..a080a198 100644 --- a/tests/integration/data/regression_output/dump.202303131823/linux/stacks -m zfs +++ b/tests/integration/data/regression_output/dump.202303131823/linux/stacks -m zfs @@ -305,3 +305,5 @@ TASK_STRUCT STATE COUNT kthread+0x104 ret_from_fork+0x1f +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/linux/stacks -m zfs -c spa_sync b/tests/integration/data/regression_output/dump.202303131823/linux/stacks -m zfs -c spa_sync index 772c9087..a3655220 100644 --- a/tests/integration/data/regression_output/dump.202303131823/linux/stacks -m zfs -c spa_sync +++ b/tests/integration/data/regression_output/dump.202303131823/linux/stacks -m zfs -c spa_sync @@ -17,3 +17,5 @@ TASK_STRUCT STATE COUNT kthread+0x104 ret_from_fork+0x1f +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/linux/stacks -m zfs -c zthr_procedure b/tests/integration/data/regression_output/dump.202303131823/linux/stacks -m zfs -c zthr_procedure index 0f0ce78f..8e4a0816 100644 --- a/tests/integration/data/regression_output/dump.202303131823/linux/stacks -m zfs -c zthr_procedure +++ b/tests/integration/data/regression_output/dump.202303131823/linux/stacks -m zfs -c zthr_procedure @@ -37,3 +37,5 @@ TASK_STRUCT STATE COUNT kthread+0x104 ret_from_fork+0x1f +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/linux/stacks -m zfs | count b/tests/integration/data/regression_output/dump.202303131823/linux/stacks -m zfs | count index 391c5fdd..bb3b7f32 100644 --- a/tests/integration/data/regression_output/dump.202303131823/linux/stacks -m zfs | count +++ b/tests/integration/data/regression_output/dump.202303131823/linux/stacks -m zfs | count @@ -1 +1,3 @@ (unsigned long long)44 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/linux/stacks -t bogus b/tests/integration/data/regression_output/dump.202303131823/linux/stacks -t bogus index 8e3d2a79..fe8bb1ec 100644 --- a/tests/integration/data/regression_output/dump.202303131823/linux/stacks -t bogus +++ b/tests/integration/data/regression_output/dump.202303131823/linux/stacks -t bogus @@ -1 +1,3 @@ sdb: stacks: 'bogus' is not a valid task state (acceptable states: RUNNING, INTERRUPTIBLE, UNINTERRUPTIBLE, STOPPED, TRACED, DEAD, ZOMBIE, PARKED, IDLE) +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.202303131823/linux/thread b/tests/integration/data/regression_output/dump.202303131823/linux/thread index ecfe18c8..5212d915 100644 --- a/tests/integration/data/regression_output/dump.202303131823/linux/thread +++ b/tests/integration/data/regression_output/dump.202303131823/linux/thread @@ -1131,3 +1131,5 @@ task state pid prio comm cmdline 0xffff9ac6607f9e80 INTERRUPTIBLE 10101 100 z_cl_int 0xffff9ac6607fbd00 IDLE 77 100 blkcg_punt_bio 0xffff9ac6607fdb80 IDLE 80 100 edac-poller +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/linux/threads b/tests/integration/data/regression_output/dump.202303131823/linux/threads index ecfe18c8..5212d915 100644 --- a/tests/integration/data/regression_output/dump.202303131823/linux/threads +++ b/tests/integration/data/regression_output/dump.202303131823/linux/threads @@ -1131,3 +1131,5 @@ task state pid prio comm cmdline 0xffff9ac6607f9e80 INTERRUPTIBLE 10101 100 z_cl_int 0xffff9ac6607fbd00 IDLE 77 100 blkcg_punt_bio 0xffff9ac6607fdb80 IDLE 80 100 edac-poller +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/linux/threads | count b/tests/integration/data/regression_output/dump.202303131823/linux/threads | count index 263cae8b..e48e3630 100644 --- a/tests/integration/data/regression_output/dump.202303131823/linux/threads | count +++ b/tests/integration/data/regression_output/dump.202303131823/linux/threads | count @@ -1 +1,3 @@ (unsigned long long)1131 +@#$ EXIT CODE $#@ +0 diff --git "a/tests/integration/data/regression_output/dump.202303131823/linux/threads | filter 'obj.comm == \"java\"' | stack" "b/tests/integration/data/regression_output/dump.202303131823/linux/threads | filter 'obj.comm == \"java\"' | stack" index 5ce5da43..696fa82a 100644 --- "a/tests/integration/data/regression_output/dump.202303131823/linux/threads | filter 'obj.comm == \"java\"' | stack" +++ "b/tests/integration/data/regression_output/dump.202303131823/linux/threads | filter 'obj.comm == \"java\"' | stack" @@ -14,3 +14,5 @@ TASK_STRUCT STATE COUNT do_syscall_64+0x57 entry_SYSCALL_64+0x94 +@#$ EXIT CODE $#@ +0 diff --git "a/tests/integration/data/regression_output/dump.202303131823/linux/threads | filter 'obj.comm == \"java\"' | threads" "b/tests/integration/data/regression_output/dump.202303131823/linux/threads | filter 'obj.comm == \"java\"' | threads" index 889b16b1..586fcb18 100644 --- "a/tests/integration/data/regression_output/dump.202303131823/linux/threads | filter 'obj.comm == \"java\"' | threads" +++ "b/tests/integration/data/regression_output/dump.202303131823/linux/threads | filter 'obj.comm == \"java\"' | threads" @@ -4,3 +4,5 @@ task state pid prio comm cmdline 0xffff9ac5d4160000 INTERRUPTIBLE 5807 120 java 0xffff9ac611970000 INTERRUPTIBLE 4474 120 java 0xffff9ac611975b80 INTERRUPTIBLE 4776 120 java +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/linux/whatis 0xf987kkbbh b/tests/integration/data/regression_output/dump.202303131823/linux/whatis 0xf987kkbbh index 69470daf..22bd8502 100644 --- a/tests/integration/data/regression_output/dump.202303131823/linux/whatis 0xf987kkbbh +++ b/tests/integration/data/regression_output/dump.202303131823/linux/whatis 0xf987kkbbh @@ -1 +1,3 @@ 0xf987kkbbh is not a valid address +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/linux/whatis 0xffff b/tests/integration/data/regression_output/dump.202303131823/linux/whatis 0xffff index dfa6cea3..a166b230 100644 --- a/tests/integration/data/regression_output/dump.202303131823/linux/whatis 0xffff +++ b/tests/integration/data/regression_output/dump.202303131823/linux/whatis 0xffff @@ -1 +1,3 @@ 0xffff does not map to a kmem_cache +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/linux/whatis 0xffffa0888c766000 0xffffa089407ca870 b/tests/integration/data/regression_output/dump.202303131823/linux/whatis 0xffffa0888c766000 0xffffa089407ca870 index 304c7fa0..28103df0 100644 --- a/tests/integration/data/regression_output/dump.202303131823/linux/whatis 0xffffa0888c766000 0xffffa089407ca870 +++ b/tests/integration/data/regression_output/dump.202303131823/linux/whatis 0xffffa0888c766000 0xffffa089407ca870 @@ -1,2 +1,4 @@ 0xffffa0888c766000 does not map to a kmem_cache 0xffffa089407ca870 does not map to a kmem_cache +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/linux/whatis 0xffffa089407ca870 b/tests/integration/data/regression_output/dump.202303131823/linux/whatis 0xffffa089407ca870 index 28bcd9a2..ccdb832d 100644 --- a/tests/integration/data/regression_output/dump.202303131823/linux/whatis 0xffffa089407ca870 +++ b/tests/integration/data/regression_output/dump.202303131823/linux/whatis 0xffffa089407ca870 @@ -1 +1,3 @@ 0xffffa089407ca870 does not map to a kmem_cache +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/spl/addr arc_mru | member [0].arcs_list[1] | multilist | head b/tests/integration/data/regression_output/dump.202303131823/spl/addr arc_mru | member [0].arcs_list[1] | multilist | head index 2ce8ab90..7a0d59a4 100644 --- a/tests/integration/data/regression_output/dump.202303131823/spl/addr arc_mru | member [0].arcs_list[1] | multilist | head +++ b/tests/integration/data/regression_output/dump.202303131823/spl/addr arc_mru | member [0].arcs_list[1] | multilist | head @@ -1 +1,3 @@ sdb: addr: symbol not found: arc_mru +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.202303131823/spl/addr arc_mru | member [0].arcs_list[1] | walk | head b/tests/integration/data/regression_output/dump.202303131823/spl/addr arc_mru | member [0].arcs_list[1] | walk | head index 2ce8ab90..7a0d59a4 100644 --- a/tests/integration/data/regression_output/dump.202303131823/spl/addr arc_mru | member [0].arcs_list[1] | walk | head +++ b/tests/integration/data/regression_output/dump.202303131823/spl/addr arc_mru | member [0].arcs_list[1] | walk | head @@ -1 +1,3 @@ sdb: addr: symbol not found: arc_mru +@#$ EXIT CODE $#@ +1 diff --git a/tests/integration/data/regression_output/dump.202303131823/spl/addr spa_namespace_avl | avl b/tests/integration/data/regression_output/dump.202303131823/spl/addr spa_namespace_avl | avl index 5523ccd2..a8a078b6 100644 --- a/tests/integration/data/regression_output/dump.202303131823/spl/addr spa_namespace_avl | avl +++ b/tests/integration/data/regression_output/dump.202303131823/spl/addr spa_namespace_avl | avl @@ -1,3 +1,5 @@ (void *)0xffff9ac653860000 (void *)0xffff9ac658924000 (void *)0xffff9ac546d38000 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/spl/addr spa_namespace_avl | walk b/tests/integration/data/regression_output/dump.202303131823/spl/addr spa_namespace_avl | walk index 5523ccd2..a8a078b6 100644 --- a/tests/integration/data/regression_output/dump.202303131823/spl/addr spa_namespace_avl | walk +++ b/tests/integration/data/regression_output/dump.202303131823/spl/addr spa_namespace_avl | walk @@ -1,3 +1,5 @@ (void *)0xffff9ac653860000 (void *)0xffff9ac658924000 (void *)0xffff9ac546d38000 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/spl/spa | member spa_config_list | spl_list b/tests/integration/data/regression_output/dump.202303131823/spl/spa | member spa_config_list | spl_list index 2b01a022..8a500423 100644 --- a/tests/integration/data/regression_output/dump.202303131823/spl/spa | member spa_config_list | spl_list +++ b/tests/integration/data/regression_output/dump.202303131823/spl/spa | member spa_config_list | spl_list @@ -1,3 +1,5 @@ (void *)0xffff9ac614eb2160 (void *)0xffff9ac659107880 (void *)0xffff9ac5b061c5a0 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/spl/spa | member spa_config_list | walk b/tests/integration/data/regression_output/dump.202303131823/spl/spa | member spa_config_list | walk index 2b01a022..8a500423 100644 --- a/tests/integration/data/regression_output/dump.202303131823/spl/spa | member spa_config_list | walk +++ b/tests/integration/data/regression_output/dump.202303131823/spl/spa | member spa_config_list | walk @@ -1,3 +1,5 @@ (void *)0xffff9ac614eb2160 (void *)0xffff9ac659107880 (void *)0xffff9ac5b061c5a0 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/spl/spa | member spa_evicting_os_list | spl_list b/tests/integration/data/regression_output/dump.202303131823/spl/spa | member spa_evicting_os_list | spl_list index e69de29b..77f91668 100644 --- a/tests/integration/data/regression_output/dump.202303131823/spl/spa | member spa_evicting_os_list | spl_list +++ b/tests/integration/data/regression_output/dump.202303131823/spl/spa | member spa_evicting_os_list | spl_list @@ -0,0 +1,2 @@ +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/spl/spa | member spa_evicting_os_list | walk b/tests/integration/data/regression_output/dump.202303131823/spl/spa | member spa_evicting_os_list | walk index e69de29b..77f91668 100644 --- a/tests/integration/data/regression_output/dump.202303131823/spl/spa | member spa_evicting_os_list | walk +++ b/tests/integration/data/regression_output/dump.202303131823/spl/spa | member spa_evicting_os_list | walk @@ -0,0 +1,2 @@ +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/spl/spa | member spa_normal_class.mc_metaslab_txg_list | multilist b/tests/integration/data/regression_output/dump.202303131823/spl/spa | member spa_normal_class.mc_metaslab_txg_list | multilist index b6a44013..958e47ba 100644 --- a/tests/integration/data/regression_output/dump.202303131823/spl/spa | member spa_normal_class.mc_metaslab_txg_list | multilist +++ b/tests/integration/data/regression_output/dump.202303131823/spl/spa | member spa_normal_class.mc_metaslab_txg_list | multilist @@ -46,3 +46,5 @@ (void *)0xffff9ac546198000 (void *)0xffff9ac5a26f9000 (void *)0xffff9ac48f0ac000 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/spl/spa | member spa_normal_class.mc_metaslab_txg_list | walk b/tests/integration/data/regression_output/dump.202303131823/spl/spa | member spa_normal_class.mc_metaslab_txg_list | walk index b6a44013..958e47ba 100644 --- a/tests/integration/data/regression_output/dump.202303131823/spl/spa | member spa_normal_class.mc_metaslab_txg_list | walk +++ b/tests/integration/data/regression_output/dump.202303131823/spl/spa | member spa_normal_class.mc_metaslab_txg_list | walk @@ -46,3 +46,5 @@ (void *)0xffff9ac546198000 (void *)0xffff9ac5a26f9000 (void *)0xffff9ac48f0ac000 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/spl/spl_kmem_caches b/tests/integration/data/regression_output/dump.202303131823/spl/spl_kmem_caches index 7a8ba4bd..c61e2a83 100644 --- a/tests/integration/data/regression_output/dump.202303131823/spl/spl_kmem_caches +++ b/tests/integration/data/regression_output/dump.202303131823/spl/spl_kmem_caches @@ -81,3 +81,5 @@ kcf_context_cache 64 0 0.0B kcf_con ddt_entry_cache 448 0 0.0B ddt_entry_cache[SLUB] 0.0B 0 arc_buf_hdr_t_l2only 96 0 0.0B arc_buf_hdr_t_l2only[SLUB] 0.0B 0 arc_buf_hdr_t_full_crypt 336 0 0.0B arc_buf_hdr_t_full_crypt[SLUB] 0.0B 0 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/spl/spl_kmem_caches -o name,entry_size -s entry_size b/tests/integration/data/regression_output/dump.202303131823/spl/spl_kmem_caches -o name,entry_size -s entry_size index c8d768cc..1d896fe9 100644 --- a/tests/integration/data/regression_output/dump.202303131823/spl/spl_kmem_caches -o name,entry_size -s entry_size +++ b/tests/integration/data/regression_output/dump.202303131823/spl/spl_kmem_caches -o name,entry_size -s entry_size @@ -81,3 +81,5 @@ kcf_context_cache 64 zio_link_cache 48 vdev_object_store_io_cache 32 arc_buf_t 32 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/spl/spl_kmem_caches -o name,source b/tests/integration/data/regression_output/dump.202303131823/spl/spl_kmem_caches -o name,source index ed9812be..84dc04f7 100644 --- a/tests/integration/data/regression_output/dump.202303131823/spl/spl_kmem_caches -o name,source +++ b/tests/integration/data/regression_output/dump.202303131823/spl/spl_kmem_caches -o name,source @@ -81,3 +81,5 @@ zio_buf_comb_917504 zio_buf_comb_917504[SPL ] zio_buf_comb_98304 zio_buf_comb_98304[SPL ] zio_cache zio_cache[SLUB] zio_link_cache zio_link_cache[SLUB] +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/spl/spl_kmem_caches -s entry_size b/tests/integration/data/regression_output/dump.202303131823/spl/spl_kmem_caches -s entry_size index 21b5db9c..f5faa28d 100644 --- a/tests/integration/data/regression_output/dump.202303131823/spl/spl_kmem_caches -s entry_size +++ b/tests/integration/data/regression_output/dump.202303131823/spl/spl_kmem_caches -s entry_size @@ -81,3 +81,5 @@ kcf_context_cache 64 0 0.0B kcf_con zio_link_cache 48 1649 77.3KB zio_link_cache[SLUB] 274.9KB 28 vdev_object_store_io_cache 32 0 0.0B vdev_object_store_io_cache[SLUB] 144.0KB 0 arc_buf_t 32 8485 265.2KB arc_buf_t[SLUB] 1.3MB 20 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/spl/spl_kmem_caches -s entry_size | head 4 | spl_kmem_caches b/tests/integration/data/regression_output/dump.202303131823/spl/spl_kmem_caches -s entry_size | head 4 | spl_kmem_caches index 3224eeda..8df628ec 100644 --- a/tests/integration/data/regression_output/dump.202303131823/spl/spl_kmem_caches -s entry_size | head 4 | spl_kmem_caches +++ b/tests/integration/data/regression_output/dump.202303131823/spl/spl_kmem_caches -s entry_size | head 4 | spl_kmem_caches @@ -4,3 +4,5 @@ zio_buf_comb_16777216 16785408 0 0.0B zio_buf_comb_16777216 zio_buf_comb_14680064 14686208 0 0.0B zio_buf_comb_14680064[SPL ] 0.0B 0 zio_buf_comb_12582912 12589056 0 0.0B zio_buf_comb_12582912[SPL ] 0.0B 0 zio_buf_comb_10485760 10491221 0 0.0B zio_buf_comb_10485760[SPL ] 0.0B 0 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/spl/spl_kmem_caches -v b/tests/integration/data/regression_output/dump.202303131823/spl/spl_kmem_caches -v index 432fb4dc..7af44673 100644 --- a/tests/integration/data/regression_output/dump.202303131823/spl/spl_kmem_caches -v +++ b/tests/integration/data/regression_output/dump.202303131823/spl/spl_kmem_caches -v @@ -81,3 +81,5 @@ 0xffff9ac65a470400 zio_buf_comb_14336 KMC_NODEBUG|KMC_SLAB 14336 16384 0 0 0 0 0 0.0B 320.0KB 0 0 0 zio_buf_comb_14336[SLUB] 0 0xffff9ac65a470200 zio_buf_comb_8192 KMC_NODEBUG|KMC_SLAB 8192 8192 0 0 0 0 0 0.0B 288.0KB 0 0 0 zio_buf_comb_8192[SLUB] 0 0xffff9ac55a329200 vdev_object_store_io_cache KMC_SLAB 32 32 0 0 0 0 0 0.0B 144.0KB 0 0 0 vdev_object_store_io_cache[SLUB] 0 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/spl/spl_kmem_caches | filter 'obj.skc_linux_cache == 0' | spl_cache b/tests/integration/data/regression_output/dump.202303131823/spl/spl_kmem_caches | filter 'obj.skc_linux_cache == 0' | spl_cache index d233ee65..05f083c8 100644 --- a/tests/integration/data/regression_output/dump.202303131823/spl/spl_kmem_caches | filter 'obj.skc_linux_cache == 0' | spl_cache +++ b/tests/integration/data/regression_output/dump.202303131823/spl/spl_kmem_caches | filter 'obj.skc_linux_cache == 0' | spl_cache @@ -6547,3 +6547,5 @@ (void *)0xffffb715cb495000 (void *)0xffffb715cb4b6000 (void *)0xffffb715cb4d7000 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/spl/spl_kmem_caches | filter 'obj.skc_linux_cache == 0' | spl_cache | cnt b/tests/integration/data/regression_output/dump.202303131823/spl/spl_kmem_caches | filter 'obj.skc_linux_cache == 0' | spl_cache | cnt index c76be57d..e27e9b52 100644 --- a/tests/integration/data/regression_output/dump.202303131823/spl/spl_kmem_caches | filter 'obj.skc_linux_cache == 0' | spl_cache | cnt +++ b/tests/integration/data/regression_output/dump.202303131823/spl/spl_kmem_caches | filter 'obj.skc_linux_cache == 0' | spl_cache | cnt @@ -1 +1,3 @@ (unsigned long long)6549 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/spl/spl_kmem_caches | filter 'obj.skc_linux_cache > 0' | filter 'obj.skc_obj_alloc > 0' | head 1 | spl_cache b/tests/integration/data/regression_output/dump.202303131823/spl/spl_kmem_caches | filter 'obj.skc_linux_cache > 0' | filter 'obj.skc_obj_alloc > 0' | head 1 | spl_cache index e69de29b..77f91668 100644 --- a/tests/integration/data/regression_output/dump.202303131823/spl/spl_kmem_caches | filter 'obj.skc_linux_cache > 0' | filter 'obj.skc_obj_alloc > 0' | head 1 | spl_cache +++ b/tests/integration/data/regression_output/dump.202303131823/spl/spl_kmem_caches | filter 'obj.skc_linux_cache > 0' | filter 'obj.skc_obj_alloc > 0' | head 1 | spl_cache @@ -0,0 +1,2 @@ +@#$ EXIT CODE $#@ +0 diff --git "a/tests/integration/data/regression_output/dump.202303131823/spl/spl_kmem_caches | filter 'obj.skc_name == \"ddt_cache\"' | walk" "b/tests/integration/data/regression_output/dump.202303131823/spl/spl_kmem_caches | filter 'obj.skc_name == \"ddt_cache\"' | walk" index aa74bf38..de7a5f5f 100644 --- "a/tests/integration/data/regression_output/dump.202303131823/spl/spl_kmem_caches | filter 'obj.skc_name == \"ddt_cache\"' | walk" +++ "b/tests/integration/data/regression_output/dump.202303131823/spl/spl_kmem_caches | filter 'obj.skc_name == \"ddt_cache\"' | walk" @@ -46,3 +46,5 @@ (void *)0xffffb715807c7630 (void *)0xffffb715807cd760 (void *)0xffffb715807d3890 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/spl/spl_kmem_caches | pp b/tests/integration/data/regression_output/dump.202303131823/spl/spl_kmem_caches | pp index 7a8ba4bd..c61e2a83 100644 --- a/tests/integration/data/regression_output/dump.202303131823/spl/spl_kmem_caches | pp +++ b/tests/integration/data/regression_output/dump.202303131823/spl/spl_kmem_caches | pp @@ -81,3 +81,5 @@ kcf_context_cache 64 0 0.0B kcf_con ddt_entry_cache 448 0 0.0B ddt_entry_cache[SLUB] 0.0B 0 arc_buf_hdr_t_l2only 96 0 0.0B arc_buf_hdr_t_l2only[SLUB] 0.0B 0 arc_buf_hdr_t_full_crypt 336 0 0.0B arc_buf_hdr_t_full_crypt[SLUB] 0.0B 0 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/zfs/arc b/tests/integration/data/regression_output/dump.202303131823/zfs/arc index 88bd9cea..847213ef 100644 --- a/tests/integration/data/regression_output/dump.202303131823/zfs/arc +++ b/tests/integration/data/regression_output/dump.202303131823/zfs/arc @@ -134,3 +134,5 @@ arcstat_sys_free = 962914304 arcstat_raw_size = 0 arcstat_cached_only_in_progress = 0 arcstat_abd_chunk_waste_size = 96038912 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/zfs/dbuf b/tests/integration/data/regression_output/dump.202303131823/zfs/dbuf index 98600793..d8684ed5 100644 --- a/tests/integration/data/regression_output/dump.202303131823/zfs/dbuf +++ b/tests/integration/data/regression_output/dump.202303131823/zfs/dbuf @@ -8469,3 +8469,5 @@ 0xffff9ac55ba7c620 0 0 88 29 rpool/ROOT/delphix.i4TlGPg/data 0xffff9ac5b0d06f50 128 1 83 41 testpool/testfs 0xffff9ac55c898ab8 128 1 17 19 testpool/testfs +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/zfs/dbuf -l 1 b/tests/integration/data/regression_output/dump.202303131823/zfs/dbuf -l 1 index ba7734d0..cdc005de 100644 --- a/tests/integration/data/regression_output/dump.202303131823/zfs/dbuf -l 1 +++ b/tests/integration/data/regression_output/dump.202303131823/zfs/dbuf -l 1 @@ -242,3 +242,5 @@ 0xffff9ac48fc35260 2 1 30 20 objpool/testfs 0xffff9ac5b0d06f50 128 1 83 41 testpool/testfs 0xffff9ac55c898ab8 128 1 17 19 testpool/testfs +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/zfs/dbuf | dbuf -l 1 b/tests/integration/data/regression_output/dump.202303131823/zfs/dbuf | dbuf -l 1 index ba7734d0..cdc005de 100644 --- a/tests/integration/data/regression_output/dump.202303131823/zfs/dbuf | dbuf -l 1 +++ b/tests/integration/data/regression_output/dump.202303131823/zfs/dbuf | dbuf -l 1 @@ -242,3 +242,5 @@ 0xffff9ac48fc35260 2 1 30 20 objpool/testfs 0xffff9ac5b0d06f50 128 1 83 41 testpool/testfs 0xffff9ac55c898ab8 128 1 17 19 testpool/testfs +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/zfs/dbuf | dbuf -l 1 | head | dbuf b/tests/integration/data/regression_output/dump.202303131823/zfs/dbuf | dbuf -l 1 | head | dbuf index 3ce8ea86..22552626 100644 --- a/tests/integration/data/regression_output/dump.202303131823/zfs/dbuf | dbuf -l 1 | head | dbuf +++ b/tests/integration/data/regression_output/dump.202303131823/zfs/dbuf | dbuf -l 1 | head | dbuf @@ -9,3 +9,5 @@ 0xffff9ac5b8f0ec40 128 1 52 23 testpool/testfs 0xffff9ac65ec9f3e8 2019 1 0 2 rpool/ROOT/delphix.i4TlGPg/data 0xffff9ac4c66ffa08 128 1 7 19 testpool/testfs +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/zfs/dbuf | head 1 | member db_blkptr | blkptr b/tests/integration/data/regression_output/dump.202303131823/zfs/dbuf | head 1 | member db_blkptr | blkptr index 69863e70..8fe3f80e 100644 --- a/tests/integration/data/regression_output/dump.202303131823/zfs/dbuf | head 1 | member db_blkptr | blkptr +++ b/tests/integration/data/regression_output/dump.202303131823/zfs/dbuf | head 1 | member db_blkptr | blkptr @@ -2,3 +2,5 @@ DVA[0]=<0:0x103207c00:0x2e00> [L0 ZFS plain file] fletcher4 lz4 layer=0 unencrypted LE contiguous unique single size=0x20000L/0x2e00P birth=1197L/1197P fill=1 cksum=0x5df05f0e3e3:0x229afb5d03e237:0x83ffb2e325a9e23a:0xbed1657fea4bbdb8 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/zfs/spa b/tests/integration/data/regression_output/dump.202303131823/zfs/spa index 0244701a..b1c0f127 100644 --- a/tests/integration/data/regression_output/dump.202303131823/zfs/spa +++ b/tests/integration/data/regression_output/dump.202303131823/zfs/spa @@ -3,3 +3,5 @@ ADDR NAME 0xffff9ac653860000 objpool 0xffff9ac658924000 rpool 0xffff9ac546d38000 testpool +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/zfs/spa -H b/tests/integration/data/regression_output/dump.202303131823/zfs/spa -H index 7d8af492..ab7bc9a7 100644 --- a/tests/integration/data/regression_output/dump.202303131823/zfs/spa -H +++ b/tests/integration/data/regression_output/dump.202303131823/zfs/spa -H @@ -28,3 +28,5 @@ ADDR NAME 128.0MB: 22 256.0MB: 15 Approx. Median: 108.2MB +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/zfs/spa -mH b/tests/integration/data/regression_output/dump.202303131823/zfs/spa -mH index 042381ed..34e1ed04 100644 --- a/tests/integration/data/regression_output/dump.202303131823/zfs/spa -mH +++ b/tests/integration/data/regression_output/dump.202303131823/zfs/spa -mH @@ -930,3 +930,5 @@ ADDR NAME 64.0MB: 0 128.0MB: 1 Approx. Median: 3.6MB +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/zfs/spa -v b/tests/integration/data/regression_output/dump.202303131823/zfs/spa -v index e6f071a8..05744e83 100644 --- a/tests/integration/data/regression_output/dump.202303131823/zfs/spa -v +++ b/tests/integration/data/regression_output/dump.202303131823/zfs/spa -v @@ -16,3 +16,5 @@ ADDR NAME 0xffff9ac5ac2ac000 HEALTHY NONE root 0xffff9ac55ced0000 HEALTHY NONE /dev/nvme1n1p1 0xffff9ac4b0574000 HEALTHY NONE /dev/nvme2n1p1 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/zfs/spa -vH b/tests/integration/data/regression_output/dump.202303131823/zfs/spa -vH index 3a5d52f4..3476ef36 100644 --- a/tests/integration/data/regression_output/dump.202303131823/zfs/spa -vH +++ b/tests/integration/data/regression_output/dump.202303131823/zfs/spa -vH @@ -89,3 +89,5 @@ ADDR NAME 128.0MB: 12 256.0MB: 7 Approx. Median: 99.5MB +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/zfs/spa -vm b/tests/integration/data/regression_output/dump.202303131823/zfs/spa -vm index 1d1c47fd..dc03f3c5 100644 --- a/tests/integration/data/regression_output/dump.202303131823/zfs/spa -vm +++ b/tests/integration/data/regression_output/dump.202303131823/zfs/spa -vm @@ -194,3 +194,5 @@ ADDR NAME 0xffff9ac5ae5ad000 12 0x180000000 508MB 7% 4KB 0xffff9ac5ae5af000 13 0x1a0000000 413MB 14% 28KB 0xffff9ac5ae5ae000 14 0x1c0000000 484MB 18% 4KB +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/zfs/spa -vmH b/tests/integration/data/regression_output/dump.202303131823/zfs/spa -vmH index 042381ed..34e1ed04 100644 --- a/tests/integration/data/regression_output/dump.202303131823/zfs/spa -vmH +++ b/tests/integration/data/regression_output/dump.202303131823/zfs/spa -vmH @@ -930,3 +930,5 @@ ADDR NAME 64.0MB: 0 128.0MB: 1 Approx. Median: 3.6MB +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/zfs/spa data | member spa_normal_class.mc_histogram | zfs_histogram b/tests/integration/data/regression_output/dump.202303131823/zfs/spa data | member spa_normal_class.mc_histogram | zfs_histogram index e69de29b..77f91668 100644 --- a/tests/integration/data/regression_output/dump.202303131823/zfs/spa data | member spa_normal_class.mc_histogram | zfs_histogram +++ b/tests/integration/data/regression_output/dump.202303131823/zfs/spa data | member spa_normal_class.mc_histogram | zfs_histogram @@ -0,0 +1,2 @@ +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/zfs/spa data | vdev | metaslab | filter 'obj.ms_loaded == 1' | head 1 | member ms_allocatable.rt_histogram | zhist b/tests/integration/data/regression_output/dump.202303131823/zfs/spa data | vdev | metaslab | filter 'obj.ms_loaded == 1' | head 1 | member ms_allocatable.rt_histogram | zhist index e69de29b..77f91668 100644 --- a/tests/integration/data/regression_output/dump.202303131823/zfs/spa data | vdev | metaslab | filter 'obj.ms_loaded == 1' | head 1 | member ms_allocatable.rt_histogram | zhist +++ b/tests/integration/data/regression_output/dump.202303131823/zfs/spa data | vdev | metaslab | filter 'obj.ms_loaded == 1' | head 1 | member ms_allocatable.rt_histogram | zhist @@ -0,0 +1,2 @@ +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/zfs/spa data | vdev | metaslab | filter 'obj.ms_loaded == 1' | head 1 | member ms_sm.sm_phys.smp_histogram | zhist b/tests/integration/data/regression_output/dump.202303131823/zfs/spa data | vdev | metaslab | filter 'obj.ms_loaded == 1' | head 1 | member ms_sm.sm_phys.smp_histogram | zhist index e69de29b..77f91668 100644 --- a/tests/integration/data/regression_output/dump.202303131823/zfs/spa data | vdev | metaslab | filter 'obj.ms_loaded == 1' | head 1 | member ms_sm.sm_phys.smp_histogram | zhist +++ b/tests/integration/data/regression_output/dump.202303131823/zfs/spa data | vdev | metaslab | filter 'obj.ms_loaded == 1' | head 1 | member ms_sm.sm_phys.smp_histogram | zhist @@ -0,0 +1,2 @@ +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/zfs/spa data | vdev | metaslab | filter 'obj.ms_loaded == 1' | head 1 | member ms_sm.sm_phys.smp_histogram | zhist 9 b/tests/integration/data/regression_output/dump.202303131823/zfs/spa data | vdev | metaslab | filter 'obj.ms_loaded == 1' | head 1 | member ms_sm.sm_phys.smp_histogram | zhist 9 index e69de29b..77f91668 100644 --- a/tests/integration/data/regression_output/dump.202303131823/zfs/spa data | vdev | metaslab | filter 'obj.ms_loaded == 1' | head 1 | member ms_sm.sm_phys.smp_histogram | zhist 9 +++ b/tests/integration/data/regression_output/dump.202303131823/zfs/spa data | vdev | metaslab | filter 'obj.ms_loaded == 1' | head 1 | member ms_sm.sm_phys.smp_histogram | zhist 9 @@ -0,0 +1,2 @@ +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/zfs/spa rpool b/tests/integration/data/regression_output/dump.202303131823/zfs/spa rpool index e8555b47..e05b55de 100644 --- a/tests/integration/data/regression_output/dump.202303131823/zfs/spa rpool +++ b/tests/integration/data/regression_output/dump.202303131823/zfs/spa rpool @@ -1,3 +1,5 @@ ADDR NAME ------------------------------------------------------------ 0xffff9ac658924000 rpool +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/zfs/spa | head 1 | deref |member spa_uberblock | member ub_rootbp | blkptr b/tests/integration/data/regression_output/dump.202303131823/zfs/spa | head 1 | deref |member spa_uberblock | member ub_rootbp | blkptr index 16f89329..4b91a367 100644 --- a/tests/integration/data/regression_output/dump.202303131823/zfs/spa | head 1 | deref |member spa_uberblock | member ub_rootbp | blkptr +++ b/tests/integration/data/regression_output/dump.202303131823/zfs/spa | head 1 | deref |member spa_uberblock | member ub_rootbp | blkptr @@ -2,3 +2,5 @@ DVA[0]=<0:0x74fca00:0x200> [L0 DMU objset] fletcher4 lz4 layer=0 unencrypted LE contiguous unique single size=0x1000L/0x200P birth=249L/249P fill=50 cksum=0x96a85512f:0x3e46df820da:0xd0f5886a63c8:0x1da5a7cdcc4e69 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/zfs/spa | head 1 | spa b/tests/integration/data/regression_output/dump.202303131823/zfs/spa | head 1 | spa index e89b0a7a..57bbb282 100644 --- a/tests/integration/data/regression_output/dump.202303131823/zfs/spa | head 1 | spa +++ b/tests/integration/data/regression_output/dump.202303131823/zfs/spa | head 1 | spa @@ -1,3 +1,5 @@ ADDR NAME ------------------------------------------------------------ 0xffff9ac653860000 objpool +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/zfs/spa | pp b/tests/integration/data/regression_output/dump.202303131823/zfs/spa | pp index 0244701a..b1c0f127 100644 --- a/tests/integration/data/regression_output/dump.202303131823/zfs/spa | pp +++ b/tests/integration/data/regression_output/dump.202303131823/zfs/spa | pp @@ -3,3 +3,5 @@ ADDR NAME 0xffff9ac653860000 objpool 0xffff9ac658924000 rpool 0xffff9ac546d38000 testpool +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/zfs/spa | vdev b/tests/integration/data/regression_output/dump.202303131823/zfs/spa | vdev index 65c671ce..69c4ce3c 100644 --- a/tests/integration/data/regression_output/dump.202303131823/zfs/spa | vdev +++ b/tests/integration/data/regression_output/dump.202303131823/zfs/spa | vdev @@ -7,3 +7,5 @@ 0xffff9ac5ac2ac000 HEALTHY NONE root 0xffff9ac55ced0000 HEALTHY NONE /dev/nvme1n1p1 0xffff9ac4b0574000 HEALTHY NONE /dev/nvme2n1p1 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/zfs/spa | vdev | metaslab b/tests/integration/data/regression_output/dump.202303131823/zfs/spa | vdev | metaslab index efc2ce6a..7b84c961 100644 --- a/tests/integration/data/regression_output/dump.202303131823/zfs/spa | vdev | metaslab +++ b/tests/integration/data/regression_output/dump.202303131823/zfs/spa | vdev | metaslab @@ -170,3 +170,5 @@ 0xffff9ac5ae5ad000 12 0x180000000 508MB 7% 4KB 0xffff9ac5ae5af000 13 0x1a0000000 413MB 14% 28KB 0xffff9ac5ae5ae000 14 0x1c0000000 484MB 18% 4KB +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/zfs/spa | vdev | metaslab -w b/tests/integration/data/regression_output/dump.202303131823/zfs/spa | vdev | metaslab -w index 10f59d14..2d32f4d9 100644 --- a/tests/integration/data/regression_output/dump.202303131823/zfs/spa | vdev | metaslab -w +++ b/tests/integration/data/regression_output/dump.202303131823/zfs/spa | vdev | metaslab -w @@ -170,3 +170,5 @@ 12 - L SEGMENT 7% 3M (0.6%) 128MB 1 x 128MB 13 - L SEGMENT 14% 98M (19.2%) 210MB 2 x 128MB 14 - L SEGMENT 18% 27M (5.4%) 137MB 1 x 128MB +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/zfs/spa | vdev | metaslab | member ms_allocatable | range_tree b/tests/integration/data/regression_output/dump.202303131823/zfs/spa | vdev | metaslab | member ms_allocatable | range_tree index 59776ce6..c6b5ea03 100644 --- a/tests/integration/data/regression_output/dump.202303131823/zfs/spa | vdev | metaslab | member ms_allocatable | range_tree +++ b/tests/integration/data/regression_output/dump.202303131823/zfs/spa | vdev | metaslab | member ms_allocatable | range_tree @@ -2464,3 +2464,5 @@ sdb: _: invalid memory access: could not read memory from kdump: Cannot get page [0x288200000 0x2bf358800) (length 0x37158800) [0x21e200000 0x2bf358a00) (length 0xa1158a00) [0x296a00000 0x2bf358a00) (length 0x28958a00) +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/zfs/spa | vdev | metaslab | member ms_allocatable.rt_root | zfs_btree b/tests/integration/data/regression_output/dump.202303131823/zfs/spa | vdev | metaslab | member ms_allocatable.rt_root | zfs_btree index 8fff8b87..9f5d8b64 100644 --- a/tests/integration/data/regression_output/dump.202303131823/zfs/spa | vdev | metaslab | member ms_allocatable.rt_root | zfs_btree +++ b/tests/integration/data/regression_output/dump.202303131823/zfs/spa | vdev | metaslab | member ms_allocatable.rt_root | zfs_btree @@ -2294,3 +2294,5 @@ (void *)0xffff9ac5efbc6818 (void *)0xffff9ac5efbc6820 (void *)0xffff9ac5efbc6828 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/zfs/spa | vdev | pp b/tests/integration/data/regression_output/dump.202303131823/zfs/spa | vdev | pp index 65c671ce..69c4ce3c 100644 --- a/tests/integration/data/regression_output/dump.202303131823/zfs/spa | vdev | pp +++ b/tests/integration/data/regression_output/dump.202303131823/zfs/spa | vdev | pp @@ -7,3 +7,5 @@ 0xffff9ac5ac2ac000 HEALTHY NONE root 0xffff9ac55ced0000 HEALTHY NONE /dev/nvme1n1p1 0xffff9ac4b0574000 HEALTHY NONE /dev/nvme2n1p1 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/zfs/zfs_dbgmsg b/tests/integration/data/regression_output/dump.202303131823/zfs/zfs_dbgmsg index b70ec3b0..057a4ead 100644 --- a/tests/integration/data/regression_output/dump.202303131823/zfs/zfs_dbgmsg +++ b/tests/integration/data/regression_output/dump.202303131823/zfs/zfs_dbgmsg @@ -1502,3 +1502,5 @@ vdev_removal.c:1675:spa_vdev_remove_thread(): copying 5 segments for metaslab 10 vdev_object_store.c:783:agent_free_blocks_impl(): agent_free_blocks freed 1351 blocks vdev_object_store.c:1031:agent_end_txg(): agent_end_txg(249), 2 passes vdev_removal.c:1675:spa_vdev_remove_thread(): copying 155 segments for metaslab 11 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/zfs/zfs_dbgmsg | tail 5 | zfs_dbgmsg b/tests/integration/data/regression_output/dump.202303131823/zfs/zfs_dbgmsg | tail 5 | zfs_dbgmsg index d0d60891..f5930e41 100644 --- a/tests/integration/data/regression_output/dump.202303131823/zfs/zfs_dbgmsg | tail 5 | zfs_dbgmsg +++ b/tests/integration/data/regression_output/dump.202303131823/zfs/zfs_dbgmsg | tail 5 | zfs_dbgmsg @@ -3,3 +3,5 @@ vdev_removal.c:1675:spa_vdev_remove_thread(): copying 5 segments for metaslab 10 vdev_object_store.c:783:agent_free_blocks_impl(): agent_free_blocks freed 1351 blocks vdev_object_store.c:1031:agent_end_txg(): agent_end_txg(249), 2 passes vdev_removal.c:1675:spa_vdev_remove_thread(): copying 155 segments for metaslab 11 +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/zfs/zio b/tests/integration/data/regression_output/dump.202303131823/zfs/zio index 135e78b2..67f2bcbd 100644 --- a/tests/integration/data/regression_output/dump.202303131823/zfs/zio +++ b/tests/integration/data/regression_output/dump.202303131823/zfs/zio @@ -29,3 +29,5 @@ 0xffff9ac658ca1da0 NULL OPEN - - 0xffff9ac658ca3650 NULL OPEN - - 0xffff9ac65d8aa290 NULL CHECKSUM_VERIFY 0xffff9ac6085b9e80 - +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/data/regression_output/dump.202303131823/zfs/zio -r b/tests/integration/data/regression_output/dump.202303131823/zfs/zio -r index f70c30be..dbf9281a 100644 --- a/tests/integration/data/regression_output/dump.202303131823/zfs/zio -r +++ b/tests/integration/data/regression_output/dump.202303131823/zfs/zio -r @@ -1677,3 +1677,5 @@ 0xffff9ac65d8aa290 NULL CHECKSUM_VERIFY 0xffff9ac6085b9e80 - 0xffff9ac61baf4520 READ VDEV_IO_START - - 0xffff9ac5b4cd6ca0 READ VDEV_IO_START - 91ms +@#$ EXIT CODE $#@ +0 diff --git a/tests/integration/gen_regression_output.py b/tests/integration/gen_regression_output.py index dadef017..8817d390 100644 --- a/tests/integration/gen_regression_output.py +++ b/tests/integration/gen_regression_output.py @@ -18,16 +18,22 @@ # pylint: disable=missing-function-docstring import argparse +import cProfile -from tests.integration.infra import generate_known_regression_output +from tests.integration.infra import generate_regression_output def main() -> None: parser = argparse.ArgumentParser( description="Generate regression output for test-suite") - parser.add_argument('dump_name') + parser.add_argument('--profile', + action='store_true', + help='run with cProfile to identify bottlenecks') args = parser.parse_args() - generate_known_regression_output(args.dump_name) + if args.profile: + cProfile.run('generate_regression_output()') + else: + generate_regression_output() if __name__ == '__main__': diff --git a/tests/integration/infra.py b/tests/integration/infra.py index 98aa3408..39ff9f5e 100644 --- a/tests/integration/infra.py +++ b/tests/integration/infra.py @@ -24,7 +24,7 @@ from contextlib import redirect_stdout from importlib import import_module from pathlib import Path -from typing import Iterable, List, Optional +from typing import Any, Callable, List, Optional, Tuple import drgn import sdb @@ -33,236 +33,362 @@ THIS_DIR = os.path.dirname(os.path.realpath(__file__)) DATA_DIR = f"{THIS_DIR}/data" +DUMPS_DIR = f"{DATA_DIR}/dumps" TEST_OUTPUT_DIR = f"{DATA_DIR}/regression_output" # OS Crash Dump Related Path/Prefixes -CRASH_PREFIX = f"{DATA_DIR}/dump.*" -MODS_DIR = f"{DATA_DIR}/usr" -ALTERNATIVE_MODS_DIR = f"{DATA_DIR}/mods" -VMLINUX_PREFIX = f"{DATA_DIR}/vmlinux-*" +CRASH_PREFIX = f"{DUMPS_DIR}/dump.*" +MODS_DIR = "usr" +ALTERNATIVE_MODS_DIR = "mods" +VMLINUX_PREFIX = "vmlinux-*" # Userland Core Dump -UCORE_PREFIX = f"{DATA_DIR}/core.*" -LIBS_PATH = f"{DATA_DIR}/lib" -LIBS64_PATH = f"{DATA_DIR}/lib64" -LIBS_DEBUG_PATH = f"{DATA_DIR}/usr" -EXEC_DIR = f"{DATA_DIR}/bin" -ALTERNATIVE_EXEC_DIR = f"{DATA_DIR}/sbin" +UCORE_PREFIX = f"{DUMPS_DIR}/archive-core.*" +LIBS_PATH = "lib" +LIBS64_PATH = "lib64" +LIBS_DEBUG_PATH = "usr" +EXEC_DIR = "bin" +ALTERNATIVE_EXEC_DIR = "sbin" +EXPORT_DIR = "export" -def get_path_from_prefix(prefix: str) -> Optional[str]: +def get_all_dump_dir_paths() -> List[str]: """ - Helper for finding required files by dump type. + Returns all the discovered dump directories under the data/dumps folder. """ - res = glob.glob(prefix) - if len(res) == 1: - return res[0] - assert len(res) == 0 - return None + return get_crash_dump_dir_paths() + get_core_dump_dir_paths() -def get_crash_dump_path() -> Optional[str]: +def get_crash_dump_dir_paths() -> List[str]: """ - Get crash dump path as string if it exists. None otherwise. + Get crash dump directory paths as a list of strings if any exists. - Note: Besides returning the discovered path, this function is also used as + Note: Besides returning the discovered paths, this function is also used as a predicate by specific test modules from the test suite to see if they should be ran. """ - return get_path_from_prefix(CRASH_PREFIX) + return glob.glob(CRASH_PREFIX) -def get_vmlinux_path() -> Optional[str]: +def get_vmlinux_path(dump_dir_path: str) -> str: """ - Get vmlinux path as string if it exists. None otherwise. + Get vmlinux path as a string. """ - return get_path_from_prefix(VMLINUX_PREFIX) + paths = glob.glob(f"{dump_dir_path}/{VMLINUX_PREFIX}") + assert len(paths) == 1 + return paths[0] -def get_modules_dir() -> Optional[str]: +def get_modules_dir(dump_dir_path: str) -> str: """ - Get modules directory path as string if it exists. - None otherwise. + Get modules directory path as a string. """ - path = get_path_from_prefix(MODS_DIR) - if not path: - return get_path_from_prefix(ALTERNATIVE_MODS_DIR) - return path + paths = glob.glob(f"{dump_dir_path}/{MODS_DIR}") + if len(paths) == 1: + return paths[0] + assert len(paths) == 0 + + paths = glob.glob(f"{dump_dir_path}/{ALTERNATIVE_MODS_DIR}") + assert len(paths) == 1 + return paths[0] -def get_core_dump_path() -> Optional[str]: +def get_core_dump_dir_paths() -> List[str]: """ - Get core dump path as string if it exists. None otherwise. + Get core dump directory paths as list of strings if any exists. Note: Besides returning the discovered path, this function is also used as a predicate by specific test modules from the test suite to see if they should be ran. """ - return get_path_from_prefix(UCORE_PREFIX) + return glob.glob(UCORE_PREFIX) -def get_libs_path() -> Optional[str]: +def get_libs_path(dump_dir_path: str) -> Optional[str]: """ Get libraries path as string if it exists. None otherwise. """ - return get_path_from_prefix(LIBS_PATH) - - -def get_libs64_path() -> Optional[str]: - """ - Get 64-bit libraries path as string if it exists. None otherwise. - """ - return get_path_from_prefix(LIBS64_PATH) + paths = glob.glob(f"{dump_dir_path}/{LIBS_PATH}") + assert len(paths) < 2 + if len(paths) == 0: + return None + return paths[0] -def get_lib_debug_info_path() -> Optional[str]: +def get_libs64_path(dump_dir_path: str) -> Optional[str]: """ Get 64-bit libraries path as string if it exists. None otherwise. """ - return get_path_from_prefix(LIBS_DEBUG_PATH) + paths = glob.glob(f"{dump_dir_path}/{LIBS64_PATH}") + assert len(paths) < 2 + if len(paths) == 0: + return None + return paths[0] -def get_binary_dir() -> Optional[str]: +def get_lib_debug_info_path(dump_dir_path: str) -> Optional[str]: """ - Get executable binary directory path as string if it exists. - None otherwise. + Get /usr path with debug libraries as string if it exists. None otherwise. """ - path = get_path_from_prefix(EXEC_DIR) - if not path: - return get_path_from_prefix(ALTERNATIVE_EXEC_DIR) - return path + paths = glob.glob(f"{dump_dir_path}/{LIBS_DEBUG_PATH}") + assert len(paths) < 2 + if len(paths) == 0: + return None + return paths[0] -def setup_target() -> Optional[drgn.Program]: +def get_export_dir(dump_dir_path: str) -> Optional[str]: """ - Create a drgn.Program instance and setup the SDB context for all the - integration tests. If there is no OS crash or userland core to attach to - this is going to be an empty drgn.Program and integration tests will be - skipped (e.g. only unit tests will run). - """ - prog = drgn.Program() - - dump = get_crash_dump_path() - if dump: - prog.set_core_dump(dump) - assert get_vmlinux_path() - debug_info = ( - p - for p in [get_vmlinux_path(), get_modules_dir()] - if p is not None) - load_debug_info(prog, list(debug_info)) - return prog - - dump = get_core_dump_path() - if dump: - prog.set_core_dump(dump) - debug_info = (p for p in [ - get_binary_dir(), - get_libs_path(), - get_libs64_path(), - get_lib_debug_info_path() - ] if p is not None) - load_debug_info(prog, list(debug_info)) - - return prog - - -TEST_PROGRAM = setup_target() -TEST_REPL = REPL(TEST_PROGRAM, list(sdb.get_registered_commands().keys())) + Get /export path as string if it exists. None otherwise. - -def repl_invoke(cmd: str) -> int: - """ - Accepts a command/pipeline in string form and evaluates - it returning the exit code of the evaluation emulating - the SDB repl. + NOTE: This is more delphix-specific and it's there for anything that's + compiled and ran out of the home directory. """ - assert TEST_PROGRAM - sdb.target.set_prog(TEST_PROGRAM) - sdb.register_commands() - return TEST_REPL.eval_cmd(cmd) + paths = glob.glob(f"{dump_dir_path}/{EXPORT_DIR}") + assert len(paths) < 2 + if len(paths) == 0: + return None + return paths[0] -def sdb_invoke(objs: Iterable[drgn.Object], line: str) -> Iterable[drgn.Object]: +def get_binary_dir(dump_dir_path: str) -> Optional[str]: """ - Dispatch to sdb.invoke, but also drain the generator it returns, so - the tests can more easily access the returned objects. - - This method is preferred over repl_invoke() when the test wants to - do fancier checks by mocking a few objects that are later passed - down to the pipeline. Other scenarios include but are not limited - to testing that specific exceptions are thrown or analyzing internal - state of objects that is not part of the output in stdout. - """ - assert TEST_PROGRAM - sdb.target.set_prog(TEST_PROGRAM) - sdb.register_commands() - return list(sdb.invoke(objs, line)) - - -def slurp_output_file(dump_name: str, modname: str, cmd: str) -> str: - """ - Given a module name and a command, find the output file - and return all of its contents as a string. + Get executable binary directory path as string if it exists. + None otherwise. """ - # The pylint below is a false positive - # pylint: disable=unspecified-encoding - return Path(f"{TEST_OUTPUT_DIR}/{dump_name}/{modname}/{cmd}").read_text() + paths = glob.glob(f"{dump_dir_path}/{EXEC_DIR}") + if len(paths) == 1: + return paths[0] + assert len(paths) == 0 + paths = glob.glob(f"{dump_dir_path}/{ALTERNATIVE_EXEC_DIR}") + assert len(paths) < 2 + if len(paths) == 0: + return None + return paths[0] -def generate_output_for_commands(cmds: List[str], dirpath: str) -> None: - """ - Takes a list of SDB commands in string form, invokes them in the - context of the current crash dump/sdb.REPL, and stores their output - in the directory specified, each under a different file. - Note: Keep in mind that if the directory specified exists then - it will be removed together with all of its contents. +def setup_crash_dump_target(dump_dir_path: str, dump_path: str) -> drgn.Program: """ - assert TEST_PROGRAM - if os.path.exists(dirpath): - shutil.rmtree(dirpath) - os.makedirs(dirpath) - for cmd in cmds: - with open(f"{dirpath}/{cmd}", 'w', encoding="utf-8") as f: - with redirect_stdout(f): - repl_invoke(cmd) - - -def generate_output_for_test_module(dump_name: str, modname: str) -> None: - """ - Generates the regression output for all the commands of - a test module given module name. The assumption for this - to work automatically is that for the given modname "mod" - there exist a test module under test.integration named - test_mod_generic which has a list of commands in string - form called CMD_TABLE. + Create a drgn.Program instance and setup the SDB context for all the + integration tests from the given crash dump path. """ - test_mod = import_module(f"tests.integration.test_{modname}_generic") - generate_output_for_commands( - test_mod.CMD_TABLE, # type: ignore[attr-defined] - f"{TEST_OUTPUT_DIR}/{dump_name}/{modname}") - print(f"Generated regression test output for {modname}...") + prog = drgn.Program() + prog.set_core_dump(dump_path) + load_debug_info( + prog, [get_vmlinux_path(dump_dir_path), + get_modules_dir(dump_dir_path)], True, False) + return prog -def get_all_generic_test_modules() -> List[str]: +def setup_userland_core_target(dump_dir_path: str, + dump_path: str) -> drgn.Program: """ - Look at this current directory and capture all modules - with generic capsys tests whose filename follows the - 'test_{module name}_generic.py' convention. + Create a drgn.Program instance and setup the SDB context for all the + integration tests from the given userland core dump path. """ - modnames = [] - for filename in os.listdir(THIS_DIR): - m = re.search('test_(.+?)_generic.py', filename) - if m: - modnames.append(m.group(1)) - return modnames + prog = drgn.Program() + prog.set_core_dump(dump_path) + debug_info = (p for p in [ + get_lib_debug_info_path(dump_dir_path), + get_binary_dir(dump_dir_path), + get_export_dir(dump_dir_path), + get_libs_path(dump_dir_path), + get_libs64_path(dump_dir_path) + ] if p is not None) + load_debug_info(prog, list(debug_info), True, True) + return prog -def generate_known_regression_output(dump_name: str) -> None: - """ - Auto-generate the baseline regression output for all - the detected test modules in this directory. - """ - for modname in get_all_generic_test_modules(): - generate_output_for_test_module(dump_name, modname) +def removeprefix(text: str, prefix: str) -> str: + """ + NOTE: Until we no longer support Python 3.8 and older we'll use this. + """ + return text[text.startswith(prefix) and len(prefix):] + + +class RefDump: + """ + Represents a reference dump for which the test suite can run commands and + verify their output and exit code. + """ + + program: drgn.Program + repl: REPL + dump_name: str + + def __init__(self, dump_dir_path: str, + setup_func: Callable[[str, str], drgn.Program]) -> None: + """ + NOTE: This object assumes that the folder containg the reference dump has + the exact same name as the dump file itself. + """ + self.dump_dir_path = dump_dir_path + # pylint: disable=comparison-with-callable + if setup_func == setup_userland_core_target: + self.dump_name = removeprefix(os.path.basename(dump_dir_path), + "archive-") + self.is_userland = True + else: + self.dump_name = os.path.basename(dump_dir_path) + self.is_userland = False + self.dump_path = f"{self.dump_dir_path}/{self.dump_name}" + assert os.path.isfile(self.dump_path) + self.setup_func = setup_func + + def setup_target(self) -> None: + """ + Initialize all the SDB/Drgn context needed for the tests to use the + reference dump. + """ + self.program = self.setup_func(self.dump_dir_path, self.dump_path) + self.repl = REPL(self.program, + list(sdb.get_registered_commands().keys())) + + def repl_invoke(self, cmd: str) -> int: + """ + Invoke the supplied command from the SDB REPL. Returns exit code of + the command evaluation and will print any command results in stdout or + capsys (e.g. when ran by the test suite). + """ + assert self.program + assert self.repl + sdb.target.set_prog(self.program) + sdb.register_commands() + return self.repl.eval_cmd(cmd) + + def get_reference_data(self, modname: str, cmd: str) -> Tuple[str, int]: + """ + Given a module name and a command, find the output file and return a + tuple containg the expected output and exit code of the given command + for the supplied dump. + """ + contents = Path(f"{TEST_OUTPUT_DIR}/{self.dump_name}/{modname}/{cmd}" + ).read_text(encoding='utf-8').splitlines(True) + return ("".join(contents[:-2]), int(contents[-1].strip())) + + def verify_cmd_output_and_code(self, + capsys: Any, + mod: str, + cmd: str, + stripped: bool = False) -> None: + """ + Run supplied command and verify that its exit code and output match our + reference results. + """ + ref_output, ref_code = self.get_reference_data(mod, cmd) + + assert self.repl_invoke(cmd) == ref_code + captured = capsys.readouterr() + if not stripped: + assert captured.out == ref_output + else: + for i, n in enumerate(captured.out): + assert n.strip() == ref_output[i].strip() + assert len(captured.out) == len(ref_output) + + def generate_output_for_commands(self, cmds: List[str], + dirpath: str) -> None: + """ + Takes a list of SDB commands in string form, invokes them in the + context of the current sdb.REPL, and stores their output in the + directory specified, each under a different file. + + Note: Keep in mind that if the directory specified exists then + it will be removed together with all of its contents. + """ + if os.path.exists(dirpath): + shutil.rmtree(dirpath) + os.makedirs(dirpath) + for cmd in cmds: + with open(f"{dirpath}/{cmd}", 'w', encoding="utf-8") as f: + with redirect_stdout(f): + # + # All `print()` output in this block ends up in the file that + # we are writing due to `redirect_stdout()`. This includes + # whatever output is printed by `repl_invoke()`. + # + exit_code = self.repl_invoke(cmd) + print("@#$ EXIT CODE $#@") + print(f"{exit_code}") + + def generate_output_for_test_module(self, modname: str) -> None: + """ + Generates the regression output for all the commands of a test module + given module name. The assumption for this to work automatically is + that for the given modname "mod" there exist a test module under + test.integration named test_mod_generic which has a list of commands in + string form called CMD_TABLE. + """ + test_mod = import_module(f"tests.integration.test_{modname}_generic") + self.generate_output_for_commands( + test_mod.CMD_TABLE, # type: ignore[attr-defined] + f"{TEST_OUTPUT_DIR}/{self.dump_name}/{modname}") + print( + f"Generated regression test output for {self.dump_name}/{modname}..." + ) + + @staticmethod + def get_all_generic_test_modules() -> List[str]: + """ + Look at this current directory and capture all modules with generic + capsys tests whose filename follows the 'test_{module name}_generic.py' + convention. + """ + modnames = [] + for filename in os.listdir(THIS_DIR): + m = re.search('test_(.+?)_generic.py', filename) + if m: + modnames.append(m.group(1)) + return modnames + + def generate_known_regression_output(self) -> None: + """ + Iterate through all the test modules and generate reference output for + future regression test runs. + """ + for modname in self.get_all_generic_test_modules(): + if self.is_userland and modname.startswith("user_"): + self.generate_output_for_test_module(modname) + elif not self.is_userland and not modname.startswith("user_"): + self.generate_output_for_test_module(modname) + + +def get_all_reference_crash_dumps() -> List[RefDump]: + """ + Returns all discoverable kernel crash dumps as RefDump objects. + """ + rdumps = [] + for dump_dir_path in get_crash_dump_dir_paths(): + rdump = RefDump(dump_dir_path, setup_crash_dump_target) + rdump.setup_target() + rdumps.append(rdump) + return rdumps + + +def get_all_reference_core_dumps() -> List[RefDump]: + """ + Returns all discoverable userland core dumps as RefDump objects. + """ + rdumps = [] + for dump_dir_path in get_core_dump_dir_paths(): + rdump = RefDump(dump_dir_path, setup_userland_core_target) + rdump.setup_target() + rdumps.append(rdump) + return rdumps + + +def get_all_reference_dumps() -> List[RefDump]: + """ + Returns all discoverable RefDump objects (both kernel and userland dumps). + """ + return get_all_reference_crash_dumps() + get_all_reference_core_dumps() + + +def generate_regression_output() -> None: + """ + Auto-generate the baseline regression output for all the detected test + modules in this directory. + """ + for rdump in get_all_reference_dumps(): + rdump.generate_known_regression_output() diff --git a/tests/integration/test_core_generic.py b/tests/integration/test_core_generic.py index f034cf7a..9f439822 100644 --- a/tests/integration/test_core_generic.py +++ b/tests/integration/test_core_generic.py @@ -17,13 +17,10 @@ # pylint: disable=missing-module-docstring # pylint: disable=missing-function-docstring -import datetime -import re -from typing import Any, List, Tuple -import os.path +from typing import Any import pytest -from tests.integration.infra import repl_invoke, get_crash_dump_path, slurp_output_file +from tests.integration.infra import get_all_reference_crash_dumps, RefDump, get_crash_dump_dir_paths POS_CMDS_201912060006 = [ # array @@ -219,57 +216,13 @@ CMD_TABLE = POS_CMDS + NEG_CMDS + POS_CMDS_201912060006 -POS_CMDS_HISTORY = [('201912060006', POS_CMDS_201912060006)] - - -def crash_get_cmds() -> Tuple[List[str], List[str]]: - """ - Returns a tuple with the right list of commands to be tested - based on the crash dump's date. The first element of the tuple - is the list of commands we expect to succeed and the second - element the list we expect to fail. - """ - dump_path = get_crash_dump_path() - assert dump_path is not None - - dump_name = os.path.basename(dump_path) - m = re.match(r"dump.(\d+)", dump_name) - assert m is not None - - dt_str = m.group(1) - dt = datetime.datetime.strptime(dt_str, '%Y%m%d%H%M') - pos_cmds = POS_CMDS - neg_cmds = NEG_CMDS - for date_str, cmds in POS_CMDS_HISTORY: - date = datetime.datetime.strptime(date_str, '%Y%m%d%H%M') - if date < dt: - neg_cmds.extend(cmds) - else: - pos_cmds.extend(cmds) - return pos_cmds, neg_cmds - - -@pytest.mark.skipif( # type: ignore[misc] - not get_crash_dump_path(), - reason="couldn't find crash dump to run tests against") -@pytest.mark.parametrize('cmd', crash_get_cmds()[0]) # type: ignore[misc] -def test_cmd_output_and_error_code_0(capsys: Any, cmd: str) -> None: - assert repl_invoke(cmd) == 0 - captured = capsys.readouterr() - dump_path = get_crash_dump_path() - assert dump_path is not None - dump_name = os.path.basename(dump_path) - assert captured.out == slurp_output_file(dump_name, "core", cmd) - @pytest.mark.skipif( # type: ignore[misc] - not get_crash_dump_path(), - reason="couldn't find crash dump to run tests against") -@pytest.mark.parametrize('cmd', crash_get_cmds()[1]) # type: ignore[misc] -def test_cmd_output_and_error_code_1(capsys: Any, cmd: str) -> None: - assert repl_invoke(cmd) == 1 - captured = capsys.readouterr() - dump_path = get_crash_dump_path() - assert dump_path is not None - dump_name = os.path.basename(dump_path) - assert captured.out == slurp_output_file(dump_name, "core", cmd) + len(get_crash_dump_dir_paths()) == 0, + reason="couldn't find any crash/core dumps to run tests against") +@pytest.mark.parametrize('rdump', + get_all_reference_crash_dumps()) # type: ignore[misc] +@pytest.mark.parametrize('cmd', CMD_TABLE) # type: ignore[misc] +def test_cmd_output_and_error_code(capsys: Any, rdump: RefDump, + cmd: str) -> None: + rdump.verify_cmd_output_and_code(capsys, "core", cmd) diff --git a/tests/integration/test_linux_generic.py b/tests/integration/test_linux_generic.py index 98fdb625..3468e312 100644 --- a/tests/integration/test_linux_generic.py +++ b/tests/integration/test_linux_generic.py @@ -18,13 +18,10 @@ # pylint: disable=missing-function-docstring # pylint: disable=line-too-long -import datetime -import re -from typing import Any, List, Tuple -import os.path +from typing import Any, List import pytest -from tests.integration.infra import repl_invoke, get_crash_dump_path, slurp_output_file +from tests.integration.infra import get_all_reference_crash_dumps, get_crash_dump_dir_paths, RefDump POS_CMDS_201912060006 = [ # stacks @@ -170,73 +167,28 @@ CMD_TABLE = POS_CMDS + STRIPPED_POS_CMDS + NEG_CMDS + POS_CMDS_201912060006 -POS_CMDS_HISTORY = [('201912060006', POS_CMDS_201912060006)] - -def crash_get_cmds() -> Tuple[List[str], List[str]]: - """ - Returns a tuple with the right list of commands to be tested - based on the crash dump's date. The first element of the tuple - is the list of commands we expect to succeed and the second - element the list we expect to fail. - """ - dump_path = get_crash_dump_path() - assert dump_path is not None - - dump_name = os.path.basename(dump_path) - m = re.match(r"dump.(\d+)", dump_name) - assert m is not None - - dt_str = m.group(1) - dt = datetime.datetime.strptime(dt_str, '%Y%m%d%H%M') - pos_cmds = POS_CMDS - neg_cmds = NEG_CMDS - for date_str, cmds in POS_CMDS_HISTORY: - date = datetime.datetime.strptime(date_str, '%Y%m%d%H%M') - if date < dt: - neg_cmds.extend(cmds) - else: - pos_cmds.extend(cmds) - return pos_cmds, neg_cmds - - -@pytest.mark.skipif( # type: ignore[misc] - not get_crash_dump_path(), - reason="couldn't find crash dump to run tests against") -@pytest.mark.parametrize('cmd', crash_get_cmds()[0]) # type: ignore[misc] -def test_cmd_output_and_error_code_0(capsys: Any, cmd: str) -> None: - assert repl_invoke(cmd) == 0 - captured = capsys.readouterr() - dump_path = get_crash_dump_path() - assert dump_path is not None - dump_name = os.path.basename(dump_path) - assert captured.out == slurp_output_file(dump_name, "linux", cmd) +def non_stripped_cmds() -> List[str]: + return POS_CMDS + NEG_CMDS + POS_CMDS_201912060006 @pytest.mark.skipif( # type: ignore[misc] - not get_crash_dump_path(), - reason="couldn't find crash dump to run tests against") -@pytest.mark.parametrize('cmd', crash_get_cmds()[1]) # type: ignore[misc] -def test_cmd_output_and_error_code_1(capsys: Any, cmd: str) -> None: - assert repl_invoke(cmd) == 1 - captured = capsys.readouterr() - dump_path = get_crash_dump_path() - assert dump_path is not None - dump_name = os.path.basename(dump_path) - assert captured.out == slurp_output_file(dump_name, "linux", cmd) + len(get_crash_dump_dir_paths()) == 0, + reason="couldn't find any crash dumps to run tests against") +@pytest.mark.parametrize('rdump', + get_all_reference_crash_dumps()) # type: ignore[misc] +@pytest.mark.parametrize('cmd', non_stripped_cmds()) # type: ignore[misc] +def test_cmd_output_and_error_code(capsys: Any, rdump: RefDump, + cmd: str) -> None: + rdump.verify_cmd_output_and_code(capsys, "linux", cmd) @pytest.mark.skipif( # type: ignore[misc] - not get_crash_dump_path(), - reason="couldn't find crash dump to run tests against") + len(get_crash_dump_dir_paths()) == 0, + reason="couldn't find any crash dumps to run tests against") +@pytest.mark.parametrize('rdump', + get_all_reference_crash_dumps()) # type: ignore[misc] @pytest.mark.parametrize('cmd', STRIPPED_POS_CMDS) # type: ignore[misc] -def test_cmd_stripped_output_and_error_code_0(capsys: Any, cmd: str) -> None: - assert repl_invoke(cmd) == 0 - captured = capsys.readouterr() - dump_path = get_crash_dump_path() - assert dump_path is not None - dump_name = os.path.basename(dump_path) - slurped = slurp_output_file(dump_name, "linux", cmd) - for i, n in enumerate(captured.out): - assert n.strip() == slurped[i].strip() - assert len(captured.out) == len(slurped) +def test_cmd_stripped_output_and_error_code_0(capsys: Any, rdump: RefDump, + cmd: str) -> None: + rdump.verify_cmd_output_and_code(capsys, "linux", cmd, True) diff --git a/tests/integration/test_spl_generic.py b/tests/integration/test_spl_generic.py index 25169c22..31da1d9b 100644 --- a/tests/integration/test_spl_generic.py +++ b/tests/integration/test_spl_generic.py @@ -18,13 +18,10 @@ # pylint: disable=missing-function-docstring # pylint: disable=line-too-long -import datetime -import re -from typing import Any, List, Tuple -import os.path +from typing import Any, List import pytest -from tests.integration.infra import repl_invoke, get_crash_dump_path, slurp_output_file +from tests.integration.infra import get_crash_dump_dir_paths, get_all_reference_crash_dumps, RefDump POS_CMDS_201912060006 = [ # multilist walker @@ -68,57 +65,13 @@ CMD_TABLE = POS_CMDS + NEG_CMDS + POS_CMDS_201912060006 -POS_CMDS_HISTORY = [('201912060006', POS_CMDS_201912060006)] - - -def crash_get_cmds() -> Tuple[List[str], List[str]]: - """ - Returns a tuple with the right list of commands to be tested - based on the crash dump's date. The first element of the tuple - is the list of commands we expect to succeed and the second - element the list we expect to fail. - """ - dump_path = get_crash_dump_path() - assert dump_path is not None - - dump_name = os.path.basename(dump_path) - m = re.match(r"dump.(\d+)", dump_name) - assert m is not None - - dt_str = m.group(1) - dt = datetime.datetime.strptime(dt_str, '%Y%m%d%H%M') - pos_cmds = POS_CMDS - neg_cmds = NEG_CMDS - for date_str, cmds in POS_CMDS_HISTORY: - date = datetime.datetime.strptime(date_str, '%Y%m%d%H%M') - if date < dt: - neg_cmds.extend(cmds) - else: - pos_cmds.extend(cmds) - return pos_cmds, neg_cmds - - -@pytest.mark.skipif( # type: ignore[misc] - not get_crash_dump_path(), - reason="couldn't find crash dump to run tests against") -@pytest.mark.parametrize('cmd', crash_get_cmds()[0]) # type: ignore[misc] -def test_cmd_output_and_error_code_0(capsys: Any, cmd: str) -> None: - assert repl_invoke(cmd) == 0 - captured = capsys.readouterr() - dump_path = get_crash_dump_path() - assert dump_path is not None - dump_name = os.path.basename(dump_path) - assert captured.out == slurp_output_file(dump_name, "spl", cmd) - @pytest.mark.skipif( # type: ignore[misc] - not get_crash_dump_path(), - reason="couldn't find crash dump to run tests against") -@pytest.mark.parametrize('cmd', crash_get_cmds()[1]) # type: ignore[misc] -def test_cmd_output_and_error_code_1(capsys: Any, cmd: str) -> None: - assert repl_invoke(cmd) == 1 - captured = capsys.readouterr() - dump_path = get_crash_dump_path() - assert dump_path is not None - dump_name = os.path.basename(dump_path) - assert captured.out == slurp_output_file(dump_name, "spl", cmd) + len(get_crash_dump_dir_paths()) == 0, + reason="couldn't find any crash/core dump to run tests against") +@pytest.mark.parametrize('rdump', + get_all_reference_crash_dumps()) # type: ignore[misc] +@pytest.mark.parametrize('cmd', CMD_TABLE) # type: ignore[misc] +def test_cmd_output_and_error_code(capsys: Any, rdump: RefDump, + cmd: str) -> None: + rdump.verify_cmd_output_and_code(capsys, "spl", cmd) diff --git a/tests/integration/test_zfs_generic.py b/tests/integration/test_zfs_generic.py index b5be0dcd..c51daf4a 100644 --- a/tests/integration/test_zfs_generic.py +++ b/tests/integration/test_zfs_generic.py @@ -19,10 +19,9 @@ # pylint: disable=line-too-long from typing import Any -import os.path import pytest -from tests.integration.infra import repl_invoke, get_crash_dump_path, slurp_output_file +from tests.integration.infra import get_crash_dump_dir_paths, get_all_reference_crash_dumps, RefDump CMD_TABLE = [ @@ -74,13 +73,11 @@ @pytest.mark.skipif( # type: ignore[misc] - not get_crash_dump_path(), - reason="couldn't find crash dump to run tests against") + len(get_crash_dump_dir_paths()) == 0, + reason="couldn't find any crash/core dumps to run tests against") +@pytest.mark.parametrize('rdump', + get_all_reference_crash_dumps()) # type: ignore[misc] @pytest.mark.parametrize('cmd', CMD_TABLE) # type: ignore[misc] -def test_cmd_output_and_error_code(capsys: Any, cmd: str) -> None: - assert repl_invoke(cmd) == 0 - captured = capsys.readouterr() - dump_path = get_crash_dump_path() - assert dump_path is not None - dump_name = os.path.basename(dump_path) - assert captured.out == slurp_output_file(dump_name, "zfs", cmd) +def test_cmd_output_and_error_code(capsys: Any, rdump: RefDump, + cmd: str) -> None: + rdump.verify_cmd_output_and_code(capsys, "zfs", cmd)