Open Casteele72 opened 3 years ago
Thanks @Casteele72 this is indeed new to us. Is it possible to chat with you on Libera to try and get a few more details from you?
Yes. As an additional note, the error only occurs when I ".restart" from the party line. If I "/msg ?bot? restart ?password?" from IRC, it seems to restart without problem.
Edit: My bad, it was "/msg ?bot? rehash ?pass?" that worked, not restart. Rehashing has not had any issues.
Oops... What server and channel on Libera? I did not see that info in the README (it still references FreeNode).
I'd still like to talk to you, but that makes me think you have a Tcl script loaded that is causing the issue, as eggdrop doesn't have a 'restart' command by default :) It would still be good to understand what the script is doing though, so we see if the code it is calling is at fault or not
irc.libera.chat #eggdrop
I'm on now, as "Casteele"
Latest update:
I will be uploading an eggdrop.conf (to pastebin) file that I have used to both reliably create the problem, and to avoid it. Specifically, I have been able to narrow it down to loadmodule:
It does appear to be in the core code, however, and not in one of the modules. All the modules seem to successfully unload before the crash occurs. I tested this by making an event bind to dump global variables and values to the log after the "blowfish" module unloads (which was the first to load, last to unload, not counting the core eggdrop "module"). The result was that it dumped around one half of the globals and then crashed.
I have also noted some variables are not propagating correctly, even on initial load, not just a restart problem. These include {::admin} and {::nick}. {::admin} consistently becomes {} after a rehash or a non-crashing restart. The bot does not seem to even see {::nick} if I do not set it in the global namespace context.
I.E., "proc {myproc} {args} {... set ::nick mybot ...}" results in the bot complaining it does not have a nick set. But "proc {myproc} {args} {... namespace eval :: {set ::nick mybot} ...}" works as expected.
I am not certain the two issues are related, but I suspect they are--some code is not setting variable traces correctly. (It may even been in the Tcl code, not the Eggdrop code.)
Edit: pastebin of eggdrop.conf: https://pastebin.com/0CWnmWtj Comments are included to show various attempted methods.
Last ten lines from my log file:
(Sorry about the messed up timestamps, that is another problem I will figure out.)
From DEBUG:
This is on my home machine, so I can recompile with additional debug flags, if requested.
Also note that I made one modification to the source code: I disabled the code that checks and refuses to run as root, as I am setting this bot up as an administration toy/tool. Everything else is stock code from the downloaded .tar.gz file (except, of course, the eggdrop.conf file).