Re: [Nagios-devel] Only first instance of a NEB module receives

Support forum for Nagios Core, Nagios Plugins, NCPA, NRPE, NSCA, NDOUtils and more. Engage with the community of users including those using the open source solutions.
Locked
Guest

Re: [Nagios-devel] Only first instance of a NEB module receives

Post by Guest »

[email protected] wrote:
> Hello:
>
> I have the following two lines in nagios.cfg (lines split for
> readability):
>
> broker_module=/usr/lib/nagios/modules/ext_corr.o --file /tmp/sampler.2
> --tag module2 --control ops01;ZSecControl
>
> broker_module=/usr/lib/nagios/modules/ext_corr.o --file /tmp/sampler
> --tag module1 --control ops01;ZSecControl
>
> This is meant to create two identical feeds of data from the module.
>
> However only the first one seems to generate output.
>
> In the case above, only the file /tmp/sampler (module1) receives
> events. /tmp/sampler doesn't get any output. If I reverse the order of
> the entries, then /tmp/sampler is the only file to receive output from
> the module.
>
> The log messages:
>
> [1167001096] Nagios 2.6 starting... (PID=17742)
> [1167001096] LOG VERSION: 2.0
> [1167001096] ext_corr: module loading for --file /tmp/sampler
> --tag module1 --control ops01;ZSecControl: $Id$ - uses open
> [1167001096] Event broker module '/usr/lib/nagios/modules/ext_corr.o'
> initialized successfully.
> [1167001096] ext_corr: module loading for --file /tmp/sampler.2
> --tag module2 --control ops01;ZSecControl: $Id$ - uses open
> [1167001096] Event broker module '/usr/lib/nagios/modules/ext_corr.o'
> initialized successfully.
>
> seem to indicate that both are properly loaded and initalized. However
> the funny part is that they are loaded in the reverse order from that
> specified in the config file.
>
> I added the following code to the beginning of
> ext_corr.o:processCallback():
>
> snprintf(temp_buffer,sizeof(temp_buffer)-1,"ext_corr[%s]: callback activate\
> d\n", tag);
> temp_buffer[sizeof(temp_buffer)-1]='\x0';
> write_to_all_logs(temp_buffer,NSLOG_INFO_MESSAGE);
>
> and this reports that only the module2 instance is receiving
> events/being called.
>
> Is there some reason that multiple instances of a module can't
> register? Also attempting to shut down nagios hangs and it has to be
> given a kill -9 to exit.
>
> Hmm, on further investigation I can copy ext_corr.o to ext_corr1.o and
> change the broker_module lines above and get output to both module1
> and module2. Also the debugging code shows both modules are being
> called (as expected) and exiting nagios no longer hangs.
>
> So is this intentional? If so it is documented anywhere?
>

I believe you need to read the man-page for dlopen() or whatever
load-on-demand abi is installed on your system. A somewhat educated
guess is that the dynamic loader finds it already has the file loaded
and just returns a pointer to the already loaded file rather than
creating a new one.

--
Andreas Ericsson [email protected]
OP5 AB www.op5.se
Tel: +46 8-230225 Fax: +46 8-230231





This post was automatically imported from historical nagios-devel mailing list archives
Original poster: [email protected]
Locked