I set about packaging several large databases in some very basic debian packages so as to make life easier at my job. However, I'm now encountering some issues. Most of the databases will install happily, however, the largest three are failing.
find . -name "*.deb" -exec du -h '{}' \; | sort -h
# These install fine
4.0K ./hh-suite-data_1.0_all.deb
422M ./hh-suite-data-env70/package/hh-suite-data-env70_1.0.0_amd64.deb
660M ./hh-suite-data-env90/package/hh-suite-data-env90_1.0.0_amd64.deb
795M ./hh-suite-data-env/package/hh-suite-data-env_1.0.0_amd64.deb
1.6G ./hh-suite-data-scop70/package/hh-suite-data-scop70_1.0.0_amd64.deb
2.6G ./hh-suite-data-nr70/package/hh-suite-data-nr70_1.0.0_amd64.deb
2.8G ./hh-suite-data-pfamA/package/hh-suite-data-pfama_1.0.0_amd64.deb
3.2G ./hh-suite-data-nr90/package/hh-suite-data-nr90_1.0.0_amd64.deb
# These fail to install
4.3G ./hh-suite-data-nr20/package/hh-suite-data-nr20_1.0.0_amd64.deb
6.2G ./hh-suite-data-pdb70/package/hh-suite-data-pdb70_1.0.0_amd64.deb
7.4G ./hh-suite-data-nr/package/hh-suite-data-nr_1.0.0_amd64.deb
The failures look like this:
sudo dpkg -i package/hh-suite-data-nr20_1.0.0_amd64.deb
[sudo] password for esr:
(Reading database ... 276172 files and directories currently installed.)
Unpacking hh-suite-data-nr20 (from .../hh-suite-data-nr20_1.0.0_amd64.deb) ...
dpkg: error processing package/hh-suite-data-nr20_1.0.0_amd64.deb (--install):
corrupted filesystem tarfile - corrupted package archive
dpkg-deb: error: subprocess paste was killed by signal (Broken pipe)
Errors were encountered while processing:
package/hh-suite-data-nr20_1.0.0_amd64.deb
I'm somewhat convinced it's because of the size of the archives, that somewhere between 3.2 and 4.3G.
Does anyone have any experience with very large packages and their failure modes? Anyone have any idea why this is happening? I have no reason to believe the tar archive are corrupted, I've built the package many times and still see this error on installation
I'm re-writing my packages to just wget
the files from a mirror instead of actually containing the databases, as that'll get around the tar problem.
Running with -D10
# This file unpacks fine
D000010: tarobject ti->name='./usr/share/hh-suite-data/pdb70/pdb70_19Oct13_a3m_db.index' mode=100644 owner=0.0 type=48(-) ti->linkname='' namenode='/usr/share/hh-suite-data/pdb70/pdb70_19Oct13_a3m_db.index' flags=2 instead='<none>'
D000010: ensure_pathname_nonexisting `/usr/share/hh-suite-data/pdb70/pdb70_19Oct13_a3m_db.index.dpkg-tmp'
D000010: ensure_pathname_nonexisting `/usr/share/hh-suite-data/pdb70/pdb70_19Oct13_a3m_db.index.dpkg-new'
# This is a 16G file and fails IMMEDIATELY.
D000010: tarobject ti->name='./usr/share/hh-suite-data/pdb70/pdb70_19Oct13_a3m_db' mode=100644 owner=0.0 type=48(-) ti->linkname='' namenode='/usr/share/hh-suite-data/pdb70/pdb70_19Oct13_a3m_db' flags=2 instead='<none>'
D000010: ensure_pathname_nonexisting `/usr/share/hh-suite-data/pdb70/pdb70_19Oct13_a3m_db.dpkg-tmp'
D000010: ensure_pathname_nonexisting `/usr/share/hh-suite-data/pdb70/pdb70_19Oct13_a3m_db.dpkg-new'
dpkg: error processing hh-suite-data-pdb70_1.0.0_amd64.deb (--install):
corrupted filesystem tarfile - corrupted package archive
Running with -D100
There are two entries in this portion, a good one and the bad one, and some after the failure. What worries me is the "tarobject file open size=0" bit.
D000100: setupvnamevbs main=`/usr/share/hh-suite-data/pdb70/pdb70_19Oct13_a3m_db.index' tmp=`/usr/share/hh-suite-data/pdb70/pdb70_19Oct13_a3m_db.index.dpkg-tmp' new=`/usr/share/hh-suite-data/pdb70/pdb70_19Oct13_a3m_db.index.dpkg-new'
D000100: tarobject already exists
D000100: tarobject file open size=900749
D000100: tarobject nondirectory, `link' backup
D000100: tarobject done and installation deferred
D000100: setupvnamevbs main=`/usr/share/hh-suite-data/pdb70/pdb70_19Oct13_a3m_db' tmp=`/usr/share/hh-suite-data/pdb70/pdb70_19Oct13_a3m_db.dpkg-tmp' new=`/usr/share/hh-suite-data/pdb70/pdb70_19Oct13_a3m_db.dpkg-new'
D000100: tarobject already exists
D000100: tarobject file open size=0
D000100: tarobject nondirectory, `link' backup
D000100: tarobject done and installation deferred
dpkg: error processing hh-suite-data-pdb70_1.0.0_amd64.deb (--install):
corrupted filesystem tarfile - corrupted package archive
D000100: setupvnamevbs main=`//usr/share/hh-suite-data/pdb70/pdb70_19Oct13_a3m_db' tmp=`//usr/share/hh-suite-data/pdb70/pdb70_19Oct13_a3m_db.dpkg-tmp' new=`//usr/share/hh-suite-data/pdb70/pdb70_19Oct13_a3m_db.dpkg-new'
D000100: cu_installnew restoring atomic
D000100: secure_remove '//usr/share/hh-suite-data/pdb70/pdb70_19Oct13_a3m_db.dpkg-new' unlink OK
dpkg
with the-D
(debug) option to see if that gives anything useful. Something likedpkg -D10 -i package.deb
. – terdon Nov 12 '13 at 19:10all
instead ofamd64
since they are not architecture dependent. – bahamat Nov 12 '13 at 19:16all
, I had been reusing a set of scripts to generate the package framework which specifiedamd64
. – EricR Nov 12 '13 at 19:18package_version.tar.gz
file produced during building (dpkg-buildpackages
) extracts fine, without any errors. – EricR Nov 12 '13 at 19:27man dpkg
and read theD
option. For example:2000 Insane amounts of drivel
. – terdon Nov 12 '13 at 19:35split
+ postinstcat
. – EricR Nov 13 '13 at 17:36