Bacula-users

Re: [Bacula-users] Error 3915 Bad Job command

2012-05-05 13:43:39
Subject: Re: [Bacula-users] Error 3915 Bad Job command
From: Volker Böhm <volker AT vboehm DOT de>
To: bacula-users AT lists.sourceforge DOT net
Date: Sat, 05 May 2012 19:41:00 +0200
Am 04.05.2012 01:43, schrieb Tilman Schmidt:
Am 04.05.2012 00:25, schrieb Volker Böhm:
The director is version 5.0.1 on an Ubuntu 10.04 LTS Server. The version 
which was shipped/updated by the distribution.
One SD is also version 5.0.1 on the same machine.
The other (main) SD was 5.?.? on my Workstation, a Linux Mint 12 (Ubuntu 
11.10 clone). This was also the one, which was shipped with this 
distribution.

Some days ago I updated/reinstalled this Workstation to an Ubuntu 12.04 
(bacula version 5.2.6) and now every attempt to store anything via the 
SD on this machine does not work:
03-May 23:23 vbserver-dir JobId 1486: Start Backup JobId 1486, Job=lpasgg207.2012-05-03_23.23.57_15
03-May 23:27 vbserver-dir JobId 1486: Fatal error: Storage daemon rejected Job command: 3915 Bad Job command. stat=-1 CMD: JobId=1486 job=lpasgg207.2012-05-03_23.23.57_15 job_name=lpasgg207 client_name=lpasgg207-fd type=66 level=70 FileSet=lpasgg207 NoAttr=0 SpoolAttr=0 FileSetMD5=J6/Lb3tny3IJIz+BFnM0GC SpoolData=0 WritePartAfterJob=1 PreferMountedVols=1 SpoolSize=0 Resched=144058568
Does anyone know the reason for this behavior?

All (3-4) hits I had in googling this error are very old and point to 
version mismatchen between director and SD.
And that is indeed the reason. The director and SD should have the same
version. It's no problem if the FDs are older. (Except for the unfixed
bugs and missing features in that old versions, of course.)

But I think it's impossible 
to use the same version, if you have more than 5 or 10 Computers with 
several operating systems.
No, it's not impossible.

First of all, it's quite unusual to have 5 or 10 SDs. Most installations
have one or two, and in the majority of cases one of them will be on the
same machine as the director. So you only have to make sure that those
two or three machines run the same version.
Yes, you're right: I usually don't have that many SDs in an installation. But from what should I know that only the interface between the director and the SDs is version dependent. If also the FDs should have similar/equal versions, then it would be (nearly) impossible in a real network.

And if I make a full backup of one of my notebooks, I prefer to connect the target disk directly to this notebook to have 50 - 80 MB/s storage rate and not only 25 MB/s (1000 Mbit network) resp. 12 MB/s (100 Mbit). And so every notebook has an SD installed.

Second, you don't have to run the version that comes with the
distribution. I'd even say in most cases you shouldn't, as that version
is usually outdated. There are packages of the latest stable version
available for most common distributions, and you would be well advised
to run those instead of the older ones packaged with the distribution,
at least on your director and SDs.

And finally, if everything else fails, you can always compile exactly
the version you need from source.

Hi,
if Tilman is right I'm very sad, that the guys who made bacula seem to have no clue of the basics of software design :-(
  • An interface should never be changed without a severe reason.
  • If you need to change an interface, you should change it upward compatible.
  • If you can't be upward compatible for any reason, the two programs using the interface should be able to negotiate about using the old or the new version, to make sure that everything is working.

Every other approach ist bullshit! Especially when you have such an heterogeneous environment as a computer network.

But if this mistake has happened: What might be the solution?

1. Install the new packets (5.2.5) from Ubuntu 12.04 on the server (Ubuntu 10.4 LTS)? I think that will not work (libc6 >= 2.14 vs. 2.11, libpython2.7 >= 2.7 vs. no libpython2.7, ...) at all.

2. Install the old packets from ubuntu 10.04 on the Workstation to have an old (an compatible) SD? I think that won't work either without installing half of the internet :-) (that means 50+ packets) and to screw up the entire installation.

3. Compile bacula from the sources? The file INSTALL from the bacula 5.0.1 tarball says:

Note, in configuring Bacula, you cannot get by with a simple ./configure,
it is much more complicated than that (unfortunately).
and one example for the configure call is:

   CFLAGS="-g -O2 -Wall" \
          ./configure \
            --sbindir=$HOME/bacula/bin \
            --sysconfdir=$HOME/bacula/bin \
            --with-pid-dir=$HOME/bacula/bin/working \
            --with-subsys-dir=$HOME/bacula/bin/working \
            --enable-smartalloc \
            --with-mysql \
            --with-working-dir=$HOME/bacula/bin/working \
            --with-dump-email=your AT address DOT com \
            --with-job-email=your AT address DOT com \
            --with-smtp-host=localhost
Is there an example how to compile bacula 5.0.1 (I only need the SD and the FD) to work on Ubuntu?

And which Version to compile?

3a. Version 5.2.5 on the server to have an completely (nearly) up to date installation?

3b. Version 5.0.1 on the Workstation(s) to have a minimal effort?

Any suggestions?


Volker

------------------------------------------------------------------------------
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>