-
Notifications
You must be signed in to change notification settings - Fork 921
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
pdns_server crashes during startup when the first non-dynloaded module initializes #6624
Comments
I wonder if switching to |
Using your patch, from #6625, does, indeed, resolve this. It does, however, also point out how the logging of the modules' initialization happens sufficiently early that the log level hasn't been set, causing all the log entries where the modules announce their initialization to be lost. |
apparently, #6689 fixed this for auth, but not for rec? Is this still the case? |
I still suspect the observed problem with the recursor on 32 bit Arm was a toolchain issue related to thread local variables. At the time, I didn't pursue it further, because recompiling and testing took an extremely long time on the Raspberry Pi I had to do it on - and now, I don't even have that. Sorry! It's working fine on aarch64, anyway. |
Thanks for the reply. I'll just close this then, and if it's still broken, somebody will eventually let us know :) |
pdns_resolver --config works fine on OpenBSD armv7 at least |
resolver? recursor? server? |
Damns, should not comment on issues before coffee... pdns_recursor |
Ack - I don't think that was ever a problem on any platform, the issue is with the dynloading of |
I was reacting on:
|
I am also mixing up things. Thanks for checking :D |
Short description
After the big change from "theL" to "g_log", commit e6a9dde, pdns_server crashes during initialization of any module that is not dynamically loaded, when the module tries to log its initialization. If all modules are dynamically loaded, there is no crash. Removing that particular log action from the module, so that it is no longer the first thing that attempts to log something, will also avoid the crash: the module may then log things later, with no ill effects.
Environment
Steps to reproduce
Expected behaviour
That pdns_server and its supporting files are properly built.
Actual behaviour
The freshly built pdns_server dumps core when it is run by gmake to generate its sample config file.
The backtrace looks like this:
Other information
@Habbie and I looked at this together, and he confirmed the crash on a fresh NetBSD 8.0RC1 install (I'm running on NetBSD-current). He did the bisecting that isolated the particular commit that introduces the problem. @zeha pointed out that with the change from theL to g_log, the logging object is no longer subject to the same auto-initialization. We therefore suspect that some explicit initialization may now be needed - and that the ordering of events during startup happens to be such, that modules that are not dynamically loaded get initialized before the logging object.
It may be a toolchain difference between Linux and NetBSD, of course, but it is also possible that the lack of initialization just happens not to cause a crash on Linux at the moment.
The text was updated successfully, but these errors were encountered: