-----Original Message-----
From: [email protected] [mailto:[email protected]]
On Behalf Of Andrew Johnson
Sent: Monday, February 16, 2009 9:37 AM
To: [email protected]; [email protected]
Subject: Re: Local CA out links broken during PINI
Hi Ben,
On Monday 16 February 2009 05:07:12 Benjamin Franksen wrote:
it seems that CA output links do not work at all during PINI processing
if
the target record is on the same IOC.
I think this is a bug, as I could not find any note on this behaviour in
the Developer's Guide.
Please consider the task of bringing up an IOC, i.e. what iocInit does.
Here
are some lines from iocInit, in order of execution:
initialProcess();
/* Start CA server threads */
rsrv_init();
...
/* Enable scan tasks and some driver support functions. */
scanRun();
dbCaRun();
...
rsrv_run();
The CA server has not even been initialized when the initialProcess() (i.e.
PINI processing) takes place, and the dbCa link task which manages CA links
is not running at that point either. PINI has to happen before we release
the scan threads or allow CA links to connect because they can initiate
record processing.
We can't allow external CA clients to connect before the PINI processing is
done because they might interfere with that initialization, and I suspect
it
would be hard to add a separate path to the server to allow internal CA
clients to connect in advance of the external ones.
I agree that the documentation does not discuss PINI much, but [despite
being
slightly out-dated by R3.14.10] section 7.4 of the AppDevGuide does make
clear that initialProcess() happens before rsrv_init().
- Andrew
--
The best FOSS code is written to be read by other humans -- Harold Welte