Bug 808210

Summary: altering the way a channel is shared between sub-organizations raises an exception
Product: [Community] Spacewalk Reporter: Stephen Herr <sherr>
Component: WebUIAssignee: Stephen Herr <sherr>
Status: CLOSED CURRENTRELEASE QA Contact: Red Hat Satellite QA List <satqe-list>
Severity: high Docs Contact:
Priority: unspecified    
Version: 1.8CC: cperry, fdewaley, slukasik, xdmoon
Target Milestone: ---Keywords: Regression
Target Release: ---   
Hardware: All   
OS: All   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: 767646 Environment:
Last Closed: 2012-11-01 16:19: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: 767646, 825373    
Bug Blocks: 871344    

Description Stephen Herr 2012-03-29 20:00:49 UTC
+++ This bug was initially created as a clone of Bug #767646 +++

Description of problem:
altering the way a channel is shared between sub-organizations raises an exception ; more exactly when changing a channel from protected to private, the following exception is raised : 

	class com.redhat.rhn.frontend.xmlrpc.InvalidChecksumLabelException

Version-Release number of selected component (if applicable):
spacewalk-java*-1.2.39-108

How reproducible:
all the time

Steps to Reproduce:
1.) Click on Channels > Manage Software Channels > channel name
2.) Under "Organization Sharing", select "This channel is protected and may only be accessed by specific trusted organizations." and click the "Update Channel" button.
3.) Click either "Grant Access and Confirm" or "Deny Access and Confirm".
4.) Click on the channel again, and select "This channel is private and cannot be accessed by any other organization.", then click "Update Channel".
5.) Click "Confirm", and an Internal Server Error results.
  
Actual results:
[/var/log/tomcat5/catalina.out]
2011-11-28 10:22:18,048 [TP-Processor2] WARN  org.apache.struts.action.RequestProcessor - Unhandled Exception thrown: class com.redhat.rhn.frontend.xmlrpc.InvalidChecksumLabelException
2011-11-28 10:22:18,048 [TP-Processor2] ERROR com.redhat.rhn.frontend.servlets.SessionFilter - Error during transaction. Rolling back
javax.servlet.ServletException: Invalid checksum label:
        at org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:535)
        at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:433)
        at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:237)
        at com.redhat.rhn.frontend.struts.RhnRequestProcessor.process(RhnRequestProcessor.java:99)
        at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
        at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
        at com.redhat.rhn.frontend.servlets.AuthFilter.doFilter(AuthFilter.java:117)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
        at com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:142)
        at com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:58)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
        at com.redhat.rhn.frontend.servlets.LocalizedEnvironmentFilter.doFilter(LocalizedEnvironmentFilter.java:67)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
        at com.redhat.rhn.frontend.servlets.EnvironmentFilter.doFilter(EnvironmentFilter.java:108)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
        at com.redhat.rhn.frontend.servlets.SessionFilter.doFilter(SessionFilter.java:55)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
        at com.redhat.rhn.frontend.servlets.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:97)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
        at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:200)
        at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:291)
        at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:775)
        at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:704)
        at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:897)
        at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
        at java.lang.Thread.run(Thread.java:736)
Caused by:
com.redhat.rhn.frontend.xmlrpc.InvalidChecksumLabelException: Invalid checksum label:
        at com.redhat.rhn.manager.channel.UpdateChannelCommand.update(UpdateChannelCommand.java:112)
        at com.redhat.rhn.frontend.action.channel.manage.EditChannelAction.edit(EditChannelAction.java:353)
        at com.redhat.rhn.frontend.action.channel.manage.EditChannelAction.makePrivate(EditChannelAction.java:314)
        at com.redhat.rhn.frontend.action.channel.manage.EditChannelAction.execute(EditChannelAction.java:139)
        at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
        ... 40 more

Expected results:
the channel is transfered from protected/public to private

Additional info:
downgrading the packages is a workaround.

Comment 1 Stephen Herr 2012-03-29 20:06:01 UTC
The actual problem here is that sometime we broke saving the channel's options if you had "None" selected for the yum metadata checksum type. Yum must have a checksum for the metadata, however we support clients that do not use yum (like RHEL 4) and "None" is a perfectly valid selection for those clients.

If the channel had been saved before we broke things with a "None" value for checksum type, then any attempt to save the channel data would result in the error and stack trace listed above.

I have fixed it so that we do not error if you have selected "None" for checksum type.

Comment 2 Stephen Herr 2012-03-29 20:07:57 UTC
Committed to Spacewalk master: 879273153fe9867d423baee3397e59a2a273658c

Comment 4 Jan Pazdziora 2012-10-30 19:24:29 UTC
Moving ON_QA. Packages that address this bugzilla should now be available in yum repos at http://yum.spacewalkproject.org/nightly/

Comment 5 Jan Pazdziora 2012-11-01 16:19:49 UTC
Spacewalk 1.8 has been released: https://fedorahosted.org/spacewalk/wiki/ReleaseNotes18