[OPEN-ILS-DEV] jabber problem - long post

Rene Paquin rpaquin at wlu.ca
Tue Apr 24 10:34:23 EDT 2007


I think I am getting closer however I am still having ejabberd woes. 
Ejabberd is running and listening as I get the following results from
tjhis netstat command - 

netstat -an | grep -E '5222|5269'
tcp        0      0 0.0.0.0:5222            0.0.0.0:*              
LISTEN
tcp        0      0 0.0.0.0:5269            0.0.0.0:*              
LISTEN

I can also connect via telnet.

However when i try to start openils I get these results:

/openils/bin$ ./osrf_ctl.sh -d /tmp/ -p /openils/conf/bootstrap.conf -c
/openils/conf/opensrf_core.xml -a start_all
I think I am getting closer however I am still having ejabberd woes. 
Ejabberd is running and listening as I get the following results from
tjhis netstat command - 

netstat -an | grep -E '5222|5269'
tcp        0      0 0.0.0.0:5222            0.0.0.0:*              
LISTEN
tcp        0      0 0.0.0.0:5269            0.0.0.0:*              
LISTEN

I can also connect via telnet.

However when i try to start openils I get these results:

/openils/bin$ ./osrf_ctl.sh -d /tmp/ -p /openils/conf/bootstrap.conf -c
/openils/conf/opensrf_core.xml -a start_all

Starting OpenSRF Router
./osrf_ctl.sh: line 110: opensrf_router: command not found
Starting OpenSRF Perl
        (in cleanup) Dying 7691 at
/openils/lib/perl5/OpenSRF/UnixServer.pm line 21
       
OpenSRF::UnixServer::DESTROY('OpenSRF::UnixServer=HASH(0x8b0305c)')
called at /openils/lib/perl5/OpenSRF/System.pm line 317
        eval {...} called at /openils/lib/perl5/OpenSRF/System.pm line
317
       
OpenSRF::System::launch_settings('OpenSRF::System=HASH(0x814ec28)')
called at /openils/lib/perl5/OpenSRF/System.pm line 159
        OpenSRF::System::bootstrap('OpenSRF::System') called at -e line
1

  * ! EXCEPTION ! *
TYPE: OpenSRF::EX::Jabber
Mess: Jabber Exception
Mess:  * ejabberd at localhost/system_client_drone_at_tamarak.wlu.ca:
Unable to authenticate: <iq type='error' id='123'>
Mess: <query xmlns='jabber:iq:auth'>
Mess: <username>*****</username>
Mess: <password>*****</password>
Mess: <resource>system_client_drone_at_tamarak.wlu.ca_7686</resource>
Mess: </query>
Mess: <error code='401' type='auth'><not-authorized
xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/></error></iq>
Loc.: 535 OpenSRF::Transport::SlimJabber::Client
Loc.: /openils/lib/perl5/OpenSRF/Transport/SlimJabber/Client.pm
Time: Tue Apr 24 04:03:54 2007
Starting OpenSRF C
./osrf_ctl.sh: line 138: opensrf-c: command not found

In the osrfsyslog file I get this:
opensrf 2007-04-24 03:27:18 [INFO:6275:osrf_system.c:195:] Bootstrapping
system with domain localhost, port 5222, and unixpath (null)
opensrf 2007-04-24 03:27:19 [WARN:6275:transport_session.c:422:] Error
connecting to jabber
opensrf 2007-04-24 03:27:19 [INFO:6275:transport_session.c:406:]
Received <error> message with type auth and code 401
opensrf 2007-04-24 03:27:19 [WARN:6275:transport_session.c:506:] Error
in IQ packet: code 401
opensrf 2007-04-24 03:27:19 [WARN:6275:transport_session.c:507:] Error
401 means not authorized
opensrf 2007-04-24 03:27:19 [ERR :6275:osrf_system.c:67:] Unable to
bootstrap

In the router log I get this:
router 2007-04-24 03:27:13 [INFO:6260:osrf_router_main.c:78:] Router
connecting as: server: localhost port: 5222 user: router resource:
router
router 2007-04-24 03:27:13 [INFO:6260:osrf_router_main.c:91:] Router
adding trusted server: localhost
router 2007-04-24 03:27:13 [INFO:6260:osrf_router_main.c:94:] Router
adding trusted client: localhost
router 2007-04-24 03:27:13 [WARN:6260:transport_session.c:422:] Error
connecting to jabber
router 2007-04-24 03:27:13 [INFO:6260:transport_session.c:406:] Received
<error> message with type auth and code 401
router 2007-04-24 03:27:13 [WARN:6260:transport_session.c:506:] Error in
IQ packet: code 401
router 2007-04-24 03:27:13 [WARN:6260:transport_session.c:507:] Error
401 means not authorized

and finally in the ejabberd log there is this:
=INFO REPORT==== 2007-04-24 04:03:54 ===
I(<0.1638.0>:ejabberd_c2s:417): (#Port<0.1723>) Failed legacy
authentication for
ejabberd at localhost/opensrf.settings_listener_at_tamarak.wlu.ca_7693

I have this feeling that I am getting very close thanks to everyones
help. 
Starting OpenSRF Router
./osrf_ctl.sh: line 110: opensrf_router: command not found
Starting OpenSRF Perl
        (in cleanup) Dying 7691 at
/openils/lib/perl5/OpenSRF/UnixServer.pm line 21
       
OpenSRF::UnixServer::DESTROY('OpenSRF::UnixServer=HASH(0x8b0305c)')
called at /openils/lib/perl5/OpenSRF/System.pm line 317
        eval {...} called at /openils/lib/perl5/OpenSRF/System.pm line
317
       
OpenSRF::System::launch_settings('OpenSRF::System=HASH(0x814ec28)')
called at /openils/lib/perl5/OpenSRF/System.pm line 159
        OpenSRF::System::bootstrap('OpenSRF::System') called at -e line
1

  * ! EXCEPTION ! *
TYPE: OpenSRF::EX::Jabber
Mess: Jabber Exception
Mess:  * ejabberd at localhost/system_client_drone_at_tamarak.wlu.ca:
Unable to authenticate: <iq type='error' id='123'>
Mess: <query xmlns='jabber:iq:auth'>
Mess: <username>*****</username>
Mess: <password>*****</password>
Mess: <resource>system_client_drone_at_tamarak.wlu.ca_7686</resource>
Mess: </query>
Mess: <error code='401' type='auth'><not-authorized
xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/></error></iq>
Loc.: 535 OpenSRF::Transport::SlimJabber::Client
Loc.: /openils/lib/perl5/OpenSRF/Transport/SlimJabber/Client.pm
Time: Tue Apr 24 04:03:54 2007
Starting OpenSRF C
./osrf_ctl.sh: line 138: opensrf-c: command not found

In the osrfsyslog file I get this:
opensrf 2007-04-24 03:27:18 [INFO:6275:osrf_system.c:195:] Bootstrapping
system with domain localhost, port 5222, and unixpath (null)
opensrf 2007-04-24 03:27:19 [WARN:6275:transport_session.c:422:] Error
connecting to jabber
opensrf 2007-04-24 03:27:19 [INFO:6275:transport_session.c:406:]
Received <error> message with type auth and code 401
opensrf 2007-04-24 03:27:19 [WARN:6275:transport_session.c:506:] Error
in IQ packet: code 401
opensrf 2007-04-24 03:27:19 [WARN:6275:transport_session.c:507:] Error
401 means not authorized
opensrf 2007-04-24 03:27:19 [ERR :6275:osrf_system.c:67:] Unable to
bootstrap

In the router log I get this:
router 2007-04-24 03:27:13 [INFO:6260:osrf_router_main.c:78:] Router
connecting as: server: localhost port: 5222 user: router resource:
router
router 2007-04-24 03:27:13 [INFO:6260:osrf_router_main.c:91:] Router
adding trusted server: localhost
router 2007-04-24 03:27:13 [INFO:6260:osrf_router_main.c:94:] Router
adding trusted client: localhost
router 2007-04-24 03:27:13 [WARN:6260:transport_session.c:422:] Error
connecting to jabber
router 2007-04-24 03:27:13 [INFO:6260:transport_session.c:406:] Received
<error> message with type auth and code 401
router 2007-04-24 03:27:13 [WARN:6260:transport_session.c:506:] Error in
IQ packet: code 401
router 2007-04-24 03:27:13 [WARN:6260:transport_session.c:507:] Error
401 means not authorized

and finally in the ejabberd log there is this:
=INFO REPORT==== 2007-04-24 04:03:54 ===
I(<0.1638.0>:ejabberd_c2s:417): (#Port<0.1723>) Failed legacy
authentication for
ejabberd at localhost/opensrf.settings_listener_at_tamarak.wlu.ca_7693

I have this feeling that I am getting very close thanks to everyones
help. 

================================
Rene Paquin, MCSE
Library Network Administrator
Wilfrid Laurier University
Waterloo, Ontario, Canada
(519)884-0710 x3795
rpaquin at wlu.ca
**********************************************

>>> don.mcmorris at gmail.com 04/20/07 5:26 PM >>>
Jabber is a critical (but separate) part of the OpenSRF system
(OpenSRF is the backend of Evergreen).  EJabberd is one of the more
popular choices.  For development, a jabber server built in-house was
made (called ChopChop).  I believe it's pretty well depreciated in
favor of EJabberD now.

EJabberd is a separate program.  Once installed, and the appropriate
users are set up, it will need to be started before the OpenSRF
system.

If you have a jabber server installed, make sure it's listening on the
right IP and port.  "Netstat -anp" should give you an output to show
what daemons are listening.  Ensure that your jabberd is listening on
5222 on 127.0.0.1 or 0.0.0.0.  If it's running on your LAN IP, you
will need to change your configuration (either the jabber
configuration or the OpenSRF configuration... it's your call).

If everything looks to be running, make sure that it's not firewalled
or otherwise blocked/occupied.

--Don

On 4/20/07, Rene Paquin <rpaquin at wlu.ca> wrote:
> Given the problems that i was having in my earlier attempt to install
> piunes I decided to do a complete reinstall again and this time
document
> everything that i did.  I have gotten as far as trying to start the
> system with the following command...
> ./osrf_ctl.sh -d /tmp/ -p /openils/conf/bootstrap.conf -c
> /openils/conf/opensrf_core.xml -a start_all
>
> and i get this as a result..
>
> Starting OpenSRF Router
> !!!! Unable to connect router to jabber server localhost...
> exitingStarting OpenSRF Perl
> Use of uninitialized value in string eq at
> /openils/lib/perl5/OpenSRF/System.pm line 155.
> Starting OpenSRF C
> Loading OpenSRF host tamarak.wlu.ca with bootstrap config
> /openils/conf/opensrf_core.xml and config context opensrf
> tamarak:/openils/bin$   * ! EXCEPTION ! *
> TYPE: OpenSRF::EX::Jabber
> Mess: Jabber Exception
> Mess:  Could not connect to Jabber server: Invalid argument
> Loc.: 496 OpenSRF::Transport::SlimJabber::Client
> Loc.: /openils/lib/perl5/OpenSRF/Transport/SlimJabber/Client.pm
> Time: Fri Apr 20 09:16:00 2007
>
>
> When i try to connect by telnet I get this
> tamarak:/openils/bin$ telnet localhost 5222
> Trying 127.0.0.1...
> telnet: Unable to connect to remote host: Connection refused
>
> I have looked in various configuration files and I cannot see anything
> out of the ordinary.  At least I think.
> If anyone can point me in the right direction it would be most
> appreciated.
>
> I am also ahving problems installing the javascript::spidermonkey
> module.
>
> Thanks,
>
> Rene
>
> As for the documentatioon this is what i have so far and i will
continue
> it until I have a working system.  (This is long)
>
> Platform - Debian version Etch
> IP - 205.189.23.14
> Host - tamarak.wlu.ca
>
> 1 - install Debian Etch
>
>     * desktop and standard environment
>     * install all updates to Etch
>
> 2 - install pre-requisites to Pine
>
>     * install postgresql8.1
>           o install base package
>                 + apt-get install postgresql-8.1
postgresql-contrib-8.1
> postgresql-doc-8.1 postgresql-plperl-8.1 postgresql-server-dev-8.1
>           o install contrib package
>                 + su postgres
>                 + psql template1 <
> /usr/share/postgresql/8.1/contrib/tsearch2.sql
>                 + psql template1 <
> /usr/share/postgresql/8.1/contrib/tablefunc.sql
>
>         * create database and add languages
>               o createlang plpgsql -d template1
>               o createdb -E UNICODE evergreen
>               o createlang plperl -d evergreen
>               o createlang plperlu -d evergreen
>
>         * change db user password
>               o psql
>               o alter user postgres password 'b******h';
>               o \q
>
>
> 3 - install apache2 and mod-perl2
>
>     *   apt-get install apache2-mpm-prefork apache2-prefork-dev
> libapache2-mod-perl2 apache2-utils
>
>
> 4 - install perl modules
>
>     * add following sources to the /etc/apt/sources.list file
>           o deb http://users.adelphia.net/~david.everly emilda/sarge/
>           o deb http://debian.pkgs.cpan.org/debian unstable main
>     * run apt-get update
>     * install modules
>           o apt-get install \
>              cpan-libtime-hires-perl \
>              libcache-memcached-perl \
>              libcgi-perl \
>              libclass-dbi-abstractsearch-perl \
>              libclass-dbi-perl \
>              libdatetime-perl \
>              libdatetime-format-builder-perl \
>              libdatetime-timezone-perl \
>              libdbd-pg-perl \
>              libdbd-sqlite3-perl \
>              libdbi-perl \
>              liberror-perl \
>              libexception-class-perl \
>              libgd-graph3d-perl \
>              libmarc-record-perl \
>              libmd5-perl \
>              libnet-server-perl \
>              libnet-z3950-perl \
>              libspreadsheet-writeexcel-perl \
>              libtemplate-perl \
>              libtext-aspell-perl \
>              libtext-csv-perl \
>              libunix-syslog-perl \
>              libwww-perl \
>              libxml-libxml-perl \
>              libxml-libxslt-perl \
>              libxml-perl \
>              libxml-sax-perl \
>              libxml-simple-perl \
>              libmarc-charset-perl \
>              libdatetime-format-builder-perl \
>              libuniversal-require-perl \
>              liblog-log4perl-perl
>           o  need to install DateTime::Format::ISO8601 or
> Javascript::SpiderMonkey, manually
>                 + download the modules from cpan.org and extract
>                 + apt-get install dh-make-perl devscripts
> libmodule-build-perl
>                 + install DateTime::Format::ISO8601
>                       # dh-make-perl --notest --build
> DateTime-Format-ISO8601-0.06
>                       # dpkg -i
> libdatetime-format-iso8601-perl_0.06-1_all.deb
>                       # install javascript::Spidermonkey
>                             * requires that Spidermonkey ver. 1.5 or
> better installed
>
>                 * problems installing javascript::spidermonkey   COME
> BACK TO IT
>
>     * apt-get install libxml2 libxml2-dev
>     * apt-get install libxslt1.1 libxslt1-dev
>     * apt-get install memcached libevent-dev libmemcache0
> libmemcache-dev
>     * apt-get install yaz libyaz2 libyaz2-dev
>     * apt-get install aspell libaspell-dev aspell-en
>     * apt-get install libgd2-xpm libgd2-xpm-dev
>     * apt-get install libreadline5-dev
>     * apt-get install automake
>     * apt-get install erlang ejabberd
>     * libdbi and libdbdpgsql 0.8.1
>           o add source deb http://libdbi.sourceforge.net/debian
testing
> main to /etc/apt/sources.list file
>           o apt-get update
>           o apt-get install libdbi0-dev libdbi0 libdbd-pgsql
>           o Create a conf file for ld in /etc/ld.so.conf.d so the
> dbdpgsql driver is recognized.
>                 + echo /usr/lib/dbd > /etc/ld.so.conf.d/dbd.conf
>                 + ldconfig
>                 + confirm by running - ldconfig -p |grep dbd
>                       # result should be - libdbdpgsql.so (libc6) =>
> /usr/lib/dbd/libdbdpgsql.so
>     * Then edit the Makefile at Open-ILS/src/c-apps/Makefile and
change
> every occurrence of -L/usr/local/lib/dbd to -L/usr/lib/dbd.
>           o
>
>
>
> 5 - Install Pines
>
>     * requires c-compiler
>           o  apt-get install build-essential
>     * to avoid the apxs error in the build process
>           o edit html.conf
>                 + add lines   #Dummy LoadModule directive to aid
module
> installations
>                                    #LoadModule dummy_module
> /usr/lib/apache2/modules/mod_dummy.so
>                 + restart apache   /etc/init.d/apache2/restart
>     * change to directory Evergreen
>           o make config
>                 + creates the config file for the install with the
> following contents
>                       # PREFIX="/openils/"
>                         BINDIR="/openils//bin/"
>                         LIBDIR="/openils//lib/"
>                         PERLDIR="/openils//lib//perl5/"
>                         INCLUDEDIR="/openils//include/"
>                         SOCK="/openils//var/sock"
>                         PID="/openils//var/pid"
>                         LOG="/openils//var/log"
>                         DATADIR="/openils//var/data"
>                         TMP="/root/Desktop/Evergreen/.tmp"
>                         APXS2="/usr/bin/apxs2"
>                         APACHE2_HEADERS="/usr/include/apache2"
>                         APR_HEADERS="/usr/include/apr-1.0/"
>                         LIBXML2_HEADERS="/usr/include/libxml2/"
>                         WEBDIR="/openils//var/web"
>                         TEMPLATEDIR="/openils//var/templates"
>                         ETCDIR="/openils//conf"
>                         CIRCRULESDIR="/openils//var/circ"
>                         CATALOGSCRIPTDIR="/openils//var/catalog"
>                         PENALTYRULESDIR="/openils//var/penalty"
>                         XSLDIR="/openils//var/xsl"
>                         TARGETS=( "opensrf_all" "openils_all"
> "evergreen_core")
>                         OPENSRFDIR="OpenSRF/src/"
>                         OPENILSDIR="Open-ILS/src/"
>                         EVERGREENDIR="Evergreen/"
>                         CGIDIR="/openils//var/cgi-bin"
>                         DBDRVR="Pg"
>                         DBHOST="127.0.0.1"
>                         DBPORT="5432"
>                         DBNAME="evergreen"
>                         DBUSER="postgres"
>                         DBPW="b******h"
>                         REPORTERDIR="/openils//var/reporter"
>                         ADMINDIR="/openils//var/admin"
>           o export CFLAGS=-D_LARGEFILE64_SOURCE
>           o make
>           o make install
>                 + as the install populates the database you will be
> required to enter the database password a number of times
>           o chown -R opensrf:opensrf /openils/
>
>
> 6 - Apache config
>
>     * edit /etc/apache2/httpd.conf
>           o add the following lines to load some modules
>                 + LoadModule osrf_json_gateway_module
> /usr/lib/apache2/modules/osrf_json_gateway.so
>                   LoadModule xmlent_module
> /usr/lib/apache2/modules/mod_xmlent.so
>                   LoadModule cache_module
> /usr/lib/apache2/modules/mod_cache.so
>                   LoadModule disk_cache_module
> /usr/lib/apache2/modules/mod_disk_cache.so
>                   LoadModule rewrite_module
> /usr/lib/apache2/modules/mod_rewrite.so
>                   LoadModule expires_module
> /usr/lib/apache2/modules/mod_expires.so
>                   LoadModule include_module
> /usr/lib/apache2/modules/mod_include.so
>                   LoadModule ssl_module
> /usr/lib/apache2/modules/mod_ssl.so
>           o in order for the above modules to load properly the
> ld.so.conf file needs to be edited and the following lines added
>                 + /usr/local/lib/dbd
>                   /openils/lib/
>                 + run ldconfig
>                 + restart apache2  /etc/init.d/apache2 restart
>           o download the following files from the cvs repository
> http://open-ils.org/cgi-bin/viewcvs.cgi/ILS/Open-ILS/examples/apache/
>                 + eg.conf
>                 + eg_vhost.conf
>                 + startup.pl
>           o eg.conf - directory - /etc/apache2/sites-available
>                 + contents may need to be edited
>           o eg_vhost.conf - resides in /etc/apache2/    - is called by
> the eg.conf file
>                 + contents may need to be edited
>           o  need to create a symbolic link from
sites-available/eg.conf
> to sites-enabled/eg.conf
>                 + ln /etc/apache2/sites-available/eg.conf
>                 + restart apache2
>                       # /etc/init.d/apache2 restart
>           o need to create an ssl certificate
>                 + run in root terminal - openssl req -new -x509 -nodes
> -out server.crt -keyout server.key and follow the promtps
>                 + create folder ssl in /etc/apache2
>                 + copy files server.crt and server.key into
> /etc/apache2/ssl
>                 + restart apache2
>                       # /etc/init.d/apache2 restart
>
> 7 - Starting the system
>
>     *     starting memcached
>           o /usr/bin/memcached -u nobody -p 10101 -l 127.0.0.1 -d
>     * starting openils
>           o ./osrf_ctl.sh -d /tmp/ -p /openils/conf/bootstrap.conf -c
> /openils/conf/opensrf_core.xml -a start_all
>                 + from the /openils/bin directory
>                 +  a couple of environment paths to set
>                       # export PATH=/openils/bin:$PATH
>                       # export PERL5LIB=/openils/lib/perl5:$PERL5LIB
>           o configure ejjaberd
>                 + edit /etc/ejabberd/ejabberd.cfg
>                       # change all max_stanza_size values to 2000000
>                       # change {shaper, normal, {maxrate, 1000}}
maxrate
> to 50000
>                       # comment out mod_offline line
>
>
>
>
>
>



More information about the Open-ils-dev mailing list