[JDEV] non-unicode XML crashes jabberd

Ralph Siemsen ralphs at blueairnetworks.com
Mon Sep 9 09:12:08 CDT 2002


Hi Martin,

Join the club ;)  I have been seeing this also.  The blame lies in the 
JUD somewhere, if you turn it off then it doesn't happen anymore.

I spent quite a while trying to debug it.  The problem isn't that 
non-unicode characters are being transmitted - but rather, that a buffer 
in memory is getting overwritten with a pointer (8 bytes on most archs).
I even had Temas and Nathan Sharp poking along with me, but we didn't 
find the culprit.

Sorry not to have a solution for you, but maybe you feel better knowing 
that you're not alone? :P

-Ralph


Martin Lesser wrote:
> 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






More information about the JDev mailing list