Date: Wed, 21 Nov 2012 09:51:23 +0200 From: Andrei Lavreniyuk <andy.lavr@gmail.com> To: Andriy Gapon <avg@freebsd.org> Cc: freebsd-fs@freebsd.org, freebsd-current@freebsd.org Subject: Re: problem booting to multi-vdev root pool Message-ID: <CAGMwN0xF5Nex0M6vBWQMR3YV3-atqFdDnavkdAbwG75zetfXjw@mail.gmail.com> In-Reply-To: <50ABA91D.9090905@FreeBSD.org> References: <CAGMwN0w=2c3v3UhxD65brukA%2BgbvF1a76WnqtfSv94u7VwR1Jg@mail.gmail.com> <50AB5202.4070906@FreeBSD.org> <CAGMwN0waaykfqvjE4Ua8J9zFLT=bDKJBFz1YKFEe2D9HJLMzpg@mail.gmail.com> <50AB71A7.7050101@FreeBSD.org> <CAGMwN0wPtcO_YzEkbx7WyQfE0juUhouX27h-qmZ39EhU9tgu6A@mail.gmail.com> <50AB80C6.1090507@FreeBSD.org> <CAGMwN0xhLVjuHMP_o4N%2BD4CRUoQTuj0cy6HZFOrun8K8medMXQ@mail.gmail.com> <50AB8C1F.2040108@FreeBSD.org> <50AB90E9.5070102@FreeBSD.org> <CAGMwN0zH0E9Shi3zDKdYU2Wywm_dTJmeh8rttr8KOVJAN_EwBw@mail.gmail.com> <50AB9C5B.6030006@FreeBSD.org> <50ABA91D.9090905@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
2012/11/20 Andriy Gapon <avg@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@opensolaris.technica-03.local:/usr/obj/usr/src/sys/SMP64R amd64 Thanks!
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAGMwN0xF5Nex0M6vBWQMR3YV3-atqFdDnavkdAbwG75zetfXjw>