Archiva problem with SQL schemas
--------------------------------
Key: MRM-1052
URL: http://jira.codehaus.org/browse/MRM-1052
Project: Archiva
Issue Type: Bug
Affects Versions: 1.1.3
Environment: Suse SLES 10 x86
Reporter: Henri Gomez
After a system restart, the Archiva 1.1.3 system didn't works anymore on our
Linux box. It consumes up to 100% CPU without any 'visible' system activity.
We decided to switch from the previous derby DB to Mysql.
I set MySQL like this in context.xml
...
<Resource name="jdbc/users"
auth="Container"
type="javax.sql.DataSource"
username="archiva"
password="somepwd"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/archiva-users?autoReconnect=true"/>
<Resource name="jdbc/archiva"
auth="Container"
type="javax.sql.DataSource"
username="archiva"
password="somepwd"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/archiva?autoReconnect=true"/>
...
Created the archiva database on the local mysql DB, created archiva user and
grant it access to archiva DB.
Archiva 1.1.3 created the table at startup time and seems to start.
I created the admin user, but after trying to create another user, archiva is
stuck with SQL schema :
ATTENTION: Caught OgnlException while setting property 'principal' on type
'com.opensymphony.webwork.dispatcher.ServletActionRedirectResult'.
ognl.NoSuchPropertyException:
com.opensymphony.webwork.dispatcher.ServletActionRedirectResult.principal
at
ognl.ObjectPropertyAccessor.setProperty(ObjectPropertyAccessor.java:132)
at
com.opensymphony.xwork.util.OgnlValueStack$ObjectAccessor.setProperty(OgnlValueStack.java:67)
at ognl.OgnlRuntime.setProperty(OgnlRuntime.java:1656)
at ognl.ASTProperty.setValueBody(ASTProperty.java:101)
at ognl.SimpleNode.evaluateSetValueBody(SimpleNode.java:177)
at ognl.SimpleNode.setValue(SimpleNode.java:246)
at ognl.Ognl.setValue(Ognl.java:476)
at com.opensymphony.xwork.util.OgnlUtil.setValue(OgnlUtil.java:188)
at
com.opensymphony.xwork.util.OgnlUtil.internalSetProperty(OgnlUtil.java:362)
at com.opensymphony.xwork.util.OgnlUtil.setProperties(OgnlUtil.java:78)
at com.opensymphony.xwork.util.OgnlUtil.setProperties(OgnlUtil.java:51)
at
com.opensymphony.xwork.ObjectFactory.buildResult(ObjectFactory.java:186)
at
com.opensymphony.xwork.DefaultActionInvocation.createResult(DefaultActionInvocation.java:173)
at
com.opensymphony.xwork.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:310)
at
com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:208)
at
org.codehaus.plexus.redback.xwork.interceptor.SecureActionInterceptor.intercept(SecureActionInterceptor.java:159)
at
com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)
at
org.codehaus.plexus.redback.xwork.interceptor.PolicyEnforcementInterceptor.intercept(PolicyEnforcementInterceptor.java:149)
at
com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)
at
org.codehaus.plexus.redback.xwork.interceptor.AutoLoginInterceptor.intercept(AutoLoginInterceptor.java:156)
at
com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)
at
org.codehaus.plexus.redback.xwork.interceptor.ForceAdminUserInterceptor.intercept(ForceAdminUserInterceptor.java:76)
at
com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)
at
org.codehaus.plexus.redback.xwork.interceptor.EnvironmentCheckInterceptor.intercept(EnvironmentCheckInterceptor.java:122)
at
com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)
at
com.opensymphony.xwork.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:175)
at
com.opensymphony.xwork.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)
at
com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)
org.codehaus.plexus.redback.rbac.RbacObjectNotFoundException: Unable to find
RBAC Object 'userone' of type
org.codehaus.plexus.redback.rbac.jdo.JdoUserAssignment using fetch-group 'null'
at
org.codehaus.plexus.redback.rbac.jdo.JdoTool.getObjectById(JdoTool.java:316)
at
org.codehaus.plexus.redback.rbac.jdo.JdoRbacManager.getUserAssignment(JdoRbacManager.java:568)
at
org.codehaus.plexus.redback.rbac.AbstractRBACManager.getAssignedRoles(AbstractRBACManager.java:533)
at
org.codehaus.plexus.redback.rbac.cached.CachedRbacManager.getAssignedRoles(CachedRbacManager.java:251)
at
org.codehaus.plexus.redback.xwork.action.admin.AssignmentsAction.show(AssignmentsAction.java:189)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
com.opensymphony.xwork.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:358)
at
com.opensymphony.xwork.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:218)
at
com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:192)
at
org.codehaus.plexus.redback.xwork.interceptor.SecureActionInterceptor.intercept(SecureActionInterceptor.java:159)
at
com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)
at
org.codehaus.plexus.redback.xwork.interceptor.PolicyEnforcementInterceptor.intercept(PolicyEnforcementInterceptor.java:149)
at
com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)
at
org.codehaus.plexus.redback.xwork.interceptor.AutoLoginInterceptor.intercept(AutoLoginInterceptor.java:156)
at
com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)
at
org.codehaus.plexus.redback.xwork.interceptor.ForceAdminUserInterceptor.intercept(ForceAdminUserInterceptor.java:76)
at
com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)
at
org.codehaus.plexus.redback.xwork.interceptor.EnvironmentCheckInterceptor.intercept(EnvironmentCheckInterceptor.java:122)
at
com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)
at
com.opensymphony.xwork.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:175)
at
com.opensymphony.xwork.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)
at
com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)
at
com.opensymphony.xwork.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:115)
at
com.opensymphony.xwork.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)
at
com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)
at
com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
at
com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)
at
com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
at
com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)
at
com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
at
com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)
at
com.opensymphony.webwork.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:174)
at
com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)
at
com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
at
com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)
at
com.opensymphony.webwork.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:169)
at
com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)
at
com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
at
com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)
at
com.opensymphony.xwork.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:151)
at
com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)
at
com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
Caused by: javax.jdo.JDOObjectNotFoundException: No such database row
FailedObject:userone
at
org.jpox.store.rdbms.request.FetchRequest.execute(FetchRequest.java:194)
at org.jpox.store.rdbms.table.ClassTable.fetch(ClassTable.java:2552)
at org.jpox.store.StoreManager.fetch(StoreManager.java:959)
at
org.jpox.state.StateManagerImpl.loadFieldsInFetchPlan(StateManagerImpl.java:1820)
at org.jpox.state.StateManagerImpl.validate(StateManagerImpl.java:4499)
at
org.jpox.AbstractPersistenceManager.getObjectById(AbstractPersistenceManager.java:2726)
at
org.jpox.AbstractPersistenceManager.getObjectById(AbstractPersistenceManager.java:2600)
at
org.jpox.AbstractPersistenceManager.getObjectById(AbstractPersistenceManager.java:2580)
at
org.codehaus.plexus.redback.rbac.jdo.JdoTool.getObjectById(JdoTool.java:306)
... 73 more
org.codehaus.plexus.redback.rbac.RbacObjectNotFoundException: Unable to find
RBAC Object 'userone' of type
org.codehaus.plexus.redback.rbac.jdo.JdoUserAssignment using fetch-group 'null'
at
org.codehaus.plexus.redback.rbac.jdo.JdoTool.getObjectById(JdoTool.java:316)
at
org.codehaus.plexus.redback.rbac.jdo.JdoRbacManager.getUserAssignment(JdoRbacManager.java:568)
at
org.codehaus.plexus.redback.rbac.AbstractRBACManager.getAssignedRoles(AbstractRBACManager.java:533)
at
org.codehaus.plexus.redback.rbac.cached.CachedRbacManager.getAssignedRoles(CachedRbacManager.java:251)
at
org.codehaus.plexus.redback.xwork.action.admin.AssignmentsAction.show(AssignmentsAction.java:189)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
com.opensymphony.xwork.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:358)
at
com.opensymphony.xwork.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:218)
at
com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:192)
at
org.codehaus.plexus.redback.xwork.interceptor.SecureActionInterceptor.intercept(SecureActionInterceptor.java:159)
at
com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)
at
org.codehaus.plexus.redback.xwork.interceptor.PolicyEnforcementInterceptor.intercept(PolicyEnforcementInterceptor.java:149)
at
com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)
at
org.codehaus.plexus.redback.xwork.interceptor.AutoLoginInterceptor.intercept(AutoLoginInterceptor.java:156)
at
com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)
at
org.codehaus.plexus.redback.xwork.interceptor.ForceAdminUserInterceptor.intercept(ForceAdminUserInterceptor.java:76)
at
com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)
at
org.codehaus.plexus.redback.xwork.interceptor.EnvironmentCheckInterceptor.intercept(EnvironmentCheckInterceptor.java:122)
at
com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)
at
com.opensymphony.xwork.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:175)
at
com.opensymphony.xwork.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)
at
com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)
at
com.opensymphony.xwork.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:115)
at
com.opensymphony.xwork.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)
at
com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)
at
com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
at
com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)
at
com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
at
com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)
at
com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
at
com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)
at
com.opensymphony.webwork.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:174)
at
com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)
at
com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
at
com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)
Caused by: javax.jdo.JDOObjectNotFoundException: No such database row
FailedObject:userone
at
org.jpox.store.rdbms.request.FetchRequest.execute(FetchRequest.java:194)
at org.jpox.store.rdbms.table.ClassTable.fetch(ClassTable.java:2552)
at org.jpox.store.StoreManager.fetch(StoreManager.java:959)
at
org.jpox.state.StateManagerImpl.loadFieldsInFetchPlan(StateManagerImpl.java:1820)
at org.jpox.state.StateManagerImpl.validate(StateManagerImpl.java:4499)
at
org.jpox.AbstractPersistenceManager.getObjectById(AbstractPersistenceManager.java:2726)
at
org.jpox.AbstractPersistenceManager.getObjectById(AbstractPersistenceManager.java:2600)
at
org.jpox.AbstractPersistenceManager.getObjectById(AbstractPersistenceManager.java:2580)
at
org.codehaus.plexus.redback.rbac.jdo.JdoTool.getObjectById(JdoTool.java:306)
... 73 more
I had to restart the tomcat hosting archiva.
After restart I see in Archiva log :
2008-12-22 11:54:08,034 [main] ERROR JPOX.RDBMS - An exception was thrown
while adding/validating class(es) : You have an error in your SQL syntax; check
the manual that corresponds to your MySQL server version for the right syntax
to use near '-users.`SECURITY_USERASSIGNMENT_ROLENAMES` ADD CONSTRAINT
`SECURITY_USERASSIGNME' at line 1
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in
your SQL syntax; check the manual that corresponds to your MySQL server version
for the right syntax to use near '-users.`SECURITY_USERASSIGNMENT_ROLENAMES`
ADD CONSTRAINT `SECURITY_USERASSIGNME' at line 1
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
at com.mysql.jdbc.Util.getInstance(Util.java:381)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1030)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3491)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3423)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1936)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2060)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2536)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2465)
at com.mysql.jdbc.StatementImpl.execute(StatementImpl.java:734)
at
org.apache.tomcat.dbcp.dbcp.DelegatingStatement.execute(DelegatingStatement.java:264)
at
org.jpox.store.rdbms.table.AbstractTable.executeDdlStatement(AbstractTable.java:614)
at
org.jpox.store.rdbms.table.TableImpl.validateForeignKeys(TableImpl.java:463)
at
org.jpox.store.rdbms.table.TableImpl.validateConstraints(TableImpl.java:388)
at
org.jpox.store.rdbms.RDBMSManager$ClassAdder.performTablesValidation(RDBMSManager.java:3123)
at
org.jpox.store.rdbms.RDBMSManager$ClassAdder.addClassTablesAndValidate(RDBMSManager.java:3326)
at
org.jpox.store.rdbms.RDBMSManager$ClassAdder.run(RDBMSManager.java:2567)
at
org.jpox.store.rdbms.RDBMSManager$MgmtTransaction.execute(RDBMSManager.java:2419)
at org.jpox.store.rdbms.RDBMSManager.addClasses(RDBMSManager.java:824)
at org.jpox.store.rdbms.RDBMSManager.addClass(RDBMSManager.java:838)
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira