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
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