Bug 136733

Summary: OSError exception (file already exists) during initial sync with /var/satellite mounted
Product: Red Hat Satellite 5 Reporter: Max Spevack <mspevack>
Component: ServerAssignee: Mihai Ibanescu <mihai.ibanescu>
Status: CLOSED CURRENTRELEASE QA Contact: Fanny Augustin <fmoquete>
Severity: medium Docs Contact:
Priority: low    
Version: 360CC: rhn-bugs
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2005-03-22 17:36:49 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:
Bug Depends On:    
Bug Blocks: 127673    

Description Max Spevack 2004-10-21 23:11:06 UTC
During the initial sync on a rhel3 satellite (with /var/satellite
mounted), satellite-sync dies with an unhandled OSError exception.

Log below:

Note:
- this did *not* happen on the rhel2 satellite
- after taw added a simple try/catch statement that just passes the
exception and prints out an error message, re-running the sync command
did not raise the exception again, though the file existing that
generated the exception in the first place is still there.

*************************

18:58:17 Downloading rpm packages
18:58:17    Fetching any missing RPMs: redhat-advanced-server-i386
(NONE MISSING)
18:58:17    Fetching any missing RPMs: rhel-i386-as-3 (14)
+++ sending log as an email +++
 
SYNC ERROR: unhandled exception occurred:
 
(Check logs/email for potentially more detail)
 
[Errno 17] File exists:
'/var/satellite/redhat/NULL/initscripts/7.31.18.EL-1'

The full traceback:

Exception Handler Information
Traceback (most recent call last):
  File "/usr/bin/satellite-sync", line 128, in main
    return satsync.Runner().main()
  File "/usr/share/rhn/satellite_tools/satsync.py", line 153, in main
    ret = method()
  File "/usr/share/rhn/satellite_tools/satsync.py", line 241, in
_step_rpms
    self._packages_report = self.syncer.download_rpms()
  File "/usr/share/rhn/satellite_tools/satsync.py", line 856, in
download_rpms
    self._fetch_packages(channel, missing_fs_packages)
  File "/usr/share/rhn/satellite_tools/satsync.py", line 1697, in
_fetch_packages
    s = rpmManip.write_file(stream)
  File "/usr/share/rhn/satellite_tools/syncLib.py", line 165, in
write_file
    createPath(dirname)
  File "/usr/share/rhn/satellite_tools/syncLib.py", line 380, in
createPath
    makedirs(path, mode=chmod, user=user, group=group)
  File "/usr/share/rhn/satellite_tools/syncLib.py", line 359, in makedirs
    os.mkdir(dirname, mode)
OSError: [Errno 17] File exists:
'/var/satellite/redhat/NULL/initscripts/7.31.18.EL-1'

Comment 1 Mihai Ibanescu 2004-10-22 22:07:53 UTC
Not an easy way to reproduce this, since it's a race condition. I was
checking for missing directories and then creating them, but it's
possible for someone else to create the dirs in the meantime.

I've added the try/except statement to catch this.

Comment 2 Todd Warner 2004-10-28 19:10:35 UTC
ON_DEV/QA_READY --> ON_QA (webQA and RHN Sat ISO/package push complete)

Comment 3 Todd Warner 2004-10-28 19:57:11 UTC
ON_DEV/QA_READY --> ON_QA (webQA and RHN Sat ISO/package push complete) REALLY!

Comment 4 Todd Warner 2004-12-01 13:02:38 UTC
FAILS_QAing this. Misa, is there *any* way to test this? If not...
closeit as NOTABUG. And we'll refile if it ever crops up again. It's
been a month+ now without it coming back. Probably just an oddball
race condition.

Comment 5 Mihai Ibanescu 2004-12-02 03:11:50 UTC
Moving to PROD_READY, since I did add code to fix the potential race
condition, it's just difficult to test.

Comment 6 Todd Warner 2005-03-22 17:36:49 UTC
Mass move from PROD_READY to CLOSED:CURRENTRELEASE