[Xorp-users] Config file error

Bruce Simpson bms at incunabulum.net
Thu Jul 23 07:06:41 PDT 2009


Hi,

Sorry for the long delay in my response, I've been tied up with other tasks.

Development questions, which involve walking the code like this can and 
do fall by the wayside; I apologise.

Rae Harbird wrote:
> Does anyone know what kind of configuration file error might cause 
> this message or give me some hints about how to debug it? Please note: 
> the rubi module depends on olsr which starts up successfully beforehand.

* I'm not too familiar with the Router Manager internals, but I'll give 
this my best shot.
* I'm going to assume that the XIF was parsed by clnt-gen.py and 
tgt-gen.py OK.
* The configuration file, and template file, look sane on a first reading.

>
> [ 2009/07/03 18:03:28  ERROR xorp_rtrmgr:30310 RTRMGR +691 
> master_conf_tree.cc commit_pass2_done ] Commit failed: Can't validate 
> config ready of process rubi
> [ 2009/07/03 18:03:28  ERROR xorp_rtrmgr:30310 RTRMGR +261 
> master_conf_tree.cc config_done ] Configuration failed: Can't validate 
> config ready of process rubi

Looking at the code, it appears that the error message is triggered in 
rtrmgr/task.cc, Task::step2_3_done().

This callback is invoked in response to _config_validation->validate() 
in that class. I see a bunch of state machines in there, which seem to 
be there to deal with asynchronous process startup, in a fairly generic, 
non-UNIX-specific, way.

The most likely explanation is that the xorp_rubi executable cannot be 
run. To my mind, the error messages in task.cc are obtuse, and difficult 
to understand. If the process can't be run, the Router Manager should be 
much smarter about diagnosis.

Questions:
* Is runtime linkage for the rubi process OK?
 * Verify this with ldd. It's entirely possible that if you have 
LD_RUN_PATH or LD_LIBRARY_PATH set, or if you are running with shared 
libraries (possibly missing or misdirected), or if there is some other 
runtime linker problem (e.g. 32 bit vs 64 bit thunks) when the 
executable is invoked.

* Have you tried writing a shell script wrapper to profile the process 
invocation?
 * Typically I would use this technique for doing valgrind runs for leak 
testing 'in place'.
 * If you look at olsr4.tp in the shipping XORP 1.6 tarball, you'll see 
a commented out reference to such a shell script wrapper.

Please let us know what platform you're working with when reporting 
problems like this, it greatly helps us to pin down possible causes.

thanks,
BMS



More information about the Xorp-users mailing list