[JDEV] non-unicode XML crashes jabberd

Martin Lesser jabber-adm at better-com.de
Mon Sep 9 05:17:46 CDT 2002


The last days our jabberd (1.4.2) crashed two times, both times a client
(Gabber)[1] using non-unicode characters was the reason.

The IMHO relevant last lines from the log-files:

     2002-09-07 13:36:21.696523500 deliver.c:678 delivering to instance 'xdb'
     2002-09-07 13:36:21.696696500 xdb_file.c:172 handling xdb request <xdb type='set' ...</xdb>
     2002-09-07 13:36:21.696844500 xdb_file.c:109 loading /home/jabber/spool/jud/global.xdb
     2002-09-07 13:36:21.697376500 deliver.c:474 DELIVER 1:jud <xdb type='result' ...</xdb>
     2002-09-07 13:36:21.697487500 deliver.c:678 delivering to instance 'dnsrv'
     2002-09-07 13:36:21.697651500 xdb.c:52 xdb_results checking xdb packet <xdb type... </xdb>
!!-> 2002-09-07 13:36:21.697770500 xdb_file.c:272 decaching pz<90>íbber/spool/jud/global.xdb
??-> 2002-09-07 13:36:21.949186500 dnsrv.c:155 dnsrv: Read error on coprocess(1): 0 Success
     2002-09-07 13:36:21.949236500 dnsrv.c:169 DNSRV CHILD: out of loop.. exiting normal

     2002-09-07 14:36:15.793504500 xdb_file.c:109 loading /home/jabber/spool/jud/global.xdb
     2002-09-07 14:36:15.793766500 xdb_file.c:129 caching /home/jabber/spool/jud/global.xdb
     2002-09-07 14:36:15.794655500 xdb.c:52 xdb_results checking xdb packet <xdb type...</xdb>
!!-> 2002-09-07 14:36:15.794821500 xdb_file.c:272 decaching (gȩ#@bber/spool/jud/global.xdb
??-> 2002-09-07 14:36:15.816514500 dnsrv.c:155 dnsrv: Read error on coprocess(1): 0 Success
     2002-09-07 14:36:15.816560500 dnsrv.c:169 DNSRV CHILD: out of loop.. exiting normal

As you can see xdb_file.c tried to handle garbage-characters when
decaching the global.xdb[2]

At the moment I don't understand from which point xdb_file.c gets this
garbage, this garbage appears _only_ when global.xdb is decached _and_ a
client with wrong/none unicode is involved.

Also I don't understand why dnsrv.c claims PID 1 (init) as its parent
process. We run jabberd under control of supervise[3] so jabberd is
restarted automaticly if it dies with the disadvantage of loosing all
established connections.

TIA, Martin

Footnotes: 
[1]  It's not a Gabber-specific problem which is described under
http://sourceforge.net/tracker/index.php?func=detail&aid=570477&group_id=1934&atid=101934
[2]  We use <timeout>0</timeout> in the <xdb_file>-section so no caching is done
[3]  part of http://cr.yp.to/daemontools.html



More information about the JDev mailing list