Hi,

Marc Schiffbauer wrote:

Finally got around to messing around with bacula again...

> The manual says that nnn being the same number for both settings
> means "fixed" blocksize.
> 
> As I understand it, your solutions should be to just set the
> "Minimum Block Size" so you get a good perfromance.
> 
> Minimum Block Size = 1048576

Unfortunately just setting a Minimum Block Size does not work. btape for 
instance will not work then. It dies with a glibc error. (See end of 
mail for full trace.

For instance with the following setting:

Minimum Block Size = 256000

[EMAIL PROTECTED]:/etc/bacula# btape -c bacula-sd.conf /dev/nst0
<snip>
test
<snip>
*** glibc detected *** malloc(): memory corruption: 0x080d9d90 ***

Setting both a Minimum Block Size and Maximum Block Size to the same 
value *does* seems to work with btape.

BTW, I tried using 1048576. Unfortunately this does not work. From 
src/stored/dev.c:

    if (dev->max_block_size > 1000000) {
       Jmsg3(jcr, M_ERROR, 0, _("Block size %u on device %s is too 
large, using default %u\n"),
          dev->max_block_size, dev->print_name(), DEFAULT_BLOCK_SIZE);

Oops.

Why can I not use > 1000000 bytes? This seems a *really* strange 
restriction. I can happily use blocks of several megabytes using tar.


======================================================================

Btape error:

[EMAIL PROTECTED]:/etc/bacula# btape -c bacula-sd.conf /dev/nst0
Tape block granularity is 1024 bytes.
btape: butil.c:285 Using device: "/dev/nst0" for writing.
btape: btape.c:368 open device "LTO-4" (/dev/nst0): OK
*test

=== Write, rewind, and re-read test ===

I'm going to write 1000 records and an EOF
then write 1000 records and an EOF, then rewind,
and re-read the data to verify that it is correct.

This is an *essential* feature ...

*** glibc detected *** malloc(): memory corruption: 0x080d9d90 ***
[EMAIL PROTECTED]:/etc/bacula# gdb `which btape`
GNU gdb 6.4-debian
Copyright 2005 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain 
conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i486-linux-gnu"...Using host libthread_db 
library "/lib/tls/i686/cmov/libthread_db.so.1".

(gdb) run -c /etc/bacula/bacula-sd.conf /dev/nst0
Starting program: /sbin/btape -c /etc/bacula/bacula-sd.conf /dev/nst0
[Thread debugging using libthread_db enabled]
[New Thread -1210566432 (LWP 2054)]
Tape block granularity is 1024 bytes.
btape: butil.c:285 Using device: "/dev/nst0" for writing.
btape: btape.c:368 open device "LTO-4" (/dev/nst0): OK
*test

=== Write, rewind, and re-read test ===

I'm going to write 1000 records and an EOF
then write 1000 records and an EOF, then rewind,
and re-read the data to verify that it is correct.

This is an *essential* feature ...


Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1210566432 (LWP 2054)]
0x08051eae in write_block_to_dev (dcr=0x80c9a40) at block.c:462
462              memset(block->bufp, 0, wlen-blen); /* clear garbage */
Current language:  auto; currently c++

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Bacula-users mailing list
Bacula-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bacula-users

Reply via email to