Date: Thu, 29 Mar 2018 00:06:44 +0200 From: Stefan Esser <se@freebsd.org> To: Warner Losh <imp@bsdimp.com> Cc: Kyle Evans <kevans@freebsd.org>, FreeBSD Current <freebsd-current@freebsd.org> Subject: Re: Boot failure: panic: No heap setup Message-ID: <f5e17e50-362b-21e6-f922-13b504d8420e@freebsd.org> In-Reply-To: <CANCZdfqtxMGuSPuX6rQrLY0Zwi5Ndzff_%2Bf47GyGLuRoRTsggQ@mail.gmail.com> References: <79d2bd72-f8b2-6476-9589-ebad9716698f@freebsd.org> <CACNAnaEwq41PqQATGLF2OAaL6mnRpGgwqYQaux1gZ_kzp4DxoA@mail.gmail.com> <d4304b55-d265-2488-62e4-6117a7a33502@freebsd.org> <CACNAnaGpB434Mca9DdjnPJz_Mt4WhzrCbt=qu5AUGrgD2C6YOQ@mail.gmail.com> <CANCZdfqtxMGuSPuX6rQrLY0Zwi5Ndzff_%2Bf47GyGLuRoRTsggQ@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Am 28.03.18 um 22:28 schrieb Warner Losh: > > Hmmm, the code references point into the boot loader code - I had > > expected that there is a problem in the kernel, not the boot loader. > > > >> [1] > >> https://svnweb.freebsd.org/base/head/stand/libsa/sbrk.c?view=markup#l56 > <https://svnweb.freebsd.org/base/head/stand/libsa/sbrk.c?view=markup#l56> > > > > > > Seems that setbase has either not been called or has been called with > > base=0. > > Right, which is odd... > > >> [2] > >> https://svnweb.freebsd.org/base/head/stand/i386/zfsboot/zfsboot.c?view=markup#l688 > <https://svnweb.freebsd.org/base/head/stand/i386/zfsboot/zfsboot.c?view=markup#l688> > > > > > > I had thought, that the zfs boot code has been initialized before the > > menu is displayed? > > Right, all of this should be done looooong before we get to the > interpreter. Can you break into the loader prompt and try the `heap` > command, see what that outputs? CC'ing imp@ because he actually knows > things. > > Totally weird. I'd add a printf to the sethead() function to display its args > and see if you get this panic before/after that printf... I'm currently using a Forth-enabled boot loader again, since this is a "production" machine (my home server, which also receives and keeps all my work email, for example). I'll build a clean world with the LUA loader and test it on one of the next days. Tests will include the "heap" loader command and I'll add the printf (though, if sbrk() has really not been called, I guess that will not go too well ...). Is it possible, that the setheap function is called a second time, just before jumping into the kernel? (In that case adding the printf might crash the loader in the first setheap call ...) Since the loader menu (and escaping from the menu) works, there must be a valid heap, at that time. Regards, STefan
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?f5e17e50-362b-21e6-f922-13b504d8420e>