Bug 1121215

Summary: Internal Server Error when attempting to compare config across multiple systems in SSM
Product: [Community] Spacewalk Reporter: trevor.t.kates
Component: WebUIAssignee: Stephen Herr <sherr>
Status: CLOSED CURRENTRELEASE QA Contact: Red Hat Satellite QA List <satqe-list>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 2.2   
Target Milestone: ---   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: spacewalk-java-2.2.122-1 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2014-07-21 13:12:22 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: 1207293    

Description trevor.t.kates 2014-07-18 16:19:35 UTC
Description of problem:

When using the SSM to compare a config file to the deployed versions on multiple systems, an ISE occurs when confirming the file comparison.


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

Spacewalk 2.2 on CentOS 6.5


How reproducible:

Easily.


Steps to Reproduce:
1. Select 1 or more systems in the WebUI
2. Enter the SSM and go to Configuration
3. Select Compare Files
4. Select any file to compare
5. Schedule file comparison and confirm

Actual results:

Error 500 ISE occurs and the compare is not scheduled.

The following exception occurred while executing this request:
POST /rhn/systems/ssm/config/DiffConfirmSubmit.do

Date:7/18/14 9:37:11 AM EDT
Headers:
  host: <removed>
  user-agent: Mozilla/5.0 (X11; Linux i686; rv:24.0) Gecko/20100101 Firefox/24.0
  accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
  accept-language: en-US,en;q=0.5
  accept-encoding: gzip, deflate
  referer: https:// <removed>/rhn/systems/ssm/config/DiffConfirm.do?feature=configfiles.diff
  cookie: JSESSIONID=F645FFA75F679C9E2CA097BF876706CE; DWRSESSIONID=3jgY1giBWOoEnjTycNOzgoNj6tk; pxt-session-cookie=417655xc02dc62049edf24e7b6529967beb7866db4c5ecdc182fe6a2df25ea4e8ed2670
  connection: keep-alive
  content-type: application/x-www-form-urlencoded
  content-length: 161

Request:
Local Name = <removed>
Server Name = <removed>
Requested Session Id came from Cookie
Requested Session Valid = true
Session = org.apache.catalina.session.StandardSessionFacade@49399c60[session=StandardSession[F645FFA75F679C9E2CA097BF876706CE]]
Protocol = https
Request Locale = en_US
Request Character Encoding = UTF-8
Attribute Names = rhnActiveLang, org.apache.struts.action.MESSAGE, javax.servlet.jsp.jstl.fmt.timeZone.request, session, javax.servlet.request.key_size, javax.servlet.request.cipher_suite, requestedUri, org.apache.struts.action.mapping.instance, org.apache.struts.action.MODULE, 

Form Variables:
  last_lower: 1
  lower: 1
  prev_filter_value: 
  first_lower: 1
  dispatch: Confirm File Comparison
  prev_lower: 1
  filter_string: 
  next_lower: 501
  csrf_token: -1416758724715775945


User Information:
User <removed>

Exception:
javax.servlet.ServletException: java.lang.NullPointerException
	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:102)
	at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
	at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
	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:127)
	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:100)
	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:57)
	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:701)
Caused by: java.lang.NullPointerException
	at com.redhat.rhn.frontend.struts.ActionChainHelper.readActionChain(ActionChainHelper.java:68)
	at com.redhat.rhn.frontend.action.configuration.ssm.ConfigConfirmSubmitAction.confirm(ConfigConfirmSubmitAction.java:140)
	at com.redhat.rhn.frontend.action.configuration.ssm.ConfigConfirmSubmitAction.diff(ConfigConfirmSubmitAction.java:90)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:622)
	at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:269)
	at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:170)
	at org.apache.struts.actions.LookupDispatchAction.execute(LookupDispatchAction.java:146)
	at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:425)
	... 40 more

Expected results:

Compare is scheduled and a confirmation message of the scheduling is displayed.

Additional info:

When attempting to view the results of a compare operation of all config files for any given system, the links to configuration files on the System History Event page do not function properly. Some of them lead you to a page telling you that the revision could not be found. Others lead you to an entirely different config file.

Also, when scheduling any operation that allows the time to be specified, the date/time entry is completely blank and the desired format is not specified anywhere on the page.

Comment 1 Stephen Herr 2014-07-18 21:21:29 UTC
The ISE has been fixed in Spacewalk master commit:
470d1d326f80c52bfe99fb2915eb4642dd346039

The problem described in the first paragraph of the Additional Info section I've filed as bug 1121252.

The problem described in the second paragraph of the Additional Info section I can't reproduce. Do you have javascript enabled? Do you have the bootstrap-datepicker rpm installed, which should be required by spacewalk-branding? Have you restarted httpd since you installed it?