View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0004146 | unreal | ircd | public | 2012-11-21 08:54 | 2012-12-17 10:48 |
Reporter | Cronus | Assigned To | syzop | ||
Priority | normal | Severity | minor | Reproducibility | always |
Status | closed | Resolution | duplicate | ||
Product Version | 3.2.9 | ||||
Summary | 0004146: order of remote include processing not guaranteed | ||||
Description | My setup: Remote include config file that has class blocks in it, the basic clients and servers block lets call that network.conf in unrealircd.conf (locally on the server) I have a link block (or oper block doesnt matter) that uses the class blocks that are remote included in this network.conf Note i do have the include block at the very top, it is just after my loadmodule's I get the following complaint from unrealircd *** Notice -- unrealircd.conf:66: illegal link::class, unknown class 'servers' using default of class 'default' *** Notice -- unrealircd.conf:82: illegal link::class, unknown class 'servers' using default of class 'default' *** Notice -- tmp/AE57A465.network.conf:11: illegal allow::class, unknown class 'clients' using default of class 'default' *** Notice -- tmp/AE57A465.network.conf:18: illegal allow::class, unknown class 'clients' using default of class 'default' | ||||
Steps To Reproduce | Remote include class blocks Have link/oper blocks in local unrealircd.conf try to rehash/start server, you will get hiccup | ||||
Tags | No tags attached. | ||||
3rd party modules | |||||
|
Could it be an order issue? And that it differs between start and rehash? Example: when booting the ircd the include needs to be -before- the rest. And when you want to rehash it only works if it's -after- the rest. Just a guess. I could be totally wrong ;) |
|
Oh, nevermind, you say it always happens. And you're on 3.2.9, I thought maybe an issue was introduced in the 3.2.10-rc1. Then this sounds like issue 0000585 ? |
|
Yes it seems like that might be the issue. I moved the blocks around and put them in this order in the remote include class::clients class::servers allowblock1 allowblock2 However It still complains if i have an oper block in the main file using class::clients and if i have link blocks using class::servers |
|
this is because the remote includes are processed asynchronously. so, the include data is processed later. |
|
the situation is this: - remote includes get processed after we enter the event loop (for both 3.2 and 3.4) - order of individual remote includes is also not guaranteed as they get processed as they come in mostly i think the solution is to do the following: split the config parser into two levels: level 1 scans for includes, downloads remote ones and makes sure local ones are really there and then level 2 does the actual parse. if level 1 finds remote includes, we schedule an event to come back to the config and parse it later. (or we can check to see if any other downloads are pending, then kick off the parser in url.c or whatever) this allows for the eventloop to run as needed until the config is truly built in the right order. |
|
The real solution would be 0000585, then all data gets processed in the way the user expects it to be. |
|
I do like the idea I read in there... Read all Configs, included etc. Throw them in one config file in /tmp read it, and then go from there. As one of them stated I also have one main remote include on each server, and this remote include actually has the remote includes for the rest of the includes. |
|
Marking as dup of 0000585. Let's hope that one will be resolved one day ;) |
Date Modified | Username | Field | Change |
---|---|---|---|
2012-11-21 08:54 | Cronus | New Issue | |
2012-11-24 14:29 | syzop | Note Added: 0017239 | |
2012-11-24 14:33 | syzop | Note Added: 0017240 | |
2012-11-24 14:33 | syzop | Priority | high => normal |
2012-11-24 20:07 | Cronus | Note Added: 0017241 | |
2012-11-25 19:09 |
|
Note Added: 0017249 | |
2012-11-25 19:11 |
|
Summary | Remote including class blocks makes unrealircd hiccup => order of remote include processing not guaranteed |
2012-11-25 19:16 |
|
Note Added: 0017250 | |
2012-12-15 20:29 | syzop | Note Added: 0017258 | |
2012-12-15 20:29 | syzop | Relationship added | related to 0000585 |
2012-12-15 20:36 | Cronus | Note Added: 0017260 | |
2012-12-17 10:44 | syzop | Note Added: 0017272 | |
2012-12-17 10:44 | syzop | Relationship replaced | duplicate of 0000585 |
2012-12-17 10:44 | syzop | Status | new => resolved |
2012-12-17 10:44 | syzop | Resolution | open => duplicate |
2012-12-17 10:44 | syzop | Assigned To | => syzop |
2012-12-17 10:47 | syzop | Status | resolved => closed |