Symptoms
- CRX stops / doesn't start up anymore, and the following error is logged :
*ERROR* TarPersistenceManager: Failed to read bundle: cafebabe-cafe-babe-cafe-babecafebabe: java.io.IOException: File not found: 0
OR
*ERROR* TarPersistenceManager: Failed to read bundle: deadbeef-face-babe-cafe-babecafebabe: java.io.IOException: File not found: -32766
- The repository contains a file named data_32768.tar.
Cause
The Tar Persistence Manager works in append-only mode, and writes its data to files named data_<id>.tar When the <id> reaches 32768, the data from such data_32768.tar file can't be accessed.
Analysis, Resolution
In CRX 1.4.2, the default maximum size of the data_<id>.tar files is 64mb.
In CRX 2.x, the default maximum size of the data_<id>.tar files is 256mb.
To avoid reaching this limit, we recommend to increase the maximum file size of the data_<id>.tar files to at least 512 (512 MB). Please note that the maximum value is 1024 (1024 MB).
If you are hit by the problem, please inform GSG. The resolution is to stop CRX, delete all index*.tar files, rename all data*.tar files (but keeping the relative order), and start CRX.
To reconfigure the maximum file size, the repository.xml
configuration file and all workspace.xml
configuration files need to be modified. Please configure the maxFileSize
parameter as shown in the following example:
<PersistenceManager class="com.day.crx.persistence.tar.TarPersistenceManager">
...
<param name="maxFileSize" value="512" />
</PersistenceManager>
Affected Versions
1.3.X, 1.4.X, 2.0, 2.1 (fixed in CRX 2.2)