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
[email protected]