Bacula-users

[Bacula-users] Getting err=22 message in dbcheck

2012-06-14 21:48:32
Subject: [Bacula-users] Getting err=22 message in dbcheck
From: "Steven A. Falco" <safalco AT optonline DOT net>
To: bacula-users AT lists.sourceforge DOT net
Date: Thu, 14 Jun 2012 21:46:18 -0400
I've been using bacula successfully for a number of years.
I just upgraded to Fedora 17, which brought in bacula
version 5.2.6.

I have almost everything working, but catalog backups are
failing.  I traced this to the RunBeforeJob, which is set
to /usr/libexec/bacula/make_catalog_backup.pl MyCatalog

The perl script fails, because of an error return code from
/usr/sbin/dbcheck -B -c /etc/bacula/bacula-dir.conf

Here is what I see if I run dbcheck manually:

saf# dbcheck -B -c /etc/bacula/bacula-dir.confcatalog=MyCatalog
db_name=bacula
db_driver=
db_user=bacula
db_password=
db_address=
db_port=0
db_socket=
db_type=PostgreSQL
working_dir=/var/spool/bacula
14-Jun 21:23 dbcheck: Fatal Error at postgresql.c:647 because:
rwl_writelock failure. stat=22: ERR=Invalid argument
14-Jun 21:23 dbcheck: Fatal Error at postgresql.c:661 because:
rwl_writeunlock failure. stat=22: ERR=Invalid argument

Note that dbcheck emits perfectly good output, but it then
exits with an error.

I tracked this down through the C/C++ code, and it is happening
in function print_catalog_details(), on the line:

        db_close_database(NULL, db);

I dug down through the various library routines, and ended up
here:

int rwl_writelock_p(brwlock_t *rwl, const char *file, int line)
{
   int stat;

   if (rwl->valid != RWLOCK_VALID) {
      return EINVAL;
   }

In other words, the call to rwl_writelock_p is returning EINVAL
because the rwl is not valid.  (I added a printf right before
the return statement, so I am sure that this is the place the
EINVAL (err 22) comes from.)

Again, dbcheck puts out good data; it just has problems cleaning
up at the end.  And everything else works - I can run backups,
do restores, etc.  It is just the catalog backup that has problems.

I'm not really sure where to go from here.  I've hacked around the
problem by hard-coding the appropriate strings into the perl script
and bypassing dbcheck entirely.  But I'd surely like to fix it
properly...

Thoughts?

        Steve

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Bacula-users mailing list
Bacula-users AT lists.sourceforge DOT net
https://lists.sourceforge.net/lists/listinfo/bacula-users

<Prev in Thread] Current Thread [Next in Thread>