Bug 2125498

Summary: sos raises exception when cleaning a substring from working dir
Product: Red Hat Enterprise Linux 9 Reporter: Pavel Moravec <pmoravec>
Component: sosAssignee: Pavel Moravec <pmoravec>
Status: CLOSED CURRENTRELEASE QA Contact: Miroslav HradĂ­lek <mhradile>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 9.1CC: agk, bmr, dzalezak, mhradile, plambri, sbradley, theute
Target Milestone: rcKeywords: Triaged, ZStream
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: sos-4.5.0-1.el9 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of:
: 2166582 2166634 (view as bug list) Environment:
Last Closed: 2023-03-16 21:43:56 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 2166582, 2166634    

Description Pavel Moravec 2022-09-09 08:01:02 UTC
This bug was initially created as a copy of Bug #2064815

I am copying this bug because: 

we need to have 8.8 and 9.2 in par


Description of problem:
Artificial but very evident reproducer:

sos report --clean --keywords tmp -o system --batch

fails with:

[cleaner] Obfuscating ui.log
[cleaner] Obfuscating manifest.json
Creating compressed archive...

 No such file or directory while finalizing archive /var/tmp/sos.0twrlqpo/sosreport-pmoravec-rhel8-2022-03-16-bbwngfg

Creating archive tarball failed.
Traceback (most recent call last):
  File "bin/sos", line 22, in <module>
    sos.execute()
  File "/root/sos-main/sos/__init__.py", line 188, in execute
    self._component.execute()
  File "/root/sos-main/sos/report/__init__.py", line 1600, in execute
    return self.final_work()
  File "/root/sos-main/sos/report/__init__.py", line 1497, in final_work
    archivestat, map_file=map_file)
UnboundLocalError: local variable 'archivestat' referenced before assignment

The reason is that an attempt to rename the directory (https://github.com/sosreport/sos/blob/main/sos/archive.py#L554) attempts to rename also *path* to it:

[cleaner] Could not write private map file: [Errno 2] No such file or directory: '/var/obfuscatedword3/host10report-host0-2022-03-16-guuqlpu-private_map'
[cleaner] Wrote mapping to /etc/sos/cleaner/default_mapping
[cleaner] Obfuscating sos.log
[cleaner] Obfuscating ui.log
[cleaner] Obfuscating manifest.json
Creating compressed archive...
---->> os.rename(/var/tmp/sos.ifuhcmbt/sosreport-pmoravec-rhel8-2022-03-16-guuqlpu, /var/obfuscatedword3/host10.ifuhcmbt/host10report-host0-2022-03-16-guuqlpu)

this fails.

Anyway, we have to fix also the "Could not write private map file" issue on the same topic.


Version-Release number of selected component (if applicable):
sos-4.2-15


How reproducible:
100%


Steps to Reproduce:
1. sos report --clean --keywords tmp -o system --batch


Actual results:
Above backtrace and no private map file (on 2nd run).


Expected results:
No backtrace, private map file created.


Additional info:

Comment 3 Pavel Moravec 2022-11-11 12:48:43 UTC
IMHO too low prio to respin 9.2 due to this - rescheduling it to 9.3 then when we should properly fix it.

Comment 4 Pavel Moravec 2022-11-13 16:02:39 UTC
Due to non-urgent https://github.com/sosreport/sos/pull/3065, it will be fully fixed in 9.3 only.

Comment 5 Pavel Moravec 2023-02-02 08:33:12 UTC
Completely fixed in current sos-4.5.0 upstream release.

Comment 10 Pavel Moravec 2023-03-16 21:43:56 UTC
Closing the bugzilla as the fix has been delivered in sos-4.5.0-1.el9 released via https://access.redhat.com/errata/RHBA-2023:1301 errata.