Hi all, I would like to report problem with btape tests with bareos-storage-tape package in versions greater than 14.2.
My environment is CentOS 6.8 i686. I have Dell PowerVault 124T tape library attached to server for backup purpose. I installed bareos 14.2 and btape test works fine. I configured backups: tape drive and auto loader work like expected. I wanted to move to version 15.2 to test vmware plugin, uninstalled version 14.2, installed version 15.2 (via yum from bareos repository) but btape test reports errors. I tried also version 16.3, same results. When I return to version 14.2 everything works normally. I thought that problem is may be with block size but even when I set in bareos tape device definition fixed block size I can't pass btape tests with versions 15.2 and 16.3. Did anybody experience same problem. Thanks for answers and help, Boris Here are results of tests #wget -O /etc/yum.repos.d/bareos.repo http://download.bareos.org/bareos/experimental/nightly/CentOS_6/bareos:master.repo #yum install bareos-storage-tape /etc/bareos/bareos-sd.d/device/FileStorage.conf Autochanger { Name = PV-124T Device = ULTRIUM-TD3 Changer Device = /dev/sg6 Changer Command = "/usr/lib/bareos/scripts/mtx-changer %c %o %S %a %d" } Device { Name = ULTRIUM-TD3 Media Type = LTO-3 Archive Device = /dev/nst0 Autochanger = yes AutomaticMount = yes AlwaysOpen = yes } # btape -v /dev/nst0 Tape block granularity is 1024 bytes. btape: butil.c:274-0 Using device: "/dev/nst0" for writing. btape: btape.c:482-0 open device "ULTRIUM-TD3" (/dev/nst0): OK *test === Write, rewind, and re-read test === I'm going to write 10000 records and an EOF then write 0 records and an EOF, then rewind, and re-read the data to verify that it is correct. This is an *essential* feature ... btape: btape.c:1167-0 Wrote 10000 blocks of 0 bytes. btape: btape.c:614-0 Wrote 1 EOF to "ULTRIUM-TD3" (/dev/nst0) btape: btape.c:1183-0 Wrote 10000 blocks of 0 bytes. btape: btape.c:614-0 Wrote 1 EOF to "ULTRIUM-TD3" (/dev/nst0) btape: btape.c:1225-0 Rewind OK. 05-Sep 13:43 btape JobId 0: Error: block.c:333 Volume data error at 0:0! Block checksum mismatch in block=0 len=64448: calc=aab08ced blk=b1d8a199 btape: block.c:96-0 Dump block with checksum error 8c0a888: size=64448 BlkNum=0 Hdrcksum=b1d8a199 cksum=aab08ced btape: block.c:109-0 Rec: VId=0 VT=0 FI=0 Strm=0 len=64412 p=8c0ea00 btape: block.c:109-0 Rec: VId=0 VT=0 FI=1431655765 Strm=1431655765 len=1431655765 p=8c1e5a8 btape: btape.c:1245-0 Read block 1 failed! ERR=Input/output error Or # btape -v /dev/nst0 Tape block granularity is 1024 bytes. btape: butil.c:274-0 Using device: "/dev/nst0" for writing. btape: btape.c:482-0 open device "ULTRIUM-TD3" (/dev/nst0): OK *test === Write, rewind, and re-read test === I'm going to write 10000 records and an EOF then write 0 records and an EOF, then rewind, and re-read the data to verify that it is correct. This is an *essential* feature ... btape: btape.c:1167-0 Wrote 10000 blocks of 0 bytes. btape: btape.c:614-0 Wrote 1 EOF to "ULTRIUM-TD3" (/dev/nst0) btape: btape.c:1183-0 Wrote 10000 blocks of 0 bytes. btape: btape.c:614-0 Wrote 1 EOF to "ULTRIUM-TD3" (/dev/nst0) btape: btape.c:1225-0 Rewind OK. btape: btape.c:1257-0 Bad data in record. Expected 1, got 20000 at byte 0. Test failed! * [root@rajdolina ~]# btape -v /dev/nst0 Tape block granularity is 1024 bytes. btape: butil.c:274-0 Using device: "/dev/nst0" for writing. btape: btape.c:482-0 open device "ULTRIUM-TD3" (/dev/nst0): OK *test === Write, rewind, and re-read test === I'm going to write 10000 records and an EOF then write 0 records and an EOF, then rewind, and re-read the data to verify that it is correct. This is an *essential* feature ... btape: btape.c:1167-0 Wrote 10000 blocks of 0 bytes. btape: btape.c:614-0 Wrote 1 EOF to "ULTRIUM-TD3" (/dev/nst0) btape: btape.c:1183-0 Wrote 10000 blocks of 0 bytes. btape: btape.c:614-0 Wrote 1 EOF to "ULTRIUM-TD3" (/dev/nst0) btape: btape.c:1225-0 Rewind OK. btape: btape.c:1257-0 Bad data in record. Expected 1, got 20000 at byte 0. Test failed! * === Autochanger test === 3301 Issuing autochanger "loaded" command. Slot 1 loaded. I am going to unload it. 3302 Issuing autochanger "unload 1 0" command. unload status=OK 0 3303 Issuing autochanger "load 1 0" command. 3303 Autochanger "load 1 0" status is OK. btape: btape.c:482-0 open device "ULTRIUM-TD3" (/dev/nst0): OK btape: btape.c:1583-0 Rewound "ULTRIUM-TD3" (/dev/nst0) btape: btape.c:1590-0 Wrote EOF to "ULTRIUM-TD3" (/dev/nst0) The test autochanger worked!! Version 14.2 btape tests works normally with version 14.2 wget -O /etc/yum.repos.d/bareos.repo http://download.bareos.org/bareos/release/14.2/RHEL_6/bareos.repo yum install bareos-storage-tape # btape -v /dev/nst0 Tape block granularity is 1024 bytes. btape: butil.c:301-0 Using device: "/dev/nst0" for writing. btape: btape.c:484-0 open device "ULTRIUM-TD3" (/dev/nst0): OK *test === Write, rewind, and re-read test === I'm going to write 10000 records and an EOF then write 0 records and an EOF, then rewind, and re-read the data to verify that it is correct. This is an *essential* feature ... btape: btape.c:1171-0 Wrote 10000 blocks of 0 bytes. btape: btape.c:616-0 Wrote 1 EOF to "ULTRIUM-TD3" (/dev/nst0) btape: btape.c:1187-0 Wrote 10000 blocks of 0 bytes. btape: btape.c:616-0 Wrote 1 EOF to "ULTRIUM-TD3" (/dev/nst0) btape: btape.c:1229-0 Rewind OK. 10000 blocks re-read correctly. Got EOF on tape. 10000 blocks re-read correctly. === Test Succeeded. End Write, rewind, and re-read test === btape: btape.c:1297-0 Block position test btape: btape.c:1309-0 Rewind OK. Reposition to file:block 0:4 Block 5 re-read correctly. Reposition to file:block 0:200 Block 201 re-read correctly. Reposition to file:block 0:9999 Block 10000 re-read correctly. Reposition to file:block 1:0 Block 10001 re-read correctly. Reposition to file:block 1:600 Block 10601 re-read correctly. Reposition to file:block 1:9999 Block 20000 re-read correctly. === Test Succeeded. End Write, rewind, and re-read test === === Append files test === This test is essential to Bareos. I'm going to write one record in file 0, two records in file 1, and three records in file 2 btape: btape.c:586-0 Rewound "ULTRIUM-TD3" (/dev/nst0) btape: btape.c:1928-0 Wrote one record of 64412 bytes. btape: btape.c:1930-0 Wrote block to device. btape: btape.c:616-0 Wrote 1 EOF to "ULTRIUM-TD3" (/dev/nst0) btape: btape.c:1928-0 Wrote one record of 64412 bytes. btape: btape.c:1930-0 Wrote block to device. btape: btape.c:1928-0 Wrote one record of 64412 bytes. btape: btape.c:1930-0 Wrote block to device. btape: btape.c:616-0 Wrote 1 EOF to "ULTRIUM-TD3" (/dev/nst0) btape: btape.c:1928-0 Wrote one record of 64412 bytes. btape: btape.c:1930-0 Wrote block to device. btape: btape.c:1928-0 Wrote one record of 64412 bytes. btape: btape.c:1930-0 Wrote block to device. btape: btape.c:1928-0 Wrote one record of 64412 bytes. btape: btape.c:1930-0 Wrote block to device. btape: btape.c:616-0 Wrote 1 EOF to "ULTRIUM-TD3" (/dev/nst0) btape: btape.c:484-0 open device "ULTRIUM-TD3" (/dev/nst0): OK btape: btape.c:586-0 Rewound "ULTRIUM-TD3" (/dev/nst0) btape: btape.c:1441-0 Now moving to end of medium. btape: btape.c:637-0 Moved to end of medium. We should be in file 3. I am at file 3. This is correct! Now the important part, I am going to attempt to append to the tape. btape: btape.c:1928-0 Wrote one record of 64412 bytes. btape: btape.c:1930-0 Wrote block to device. btape: btape.c:616-0 Wrote 1 EOF to "ULTRIUM-TD3" (/dev/nst0) btape: btape.c:586-0 Rewound "ULTRIUM-TD3" (/dev/nst0) Done appending, there should be no I/O errors Doing Bareos scan of blocks: Block=19999 file,blk=0,1 blen=64448 First rec FI=0 SessId=0 SessTim=0 Strm=0 rlen=64412 1 block of 64448 bytes in file 1 End of File mark. Block=20000 file,blk=1,1 blen=64448 First rec FI=0 SessId=0 SessTim=0 Strm=0 rlen=64412 Block=20001 file,blk=1,2 blen=64448 First rec FI=0 SessId=0 SessTim=0 Strm=0 rlen=64412 2 blocks of 64448 bytes in file 2 End of File mark. Block=20002 file,blk=2,1 blen=64448 First rec FI=0 SessId=0 SessTim=0 Strm=0 rlen=64412 Block=20003 file,blk=2,2 blen=64448 First rec FI=0 SessId=0 SessTim=0 Strm=0 rlen=64412 Block=20004 file,blk=2,3 blen=64448 First rec FI=0 SessId=0 SessTim=0 Strm=0 rlen=64412 3 blocks of 64448 bytes in file 3 End of File mark. Block=20005 file,blk=3,1 blen=64448 First rec FI=0 SessId=0 SessTim=0 Strm=0 rlen=64412 1 block of 64448 bytes in file 4 End of File mark. Total files=4, blocks=7, bytes = 451,136 End scanning the tape. We should be in file 4. I am at file 4. This is correct! The above Bareos scan should have output identical to what follows. Please double check it ... === Sample correct output === 1 block of 64448 bytes in file 1 End of File mark. 2 blocks of 64448 bytes in file 2 End of File mark. 3 blocks of 64448 bytes in file 3 End of File mark. 1 block of 64448 bytes in file 4 End of File mark. Total files=4, blocks=7, bytes = 451,136 === End sample correct output === If the above scan output is not identical to the sample output, you MUST correct the problem or Bareos will not be able to write multiple Jobs to the tape. === Write, backup, and re-read test === I'm going to write three records and an EOF then backup over the EOF and re-read the last record. Bareos does this after writing the last block on the tape to verify that the block was written correctly. This is not an *essential* feature ... btape: btape.c:586-0 Rewound "ULTRIUM-TD3" (/dev/nst0) btape: btape.c:823-0 Wrote first record of 64412 bytes. btape: btape.c:834-0 Wrote second record of 64412 bytes. btape: btape.c:845-0 Wrote third record of 64412 bytes. btape: btape.c:616-0 Wrote 1 EOF to "ULTRIUM-TD3" (/dev/nst0) btape: btape.c:861-0 Backspaced over EOF OK. btape: btape.c:866-0 Backspace record OK. btape: btape.c:884-0 Block re-read correct. Test succeeded! === End Write, backup, and re-read test === === Forward space files test === This test is essential to Bareos. I'm going to write five files then test forward spacing btape: btape.c:586-0 Rewound "ULTRIUM-TD3" (/dev/nst0) btape: btape.c:1928-0 Wrote one record of 64412 bytes. btape: btape.c:1930-0 Wrote block to device. btape: btape.c:616-0 Wrote 1 EOF to "ULTRIUM-TD3" (/dev/nst0) btape: btape.c:1928-0 Wrote one record of 64412 bytes. btape: btape.c:1930-0 Wrote block to device. btape: btape.c:1928-0 Wrote one record of 64412 bytes. btape: btape.c:1930-0 Wrote block to device. btape: btape.c:616-0 Wrote 1 EOF to "ULTRIUM-TD3" (/dev/nst0) btape: btape.c:1928-0 Wrote one record of 64412 bytes. btape: btape.c:1930-0 Wrote block to device. btape: btape.c:1928-0 Wrote one record of 64412 bytes. btape: btape.c:1930-0 Wrote block to device. btape: btape.c:1928-0 Wrote one record of 64412 bytes. btape: btape.c:1930-0 Wrote block to device. btape: btape.c:616-0 Wrote 1 EOF to "ULTRIUM-TD3" (/dev/nst0) btape: btape.c:1928-0 Wrote one record of 64412 bytes. btape: btape.c:1930-0 Wrote block to device. btape: btape.c:1928-0 Wrote one record of 64412 bytes. btape: btape.c:1930-0 Wrote block to device. btape: btape.c:616-0 Wrote 1 EOF to "ULTRIUM-TD3" (/dev/nst0) btape: btape.c:1928-0 Wrote one record of 64412 bytes. btape: btape.c:1930-0 Wrote block to device. btape: btape.c:616-0 Wrote 1 EOF to "ULTRIUM-TD3" (/dev/nst0) btape: btape.c:586-0 Rewound "ULTRIUM-TD3" (/dev/nst0) btape: btape.c:1655-0 Now forward spacing 1 file. We should be in file 1. I am at file 1. This is correct! btape: btape.c:1667-0 Now forward spacing 2 files. We should be in file 3. I am at file 3. This is correct! btape: btape.c:586-0 Rewound "ULTRIUM-TD3" (/dev/nst0) btape: btape.c:1680-0 Now forward spacing 4 files. We should be in file 4. I am at file 4. This is correct! btape: btape.c:1698-0 Now forward spacing 1 more file. We should be in file 5. I am at file 5. This is correct! === End Forward space files test === Ah, I see you have an autochanger configured. To test the autochanger you must have a blank tape that I can write on in Slot 1. Do you wish to continue with the Autochanger test? (y/n): y === Autochanger test === 3301 Issuing autochanger "loaded" command. Slot 1 loaded. I am going to unload it. 3302 Issuing autochanger "unload 1 0" command. unload status=OK 0 3303 Issuing autochanger "load 1 0" command. 3303 Autochanger "load 1 0" status is OK. btape: btape.c:484-0 open device "ULTRIUM-TD3" (/dev/nst0): OK btape: btape.c:1585-0 Rewound "ULTRIUM-TD3" (/dev/nst0) btape: btape.c:1592-0 Wrote EOF to "ULTRIUM-TD3" (/dev/nst0) The test autochanger worked!! -- You received this message because you are subscribed to the Google Groups "bareos-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to bareos-users+unsubscr...@googlegroups.com. To post to this group, send email to bareos-users@googlegroups.com. For more options, visit https://groups.google.com/d/optout.