No _parse_* routine defined on this driver
2008/10/09 filed under /perlAfter I released Catalyst::Authentication::Credential::Flickr version 0.02, FAIL messages poured in from CPAN testers (well, to be more precise, from one tester with multiple test machines).
The error the tests failed on was:
No _parse_* routine defined on this driver (If it is a filter, remember to
set the Parent property. If you call the parse() method, make sure to set a
Source. You may want to call parse_uri, parse_string or parse_file instead.)
[XML::LibXML::SAX::ChunkParser=HASH(0x83dab48)]
I was not able to reproduce the error and thus mailed the CPAN tester (ANDK). Not much later, Andreas informed me about the installed versions of several dependencies but even with those exact same versions, reproducing the error was impossible.
On closer look, it turned out the order of installing XML::SAX parsers really mattered, for that makes up the order of them in XML/SAX/ParserDetails.ini
As it turned out, ANDK had XML::LibXML::SAX::ChunkParser installed last and thus that module became the default parser module for XML::SAX. The author of that module is aware of this bug, and patched it in a newer release, but that didn't help me much.
I've spend way to much time debugging this, so I figured it'd be nice to at least write down the solution to this: erase the XML::LibXML::SAX::ChunkParser part out of ParserDetails.ini.
Since XML::Simple already has some checks for faulty modules, I've asked the author to add this module as well, so we can safely require a new version of XML::Simple in our Makefiles and bypass this bug.



Comments