[OPEN-ILS-DEV] Debugging OpenSRF installation
Victoria Bush
vbush at ilstu.edu
Tue Jun 16 10:59:07 EDT 2009
On Jun 15, 2009, at 5:06 PM, Dan Wells wrote:
> Hello Victoria,
>
> I kinda hate to suggest this, since I thought this issue was fixed,
> but have you tried starting the components separately? That is:
>
> osrf_ctl.sh -l -a stop_all
>
> (wait a few minutes, kill as needed)
>
> osrf_ctl.sh -l -a start_router
>
> (wait for activity to stop/slow)
>
> osrf_ctl.sh -l -a start_perl
>
> (wait for activity to stop/slow)
>
> osrf_ctl.sh -l -a start_c
>
> Since many pieces in this system operate independently, starting
> them in a more controlled fashion has been suggested in the past for
> quirky race-condition-type problems.
>
> Good luck,
> DW
>
>
Okay, several things are causing confusion on my part because the
documented behavior at
http://evergreen-ils.org/dokuwiki/doku.php?id=troubleshooting:checking_for_errors
is not what I'm seeing. First of all, the default opensrf_core.xml
example file that I used to create my file did not create separate log
files, private.router.log and public.router.log. (Of course, on the
troubleshooting page two paragraphs above this mention of two router
log files, it mentions the single router.log that is instead created.)
So I changed my xml file to create two separate log files.
In addition, the opensrf_core.xml example file claims that a log file
gateway.log will be created, but I've never seen one. What seems to be
happening is that the private.localhost router comes up fine, but the
public.localhost one doesn't--or if it does come up, it's in some
weird state that doesn't do anything.
Retracing my steps:
1. I stopped everything and killed all leftover processes. I also
moved all the log files into a subdirectory to hide them for now.
2. I *only* started the router:
osrf_ctl.sh -l -a start_router
3. The *only* log file that is created is private.router.log:
> router 2009-06-16 09:25:26 [INFO:30364:osrf_router_main.c:95:]
> Router connecting as: server: private.localhost port: 5222 user:
> router resource: router
> router 2009-06-16 09:25:26 [INFO:30364:osrf_router_main.c:117:]
> Router adding trusted server: private.localhost
> router 2009-06-16 09:25:26 [INFO:30364:osrf_router_main.c:129:]
> Router adding trusted client: private.localhost
>
I see no file called public.router.log, but there are two processes
running:
$ ps -eaf | grep OpenSRF
opensrf 30368 1 0 09:25 ? 00:00:00 OpenSRF Router
opensrf 30369 1 0 09:25 ? 00:00:00 OpenSRF Router
opensrf 30385 29763 0 09:28 pts/1 00:00:00 grep OpenSRF
4. If I stop the router now:
osrf.ctl.sh -l -a stop_router
NOW I see a public.router.log file, and it says:
> router 2009-06-16 09:51:55 [WARN:30368:osrf_router_main.c:11:]
> Received signal [2], cleaning up...
>
So while the public router comes up, something's not right. But I have
no idea how to diagnose this further.
The only changes in my opensrf_core.xml file since I last posted it
was to change the names of the log files, as indicated above. So the
differences between this core file and the example one included in
OpenSRF 1.0.6 are just the passwords and the log files.
> $ diff opensrf_core.xml.example opensrf_core.xml
> 38c38
> < <passwd>password</passwd>
> ---
> > <passwd>*****</passwd>
> 104c104
> < <passwd>password</passwd>
> ---
> > <passwd>*****</passwd>
> 128c128
> < <password>password</password>
> ---
> > <password>*****</password>
> 133c133
> < <logfile>/openils/var/log/router.log</logfile>
> ---
> > <logfile>/openils/var/log/public.router.log</logfile>
> 150c150
> < <password>password</password>
> ---
> > <password>*****</password>
> 155c155
> < <logfile>/openils/var/log/router.log</logfile>
> ---
> > <logfile>/openils/var/log/private.router.log</logfile>
Here's my slightly updated opensrf_core.xml file.
> <?xml version="1.0"?>
> <!--
> vim:et:ts=2:sw=2:
> -->
> <config>
>
> <!-- bootstrap config for OpenSRF apps -->
> <opensrf>
>
> <routers>
>
> <!-- define the list of routers our services will register
> with -->
>
> <router>
>
> <!-- This is the public router. On this router, we only
> register applications
> which should be accessible to everyone on the opensrf
> network -->
> <name>router</name>
> <domain>public.localhost</domain>
> <services>
> <service>opensrf.math</service>
> </services>
> </router>
>
> <router>
> <!-- This is the private router. All applications must
> register with
> this router, so no explicit <services> section is
> required -->
> <name>router</name>
> <domain>private.localhost</domain>
> </router>
> </routers>
>
>
> <!-- Jabber login settings
> Our domain should match that of the private router -->
> <domain>private.localhost</domain>
> <username>opensrf</username>
> <passwd>privctltsrf</passwd>
> <port>5222</port>
> <!-- name of the router used on our private domain.
> this should match one of the <name> of the private router
> above -->
> <router_name>router</router_name>
>
> <!-- log file settings ====================================== -->
> <!-- log to a local file -->
> <logfile>/openils/var/log/osrfsys.log</logfile>
>
> <!-- Log to syslog. You can use this same layout for
> defining the logging of all services in this file -->
> <!--
> <logfile>syslog</logfile>
> <syslog>local2</syslog>
> <actlog>local1</actlog>
> -->
>
> <!-- 0 None, 1 Error, 2 Warning, 3 Info, 4 debug, 5 Internal
> (Nasty) -->
> <loglevel>3</loglevel>
>
> <!-- config file for the services -->
> <settings_config>/openils/conf/opensrf.xml</settings_config>
>
> </opensrf>
>
> <!-- Update this if you use ChopChop -->
> <chopchop>
> <!-- Our jabber server -->
> <domain>private.localhost</domain>
> <port>5222</port>
> <!-- used when multiple servers need to communicate -->
> <s2sport>5269</s2sport>
> <secret>secret</secret>
> <listen_address>10.0.0.3</listen_address>
> <loglevel>3</loglevel>
> <logfile>/openils/var/log/osrfsys.log</logfile>
> </chopchop>
>
> <!-- The section between <gateway>...</gateway> is a standard
> OpenSRF C stack config file -->
> <gateway>
>
> <!--
> we consider ourselves to be the "originating" client for requests,
> which means we define the log XID string for log traces
> -->
> <client>true</client>
>
> <!-- the routers's name on the network -->
> <router_name>router</router_name>
>
> <!--
> These are the services that the gateway will serve.
> Any other requests will receive an HTTP_NOT_FOUND (404)
> DO NOT put any services here that you don't want the internet to
> have access to
> This section will be soon deprecated for multi-domain mode...
> -->
> <services>
> <service>opensrf.math</service>
> </services>
>
> <!-- jabber login info -->
>
> <!-- The gateway connects to the public domain -->
> <domain>public.localhost</domain>
> <username>opensrf</username>
> <passwd>pubctltsrf</passwd>
> <port>5222</port>
> <logfile>/openils/var/log/gateway.log</logfile>
> <loglevel>3</loglevel>
>
> </gateway>
>
> <!--
> =
> =
> =
> =
> =
> =
> =
> =
> =
> =
> =
> =
> =
> =
> =
> =
> =
> =
> =
> =
> ====================================================================
> -->
>
> <routers>
> <router> <!-- public router -->
> <trusted_domains>
> <!-- allow private services to register with this
> router
> and public clients to send requests to this
> router. -->
> <server>private.localhost</server>
> <!-- also allow private clients to send to the
> router so it can receive error messages -->
> <client>private.localhost</client>
> <client>public.localhost</client>
> </trusted_domains>
> <transport>
> <server>public.localhost</server>
> <port>5222</port>
> <unixpath>/openils/var/sock/unix_sock</unixpath>
> <username>router</username>
> <password>pubctltroute</password>
> <resource>router</resource>
> <connect_timeout>10</connect_timeout>
> <max_reconnect_attempts>5</max_reconnect_attempts>
> </transport>
> <logfile>/openils/var/log/public.router.log</logfile>
> <!--
> <logfile>syslog</logfile>
> <syslog>local2</syslog>
> -->
> <loglevel>2</loglevel>
> </router>
> <router> <!-- private router -->
> <trusted_domains>
> <server>private.localhost</server>
> <!-- only clients on the private domain can send
> requests to this router -->
> <client>private.localhost</client>
> </trusted_domains>
> <transport>
> <server>private.localhost</server>
> <port>5222</port>
> <username>router</username>
> <password>privctltroute</password>
> <resource>router</resource>
> <connect_timeout>10</connect_timeout>
> <max_reconnect_attempts>5</max_reconnect_attempts>
> </transport>
> <logfile>/openils/var/log/private.router.log</logfile>
> <!--
> <logfile>syslog</logfile>
> <syslog>local2</syslog>
> -->
> <loglevel>4</loglevel>
> </router>
> </routers>
>
> <!--
> =
> =
> =
> =
> =
> =
> =
> =
> =
> =
> =
> =
> =
> =
> =
> =
> =
> =
> =
> =
> ====================================================================
> -->
>
> </config>
>
--
Victoria Bush
Opscan Evaluation Manager
Center for Teaching, Learning & Technology
vbush at ilstu.edu
More information about the Open-ils-dev
mailing list