Bug 896566

Summary: Multiple entries under Distribution Channel Mapping causes error when viewing channel
Product: [Community] Spacewalk Reporter: nathanp
Component: WebUIAssignee: Tomas Lestach <tlestach>
Status: CLOSED CURRENTRELEASE QA Contact: Red Hat Satellite QA List <satqe-list>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 1.8CC: tkasparek
Target Milestone: ---   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2013-08-02 13:00:13 UTC Type: Bug
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: 991452    

Description nathanp 2013-01-17 14:41:50 UTC
Description of problem:
When I create multiple Distribution Channel Mappings for a single channel, I receive an error (traceback at bottom) when I try to view that channel in the spacewalk interface.  If I remove one of the mappings so that only one mapping remains the error goes away.


Version-Release number of selected component (if applicable):
1.8 x86_64 installed on Scientific Linux 6.3 with a Postgres database

How reproducible: 100%


Steps to Reproduce:
1. Add new distribution channel mapping so that centos-release version 5.1 IA-32 is mapped to the centos5-i386 (or any other) channel.
2. Add a second mapping for centos-release version 5.2 IA-32 to the same channel as step 1.
3. Return to the main software channels list and attempt to view the channel that the mappings were created for
  
Actual results:
Error (traceback below)

Expected results:
View channel info

Additional info:

Error (traceback below)

The following exception occurred while executing this request:
GET /rhn/channels/ChannelDetail.do

Date:1/17/13 9:27:06 AM EST
Headers:
  host: spacewalk.domain.org
  connection: keep-alive
  user-agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11
  accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
  referer: https://spacewalk.domain.org/rhn/software/channels/All.do
  accept-encoding: gzip,deflate,sdch
  accept-language: en-US,en;q=0.8
  accept-charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
  cookie: JSESSIONID=REMOVED; cookiecrisp="REMOVED"; pxt-session-cookie=REMOVED

Request:
Local Name = spacewalk.domain.org
Server Name = spacewalk.domain.org
Requested Session Id came from Cookie
Requested Session Valid = true
Session = org.apache.catalina.session.StandardSessionFacade@74c676b7[session=StandardSession[REMOVED]]
Protocol = https
Request Locale = en_US
Request Character Encoding = UTF-8
Attribute Names = rhnActiveLang, channel_name, javax.servlet.jsp.jstl.fmt.timeZone.request, javax.servlet.request.key_size, channelDetailForm, globally, requestedUri, javax.servlet.request.ssl_session, org.apache.struts.action.MESSAGE, session, systems_subscribed, javax.servlet.request.cipher_suite, org.apache.struts.action.mapping.instance, channel, channel_last_modified, pack_size, org.apache.struts.action.MODULE, 


User Information:
User testuser (id 2, org_id 1)

Exception:
javax.servlet.ServletException: com.redhat.rhn.common.hibernate.HibernateRuntimeException: Executing query DistChannelMap.findByChannel with params {channel=com.redhat.rhn.domain.channel.Channel@4e71047[id=323,label=scientific63-i386]} failed
	at org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:520)
	at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:427)
	at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:228)
	at com.redhat.rhn.frontend.struts.RhnRequestProcessor.process(RhnRequestProcessor.java:99)
	at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
	at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at com.redhat.rhn.frontend.servlets.AuthFilter.doFilter(AuthFilter.java:93)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at com.opensymphony.sitemesh.webapp.SiteMeshFilter.obtainContent(SiteMeshFilter.java:129)
	at com.opensymphony.sitemesh.webapp.SiteMeshFilter.doFilter(SiteMeshFilter.java:77)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at com.redhat.rhn.frontend.servlets.LocalizedEnvironmentFilter.doFilter(LocalizedEnvironmentFilter.java:67)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at com.redhat.rhn.frontend.servlets.EnvironmentFilter.doFilter(EnvironmentFilter.java:108)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at com.redhat.rhn.frontend.servlets.SessionFilter.doFilter(SessionFilter.java:55)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at com.redhat.rhn.frontend.servlets.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:97)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
	at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:190)
	at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:291)
	at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:769)
	at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:698)
	at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:891)
	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:690)
	at java.lang.Thread.run(Thread.java:679)
Caused by: com.redhat.rhn.common.hibernate.HibernateRuntimeException: Executing query DistChannelMap.findByChannel with params {channel=com.redhat.rhn.domain.channel.Channel@4e71047[id=323,label=scientific63-i386]} failed
	at com.redhat.rhn.common.hibernate.HibernateFactory.lookupObjectByNamedQuery(HibernateFactory.java:188)
	at com.redhat.rhn.common.hibernate.HibernateFactory.lookupObjectByNamedQuery(HibernateFactory.java:158)
	at com.redhat.rhn.domain.channel.ChannelFactory.lookupDistChannelMap(ChannelFactory.java:902)
	at com.redhat.rhn.domain.channel.Channel.isChannelRepodataRequired(Channel.java:833)
	at com.redhat.rhn.frontend.action.channel.ChannelDetailsAction.execute(ChannelDetailsAction.java:90)
	at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:425)
	... 40 more
Caused by: org.hibernate.NonUniqueResultException: query did not return a unique result: 2
	at org.hibernate.impl.AbstractQueryImpl.uniqueElement(AbstractQueryImpl.java:820)
	at org.hibernate.impl.AbstractQueryImpl.uniqueResult(AbstractQueryImpl.java:811)
	at com.redhat.rhn.common.hibernate.HibernateFactory.lookupObjectByNamedQuery(HibernateFactory.java:182)
	... 45 more

Comment 1 Tomas Lestach 2013-04-05 16:54:37 UTC
spacewalk.git:
 525eb9b116a99815bf1437e50584500f660bdf85
 09371cc6fbaed01f57428c0b1845a96824c55e60

Comment 2 Tomáš Kašpárek 2013-08-02 13:00:13 UTC
Fix for this bug is present in Spacewalk 2.0, closing this bug as CURRENTRELEASE.