Bug 2219479

Summary: [abrt] rdiff-backup: Collate2Iters(): gzip.py:518:read:EOFError: Compressed file ended before the end-of-stream marker was reached
Product: [Fedora] Fedora Reporter: Paul DeStefano <prd-fedora>
Component: rdiff-backupAssignee: Frank Crawford <frank>
Status: CLOSED EOL QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 38CC: frank, kevin, prd-fedora
Target Milestone: ---   
Target Release: ---   
Hardware: x86_64   
OS: Unspecified   
URL: https://retrace.fedoraproject.org/faf/reports/bthash/62674a4815b5f15907f186b446ef52157b55e40
Whiteboard: abrt_hash:d3dd26500d37ee289007332ff45e32c19e492d31;VARIANT_ID=workstation;
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2024-05-28 13:19:26 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
File: backtrace
none
File: os_info
none
File: open_fds
none
File: namespaces none

Description Paul DeStefano 2023-07-03 22:55:07 UTC
Description of problem:
There was a problem with a backup in progress, FS was marked ro, but backup didn't terminate.  I rebooted and ran
verify. That produced this exception quite quickly.

Version-Release number of selected component:
rdiff-backup-2.2.5-2.fc38

Additional info:
reporter:       libreport-2.17.10
cgroup:         0::/user.slice/user-13013.slice/user/app.slice/mytmux.service
exception_type: StopIteration
package:        rdiff-backup-2.2.5-2.fc38
crash_function: Collate2Iters
type:           Python3
interpreter:    python3-3.11.4-1.fc38.i686
executable:     /usr/bin/rdiff-backup
reason:         gzip.py:518:read:EOFError: Compressed file ended before the end-of-stream marker was reached
runlevel:       N 5
kernel:         6.3.8-200.fc38.x86_64

Truncated backtrace:
gzip.py:518:read:EOFError: Compressed file ended before the end-of-stream marker was reached

Traceback (most recent call last):
  File "/usr/lib64/python3.11/site-packages/rdiff_backup/rorpiter.py", line 364, in Collate2Iters
    relem2 = next(riter2)
             ^^^^^^^^^^^^
StopIteration

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/bin/rdiff-backup", line 33, in <module>
    sys.exit(load_entry_point('rdiff-backup==2.2.5', 'console_scripts', 'rdiff-backup')())
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib64/python3.11/site-packages/rdiffbackup/run.py", line 37, in main
    sys.exit(main_run(sys.argv[1:]))
             ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib64/python3.11/site-packages/rdiffbackup/run.py", line 110, in main_run
    ret_val |= conn_act.run()
               ^^^^^^^^^^^^^^
  File "/usr/lib64/python3.11/site-packages/rdiffbackup/actions/verify.py", line 100, in run
    return self.repo.base_dir.conn.compare.Verify(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib64/python3.11/site-packages/rdiff_backup/compare.py", line 218, in Verify
    for repo_rorp in repo_iter:
  File "/usr/lib64/python3.11/site-packages/rdiffbackup/meta/ea.py", line 248, in join_iter
    for rorp, ea in rorpiter.CollateIterators(rorp_iter, ea_iter):
  File "/usr/lib64/python3.11/site-packages/rdiff_backup/rorpiter.py", line 354, in Collate2Iters
    relem1 = next(riter1)
             ^^^^^^^^^^^^
  File "/usr/lib64/python3.11/site-packages/rdiffbackup/meta/acl_posix.py", line 301, in join_iter
    for rorp, acl in rorpiter.CollateIterators(rorp_iter, acl_iter):
  File "/usr/lib64/python3.11/site-packages/rdiff_backup/rorpiter.py", line 368, in Collate2Iters
    for relem1 in riter1:
  File "/usr/lib64/python3.11/site-packages/rdiffbackup/meta/__init__.py", line 61, in iterate
    for record in self._iterate_records():
  File "/usr/lib64/python3.11/site-packages/rdiffbackup/meta/__init__.py", line 75, in _iterate_records
    next_pos = self._get_next_pos()
               ^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib64/python3.11/site-packages/rdiffbackup/meta/__init__.py", line 139, in _get_next_pos
    newbuf = self.fileobj.read(self.blocksize)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib64/python3.11/gzip.py", line 301, in read
    return self._buffer.read(size)
           ^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib64/python3.11/_compression.py", line 68, in readinto
    data = self.read(len(byte_view))
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib64/python3.11/gzip.py", line 518, in read
    raise EOFError("Compressed file ended before the "
EOFError: Compressed file ended before the end-of-stream marker was reached

Local variables in innermost frame:
self: <gzip._GzipReader object at 0x7f15fd7d6e90>
size: 24576
buf: b''
uncompress: b''

Comment 1 Paul DeStefano 2023-07-03 22:55:10 UTC
Created attachment 1973923 [details]
File: backtrace

Comment 2 Paul DeStefano 2023-07-03 22:55:11 UTC
Created attachment 1973924 [details]
File: os_info

Comment 3 Paul DeStefano 2023-07-03 22:55:12 UTC
Created attachment 1973925 [details]
File: open_fds

Comment 4 Paul DeStefano 2023-07-03 22:55:13 UTC
Created attachment 1973926 [details]
File: namespaces

Comment 5 Frank Crawford 2023-07-04 10:33:58 UTC
I will push this upstream.

Comment 6 Frank Crawford 2023-07-08 03:51:44 UTC
Submitted upstream, issue: [BUG] Compressed file ended before the end-of-stream marker was reached #900 (https://github.com/rdiff-backup/rdiff-backup/issues/900)

Comment 7 Aoife Moloney 2024-05-28 13:19:26 UTC
Fedora Linux 38 entered end-of-life (EOL) status on 2024-05-21.

Fedora Linux 38 is no longer maintained, which means that it
will not receive any further security or bug fix updates. As a result we
are closing this bug.

If you can reproduce this bug against a currently maintained version of Fedora Linux
please feel free to reopen this bug against that version. Note that the version
field may be hidden. Click the "Show advanced fields" button if you do not see
the version field.

If you are unable to reopen this bug, please file a new report against an
active release.

Thank you for reporting this bug and we are sorry it could not be fixed.