On Sep 25, 2014, at 5:15 AM, Venci Vatashki <vvatas...@gmail.com> wrote:
> Hello, > I'm debugging a Faulted raidz1 on zfs-fuse.This is dev pool, created from > loop devices and files. The way I broke is first to degrade pool by removing > a device from it. After that do some transactions. ie copy file. > Stop zfs and reattach the removed device and remove another one. What did you expect to happen? -- richard > After restart this is what i get: > pool: tank > state: FAULTED > status: One or more devices could not be used because the label is missing > or invalid. There are insufficient replicas for the pool to continue > functioning. > action: Destroy and re-create the pool from > a backup source. > see: http://www..sun.com/msg/ZFS-8000-5E > scrub: none requested > config: > > NAME STATE READ WRITE CKSUM > tank FAULTED 0 0 0 corrupted data > raidz1-0 ONLINE 0 0 0 > loop1 ONLINE 0 0 0 > loop2 UNAVAIL 0 0 0 corrupted data > loop3 ONLINE 0 0 0 > > Question is since raidz1-0 is in ONLINE state, should be able to restore > data? > There should be enough copies from raid to continue fuctioning. > I'm interested in opening pool in some emergency mode to be able to see what > is recoverable. > The code that fails is zap_lookup in dsl_pool_open > err = zap_lookup(dp->dp_meta_objset, DMU_POOL_DIRECTORY_OBJECT, > DMU_POOL_ROOT_DATASET, sizeof (uint64_t), 1, > &dp->dp_root_dir_obj); > returns EIO(5) > Thanks for any ideas. Currently I'm thinking to locate a older uberblock and > try with it. > I'm thinking that should work as a snapshot. Am I right? > Another option would be to play with txg parameter in dsl_pool_open > > > Stack trace: > > dbuf_hold_impl(dn = 0x7ffff7e8c9f0, level = 0 \000, blkid = 0, fail_sparse = > 0, tag = 0x510a30 <__func__.12754>, dbp = 0x7fffef1a07b0) > dbuf_hold(dn = 0x7ffff7e8c9f0, blkid = 0, tag = 0x510a30 <__func__.12754>) > dnode_hold_impl(os = 0x7ffff7f81c40, object = 1, flag = 1, tag = 0x50d8ba > <__func__.13943>, dnp = 0x7fffef1a0950) > dnode_hold(os = 0x7ffff7f81c40, object = 1, tag = 0x50d8ba <__func__.13943>, > dnp = 0x7fffef1a0950) > dmu_buf_hold(os = 0x7ffff7f81c40, object = 1, offset = 0, tag = 0x0, dbp = > 0x7fffef1a0a10) > zap_lockdir(os = 0x7ffff7f81c40, obj = 1, tx = 0x0, lti = 0, fatreader = > B_TRUE, adding = B_FALSE, zapp = 0x7fffef1a0ab0) > zap_lookup_norm(os = 0x7ffff7f81c40, zapobj = 1, name = 0x514393 > "root_dataset", integer_size = 8, num_integers = 1, buf = 0x7ffff7f83968, mt > = MT_EXACT, realname = 0x0, rn_len = 0, ncp = 0x0) > zap_lookup(os = 0x7ffff7f81c40, zapobj = 1, name = 0x514393 "root_dataset", > integer_size = 8, num_integers = 1, buf = 0x7ffff7f83968) > dsl_pool_open(spa = 0x7ffff7f9a000, txg = 128, dpp = 0x7ffff7f9a210) > spa_load_impl(spa = 0x7ffff7f9a000, pool_guid = 9993829304951742789, config = > 0x7ffff7fc0f40, state = SPA_LOAD_OPEN, type = SPA_IMPORT_EXISTING, mosconfig > = B_FALSE, ereport = 0x7fffef1a0ca8) > spa_load(spa = 0x7ffff7f9a000, state = SPA_LOAD_OPEN, type = > SPA_IMPORT_EXISTING, mosconfig = B_FALSE) > spa_load_best(spa = 0x7ffff7f9a000, state = SPA_LOAD_OPEN, mosconfig = 0, > max_request = 18446744073709551615, rewind_flags = 1) > spa_open_common(pool = 0x7ffff7ea7000 "tank", spapp = 0x7fffef1a0dd0, tag = > 0x51a5a6 <__func__.14627>, nvpolicy = 0x0, config = 0x7fffef1a0e00) > spa_get_stats(name = 0x7ffff7ea7000 "tank", config = 0x7fffef1a0e00, altroot > = 0x7ffff7ea8000 "", buflen = 8192) > zfs_ioc_pool_stats(zc = 0x7ffff7ea7000) > zfsdev_ioctl(dev = 0, cmd = 23045, arg = 140733420915696, flag = 0, cr = > 0x7fffef1a0e90, rvalp = 0x0) > handle_connection(sock = 8) > zfsfuse_ioctl_queue_worker_thread(init = 0x79ddc0 <ioctl_queue>) > start_thread(arg = 0x7fffef1a1700) > clone() > _______________________________________________ > developer mailing list > developer@open-zfs.org > http://lists.open-zfs.org/mailman/listinfo/developer
_______________________________________________ developer mailing list developer@open-zfs.org http://lists.open-zfs.org/mailman/listinfo/developer