problem booting to multi-vdev root pool
Andrei Lavreniyuk
andy.lavr at gmail.com
Wed Nov 21 07:51:25 UTC 2012
2012/11/20 Andriy Gapon <avg at freebsd.org>:
> on 20/11/2012 17:06 Andriy Gapon said the following:
>> on 20/11/2012 16:59 Andrei Lavreniyuk said the following:
>>>>> Sorry to make you jump through so many hoops.
>>>>> Now that I see that the probed config is entirely correct, the problem appears to
>>>>> be quite obvious: vdev_alloc is not able to properly use spa_version in this
>>>>> context because spa_ubsync is not initialized yet.
>>>>>
>>>>> Let me think about how to fix this.
>>>>
>>>> I hope that the following simple patch should fix the problem:
>>>> http://people.freebsd.org/~avg/spa_import_rootpool.version.diff
>>>
>>>
>>> At mount system trap and reboot.
>>>
>>
>> Unexpected. Can you catch the backtrace of the panic?
>> If you have it on the screen.
>>
>>
>
> Ah, found another bogosity in the code:
> --- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c
> +++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c
> @@ -3925,8 +4117,6 @@ spa_import_rootpool(const char *name)
> return (error);
> }
>
> - spa_history_log_version(spa, LOG_POOL_IMPORT);
> -
> spa_config_enter(spa, SCL_ALL, FTAG, RW_WRITER);
> vdev_free(rvd);
> spa_config_exit(spa, SCL_ALL, FTAG);
>
>
> This previously "worked" only because the pool version was zero and thus the
> action was a NOP anyway.
>
Problem solved. Raidz pool mount without zpool.cache.
# zpool status -v
pool: zsolar
state: ONLINE
scan: resilvered 2,56M in 0h0m with 0 errors on Tue Nov 20 10:26:35 2012
config:
NAME STATE READ WRITE CKSUM
zsolar ONLINE 0 0 0
raidz2-0 ONLINE 0 0 0
gpt/disk0 ONLINE 0 0 0
gpt/disk2 ONLINE 0 0 0
gpt/disk3 ONLINE 0 0 0
errors: No known data errors
# uname -a
FreeBSD opensolaris.technica-03.local 10.0-CURRENT FreeBSD
10.0-CURRENT #6 r243278M: Wed Nov 21 09:28:51 EET 2012
root at opensolaris.technica-03.local:/usr/obj/usr/src/sys/SMP64R amd64
Thanks!
More information about the freebsd-current
mailing list