Bug 248882 - Cache entry exists, but is not accessible: repomd_primary.xml
Summary: Cache entry exists, but is not accessible: repomd_primary.xml
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: Red Hat Satellite 5
Classification: Red Hat
Component: Server
Version: 500
Hardware: All
OS: Linux
low
low
Target Milestone: ---
Assignee: Pradeep Kilambi
QA Contact: Michael Mráka
URL:
Whiteboard:
Depends On:
Blocks: 456985 485807
TreeView+ depends on / blocked
 
Reported: 2007-07-19 13:13 UTC by Miroslav Suchý
Modified: 2009-09-10 18:40 UTC (History)
4 users (show)

Fixed In Version: sat530
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2009-09-10 18:40:27 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)

Description Miroslav Suchý 2007-07-19 13:13:48 UTC
Description of problem:
I run satellite-sync (lot of channels) and some user during sync, does yum
upgrade. It then corrupt satellite cache and throw tracebacks (see bottom).

Version-Release number of selected component (if applicable):
RHN Satellite 500

How reproducible:
seen several times

Steps to Reproduce:
1. run satellite-sync
2. run yum upgrade (probably of that channel you are now syncing) in parallel. 
3. after satellite sync finish, run yum upgrade again.
  
Actual results:
got traceback, need to:
rm -f /var/cache/rhn/repomd*234

Expected results:
not getting traceback

Additional info:
Exception reported from sputnik-prod.englab.brq.redhat.com
Time: Thu Jul 19 15:05:51 2007
Exception type exceptions.OSError
Exception while handling function repodata
Request object information:
URI:
https://sputnik-prod.brq.redhat.com/XMLRPC/GET-REQ/rhel-i386-client-workstation-5/repodata/repomd.xml
Remote Host: 10.34.32.42
Server Name: sputnik-prod.brq.redhat.com:443
Headers passed in:
	Accept-Encoding: identity
	Connection: close
	Host: sputnik-prod.brq.redhat.com
	Pragma: no-cache
	User-agent: urlgrabber/3.1.0
	X-rhn-auth: UPOCwsAbAMzEkA0ZEnAljw==
	X-rhn-auth-expire-offset: 3600.0
	X-rhn-auth-server-time: 1184850350.24
	X-rhn-auth-user-id: 
	X-rhn-server-id: 1000010630

Exception Handler Information
Traceback (most recent call last):
  File "/usr/share/rhn/server/apacheRequest.py", line 108, in call_function
    response = apply(func, params)
  File "/usr/share/rhn/server/rhnRepository.py", line 166, in repodata
    output = repo.get_repomd_file()
  File "/usr/share/rhn/server/repomd/repository.py", line 286, in get_repomd_file
    to_generate.append(self.repository.get_primary_view())
  File "/usr/share/rhn/server/repomd/repository.py", line 120, in get_primary_view
    return self.get_cache_view(self.primary_prefix, view.PrimaryView)
  File "/usr/share/rhn/server/repomd/repository.py", line 106, in get_cache_view
    ret = self.cache.set_file(cache_entry, self.last_modified)
  File "/usr/share/rhn/common/rhnCache.py", line 373, in set_file
    return self.cache.set_file(name, modified)
  File "/usr/share/rhn/common/rhnCache.py", line 259, in set_file
    fd = WriteLockedFile(name, modified)
  File "/usr/share/rhn/common/rhnCache.py", line 158, in __init__
    self.fd = self.get_fd(name)
  File "/usr/share/rhn/common/rhnCache.py", line 202, in get_fd
    raise OSError, "cache entry exists, but is not accessible: %s" % \
OSError: cache entry exists, but is not accessible: repomd_primary.xml-234

Local variables by frame
Frame get_fd in /usr/share/rhn/common/rhnCache.py at line 202
	                self = <class 'common.rhnCache.WriteLockedFile'>
<common.rhnCache.WriteLockedFile object at 0xb76dfacc>
	                name = <type 'str'> repomd_primary.xml-234

Frame __init__ in /usr/share/rhn/common/rhnCache.py at line 158
	                self = <class 'common.rhnCache.WriteLockedFile'>
<common.rhnCache.WriteLockedFile object at 0xb76dfacc>
	            modified = <type 'str'> 20070719142312
	                name = <type 'str'> repomd_primary.xml-234

Frame set_file in /usr/share/rhn/common/rhnCache.py at line 259
	                self = <type 'instance'> <common.rhnCache.Cache instance at
0xb76df94c>
	            modified = <type 'str'> 20070719142312
	                name = <type 'str'> repomd_primary.xml-234

Frame set_file in /usr/share/rhn/common/rhnCache.py at line 373
	                self = <type 'instance'> <common.rhnCache.NullCache instance at
0xb76df86c>
	            modified = <type 'str'> 20070719142312
	                name = <type 'str'> repomd_primary.xml-234

Frame get_cache_view in /usr/share/rhn/server/repomd/repository.py at line 106
	         cache_entry = <type 'str'> repomd_primary.xml-234
	                self = <class 'server.repomd.repository.Repository'>
<server.repomd.repository.Repository object at 0xb76df8ec>
	          view_class = <type 'type'> <class 'server.repomd.view.PrimaryView'>
	        cache_prefix = <type 'str'> repomd_primary.xml

Frame get_primary_view in /usr/share/rhn/server/repomd/repository.py at line 120
	                self = <class 'server.repomd.repository.Repository'>
<server.repomd.repository.Repository object at 0xb76df8ec>

Frame get_repomd_file in /usr/share/rhn/server/repomd/repository.py at line 286
	         cache_entry = <type 'str'> repomd.xml-234
	           timestamp = <type 'int'> 1184850351
	                self = <type 'instance'> <server.repomd.repository.Repository
object at 0xb76df8ec>
	         to_generate = <type 'list'> []
	                 ret = <type 'NoneType'> None

Frame repodata in /usr/share/rhn/server/rhnRepository.py at line 166
	              c_info = <type 'dict'> {'name': 'RHEL Desktop Workstation (v. 5
for 32-bit x86)', 'org_id': '', 'summary': 'Red Hat Enterprise Linux Desktop
Workstation Option (v. 5 for 32-bit x86)', 'last_modified': '20070719142312',
'parent_channel': '224', 'label': 'rhel-i386-client-workstation-5', 'arch':
'channel-ia32', 'id': '234', 'description': 'Red Hat Enterprise Linux - Desktop
workstation and development components (v. 5 for 32-bit x86)'}
	           file_name = <type 'str'> repomd.xml
	                self = <type 'instance'> <server.rhnRepository.Repository
instance at 0xb76df82c>
	                repo = <type 'instance'> <server.repomd.repository.Repository
object at 0xb76df8ec>
	        content_type = <type 'str'> text/xml
	              output = <type 'NoneType'> None

Frame call_function in /usr/share/rhn/server/apacheRequest.py at line 159
	                self = <type 'instance'>
<server.handlers.xmlrpc.get_handler.GetHandler instance at 0xb77388ac>
	              params = <type 'tuple'> ('repomd.xml',)
	      force_rollback = <type 'int'> 1
	                func = <type 'instancemethod'> <bound method
Repository.repodata of <server.rhnRepository.Repository instance at 0xb76df82c>>
	              method = <type 'str'> repodata

Frame process in /usr/share/rhn/server/apacheRequest.py at line 533
	                self = <type 'instance'>
<server.handlers.xmlrpc.get_handler.GetHandler instance at 0xb77388ac>
	              params = <type 'tuple'> ('repomd.xml',)
	              method = <type 'str'> repodata

Frame handler in /usr/share/rhn/server/apacheHandler.py at line 190
	                   h = <type 'instance'> <OracleCursor object at 0xb7760a20>
	                self = <type 'instance'> <server.apacheHandler.apacheHandler
instance at 0xb773876c>
	                 req = <type 'instance'> <mod_python.apache.Request instance at
0xb7a74aec>
	                 ret = <type 'int'> 1
	     templateStrings = <type 'dict'> {'email_account_info': '\nAccount
Information:\n  Your RHN login:         <login />\n  Your RHN email address:
<email-address />', 'email_footer': '--the Red Hat Network Team', 'hostname':
'sputnik-prod.brq.redhat.com'}
	                 row = <type 'NoneType'> None

Frame __call__ in /usr/share/rhn/server/apacheServer.py at line 49
	                self = <type 'instance'> <server.apacheServer.HandlerWrap
instance at 0xb78a33ec>
	                 req = <type 'instance'> <mod_python.apache.Request instance at
0xb7a74aec>
	                   f = <type 'instancemethod'> <bound method
apacheHandler.handler of <server.apacheHandler.apacheHandler instance at
0xb773876c>>

Frame Dispatch in /usr/lib/python2.3/site-packages/mod_python/apache.py at line 185
	                dirs = <type 'mp_table'> {'PythonHeaderParserHandler':
'/XMLRPC/', 'PythonHandler': '/XMLRPC/', 'PythonLogHandler': '/XMLRPC/',
'PythonCleanupHandler': '/XMLRPC/', 'PythonPath': '', 'PythonInterpreter': ''}
	                 req = <type 'instance'> <mod_python.apache.Request instance at
0xb7a74aec>
	              silent = <type 'int'> 0
	              hstack = <type 'instance'> <mod_python.apache.HStack instance at
0xb7a74eac>
	              config = <type 'mp_table'> {'PythonHeaderParserHandler':
'server.apacheServer::HeaderParserHandler', 'PythonHandler':
'server.apacheServer::Handler', 'PythonLogHandler':
'server.apacheServer::LogHandler', 'PythonCleanupHandler':
'server.apacheServer::CleanupHandler', 'PythonPath':
'sys.path+['/usr/share/rhn']', 'PythonInterpreter': 'rhn.server'}
	                self = <type 'instance'> <mod_python.apache.CallBack instance
at 0xb7a5b4cc>
	              object = <type 'instance'> <server.apacheServer.HandlerWrap
instance at 0xb78a33ec>
	                   l = <type 'list'> ['server.apacheServer', 'Handler']
	              module = <type 'module'> <module 'server.apacheServer' from
'/usr/share/rhn/server/apacheServer.py'>
	                _req = <type 'mp_request'> <mp_request object at 0xa5c7138>
	             handler = <type 'str'> server.apacheServer::Handler
	              result = <type 'int'> 500
	          object_str = <type 'str'> Handler
	               debug = <type 'int'> 0
	         module_name = <type 'str'> server.apacheServer
	          pathstring = <type 'str'> sys.path+['/usr/share/rhn']
	               htype = <type 'str'> PythonHandler


Environment for PID=26786 on exception:
LANG = en_US.UTF-8
NLS_LANG = english.UTF8
ORACLE_HOME = /opt/oracle
PATH = /sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin
PWD = /
SHLVL = 1
TERM = xterm
_ = /sbin/initlog

Comment 3 Pradeep Kilambi 2009-02-17 13:58:39 UTC
fixed as part of the repodata rewrite. moving to modified.

Thanks,
~ Prad

Comment 4 Michael Mráka 2009-04-09 08:42:17 UTC
Verified. Satellite-5.3.0-RHEL4-re20090403.2

[ in parallel to sat-sync ]
# yum update 
Loading "security" plugin
Loading "rhnplugin" plugin
rhel-i386-server-5        100% |=========================| 1.1 kB    00:00     
Error: Cannot retrieve repository metadata (repomd.xml) for repository: rhel-i386-server-vt-5. Please verify its path and try again

[ after sat-sync and repomd.xml refresh]
# yum update 
Loading "security" plugin
Loading "rhnplugin" plugin
rhel-i386-server-5        100% |=========================| 1.1 kB    00:00     
rhel-i386-server-vt-5     100% |=========================| 1.3 kB    00:00     
primary.xml.gz            100% |=========================|  27 kB    00:00     
rhel-i386-: ################################################## 145/145
rhn-tools-rhel-i386-serve 100% |=========================|  871 B    00:00     
Skipping security plugin, no data
Setting up Update Process
No Packages marked for Update

Comment 5 Milan Zázrivec 2009-08-10 11:14:27 UTC
Verified in stage -> RELEASE_PENDING

Comment 6 Brandon Perkins 2009-09-10 18:40:27 UTC
An advisory has been issued which should help the problem
described in this bug report. This report is therefore being
closed with a resolution of ERRATA. For more information
on therefore solution and/or where to find the updated files,
please follow the link below. You may reopen this bug report
if the solution does not work for you.

http://rhn.redhat.com/errata/RHEA-2009-1434.html


Note You need to log in before you can comment on or make changes to this bug.