[wplug] Planet blog aggregator. [slightly OT]

Jonathan S. Billings billings at negate.org
Tue Apr 11 07:02:20 EDT 2006


Karlos Abel wrote:
> INFO:planet.runner:Loading cached data
> Traceback (most recent call last):
>   File "planet.py", line 254, in ?
>     main()
>   File "planet.py", line 142, in main
>     channel = planet.Channel(my_planet, feed_url)
>   File "planet/__init__.py", line 256, in __init__
>     cache_file = dbhash.open(cache_filename, "c", 0666)
>   File "//usr/lib/python2.2/dbhash.py", line 16, in open
>     return bsddb.hashopen(file, flag, mode)
> bsddb.error: (22, 'Invalid argument')

(I admit, I don't know about this software, and I'm not much of a python 
programmer, but I do recognise the error)

What you've got here, is the DB library returning the error 'Invalid 
argument'.  This is the prettified name for EINVAL, which corresponds to 
error #22 in errno.h on my linux system.

I looked in the dbopen man page, and the documentation says this about 
this error:

[EINVAL]
       A parameter has been specified (hash function,  pad  byte etc.)
       that  is  incompatible  with  the  current file specification or
       which is not meaningful for the function (for  example,  use  of
       the  cursor without prior initialization) or there is a mismatch
       between the version number of file and the software.

Most likely, the cache file is a BerkeleyDB that isn't recognizable to 
Python, because it's older than the version on your system.  You've 
probably got a version of BerkeleyDB that's newer than that of your web 
host.

If it's just a cache, just move it out of the way or delete it.  If it 
is absolutely necessary, it's probably going to require you convert it 
using one of the tools from sleepycat, or regenerate it from scratch.



-- 
Jonathan Billings <billings at negate.org>


More information about the wplug mailing list