---------------
Christof Meerwald@blog.www

home
> blog
>> 641

translate to German (by SYSTRAN)

Weblog RDF feed, Atom feed

[previous] / [up] [overview] [down] / [next]

Mon Jul 12 20:45:16 2010 GMT: Network Infrastructure Updates

Sat Jul 10 08:21:49 2010 GMT: Free vServer

Sun Jun 27 18:59:52 2010 GMT: libloudmouth bug

I have just filed a bug against libloudmouth which prevents Gossip from properly reconnecting to a Jabber server when using SASL authentication.

Fri Jun 25 04:25:54 2010 GMT: Insomniac

Even at 5 o'clock in the morning you are not alone jogging around Battersea Park...

Sun Jun 20 19:09:34 2010 GMT: netbsd 5.1rc on Linux KVM

Just a quick note: the netbsd 5.1 release candidate for AMD64 appears to work fine in a KVM virtual machine on Ubuntu lucid lynx (netbsd 5.0 for AMD64 was known not to work inside a KVM virtual machine).

Sun Jun 20 19:04:48 2010 GMT: Giant PyXMPP Memory Leak

Shortly after last week's update of edge.cmeerw.net it became apparent that there was a giant memory leak somewhere in PyXMPP. Interestingly, when JabRSS was running on Ubuntu 8.04, it only leaked a few MB per day (and I had actually hoped that the upgrade would improve things), but after the upgrade, the leak increased about tenfold to more than 100 MB per day.

Looking at how PyXMPP has been implemented, the likely culprit appears to be the python libxml2 library (or the way it's being used). As debugging these things is extremely difficult, I finally decided to glue together my own little XMPP library based on Python's ElementTree. Yes, it does smell like not-invented-here syndrome, but I am a bit fed up with the quality of PyXMPP (although it looked fine on the surface) and did't want to take the risk of trying another Python XMPP library (xmpppy appears to be the other alternative).

When developing an XMPP library, although it's largely just XML, there are two things that make it a bit more complicated than it should be.

The first issue is that you need to be able to parse the XML stream incrementally, but ideally you will still want to have some DOM-like interface. PyXMPP had to implement some really ugly hacks to get that part working - ElementTree is a lot better in this respect.

The second issue is that the XMPP spec is quite strict on how namespaces should be represented in the outgoing XML stream. This again caused huge problems when you try to use a standard XML library - and ElementTree isn't ideal for this use case either, but it's not as bad as the hacks required for libxml2.

To sum it up, JabRSS is now already running with my new (and extremely lightweight) xmpplify library. I am sure, there are still a few rough edges around, but at least memory usage appears to be stable so far.

BTW, one final note: establishing the XMPP connection (including authentication) appears to be quite complex as well with around half a dozen messages required.

Wed Jun 16 06:03:37 2010 GMT: Free INGATE VServers

Maybe I am already too late to enter the free VServer giveaway, but let's see... (update: looks like I missed it)

Sat Jun 12 20:56:11 2010 GMT: Running Ubuntu Lucid Lynx with Kernel 2.6.26

Sun Jun 06 11:29:19 2010 GMT: JabRSS Migration to PyXMPP

Sat May 29 13:35:22 2010 GMT: PyXMPP Bug

Sun May 02 09:47:48 2010 GMT: IPv6 Reverse DNS

Fri Apr 30 21:02:57 2010 GMT: Native IPv6 Connectivity

---------------

This Web page is licensed under the Creative Commons Attribution - NonCommercial - Share Alike License. Any use is subject to the Privacy Policy.

Revision: 1.14, cmeerw.org/blog/641.html
Last modified: Mon Sep 03 18:19:55 2018
Christof Meerwald <cmeerw@cmeerw.org>
XMPP: cmeerw@cmeerw.org