-
Notifications
You must be signed in to change notification settings - Fork 46
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
booster.debug gives a kernel panic on boot #153
Comments
The most important piece of information is init/main.go:726 and it points to https://github.com/anatol/booster/blob/0.8/init/main.go#L726 go func() { check(udevListener()) }() it is not clear how a crash or panic can happen here. Do you have any logs before this message, or maybe some other information that can help to understand what is going on here. |
Somewhat related - |
I started with
The other issue unique to this server only in its upgrade to When I downgrade to With
If we review say
|
It means that the crash you see is related to func printMessage(format string, requestedLevel, kernelLevel int, v ...interface{}) {
if printToConsole {
fmt.Println(msg)
}
} it is not clear to me how this can break the application. Do you have a chance to get the full go stacktrace from your initial comment? |
Could you please file a separate ticket to track it independently from this crash issue? |
uevent.NewDecoder uses bufio.ReadString() that is blocking until data is available. When booster switches to the userspace it needs to close all file descriptors including the udev one. Unfortunately there is no clear way to break the bufio.ReadString() blocking. Attempt to close the fd causes panic inside the bufio.(*Reader).fill() function. To prevent the app crash we just recover from panic in the udev goroutine. Issue #22 Issue #31 Issue #153
I added a new possible fix for this panic. The udev panic comes from the uevent/bufio libraries and there is little we can do to stop the @benalexau please try the |
An AUR
FYI the new Booster debug log as reported via
|
I am not sure why it affected the network naming though. It might be a transient issue and start appearing again under different conditions. |
Upon closer examination, this patch does not start the network at all. I have confirmed this to be the case on both the original server for which logs were provided above, but also on an additional server which requires Clevis for network unlocking. Both servers were using the network:
dhcp: on
# see https://github.com/anatol/booster/issues/90
modules_force_load: sdhci,mmc_block,sdhci_pci This should start the network during initramfs. The debug logs confirm that it does not (eg we should see messages like "eth4 waiting interface to be UP" and "eth4: run DHCP"):
Running I am unable to provide a log for the second server because the system locks up with the following final console message. It was not possible to even enter the password manually, so I had to boot with a Live USB stick to reinstall |
uevent.NewDecoder uses bufio.ReadString() that is blocking until data is available. When booster switches to the userspace it needs to close all file descriptors including the udev one. Unfortunately there is no clear way to break the bufio.ReadString() blocking. Attempt to close the fd causes panic inside the bufio.(*Reader).fill() function. To prevent the app crash we just recover from panic in the udev goroutine. Issue #22 Issue #31 Issue #153
While troubleshooting another issue I consistently encounter the following kernel panic when attempting to boot Arch Linux when installed with
booster
package 8.1-0 and kernel parameterbooster.debug
:The system boots if the kernel parameter is absent.
The text was updated successfully, but these errors were encountered: