-
-
Notifications
You must be signed in to change notification settings - Fork 90
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
PIMD causes random kernel panics: needs to validate interfaces before attempted use #218
Comments
I'm sorry to hear that, but kernel crashes are not really the responsibility of userland applications. The kernel should handle such issues. You have the option of course of disabling pimd on select interface (or disable all, and then selectively enable), which could be a way to work around this problem. |
Hmmm. That makes sense. (BTW, I do disable all and selectively enable. It's a bad *.conf file containing references to invalid interfaces due to having deleted some VLANs. Thus, pimd isn't validating interface references in the conf file? ) Yet, here's the strange thing I noted: this is a kernel panic in the "pim" area of the kernel. Do I understand correctly that pimd is modifying various parameters of the built-in "pim" support? On further reflection, presumably:
Does that make sense? Or am I simply out to lunch on this? ;) |
Yes correct. You are spot on. Regardless what little old pimd does, it shouldn't crash the kernel. |
So I will report this up-chain 😏 |
On further reflection... it's TRUE that userland "shouldn't" crash the kernel. |
Of course. And at startup pimd (master) does this by calling |
In my case, we're not dealing with dynamic change. I hear you saying you already validate the interfaces. Should an invalid interface in pimd.conf...
Something strange certainly happens. |
You know, I'm not really sure what it is you expect I should do for you here in this bug report. You've not declared how you start pimd, or what your pimd.conf runs. I don't know what version of pimd you are using, or what patches pfSense may have applied to integrate it into FreeBSD. I don't use FreeBSD myself, so for the pimd project that's like a second or third tier platform. There's lots of error handling in pimd, the code is here on GitHub for you to inspect and learn. Check out config.c, vif.c and kern.c and you can see the error handling and log levels used for each such message. |
I understand. Time for me to put on my coder/diagnosis hat and dig in. ;) |
My pfSense started reliably crashing (random but always within 1-2 hr of boot) with kernel panics pointing to pimd.
After much sleuthing, I discovered the root cause:
However, pimd doesn't ignore the invalid interfaces. It apparently attempts to use them or at least do something with them.
Most of the time, this doesn't cause an issue (I did run for about a year like this!) But sometimes it does... leading to a kernel panic.
I think I have backup copies of various config files if necessary.
(Note: I am still eventually hoping to track down #171 )
The text was updated successfully, but these errors were encountered: