Bug 769598

Summary: Removing a Custom channel via API with spacewalk-repo-sync running cause Traceback.
Product: Red Hat Satellite 5 Reporter: Dimitar Yordanov <dyordano>
Component: APIAssignee: Tomas Lestach <tlestach>
Status: CLOSED DEFERRED QA Contact: Red Hat Satellite QA List <satqe-list>
Severity: medium Docs Contact:
Priority: medium    
Version: 541CC: cperry, pmutha
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-05-29 20:12:06 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Bug Depends On:    
Bug Blocks: 462714    

Description Dimitar Yordanov 2011-12-21 12:41:18 UTC
Description of problem:

In case spacewalk-repo-sync is running any attempt to remove the Custom Channel via API  generates Traceback.

It is interesting that there is not problem to remove a package from the channel when spacewalk-repo-sync is running which can be considered as a problem as well.

Similar problem is described and solved in:
 Bug 663326 - Channel deletion doesn't check for spacewalk-repo-sync process running in background leading to tracebacks 


Version-Release number of selected component (if applicable):
spacewalk-backend-1.2.13-61.el6sat.noarch

How reproducible:
100%

Steps to Reproduce:
1. Create an external repository (Channels -> Manage Repositories)
2. Create a custom channel (Channels -> Manage Software Channels)
3. Associate repository to channel (Channels -> Manage Software Channels -> (Select Channel) -> Repositories tab)
4. Sync the repository  to the Custom Channel(Channels -> Manage Software Channels ->
(Select Channel) -> Repositories tab -> Sync subtab -> Sync Now)
5. Check spacewalk-repo-sync is runnnig
  ps -ef | grep spacewalk-repo-sync
  
6. Try to delete the channel via API

export SAT_SERVER=$( hostname )
export CUSTOM_CHANNEL='test_channel_remove_at_sync_time'
python -c "import xmlrpclib,os; \
        SERVER  = os.environ['SAT_SERVER']; \
        CHANNEL = os.environ['CUSTOM_CHANNEL']; \
        client = xmlrpclib.Server('http://%s/rpc/api' % SERVER, verbose=0); \
        key = client.auth.login('admin','nimda'); \
        client.channel.software.delete(key, CHANNEL); \
        print client.api.systemVersion()"


 

  
Actual results:
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/usr/lib64/python2.6/xmlrpclib.py", line 1199, in __call__
    return self.__send(self.__name, args)
  File "/usr/lib64/python2.6/xmlrpclib.py", line 1489, in __request
    verbose=self.__verbose
  File "/usr/lib64/python2.6/xmlrpclib.py", line 1253, in request
    return self._parse_response(h.getfile(), sock)
  File "/usr/lib64/python2.6/xmlrpclib.py", line 1392, in _parse_response
    return u.close()
  File "/usr/lib64/python2.6/xmlrpclib.py", line 838, in close
    raise Fault(**self._stack[0])
xmlrpclib.Fault: <Fault -1: 'redstone.xmlrpc.XmlRpcFault: unhandled internal exception: ORA-00060: deadlock detected while waiting for resource\nORA-06512: at "RHNSAT.DELETE_CHANNEL", line 15\nORA-06512: at line 1\n'>


Expected results:
Message that the channel can not be removed due to spacewalk-repo-sync process.


Additional info: