so, anyone have any ideas? I'm obviously hitting a bug here. I'm happy to help anyone solve this, I DESPERATELY need this data. I can post dtrace results if you send them to me. I wish I could solve this myself, but I'm not a C progammer, I don't know how to program filesystems, much less an advanced filesystem as ZFS.
Also, this is not a weird configuration, or alpha software, or a hack I'm making. This is a "production" server with proven software, on which I executed a regular maintenance operation, just a clone destroy, which should take just a few seconds, and I found so many wrong things: * a clone destroy takes more than a few seconds or minutes * to destroy the clone it tries to read, apparently, through the whole dataset * while reading through the whole dataset, it does so at 1MB/s (dataset size is 450GB without snapshots) * it loads these reads to the ARC, filling it up and freezing the machine * the ARC doesn't work in this case as all reads have 100% miss ratio * it doesn't respect the ARC maximum size. * after a reboot, it won't work on the background. it will keep the pool locked preventing mounts * disabling the ZIL doesn't prevent zpool from trying to complete the destroy this is very very wrong. I don't know anything about dtrace. I wrote this, I don't really know if this is correct. I hope it's of use to someone. #!/usr/sbin/dtrace -s fbt:zfs:: { @count_table[probefunc]=count(); } tick-300s {exit(0);} The output for the 5 minute run: dnode_buf_pageout 6 zfs_sync 12 dmu_zfetch_rele 18 dnode_destroy 18 bplist_close 78 bplist_open 78 bplist_sync 78 dbuf_hold 78 dmu_buf_get_user 78 dmu_object_info 78 dmu_object_info_from_dnode 78 dmu_zfetch 78 dmu_zfetch_find 78 dnode_hold 78 dnode_hold_impl 78 dsl_pool_sync 78 dsl_pool_zil_clean 78 spa_async_dispatch 78 spa_errlog_sync 78 spa_scrub_resume 78 spa_scrub_suspend 78 spa_sync 78 spa_sync_config_object 78 txg_quiesce 78 uberblock_update 78 vdev_config_sync 78 dmu_tx_commit 156 dmu_tx_create_assigned 156 dmu_tx_create_dd 156 spa_sync_aux_dev 156 txg_list_empty 234 arc_do_user_evicts 368 txg_list_remove 390 txg_thread_wait 390 add_reference 486 arc_buf_add_ref 486 spa_config_enter 566 spa_config_exit 566 zio_null 566 zio_root 566 zio_wait 566 vdev_queue_agg_io_done 1954 dbuf_hold_level 62208 dmu_tx_check_ioerr 62208 dnode_next_offset 62208 dnode_next_offset_level 62208 dbuf_whichblock 62286 dbuf_do_evict 62436 dbuf_hash_remove 62436 dbuf_clear 62440 dbuf_destroy 62440 dbuf_evict 62440 dbuf_evict_user 62440 arc_space_return 62462 arc_cksum_compute 62510 arc_read_done 62510 arc_set_callback 62510 dbuf_read_done 62510 dbuf_set_data 62510 fletcher_4_native 62510 lzjb_decompress 62510 vdev_mirror_child_done 62510 vdev_mirror_io_done 62510 vdev_mirror_map_free 62510 vdev_raidz_io_done 62510 vdev_raidz_map_free 62510 zio_checksum_error 62510 zio_checksum_verified 62510 zio_decompress_data 62510 zio_read_decompress 62510 dnode_rele 62514 arc_buf_destroy 62694 arc_cksum_verify 62694 arc_evict 62694 arc_adapt 62696 arc_buf_alloc 62696 arc_evict_needed 62696 arc_get_data_buf 62696 arc_read 62696 buf_hash_insert 62696 dbuf_create 62696 dbuf_findbp 62696 dbuf_hash_insert 62696 dbuf_read_impl 62696 hdr_cons 62696 spa_get_failmode 62696 vdev_mirror_child_select 62696 vdev_mirror_io_start 62696 vdev_mirror_map_alloc 62696 vdev_raidz_io_start 62696 vdev_raidz_map_alloc 62696 zio_read 62696 zio_read_init 62696 arc_space_consume 62698 spa_get_random 62774 arc_access 62996 arc_buf_freeze 63002 arc_buf_remove_ref 63002 remove_reference 63002 arc_reclaim_needed 63080 zio_ready 63262 zio_wait_for_children_ready 63262 arc_change_state 125204 buf_hash_find 125206 vdev_lookup_top 125392 dbuf_add_ref 125470 arc_released 125512 vdev_cache_fill 153525 vdev_cache_evict 154090 zio_vdev_io_reissue 155192 vdev_disk_io_intr 163696 zio_interrupt 163696 vdev_disk_io_done 163708 vdev_queue_io_done 163708 vdev_error_inject 163924 vdev_queue_io_remove 166100 vdev_cache_allocate 166298 vdev_queue_io_add 166434 vdev_cache_hit 175179 zio_vdev_io_bypass 179874 dbuf_find 187190 dbuf_hold_impl 187190 dbuf_read 187190 vdev_raidz_child_done 187536 dbuf_update_data 249700 zio_buf_free 281068 zio_buf_alloc 281438 zio_vdev_io_done 288728 dbuf_rele 312214 dbuf_hash 312322 vdev_dtl_contains 313480 buf_hash 314084 vdev_queue_io 323580 vdev_stat_update 405526 zio_vdev_child_io 406828 vdev_readable 414708 vdev_queue_io_to_issue 437894 zio_should_retry 468036 zio_vdev_io_assess 468036 zio_done 468601 zio_assess 468602 zio_clear_transform_stack 468602 zio_nowait 469524 zio_create 470090 vdev_is_dead 477404 vdev_cache_read 499324 vdev_disk_io_start 499324 zio_notify_parent 530730 zio_pop_transform 531112 zio_push_transform 532786 zio_wait_for_children_done 593994 spa_state 624716 zio_vdev_io_start 624716 zio_wait_for_children 657256 vdev_queue_deadline_compare 906304 zio_execute 1247615 vdev_queue_offset_compare 1694848 vdev_cache_lastused_compare 2472113 vdev_cache_offset_compare 3076216 This message posted from opensolaris.org _______________________________________________ zfs-discuss mailing list zfs-discuss@opensolaris.org http://mail.opensolaris.org/mailman/listinfo/zfs-discuss