Panic after updating from source

Russell L. Carter rcarter at pinyon.org
Mon Mar 1 00:17:49 UTC 2021


On 2/28/21 4:52 PM, Garance A Drosehn wrote:
> On 28 Feb 2021, at 13:04, Michael Sierchio wrote:
> 
>> On Sun, Feb 28, 2021 at 9:04 AM Janos Dohanics <web at 3dresearch.com> wrote:
>>
>>> On Sun, 28 Feb 2021 07:37:37 -0800
>>> Michael Sierchio <kudzu at tenebras.com> wrote:
>>>
>>>> On Sat, Feb 27, 2021 at 11:39 PM Janos Dohanics <web at 3dresearch.com>
>>> wrote:
>>>>
>>>>> Hello Experts,
>>>>>
>>>>> After updating my FreeBSD 12 workhorse panics on boot.
>>>>>
>>>>> I have updated /usr/src, then
>>>>>
>>>>> make buildworld
>>>>> make buildkernel KERNCONF=MYKERNEL
>>>>> make installkernel KERNCONF=MYKERNEL
>>>>
>>>>
>>>> make installworld ?!
>>>
>>> You have to reboot with the new kernel before executing 'make
>>> installworld'.
>>>
>>>
>> That's not strictly factual.  In fact, if you don't installworld before
>> booting, you can have a mismatch between userland and kernel interfaces.
>>
>> make buildworld && make kernel && make installworld && reboot
>>
>> that always works for me when following a -STABLE branch.
> 
> It may happen to work for you many times in a row, until the day
> it does not work and then you're screwed.  The official instructions
> state that you should always reboot into single-user mode before
> doing 'make installworld'.
> 
> The instructions are what they are based on a lot of experience.
> It is true that if you are someone who rebuilds frequently (so your
> systems are only a week or two out-of-date), you can probably get
> away with cutting corners.  But don't tell other people to cut
> corners when you have no idea how up-to-date their system was
> before they started the upgrade.
> 
> We have frequently seen people who are furious when their system
> breaks after they've upgraded from source, and frequently the reason
> their system broke is that they "got away" with cutting corners for
> 20 times in a row.  And then they hit the first time that they were
> not able get away with cutting corners.  And they always blame us
> developers when in fact they're not following instructions.
> 
> To quote from /usr/src/UPDATING:
> 
>     ... Then, carefully follow the full procedure documented below
>     under the heading "To rebuild everything and install it on the
>     current system."
>     Specifically, a reboot is -> required <- after installing the
>     new kernel before installing world.  While an installworld
>     normally works -> by accident <-  from multiuser after rebooting
>     the proper kernel, there are many cases where this will fail
>     across this upgrade and installworld from single user is
>     required.
> 
> So, if you're going to say the magic words of "strictly factual",
> then please quote the actual instructions and not your anecdotal
> experience.
> 
> I've been building freebsd for 25 years, and yes I've gotten away
> with short cuts many times.  But I've also had a few times when
> I've been burned severely by taking those shortcuts.  So I always
> point people at the official instructions, and at least publicly
> pretend that I always follow them.  BTW, VMware-level system
> snapshots can be very useful things...
> 

I've been building freebsd for 25 years too, though I am not
otherwise competent to comment on these details.  However I have
been for quite some time now curious about how does a big shop like
netflix update their apparently nearly current freebsd-current
fleet?  I only have 5-10 systems and it's still a time hassle to
to just NFS installworld+reboot, never mind grab a console in
single-user mode on every box as an extra step.  They can't
possibly be doing that, are they?

Whatever they do I'd like to learn how to do, if it's possible.

Russell

(package the base system, I'm guessing.  On linuxen I mainly have
  debian experience but apt dist-upgrade + reboot has never failed
  me for maybe 15 years now)


More information about the freebsd-questions mailing list