Bug 1174652
| Summary: | 5.7.0@extOracle10: ISE on Systems -> <system> -> Provisioning -> Snapshot Tags -> <tag> | ||||||
|---|---|---|---|---|---|---|---|
| Product: | Red Hat Satellite 5 | Reporter: | Jan Hutař <jhutar> | ||||
| Component: | WebUI | Assignee: | Grant Gainey <ggainey> | ||||
| Status: | CLOSED ERRATA | QA Contact: | Lukáš Hellebrandt <lhellebr> | ||||
| Severity: | high | Docs Contact: | |||||
| Priority: | unspecified | ||||||
| Version: | unspecified | CC: | lhellebr, mbridon, tlestach | ||||
| Target Milestone: | --- | ||||||
| Target Release: | --- | ||||||
| Hardware: | Unspecified | ||||||
| OS: | Unspecified | ||||||
| Whiteboard: | |||||||
| Fixed In Version: | spacewalk-java-2.3.8-98-sat | Doc Type: | Bug Fix | ||||
| Doc Text: | Story Points: | --- | |||||
| Clone Of: | Environment: | ||||||
| Last Closed: | 2015-04-23 13:20:35 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: | 1127217, 1162131 | ||||||
| Attachments: |
|
||||||
Similar traceback on Systems -> <system> -> Provisioning -> Snapshots -> <snapshot> -> Packages:
2014-12-16 04:17:13,894 [TP-Processor6] ERROR com.redhat.rhn.common.db.datasource.CachedStatement - Error while processing cached statement sql: select pn.name as package_name,
pa.name as arch,
case when server_pkgs.max_evr is null then null
else evr_t_as_vre_simple(server_pkgs.max_evr)
end as server_nvrea,
(server_pkgs.max_evr).epoch as server_epoch,
(server_pkgs.max_evr).version as server_version,
(server_pkgs.max_evr).release as server_release,
case when snapshot_pkgs.max_evr is null then null
else evr_t_as_vre_simple(snapshot_pkgs.max_evr)
end as snapshot_nvrea,
(snapshot_pkgs.max_evr).epoch as snapshot_epoch,
(snapshot_pkgs.max_evr).version as snapshot_version,
(snapshot_pkgs.max_evr).release as snapshot_release,
case when server_pkgs.max_evr is null then -2
when snapshot_pkgs.max_evr is null then 2
else rpm.vercmp((server_pkgs.max_evr).epoch, (server_pkgs.max_evr).version, (server_pkgs.max_evr).release,
(snapshot_pkgs.max_evr).epoch, (snapshot_pkgs.max_evr).version, (snapshot_pkgs.max_evr).release)
end as comparison
from (select max(pem1.evr) as max_evr, sp.name_id, sp.package_arch_id
from rhnServerPackage sp
join rhnPackageEvr pem1
on pem1.id = sp.evr_id
where sp.server_id = ?
group by sp.name_id, sp.package_arch_id
) server_pkgs
full outer join (select max(spe.evr) as max_evr, pnevra.name_id, pnevra.package_arch_id
from rhnSnapshot s
join rhnSnapshotPackage spkg
on spkg.snapshot_id = s.id
join rhnPackageNEVRA pnevra
on spkg.nevra_id = pnevra.id
join rhnPackageEvr spe
on pnevra.evr_id = spe.id
where s.server_id = ?
and s.id = ?
group by pnevra.name_id, pnevra.package_arch_id
) snapshot_pkgs
on server_pkgs.name_id = snapshot_pkgs.name_id
and server_pkgs.package_arch_id = snapshot_pkgs.package_arch_id
join rhnPackageName pn
on pn.id = coalesce(server_pkgs.name_id, snapshot_pkgs.name_id)
join rhnPackageArch pa
on pa.id = coalesce(server_pkgs.package_arch_id, snapshot_pkgs.package_arch_id)
where server_pkgs.max_evr is null
or snapshot_pkgs.max_evr is null
or (rpm.vercmp((server_pkgs.max_evr).epoch, (server_pkgs.max_evr).version, (server_pkgs.max_evr).release,
(snapshot_pkgs.max_evr).epoch, (snapshot_pkgs.max_evr).version, (snapshot_pkgs.max_evr).release) <> 0)
order by pn.name
com.redhat.rhn.common.db.WrappedSQLException: ORA-22806: not an object or REF
at com.redhat.rhn.common.translation.SqlExceptionTranslator.oracleSQLException(SqlExceptionTranslator.java:82)
at com.redhat.rhn.common.translation.SqlExceptionTranslator.sqlException(SqlExceptionTranslator.java:42)
at com.redhat.rhn.common.db.NamedPreparedStatement.execute(NamedPreparedStatement.java:143)
at com.redhat.rhn.common.db.datasource.CachedStatement.execute(CachedStatement.java:467)
at com.redhat.rhn.common.db.datasource.CachedStatement.execute(CachedStatement.java:443)
at com.redhat.rhn.common.db.datasource.CachedStatement.execute(CachedStatement.java:345)
at com.redhat.rhn.common.db.datasource.CachedStatement.execute(CachedStatement.java:351)
at com.redhat.rhn.common.db.datasource.CachedStatement.execute(CachedStatement.java:287)
at com.redhat.rhn.common.db.datasource.SelectMode.execute(SelectMode.java:110)
at com.redhat.rhn.manager.BaseManager.makeDataResult(BaseManager.java:57)
at com.redhat.rhn.manager.system.SystemManager.systemSnapshotPackages(SystemManager.java:3097)
at com.redhat.rhn.frontend.action.systems.sdc.SnapshotPackagesAction.getResult(SnapshotPackagesAction.java:32)
at com.redhat.rhn.frontend.taglibs.list.helper.ListHelper.setupDataSet(ListHelper.java:107)
at com.redhat.rhn.frontend.taglibs.list.helper.ListHelper.execute(ListHelper.java:100)
at com.redhat.rhn.frontend.action.systems.sdc.SnapshotBaseAction.execute(SnapshotBaseAction.java:56)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:425)
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.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: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:761)
Caused by:
java.sql.SQLException: ORA-22806: not an object or REF
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
at oracle.jdbc.driver.T2CConnection.checkError(T2CConnection.java:676)
at oracle.jdbc.driver.T2CConnection.checkError(T2CConnection.java:602)
at oracle.jdbc.driver.T2CPreparedStatement.executeForDescribe(T2CPreparedStatement.java:571)
at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1049)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1154)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3370)
at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:3476)
at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.execute(NewProxyPreparedStatement.java:651)
at com.redhat.rhn.common.db.NamedPreparedStatement.execute(NamedPreparedStatement.java:140)
... 53 more
2014-12-16 04:17:13,895 [TP-Processor6] WARN org.apache.struts.action.RequestProcessor - Unhandled Exception thrown: class com.redhat.rhn.common.db.WrappedSQLException
2014-12-16 04:17:13,895 [TP-Processor6] ERROR com.redhat.rhn.frontend.servlets.SessionFilter - Error during transaction. Rolling back
javax.servlet.ServletException: com.redhat.rhn.common.db.WrappedSQLException: ORA-22806: not an object or REF
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.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: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:761)
Caused by:
com.redhat.rhn.common.db.WrappedSQLException: ORA-22806: not an object or REF
at com.redhat.rhn.common.translation.SqlExceptionTranslator.oracleSQLException(SqlExceptionTranslator.java:82)
at com.redhat.rhn.common.translation.SqlExceptionTranslator.sqlException(SqlExceptionTranslator.java:42)
at com.redhat.rhn.common.db.NamedPreparedStatement.execute(NamedPreparedStatement.java:143)
at com.redhat.rhn.common.db.datasource.CachedStatement.execute(CachedStatement.java:467)
at com.redhat.rhn.common.db.datasource.CachedStatement.execute(CachedStatement.java:443)
at com.redhat.rhn.common.db.datasource.CachedStatement.execute(CachedStatement.java:345)
at com.redhat.rhn.common.db.datasource.CachedStatement.execute(CachedStatement.java:351)
at com.redhat.rhn.common.db.datasource.CachedStatement.execute(CachedStatement.java:287)
at com.redhat.rhn.common.db.datasource.SelectMode.execute(SelectMode.java:110)
at com.redhat.rhn.manager.BaseManager.makeDataResult(BaseManager.java:57)
at com.redhat.rhn.manager.system.SystemManager.systemSnapshotPackages(SystemManager.java:3097)
at com.redhat.rhn.frontend.action.systems.sdc.SnapshotPackagesAction.getResult(SnapshotPackagesAction.java:32)
at com.redhat.rhn.frontend.taglibs.list.helper.ListHelper.setupDataSet(ListHelper.java:107)
at com.redhat.rhn.frontend.taglibs.list.helper.ListHelper.execute(ListHelper.java:100)
at com.redhat.rhn.frontend.action.systems.sdc.SnapshotBaseAction.execute(SnapshotBaseAction.java:56)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:425)
... 40 more
Caused by:
java.sql.SQLException: ORA-22806: not an object or REF
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
at oracle.jdbc.driver.T2CConnection.checkError(T2CConnection.java:676)
at oracle.jdbc.driver.T2CConnection.checkError(T2CConnection.java:602)
at oracle.jdbc.driver.T2CPreparedStatement.executeForDescribe(T2CPreparedStatement.java:571)
at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1049)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1154)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3370)
at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:3476)
at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.execute(NewProxyPreparedStatement.java:651)
at com.redhat.rhn.common.db.NamedPreparedStatement.execute(NamedPreparedStatement.java:140)
... 53 more
Please let me know if that is related of user error or needs another bug.
Taking for investigation ... *** Bug 1182948 has been marked as a duplicate of this bug. *** Further investigation suggests that while the problem *is* in the where-clause at the end of the query, it has nothing to do with the comparison-operator.
The clause in question is
===
where server_pkgs.max_evr is null
or snapshot_pkgs.max_evr is null
or (rpm.vercmp((server_pkgs.max_evr).epoch,
(server_pkgs.max_evr).version,
(server_pkgs.max_evr).release,
(snapshot_pkgs.max_evr).epoch,
(snapshot_pkgs.max_evr).version,
(snapshot_pkgs.max_evr).release) <> 0)
===
In Postgresql, if server_pkgs.max_evr is null, the rest of the predicate is ignored.
In Oracle, the entire predicate is evaluated prior to executing the query. This means that when server_pkgs.max_evr is null, expressions like (server_pkgs.max_evr).epoch evaluate to (null).epoch, and "not an object or REF" rears its ugly head.
I foresee a date with 'coalesce()' in the near future...
spacewalk.github 23f602453d80f53953472ec114fd687a5a089227 Verified with spacewalk-java-2.3.8-100 ISE doesn't occur anymore and the pages in question (snapshots and snapshot tags) are shown properly Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://rhn.redhat.com/errata/RHBA-2015-0281.html |
Created attachment 969478 [details] /var/log/tomcat6/catalina.out Description of problem: I have 5.6.0@extOracle10 upgraded to 5.7.0@extOracle10 and I'm getting ISE on Systems -> <system> -> Provisioning -> Snapshot Tags -> <tag> Version-Release number of selected component (if applicable): Satellite-5.7.0-RHEL6-re20141212.0-x86_64 (custom pkg installed: spacewalk-java-2.3.8-92.git.8.b687552.el6sat.noarch) rhn-upgrade-5.7.0.15-1.el6sat.noarch How reproducible: always on this system Steps to Reproduce: 1. Upgrade 5.6.0@extOracle10 to 5.7.0@extOracle10 2. Sync some channels, register some clients 3. Navigate to Systems -> <system> -> Provisioning -> Snapshot Tags and create new tag (you need to have "Provisioning" add-on entitlement) 4. Navigate to Systems -> <system> -> Provisioning -> Snapshot Tags -> -> <tag_you_have_created> Actual results: ISE (see attached catalina.out) Expected results: No ISE