Bug 747062 - Configuration file addition does not work
Summary: Configuration file addition does not work
Keywords:
Status: CLOSED NOTABUG
Alias: None
Product: Spacewalk
Classification: Community
Component: Server
Version: 1.6
Hardware: Unspecified
OS: Unspecified
unspecified
high
Target Milestone: ---
Assignee: Michael Mráka
QA Contact: Red Hat Satellite QA List
URL:
Whiteboard:
Depends On:
Blocks: space16
TreeView+ depends on / blocked
 
Reported: 2011-10-18 17:31 UTC by Michael Zabriskie
Modified: 2011-11-11 08:53 UTC (History)
2 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2011-11-11 08:53:06 UTC
Embargoed:


Attachments (Terms of Use)

Description Michael Zabriskie 2011-10-18 17:31:36 UTC
Addition of files through rhncfg-manager throws a "500 Internal Server Error".

===========
# rhncfg-manager add -c configchannel /path/to/file
Using server name server.example.tld
Red Hat Network username: user
Password: 
Pushing to channel configchannel:
XML-RPC call error: <ProtocolError for server.example.tld /CONFIG-MANAGEMENT-TOOL: 500 Internal Server Error>
===========

Adding a file manually with "Configuration -> Add Files -> Create File" does not work either. Importing through the web interface fails as well.

===========
# rhn_check
XML-RPC call error: <ProtocolError for server.example.tld /CONFIG-MANAGEMENT: 500 Internal Server Error>
Traceback (most recent call last):
  File "/usr/share/rhn/config_client/rpc_cli_repository.py", line 122, in put_files
    self.system_id, action_id, params)
  File "/usr/share/rhn/config_client/rpc_cli_repository.py", line 51, in rpc_call
    (self, method_name) + params)
  File "/usr/share/rhn/config_common/repository.py", line 375, in rpc_call
    sys.exit(1)
SystemExit: 1
===========

RHN TRACEBACK:

Exception Handler Information
Traceback (most recent call last):
  File "/usr/lib/python2.6/site-packages/spacewalk/server/apacheRequest.py", line 123, in call_function
    response = apply(func, params)
  File "/usr/share/rhn/server/handlers/config/rhn_config_management.py", line 273, in client_upload_file
    return self.push_file(config_channel_id, file)
  File "/usr/lib/python2.6/site-packages/spacewalk/server/configFilesHandler.py", line 233, in push_file
    result = self._push_file(config_channel_id, file)
  File "/usr/lib/python2.6/site-packages/spacewalk/server/configFilesHandler.py", line 217, in _push_file
    self._push_config_file(file)
  File "/usr/lib/python2.6/site-packages/spacewalk/server/configFilesHandler.py", line 385, in _push_config_file
    file['config_file_id'] = insert_call(file['config_channel_id'], file['path'])
  File "/usr/lib/python2.6/site-packages/spacewalk/server/rhnSQL/driver_cx_Oracle.py", line 292, in __call__
    retval = self._call_proc(args)
  File "/usr/lib/python2.6/site-packages/spacewalk/server/rhnSQL/driver_cx_Oracle.py", line 351, in _call_proc
    return self._call_proc_ret(args, self.ret_type)
  File "/usr/lib/python2.6/site-packages/spacewalk/server/rhnSQL/driver_cx_Oracle.py", line 339, in _call_proc_ret
    return self.cursor.callfunc(self.name, ret_type, args)
SQLError: (1, 'ORA-00001: unique constraint (SPACEWALKDBUSER.RHN_CONFFILE_ID_PK) violated\nORA-06512: at "SPACEWALKDBUSER.RHN_CONFIG", line 156\nORA-06512: at line 1\n')

Comment 1 Michael Mráka 2011-10-19 11:52:47 UTC
On my freshly installed test spacewalk server it works.
According to unique constraint violated error it's an issue with data you have in the table.

What are values of
 file['config_file_id']
 file['config_channel_id']
in usr/lib/python2.6/site-packages/spacewalk/server/configFilesHandler.py:385?
Is there already a row with the same id as config_file_id in rhnConfigFile table?
What's the path of the file in database?

Comment 2 Michael Zabriskie 2011-10-21 00:06:01 UTC
This turned out to be a problem with the RHNCONFIGFILESTATE table.
It had somehow been populated twice. It looked like this:

ID	LABEL	NAME			CREATED		MODIFIED
21	dead	Will not be deployed	05-OCT-11	19-OCT-11
22	alive	Will be deployed	05-OCT-11	19-OCT-11
1	dead	Will not be deployed	05-OCT-11	19-OCT-11
2	alive	Will be deployed	05-OCT-11	19-OCT-11

LABEL was expected to be unique. I removed row 21,22 and it started working. Maybe a bug in an upgrade step somewhere?

Comment 3 Josh Mullis 2011-11-04 17:12:20 UTC
I am also having this issue.
However, removing these rows did not help.

Here is what my logs say...



FROM API trying to upload a file:
ORA-00001: unique constraint (SPACEWALK.RHN_CONFFILE_ID_PK) violated






FROM tomcat trying to update a file:


2011-11-04 13:11:03,456 [TP-Processor8] WARN  org.apache.struts.action.RequestProcessor - Unhandled Exception thrown: class com.redhat.rhn.common.db.ConstraintViolationException
2011-11-04 13:11:03,457 [TP-Processor8] ERROR com.redhat.rhn.frontend.servlets.SessionFilter - Error during transaction. Rolling back
javax.servlet.ServletException: ORA-00001: unique constraint (SPACEWALK.RHNCHECKSUM_PK) violated
ORA-06512: at "SPACEWALK.LOOKUP_CHECKSUM", line 21
ORA-01403: no data found
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:99)
        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:117)
        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:291)
        at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:775)
        at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:704)
        at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:897)
        at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
        at java.lang.Thread.run(Thread.java:662)
Caused by: com.redhat.rhn.common.db.ConstraintViolationException: ORA-00001: unique constraint (SPACEWALK.RHNCHECKSUM_PK) violated
ORA-06512: at "SPACEWALK.LOOKUP_CHECKSUM", line 21
ORA-01403: no data found
ORA-06512: at line 1

        at com.redhat.rhn.common.translation.SqlExceptionTranslator.oracleSQLException(SqlExceptionTranslator.java:77)
        at com.redhat.rhn.common.translation.SqlExceptionTranslator.sqlException(SqlExceptionTranslator.java:42)
        at com.redhat.rhn.common.db.NamedPreparedStatement.execute(NamedPreparedStatement.java:118)
        at com.redhat.rhn.common.db.datasource.CachedStatement.executeCallable(CachedStatement.java:511)
        at com.redhat.rhn.common.db.datasource.CallableMode.execute(CallableMode.java:34)
        at com.redhat.rhn.domain.common.ChecksumFactory.safeCreate(ChecksumFactory.java:132)
        at com.redhat.rhn.domain.config.ConfigurationFactory.createNewContentFromStream(ConfigurationFactory.java:804)
        at com.redhat.rhn.domain.config.ConfigurationFactory.createNewRevisionFromStream(ConfigurationFactory.java:748)
        at com.redhat.rhn.manager.configuration.ConfigurationManager.createNewRevision(ConfigurationManager.java:1339)
        at com.redhat.rhn.manager.configuration.ConfigFileBuilder.makeNewRevision(ConfigFileBuilder.java:155)
        at com.redhat.rhn.manager.configuration.ConfigFileBuilder.update(ConfigFileBuilder.java:235)
        at com.redhat.rhn.frontend.action.configuration.files.FileDetailsAction.execute(FileDetailsAction.java:81)
        at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
        ... 40 more
Caused by: java.sql.SQLIntegrityConstraintViolationException: ORA-00001: unique constraint (SPACEWALK.RHNCHECKSUM_PK) violated
ORA-06512: at "SPACEWALK.LOOKUP_CHECKSUM", line 21
ORA-01403: no data found
ORA-06512: at line 1

        at oracle.jdbc.driver.T2CConnection.checkError(T2CConnection.java:759)
        at oracle.jdbc.driver.T2CConnection.checkError(T2CConnection.java:661)
        at oracle.jdbc.driver.T2CCallableStatement.executeForDescribe(T2CCallableStatement.java:544)
        at oracle.jdbc.driver.T2CCallableStatement.executeForRows(T2CCallableStatement.java:727)
        at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1315)
        at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3576)
        at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:3677)
        at oracle.jdbc.driver.OracleCallableStatement.execute(OracleCallableStatement.java:4714)
        at oracle.jdbc.driver.OraclePreparedStatementWrapper.execute(OraclePreparedStatementWrapper.java:1374)
        at com.mchange.v2.c3p0.impl.NewProxyCallableStatement.execute(NewProxyCallableStatement.java:2706)
        at com.redhat.rhn.common.db.NamedPreparedStatement.execute(NamedPreparedStatement.java:115)
        ... 50 more
2011-11-04 13:11:03,469 [TP-Processor8] ERROR org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/rhn].[action] - Servlet.service() for servlet action threw exception
java.sql.SQLIntegrityConstraintViolationException: ORA-00001: unique constraint (SPACEWALK.RHNCHECKSUM_PK) violated
ORA-06512: at "SPACEWALK.LOOKUP_CHECKSUM", line 21
ORA-01403: no data found
ORA-06512: at line 1

        at oracle.jdbc.driver.T2CConnection.checkError(T2CConnection.java:759)
        at oracle.jdbc.driver.T2CConnection.checkError(T2CConnection.java:661)
        at oracle.jdbc.driver.T2CCallableStatement.executeForDescribe(T2CCallableStatement.java:544)
        at oracle.jdbc.driver.T2CCallableStatement.executeForRows(T2CCallableStatement.java:727)
        at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1315)
        at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3576)
        at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:3677)
        at oracle.jdbc.driver.OracleCallableStatement.execute(OracleCallableStatement.java:4714)
        at oracle.jdbc.driver.OraclePreparedStatementWrapper.execute(OraclePreparedStatementWrapper.java:1374)
        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:511)
        at com.redhat.rhn.common.db.datasource.CallableMode.execute(CallableMode.java:34)
        at com.redhat.rhn.domain.common.ChecksumFactory.safeCreate(ChecksumFactory.java:132)
        at com.redhat.rhn.domain.config.ConfigurationFactory.createNewContentFromStream(ConfigurationFactory.java:804)
        at com.redhat.rhn.domain.config.ConfigurationFactory.createNewRevisionFromStream(ConfigurationFactory.java:748)
        at com.redhat.rhn.manager.configuration.ConfigurationManager.createNewRevision(ConfigurationManager.java:1339)
        at com.redhat.rhn.manager.configuration.ConfigFileBuilder.makeNewRevision(ConfigFileBuilder.java:155)
        at com.redhat.rhn.manager.configuration.ConfigFileBuilder.update(ConfigFileBuilder.java:235)
        at com.redhat.rhn.frontend.action.configuration.files.FileDetailsAction.execute(FileDetailsAction.java:81)
        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:99)
        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:117)
        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:291)
        at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:775)
        at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:704)
        at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:897)
        at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
        at java.lang.Thread.run(Thread.java:662)

Comment 4 Josh Mullis 2011-11-04 17:14:04 UTC
Forgot to mention I did a stepped upgrade from v0.8 -> 1.0 -> 1.1 -> 1.2 -> 1.3 -> 1.4 -> 1.5

Thanks!

Comment 5 Michael Mráka 2011-11-09 14:35:12 UTC
> ORA-06512: at "SPACEWALK.LOOKUP_CHECKSUM", line 21
> ORA-01403: no data found
> ORA-06512: at line 1

Line 21 on lookup_checksum says: (select id from rhnChecksumType where label = checksum_type_in)

Could you show me result of
  # sqlplus $(spacewalk-cfg-get default_db)
  SQL> select * from rhnChecksumType;
?

Comment 6 Josh Mullis 2011-11-09 15:04:36 UTC
SQL> select * from rhnChecksumType;

        ID LABEL
---------- --------------------------------
DESCRIPTION                                                      CREATED
---------------------------------------------------------------- ---------
MODIFIED
---------
         1 md5
MD5sum                                                           18-MAR-10
18-MAR-10

         2 sha1
SHA1sum                                                          18-MAR-10
18-MAR-10

        ID LABEL
---------- --------------------------------
DESCRIPTION                                                      CREATED
---------------------------------------------------------------- ---------
MODIFIED
---------

         3 sha256
SHA256sum                                                        18-MAR-10
18-MAR-10

         4 sha384
SHA384sum                                                        18-MAR-10

        ID LABEL
---------- --------------------------------
DESCRIPTION                                                      CREATED
---------------------------------------------------------------- ---------
MODIFIED
---------
18-MAR-10

         5 sha512
SHA512sum                                                        18-MAR-10
18-MAR-10

Comment 7 Michael Mráka 2011-11-10 08:46:59 UTC
Content of rhnChecksumType looks good.

Could you turn on debugging and find out what are the values which cause the error?

Comment 8 Josh Mullis 2011-11-10 17:54:14 UTC
Michael,

Our issue may have been with the process we used to upgrade.

We first moved the 0.8 DB from 10g to 11g, then performed the stepped upgrade all the way to v1.5 .
Turns out doing the stepped upgrade on 10g first, then moving to 11g resolved this issue.

Thanks for your help with this.
-Josh

Comment 9 Michael Mráka 2011-11-11 08:53:06 UTC
According to comment #2 and comment #8 I'm going to close this issue as NOTABUG.
Thanks.


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