Bug 808210 - altering the way a channel is shared between sub-organizations raises an exception
Summary: altering the way a channel is shared between sub-organizations raises an exce...
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: Spacewalk
Classification: Community
Component: WebUI
Version: 1.8
Hardware: All
OS: All
unspecified
high
Target Milestone: ---
Assignee: Stephen Herr
QA Contact: Red Hat Satellite QA List
URL:
Whiteboard:
Depends On: 767646 825373
Blocks: space18
TreeView+ depends on / blocked
 
Reported: 2012-03-29 20:00 UTC by Stephen Herr
Modified: 2012-11-01 16:19 UTC (History)
4 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of: 767646
Environment:
Last Closed: 2012-11-01 16:19:49 UTC
Embargoed:


Attachments (Terms of Use)

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


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