Open ikozhukhov opened 1 year ago
we can see degradation/panic with commit https://github.com/openzfs/zfs/commit/e8cf3a4f7662f2d1c13684ce52b73ab0d9a12266
we have ZTS VM under vmware with nvme emulated drives.
try to run list of zfs_receive tests we can see: ZTS run /opt/zfs-tests/tests/functional/cli_root/zfs_receive/zfs_receive_corrective
panic[cpu0]/thread=fffffe0010659c20: assertion failed: BP_IS_EMBEDDED(bp) || MIN(zp->zp_copies + BP_IS_GANG(bp), spa_max_replication(spa)) == BP_GET_NDVAS(bp), file: ../../common/fs/zfs/zio.c, line: 1712 fffffe0010659980 fffffffffbdcbe05 () fffffe0010659a00 zfs:zio_write_compress+d51 () fffffe0010659a40 zfs:zio_execute+116 () fffffe0010659b00 genunix:taskq_thread+30f () fffffe0010659b10 unix:thread_start+b ()
Welcome to kmdb kmdb: unable to determine terminal type: assuming `vt100' Loaded modules: [ scsi_vhci crypto mac cpc uppc mr_sas neti sd ptm ufs unix mpt zfs krtld ipc sata apix uhci pmcs hook genunix idm ip logindmux usba xhci specfs pcplusmp nfs random mm cpu.generic arp mpt_sas emlxs sockfs ] [0]> $C fffffffffbca03f0 kmdb_enter+0xb() fffffffffbca0420 debug_enter+0x53(fffffffffb973830) fffffffffbca0510 panicsys+0x55b(fffffffffbf1fc58, fffffe00106598d8, fffffffffbca0520, 1) fffffe00106598c0 vpanic+0x15c() fffffe0010659930 0xfffffffffb8bd6a1() fffffe0010659980 0xfffffffffbdcbe05() fffffe0010659a00 zfs`zio_write_compress+0xd51(fffffe147a29e2b0) fffffe0010659a40 zfs`zio_execute+0x116(fffffe147a29e2b0) fffffe0010659b00 taskq_thread+0x30f(fffffe0c13b4c040) fffffe0010659b10 thread_start+0xb() [0]> fffffe147a29e2b0::print zio_t { io_bookmark = { zb_objset = 0x132 zb_object = 0 zb_level = 0xffffffffffffffff zb_blkid = 0 } io_prop = { zp_checksum = 7 (ZIO_CHECKSUM_FLETCHER_4) zp_compress = 4 (ZIO_COMPRESS_EMPTY) zp_complevel = 0 zp_type = 0t11 (DMU_OT_OBJSET) zp_level = 0 zp_copies = 0x2 zp_dedup = 0 (0) zp_dedup_verify = 0 (0) zp_nopwrite = 0 (0) zp_encrypt = 0x1 (B_TRUE) zp_byteorder = 0x1 (B_TRUE) zp_salt = [ 0, 0, 0, 0, 0, 0, 0, 0 ] zp_iv = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ] zp_mac = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ] zp_zpl_smallblk = 0 } io_type = 2 (ZIO_TYPE_WRITE) io_child_type = 3 (ZIO_CHILD_LOGICAL) io_trim_flags = 0 (0) io_cmd = 0 io_priority = 3 (ZIO_PRIORITY_ASYNC_WRITE) io_reexecute = 0 io_state = [ 0, 0 ] io_txg = 0xa0 io_spa = 0xfffffe22e4870000 io_bp = 0xfffffe0bf2556900 io_bp_override = 0 io_bp_copy = { blk_dva = [ { dva_word = [ 0x9, 0x8000000000300119 ] }, { dva_word = [ 0x9, 0x8000000000400119 ] }, { dva_word = [ 0, 0 ] }, ] blk_prop = 0xa00b070200070007 blk_pad = [ 0, 0 ] blk_phys_birth = 0 blk_birth = 0xa0 blk_fill = 0x8 blk_cksum = { zc_word = [ 0x939053322, 0x213a1314ce55, 0x3c4bd6a077fb2b, 0x4977bcb1ce3640bc ] } } io_parent_list = { list_size = 0x30 list_offset = 0x10 list_head = { list_next = 0xfffffe12de6c2388 list_prev = 0xfffffe12de6c2388 } } io_child_list = { list_size = 0x30 list_offset = 0x20 list_head = { list_next = 0xfffffe139d2bc7f8 list_prev = 0xfffffe142a19eda8 } } io_logical = 0xfffffe147a29e2b0 io_transform_stack = 0 io_ready = zfs`arc_write_ready io_children_ready = 0 io_physdone = zfs`arc_write_physdone io_done = zfs`arc_write_done io_private = 0xfffffe0bf0a23d28 io_prev_space_delta = 0 io_bp_orig = { blk_dva = [ { dva_word = [ 0x9, 0x8000000000300119 ] }, { dva_word = [ 0x9, 0x8000000000400119 ] }, { dva_word = [ 0, 0 ] }, ] blk_prop = 0xa00b070200070007 blk_pad = [ 0, 0 ] blk_phys_birth = 0 blk_birth = 0xa0 blk_fill = 0x8 blk_cksum = { zc_word = [ 0x939053322, 0x213a1314ce55, 0x3c4bd6a077fb2b, 0x4977bcb1ce3640bc ] } } io_lsize = 0x1000 io_abd = 0xfffffe13ca6b9100 io_orig_abd = 0xfffffe13ca6b9100 io_size = 0x1000 io_orig_size = 0x1000 io_vd = 0 io_vsd = 0 io_vsd_ops = 0 io_metaslab_class = 0 io_offset = 0 io_timestamp = 0 io_queued_timestamp = 0x39be4021041 io_target_timestamp = 0 io_dispatched = 0 io_delta = 0 io_delay = 0 io_queue_node = { avl_child = [ 0, 0 ] avl_pcb = 0 } io_offset_node = { avl_child = [ 0, 0 ] avl_pcb = 0 } io_alloc_node = { avl_child = [ 0, 0 ] avl_pcb = 0 } io_alloc_list = { zal_list = { list_size = 0x48 list_offset = 0 list_head = { list_next = 0xfffffe147a29e5b0 list_prev = 0xfffffe147a29e5b0 } } zal_size = 0 } io_flags = 0 io_stage = 0x20 (ZIO_STAGE_WRITE_COMPRESS) io_pipeline = 0x179e0f4 (ZIO_STAGE_{WRITE_BP_INIT|ISSUE_ASYNC|WRITE_COMPRESS|ENCRYPT|CHECKSUM_GENERATE|GANG_ASSEMBLE|GANG_ISSUE|DVA_THROTTLE|DVA_ALLOCATE|READY|VDEV_IO_START|VDEV_IO_DONE|VDEV_IO_ASSESS|DONE}) io_orig_flags = 0 io_orig_stage = 0x1 (ZIO_STAGE_OPEN) io_orig_pipeline = 0x179e0f4 (ZIO_STAGE_{WRITE_BP_INIT|ISSUE_ASYNC|WRITE_COMPRESS|ENCRYPT|CHECKSUM_GENERATE|GANG_ASSEMBLE|GANG_ISSUE|DVA_THROTTLE|DVA_ALLOCATE|READY|VDEV_IO_START|VDEV_IO_DONE|VDEV_IO_ASSESS|DONE}) io_pipeline_trace = 0x35 (ZIO_STAGE_{OPEN|WRITE_BP_INIT|ISSUE_ASYNC|WRITE_COMPRESS}) io_error = 0 io_child_error = [ 0, 0, 0, 0 ] io_children = [ [ 0, 0 ] [ 0, 0 ] [ 0, 0 ] [ 0, 0x3 ] ] io_child_count = 0x3 io_phys_children = 0 io_parent_count = 0x1 io_stall = 0 io_gang_leader = 0 io_gang_tree = 0 io_executor = 0xfffffe0010659c20 io_waiter = 0 io_lock = { _opaque = [ 0 ] } io_cv = { _opaque = 0 } io_allocator = 0 io_cksum_report = 0 io_ena = 0 io_zoneid = 0 io_tqent = { tqent_next = 0 tqent_prev = 0 tqent_func = zfs`zio_execute tqent_arg = 0xfffffe147a29e2b0 tqent_id = 0 tqent_un = { tqent_bucket = 1 tqent_flags = 0x1 } tqent_thread = 0 tqent_cv = { _opaque = 0 } tqent_cv_done = { _opaque = 0 } } } [0]> ::status debugging live kernel (64-bit) on zfs-t3 operating system: 5.11 2.0.3.8-20221224-1-0+int2-ozfs (i86pc) image uuid: f5ec46f7-fcc9-4441-ad59-8a8eb637fe99 DTrace state: inactive stopped on: debugger entry trap
@behlendorf @ahrens
we can see panic only with NVME emulated drives under vmware guests. we have no panic with SAS or SATA emulated drives
System information
Describe the problem you're observing
we can see degradation/panic with commit https://github.com/openzfs/zfs/commit/e8cf3a4f7662f2d1c13684ce52b73ab0d9a12266
Describe how to reproduce the problem
we have ZTS VM under vmware with nvme emulated drives.
try to run list of zfs_receive tests we can see: ZTS run /opt/zfs-tests/tests/functional/cli_root/zfs_receive/zfs_receive_corrective
Include any warning/errors/backtraces from the system logs