On Sunday 08 April 2007 20:20, Dag-Erling Smørgrav wrote: > Max Laier <max_at_love2party.net> writes: > > The attached diff lets me survive the dump/restore. Not sure if > > this is the right fix, but seems like the union messes with mutex > > initialization. > > You need to track down where memory for the mutex (or rather zap) was > actually allocated, and stick the memset there. I suspect it > originates on the stack somewhere. Well, I assume it is zeroed already, but on the way the other union members are used which messes up the storage for the mutex. At least looking at the contents gives me that impression: > $2 = {zap_objset = 0xffffff0001406410, zap_object = 12660, zap_dbuf = > 0xffffff005ce892d0, zap_rwlock = {lock_object = { lo_name = > 0xffffffff8081b416 "zfs:&zap->zap_rwlock", lo_type = 0xffffffff8081b416 > "zfs:&zap->zap_rwlock", lo_flags = 41615360, lo_witness_data = { > lod_list = {stqe_next = 0x0}, lod_witness = 0x0}}, sx_lock = > 18446742974215086080, sx_recurse = 0}, zap_ismicro = 0, zap_salt = > 965910969, zap_u = {zap_fat = {zap_phys = 0xffffffff81670000, > zap_num_entries_mtx = {lock_object = {lo_name = 0x70000 <Address > 0x70000 out of bounds>, lo_type = 0x0, lo_flags = 2155822976, > lo_witness_data = {lod_list = {stqe_next = 0x0}, lod_witness = 0x0}}, > sx_lock = 1, sx_recurse = 0}, zap_block_shift = 0}, zap_micro = > {zap_phys = 0xffffffff81670000, zap_num_entries = 0, zap_num_chunks = > 7, zap_alloc_next = 0, zap_avl = { avl_root = 0x0, avl_compar = > 0xffffffff807f3f80 <mze_compare>, avl_offset = 0, avl_numnodes = 1, > avl_size = 0}}}} -- /"\ Best regards, | mlaier_at_freebsd.org \ / Max Laier | ICQ #67774661 X http://pf4freebsd.love2party.net/ | mlaier_at_EFnet / \ ASCII Ribbon Campaign | Against HTML Mail and News
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:08 UTC