View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0004326 | unreal | module api | public | 2014-08-18 20:31 | 2015-06-01 04:05 |
Reporter | hyperi0n | Assigned To | tmcarthur | ||
Priority | normal | Severity | minor | Reproducibility | have not tried |
Status | resolved | Resolution | fixed | ||
Platform | Archlinux x86_64 | OS | Linux | OS Version | 3.16.1-1 |
Product Version | 3.4-alpha1 | ||||
Summary | 0004326: Error when reloading module delayjoin | ||||
Description | mode +D works fine but when i unload/reload the delayjoin module, i get an "Unknown mode character D" when trying /mode #channel +D /module commands tells me that *** delayjoin - v0.0.1 (delayed join (+D,+d)) is here. | ||||
Steps To Reproduce | - comment loadmodule "modules/chanmodes/delayjoin"; /* +D */ in modules.conf - rehash - uncomment the same line - rehash - try /mode #channel +D | ||||
Tags | No tags attached. | ||||
3rd party modules | |||||
|
Having a look thanks |
|
I can reproduce the same issue with other modes (tested with +G +z) |
|
I know it would be time consuming, but would someone be willing to do this with all modules (commands AND modes)? If it's happening in a handful of modules it will likely be found in other modules. We should build a list of modules that fail to unload and reload properly. |
|
@tmcarthur should we make separate bug reports for every module with this issue, or do you think fixing one would make it super easy to fix them all? |
|
This may be something we need to do on module by module basis, but having one master tracking bug is probably easier/better - if someone gets a chance to test and make a list I would suggest just add it as a comment to this bug. If no one does, I can look at testing it myself as I fix this one. |
|
Ok here are the test concerning the others modules : -commands : not affected (tested only whois and cloak...) -user modes not affected (test on +G and +T, only modules available today) -chan modes : Z => set by server cCSPGDKVOATRNQMz => bug reproductible Kj => MOD_OPT_PERM (looks like they are designed so that we cant unload them) f => crash on unload (filling an bug report right now) |
|
Having a look now - thanks for testing this and getting us details! |
|
Adding this Line 190 in extcmode.c seems to fix it for all modes: Channelmode_Table[i].unloaded = 0; Not sure of the consequences but so far it's ok for me. |
|
Thanks for the report! The reason that change works is that it immediately marks a channel mode as unloaded after it is added, the problem with this is it is entirely circumventing the whole point of the unload check - it would permit you to double add cmodes :). I'll have a look to see where we should make this change so that they are unloaded and marked as such safely - my guess is there's an issue in unload logic - I should have something for you in next day-ish. Thanks! Travis |
|
I think it's bad juju to allow chanmodes to be unloaded on-the-fly in the first place. imvho, all channel modes should be perm to prevent desyncs. |
|
Ope got my logic backwards, this fix should work fine |
Date Modified | Username | Field | Change |
---|---|---|---|
2014-08-18 20:31 | hyperi0n | New Issue | |
2014-08-18 20:34 | tmcarthur | Note Added: 0018225 | |
2014-08-18 20:34 | tmcarthur | Assigned To | => tmcarthur |
2014-08-18 20:34 | tmcarthur | Status | new => acknowledged |
2014-08-19 13:25 | hyperi0n | Note Added: 0018226 | |
2014-08-19 16:28 | Stealth | Note Added: 0018227 | |
2014-08-19 16:31 | Stealth | Note Added: 0018228 | |
2014-08-19 16:48 | tmcarthur | Note Added: 0018229 | |
2014-08-19 21:46 | hyperi0n | Note Added: 0018230 | |
2014-08-19 22:17 | tmcarthur | Note Added: 0018232 | |
2014-08-21 22:59 | hyperi0n | Note Added: 0018233 | |
2014-08-23 06:47 | tmcarthur | Note Added: 0018237 | |
2015-01-01 19:23 | katsklaw | Note Added: 0018281 | |
2015-06-01 04:02 | tmcarthur | Note Added: 0018380 | |
2015-06-01 04:04 | tmcarthur | Status | acknowledged => resolved |
2015-06-01 04:04 | tmcarthur | Resolution | open => fixed |
2017-01-06 15:48 | syzop | Category | module => module api |