Bug 497119 - multi-org, removing channel access of base channel w/ child channels results in ISE
multi-org, removing channel access of base channel w/ child channels results ...
Status: CLOSED CURRENTRELEASE
Product: Red Hat Satellite 5
Classification: Red Hat
Component: WebUI (Show other bugs)
530
All Linux
urgent Severity urgent
: ---
: ---
Assigned To: Brad Buckingham
wes hayutin
https://fjs-0-03.rhndev.redhat.com/rh...
:
: 500232 (view as bug list)
Depends On:
Blocks: 456998 486216 497538 497539
  Show dependency treegraph
 
Reported: 2009-04-22 09:08 EDT by wes hayutin
Modified: 2009-09-10 14:15 EDT (History)
5 users (show)

See Also:
Fixed In Version: sat530
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
: 497538 497539 (view as bug list)
Environment:
Last Closed: 2009-09-10 14:15:36 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)
traceback txt (14.51 KB, text/plain)
2009-05-08 10:01 EDT, wes hayutin
no flags Details

  None (edit)
Description wes hayutin 2009-04-22 09:08:27 EDT
Description of problem:

4/14 build 

recreate:
1. create two orgs orgA orgB
2. share a one public channel and two public child channels from orgA
3. register a system in orgB and subscribe to the shared base and two child channels
4. go to orgA and move the public base channel to protected, and remove access to org

result ISE



 0, minPoolSize -> 5, nestedDataSource -> com.mchange.v2.c3p0.DriverManagerDataSource@24f924f9 [ description -> null, driverClass -> null, factoryClassLocation -> null, identityToken -> 24f924f9, jdbcUrl -> jdbc:oracle:thin:@localhost:1521:rhnsat, properties -> {user=******, password=******} ], preferredTestQuery -> null, propertyCycle -> 300, testConnectionOnCheckin -> false, testConnectionOnCheckout -> false, usesTraditionalReflectiveProxies -> false ], factoryClassLocation -> null, identityToken -> 6930693, numHelperThreads -> 3 ]
Apr 21, 2009 2:13:51 PM org.apache.coyote.http11.Http11BaseProtocol start
INFO: Starting Coyote HTTP/1.1 on http-8080
Apr 21, 2009 2:13:52 PM org.apache.jk.common.ChannelSocket init
INFO: JK: ajp13 listening on /0.0.0.0:8009
Apr 21, 2009 2:13:52 PM org.apache.jk.server.JkMain start
INFO: Jk running ID=0 time=0/729  config=null
Apr 21, 2009 2:13:53 PM org.apache.catalina.storeconfig.StoreLoader load
INFO: Find registry server-registry.xml at classpath resource
Apr 21, 2009 2:13:53 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 46744 ms
2009-04-22 09:02:45,798 [TP-Processor6] WARN  org.apache.struts.action.RequestProcessor - Unhandled Exception thrown: class com.redhat.rhn.common.db.WrappedSQLException
2009-04-22 09:02:45,846 [TP-Processor6] ERROR com.redhat.rhn.frontend.servlets.SessionFilter - Error during transaction. Rolling back
javax.servlet.ServletException: ORA-20246: (channel_unsubscribe_child_exists) - Unsubscribe failed because server is subscribed to child channels
ORA-06512: at "RHNSAT.RHN_EXCEPTION", line 23
ORA-06512: at "RHNSAT.RHN_CHANNEL", line 439
ORA-06512: at line 1

	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:82)
	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:73)
	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:283)
	at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:773)
	at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:703)
	at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:895)
	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
	at java.lang.Thread.run(Thread.java:735)
Caused by: 
com.redhat.rhn.common.db.WrappedSQLException: ORA-20246: (channel_unsubscribe_child_exists) - Unsubscribe failed because server is subscribed to child channels
ORA-06512: at "RHNSAT.RHN_EXCEPTION", line 23
ORA-06512: at "RHNSAT.RHN_CHANNEL", line 439
ORA-06512: at line 1

	at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
	at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)
	at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288)
	at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:745)
	at oracle.jdbc.driver.T4CCallableStatement.doOall8(T4CCallableStatement.java:218)
	at oracle.jdbc.driver.T4CCallableStatement.executeForRows(T4CCallableStatement.java:969)
	at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1190)
	at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3370)
	at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:3476)
	at oracle.jdbc.driver.OracleCallableStatement.execute(OracleCallableStatement.java:4400)
	at com.mchange.v2.c3p0.impl.NewProxyCallableStatement.execute(NewProxyCallableStatement.java:2706)
	at com.redhat.rhn.common.db.NamedPreparedStatement.execute(NamedPreparedStatement.java:115)
	at com.redhat.rhn.common.db.datasource.CachedStatement.executeCallable(CachedStatement.java:507)
	at com.redhat.rhn.common.db.datasource.CallableMode.execute(CallableMode.java:34)
	at com.redhat.rhn.manager.system.SystemManager.unsubscribeServerFromChannel(SystemManager.java:1194)
	at com.redhat.rhn.frontend.action.channel.manage.EditChannelAction.deny(EditChannelAction.java:227)
	at com.redhat.rhn.frontend.action.channel.manage.EditChannelAction.execute(EditChannelAction.java:136)
	at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
	... 40 more
Caused by: 
java.sql.SQLException: ORA-20246: (channel_unsubscribe_child_exists) - Unsubscribe failed because server is subscribed to child channels
ORA-06512: at "RHNSAT.RHN_EXCEPTION", line 23
ORA-06512: at "RHNSAT.RHN_CHANNEL", line 439
ORA-06512: at line 1

	... 58 more
2009-04-22 09:02:47,042 [TP-Processor6] ERROR org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/rhn].[action] - Servlet.service() for servlet action threw exception
java.sql.SQLException: ORA-20246: (channel_unsubscribe_child_exists) - Unsubscribe failed because server is subscribed to child channels
ORA-06512: at "RHNSAT.RHN_EXCEPTION", line 23
ORA-06512: at "RHNSAT.RHN_CHANNEL", line 439
ORA-06512: at line 1

	at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
	at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)
	at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288)
	at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:745)
	at oracle.jdbc.driver.T4CCallableStatement.doOall8(T4CCallableStatement.java:218)
	at oracle.jdbc.driver.T4CCallableStatement.executeForRows(T4CCallableStatement.java:969)
	at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1190)
	at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3370)
	at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:3476)
	at oracle.jdbc.driver.OracleCallableStatement.execute(OracleCallableStatement.java:4400)
	at com.mchange.v2.c3p0.impl.NewProxyCallableStatement.execute(NewProxyCallableStatement.java:2706)
	at com.redhat.rhn.common.db.NamedPreparedStatement.execute(NamedPreparedStatement.java:115)
	at com.redhat.rhn.common.db.datasource.CachedStatement.executeCallable(CachedStatement.java:507)
	at com.redhat.rhn.common.db.datasource.CallableMode.execute(CallableMode.java:34)
	at com.redhat.rhn.manager.system.SystemManager.unsubscribeServerFromChannel(SystemManager.java:1194)
	at com.redhat.rhn.frontend.action.channel.manage.EditChannelAction.deny(EditChannelAction.java:227)
	at com.redhat.rhn.frontend.action.channel.manage.EditChannelAction.execute(EditChannelAction.java:136)
	at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
	at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:237)
	at com.redhat.rhn.frontend.struts.RhnRequestProcessor.process(RhnRequestProcessor.java:82)
	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:73)
	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:283)
	at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:773)
	at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:703)
	at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:895)
	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
	at java.lang.Thread.run(Thread.java:735)
[root@fjs-0-03 tomcat5]#
Comment 1 Shannon Hughes 2009-05-07 15:18:09 EDT
mass move to onqa
Comment 2 wes hayutin 2009-05-08 10:00:36 EDT
failing in 5/7.1
Comment 3 wes hayutin 2009-05-08 10:01:58 EDT
Created attachment 343087 [details]
traceback txt
Comment 4 wes hayutin 2009-05-08 10:35:06 EDT
recreate:
1. create two orgs orgA orgB
2. share a one public channel and two public child channels from orgA
3. register a system in orgB and subscribe to the shared base and two child
channels
4. go to orgA and move the public base channel to protected, and remove access
to org

The key here is to create more than one child channel.. atleast two to recreate the bug.
Comment 5 Shannon Hughes 2009-05-12 10:48:53 EDT
*** Bug 500232 has been marked as a duplicate of this bug. ***
Comment 6 Brad Buckingham 2009-05-12 13:29:19 EDT
This failure appears to be related to a recent change made to SystemManager.unsubscribeServerFromChannel().  The change was to remove a check for an unused/undefined config variable that was used to determine if the hibernate refresh/reload logic should be bypassed.  Unfortunately, removing that check results in a 'reload' being done which is resulting in ISEs.  I fixed a couple of similar cases; therefore, I'm reassigning the bug to myself and will look for any similar errors.
Comment 7 Brad Buckingham 2009-05-12 15:17:37 EDT
master git commit: 91a19c53dda407bd95433472b580d4df0253779f
vader git commit: b723ef441dc82cd5126e64132c61f83a2bab3922

In addition to updating the case mentioned in #4 above, also updated it to handle modifications from:

- Manage Software Channels -> select Channel -> select Organizations tab
- select to add / remove access from an org

Note: The Organizations table is only applicable to a Protected channel
Prior to the change, the above scenario could also generate an ISE.
Comment 8 Brad Buckingham 2009-05-20 09:20:58 EDT
Mass move to ON_QA.
Comment 9 wes hayutin 2009-05-26 13:09:01 EDT
verified 5/21.1 build
Comment 10 John Sefler 2009-07-31 16:06:18 EDT
re-verified on stage iso build 7/24
no ISE is beeing thrown - expected access removal is occurring
moving to RELEASE_PENDING
Comment 11 Brandon Perkins 2009-09-10 14:15:36 EDT
An advisory has been issued which should help the problem
described in this bug report. This report is therefore being
closed with a resolution of ERRATA. For more information
on therefore solution and/or where to find the updated files,
please follow the link below. You may reopen this bug report
if the solution does not work for you.

http://rhn.redhat.com/errata/RHEA-2009-1434.html

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