Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 29 Mar 2018 08:15:02 +0300
From:      Toomas Soome <tsoome@me.com>
To:        Stefan Esser <se@freebsd.org>
Cc:        Warner Losh <imp@bsdimp.com>, Kyle Evans <kevans@freebsd.org>, FreeBSD Current <freebsd-current@freebsd.org>
Subject:   Re: Boot failure: panic: No heap setup
Message-ID:  <BB3062B2-5F86-4A75-A749-8FE69D622FE9@me.com>
In-Reply-To: <f5e17e50-362b-21e6-f922-13b504d8420e@freebsd.org>
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> <f5e17e50-362b-21e6-f922-13b504d8420e@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help


> On 29 Mar 2018, at 01:06, Stefan Esser <se@freebsd.org> wrote:
>=20
> 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.
>>>=20
>>>> [1]
>>>> =
https://svnweb.freebsd.org/base/head/stand/libsa/sbrk.c?view=3Dmarkup#l56
>>    =
<https://svnweb.freebsd.org/base/head/stand/libsa/sbrk.c?view=3Dmarkup#l56=
>
>>>=20
>>>=20
>>> Seems that setbase has either not been called or has been called =
with
>>> base=3D0.
>>=20
>>    Right, which is odd...
>>=20
>>>> [2]
>>>> =
https://svnweb.freebsd.org/base/head/stand/i386/zfsboot/zfsboot.c?view=3Dm=
arkup#l688
>>    =
<https://svnweb.freebsd.org/base/head/stand/i386/zfsboot/zfsboot.c?view=3D=
markup#l688>
>>>=20
>>>=20
>>> I had thought, that the zfs boot code has been initialized before =
the
>>> menu is displayed?
>>=20
>>    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.
>>=20
>> 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...
>=20
> 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).
>=20
> 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 ...).
>=20
> 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 ...)
>=20
> Since the loader menu (and escaping from the menu) works, there must =
be
> a valid heap, at that time.
>=20

indeed. and assuming the message really is from loader, it means, there =
must be memory corruption - if so, you can check which variables are =
located close to heap related ones=E2=80=A6 Also, since you have the =
working menu, it has to be related to actual loading. Since the loading =
itself has been working so far, it should be related to lua specific =
bits which are preparing towards to call load functions.

rgds,
toomas






Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?BB3062B2-5F86-4A75-A749-8FE69D622FE9>