Note: This bug is displayed in read-only format because
the product is no longer active in Red Hat Bugzilla.
Red Hat Satellite engineering is moving the tracking of its product development work on Satellite to Red Hat Jira (issues.redhat.com). If you're a Red Hat customer, please continue to file support cases via the Red Hat customer portal. If you're not, please head to the "Satellite project" in Red Hat Jira and file new tickets here. Individual Bugzilla bugs will be migrated starting at the end of May. If you cannot log in to RH Jira, please consult article #7032570. That failing, please send an e-mail to the RH Jira admins at rh-issues@redhat.com to troubleshoot your issue as a user management inquiry. The email creates a ServiceNow ticket with Red Hat. Individual Bugzilla bugs that are migrated will be moved to status "CLOSED", resolution "MIGRATED", and set with "MigratedToJIRA" in "Keywords". The link to the successor Jira issue will be found under "Links", have a little "two-footprint" icon next to it, and direct you to the "Satellite project" in Red Hat Jira (issue links are of type "https://issues.redhat.com/browse/SAT-XXXX", where "X" is a digit). This same link will be available in a blue banner at the top of the page informing you that that bug has been migrated.
Description of problem:
Many disconnected/air-gap Satellite users also have a strict organization policies that all files being transferred to the air-gapped network pass a virus/malware/security scan.
When breaking up a hammer content-export with the --chunk-size option for data transfer, the virus scanner accepts only the first file and the rest fail. I know why.
The gzipped tarball is piped into the split command to create the chunks. Every chunk ( or split ) after the first one does not have file header data to indicate the type of file, so the virus scanner sees it as random data.
I checked out the Pulpcore source code and did some tests with tar to confirm my suspicions;
Seen in line 261 onwards of pulpcore/app/tasks/export.py in Pulpcore source code ( https://github.com/pulp/pulpcore );
if the_export.validated_chunk_size:
# write it into chunks
with subprocess.Popen(
[
"split",
"-a",
"4",
"-b",
str(the_export.validated_chunk_size),
"-d",
"-",
tarfile_fp + ".",
],
stdin=subprocess.PIPE,
) as split_process:
try:
with tarfile.open(tarfile_fp, "w|gz", fileobj=split_process.stdin) as tar:
_do_export(pulp_exporter, tar, the_export)
When creating a chunked tar archive on my local machine and piping it through "split", only the first chunk is recognised with the file command:
woody@woody-arch-thinkpad ~/Documents $ tar -cvzf - file1.mp4 file2.mp4 | split -b 2MB - test.tar.gz.
woody@woody-arch-thinkpad ~/Documents $ file test.tar.gz.aa
test.tar.gz.aa: gzip compressed data, from Unix, original size modulo 2^32 842674519
woody@woody-arch-thinkpad ~/Documents $ file test.tar.gz.ab
test.tar.gz.ab: data
If I use the "--tape-length" option, I can use the "file" command to identify each chunk as a tarball. I assume the virus scanning tool would be using "file" or similar methods.
woody@woody-arch-thinkpad ~/Documents $ tar -cv --tape-length=2000 --file=test-archive-{0..100}.tar file1.mp4 file2.mp4
woody@woody-arch-thinkpad ~/Documents $ file test-archive-0.tar
test-archive-0.tar: POSIX tar archive (GNU)
woody@woody-arch-thinkpad ~/Documents $ file test-archive-1.tar
test-archive-1.tar: tar archive
A drawback is that those "--tape-length" archives can't be gzipped from that single tar command. It gives an error
"tar: Cannot use multi-volume compressed archives"
Can we request that the exports are chunked with "--tape-length" instead of piping into the "split" command?
Many Satellite users in Banking, Government etc. will have similar security scanning requirements.
Version-Release number of selected component (if applicable):
Problem appears in latest upstream Pulp code and in the version that ships with Red Hat Satellite 6.11
How reproducible:
Fully reproducible
Steps to Reproduce:
1. Create a chunked export from Satellite or Pulp
2. Run the "file" command against any chunk after first
Actual results:
Chunks after the first are not recognized as GZ or tarball files, but instead random data because there is no header information in the file.
Expected results:
Chunks need to be identifiable for security scanning methods in high security disconnected scenarios.
Additional info:
Many Satellite users in Banking, Government etc. will have similar security scanning requirements. Dividing the archive with the "--tape-length" option instead of piping tar output to the to the split command will make the scanning tools work with Satellite content exports.
(In reply to Brad Buckingham from comment #1)
> What version of Satellite is this being reported on? (e.g. 6.10.7?)
6.11 GA but I believe 6.10 will probably be affected too.
Upon review of our valid but aging backlog the Satellite Team has concluded that this Bugzilla does not meet the criteria for a resolution in the near term, and are planning to close in a month. This message may be a repeat of a previous update and the bug is again being considered to be closed. If you have any concerns about this, please contact your Red Hat Account team. Thank you.
Thank you for your interest in Red Hat Satellite. We have evaluated this request, and while we recognize that it is a valid request, we do not expect this to be implemented in the product in the foreseeable future. This is due to other priorities for the product, and not a reflection on the request itself. We are therefore closing this out as WONTFIX. If you have any concerns about this feel free to contact your Red Hat Account Team. Thank you.