Support

Site Restoration

#38947 Backups Fail to Restore

Posted in ‘Site restoration’
This is a public ticket

Everybody will be able to see its contents. Do not include usernames, passwords or any other sensitive information.

Environment Information

PHP version
8.0.28
CMS Type
Joomla!
CMS Version
3.10.11
Backup Tool Version
8.2.8
Kickstart version
7.2.0

Latest post by nicholas on Thursday, 04 May 2023 10:35 CDT

JRayfield

I just purchased the Pro version of  Akeeba Backup for Joomla.  That's what I'm using for backups of my Joomla-based site.

I've does two backups now and tried to restore them.  Both times, I received this error part way through the restore:

" INVALID_FILE_HEADER_MULTIPART"

What might be causing this to happen?  As I mentioned, this has happened on two different sets of backups at this point.

 

John Rayfield, Jr.
Rayfield Communications
Springfield, MO
417-887-4663

 

nicholas
Akeeba Staff
Manager

Your backup is a multi-part, i.e. it consists of several files which have the same base name but different extensions. Assuming a JPA backup archive, the file extensions would be .jpa, .j01, .j02 and so on.

You need all of the files to be present to successfully restore such a backup archive. Please remember that these are not different archives, they are merely parts of the same backup archive.

Think of it like War and Peace. If it was printed in a single book the resulting tome would be too heavy and awkward to use. Therefore, it is usually printed in two books, Volume I and Volume II. You can not read them separately and make sense of Tolstoy's masterpiece; you have to read both of them, sequentially, and in the right order.

It's exactly the same with backup archives. When they are too big you cannot have them in a single, massive, awkward file; you split them into multiple files. The order these files are read are .j01, .j02, ...., .jpa (the .jpa file is the last volume of the multi-part archive).

If you only have the last volume, .jpa, the restoration script cannot make sense of it much like a reader only given Volume II of War and Peace would have no idea what is going on and give up in frustration.

Nicholas K. Dionysopoulos

Lead Developer and Director

🇬🇷Greek: native 🇬🇧English: excellent 🇫🇷French: basic • 🕐 My time zone is Europe / Athens
Please keep in mind my timezone and cultural differences when reading my replies. Thank you!

JRayfield

I completely understand about the multiple files involved in the backup.  All of these files have been uploaded to the new server using Filezilla, using binary mode transfer. And there's plenty of drive space available.  What else might I look for that might be causing this error. 

John 

nicholas
Akeeba Staff
Manager

Are you trying to restore the backup through the backend of your site, or via Kickstart?

There's a reason I'm asking. I will need to get a detailed log of what is happening during extraction. Each of these methods has a different way of being asked to produce a log.

Nicholas K. Dionysopoulos

Lead Developer and Director

🇬🇷Greek: native 🇬🇧English: excellent 🇫🇷French: basic • 🕐 My time zone is Europe / Athens
Please keep in mind my timezone and cultural differences when reading my replies. Thank you!

JRayfield

I'm using Kickstart.

John

nicholas
Akeeba Staff
Manager

Edit your kickstart.php file (or whatever you have renamed it). Towards the top you will find the line

//define('KSDEBUG', 1);

Change it so that it reads (remove the first two slashes):

define('KSDEBUG', 1);

Now proceed with trying to extract the backup archive. It will generate a file called debug.txt.

Put this file in a ZIP archive and attach the ZIP archive to your next reply. Only you and me can see it, even though this is a public ticket. It will help me understand what is going on under the hood.

Nicholas K. Dionysopoulos

Lead Developer and Director

🇬🇷Greek: native 🇬🇧English: excellent 🇫🇷French: basic • 🕐 My time zone is Europe / Athens
Please keep in mind my timezone and cultural differences when reading my replies. Thank you!

JRayfield

Here you go.  I see the error is occurring when Kickstart attempt to open the .j08 file.

John

JRayfield

I received an error trying to upload the file, even though it's well below the 32 MB limit.  So here it is zipped.

John

nicholas
Akeeba Staff
Manager

It looks like you have hit a hard limit.

The file that fails to extract is CentOS-7-x86_64-Everything-2009.iso. I am not putting the full path here because it's a public ticket; you can see the full path 20 lines before the very end of your log file. That's a 9.5GiB file as far as I can tell.

The JPA format uses 32-bit unsigned integers to express the file size of each file. This allows for files up to 4GiB to be stored in the archive. Your file is more than twice as big, leading to an overflow. This breaks the archive file headers, therefore the extraction.

Right now, the only thing you can do is exclude this file (and any other over 4GiB files) from the backup archive. Even if we revise the JPA format to use 64-bit integers (allowing file sizes up to 16 EiB) I think you'd have a very inconvenient site backup as it would be incredibly big for no good reason. A 10GiB file which will never change and can be easily obtained from a different mirror is best excluded from the backup, with a note on where to retrieve it from, or kept on its own in some off-site storage if you really don't trust that any of the hundreds of CentOS mirrors will be available in the future.

Nicholas K. Dionysopoulos

Lead Developer and Director

🇬🇷Greek: native 🇬🇧English: excellent 🇫🇷French: basic • 🕐 My time zone is Europe / Athens
Please keep in mind my timezone and cultural differences when reading my replies. Thank you!

Support Information

Working hours: We are open Monday to Friday, 9am to 7pm Cyprus timezone (EET / EEST). Support is provided by the same developers writing the software, all of which live in Europe. You can still file tickets outside of our working hours, but we cannot respond to them until we're back at the office.

Support policy: We would like to kindly inform you that when using our support you have already agreed to the Support Policy which is part of our Terms of Service. Thank you for your understanding and for helping us help you!