You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@continuum.apache.org by "Peter Janes (JIRA)" <ji...@codehaus.org> on 2009/09/01 17:50:41 UTC

[jira] Commented: (CONTINUUM-1954) Data truncation: Data too long for column 'NAME' at row 1

    [ http://jira.codehaus.org/browse/CONTINUUM-1954?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=189386#action_189386 ] 

Peter Janes commented on CONTINUUM-1954:
----------------------------------------

Presumably the error is because the length of one or more of the changed filenames is longer than the schema allows (currently 255 characters).  I'm going to try running with a 512-character limit, i.e. "ALTER TABLE CHANGEFILE MODIFY NAME VARCHAR(512);", to see if the problem persists.

One curiosity I've noticed in the database is that the NAME occasionally includes more text than the filename, e.g. "/trunk/foo/bar/File.java (from /trunk/foo/bar/File.java:1234)".  Perhaps there's a bug in the SVN changeset parser that's artificially extending the length of the filenames?  (About .3% of the filenames in my CHANGEFILE table contain "(from".)

Also, it's worth noting that when this happens, it also appears that Continuum doesn't update the build status of the project, i.e. it remains in "building" instead of going to "error".  The build can't be cancelled or restarted manually, and won't be executed by the scheduler; the only fix I've found is to restart the server.

> Data truncation: Data too long for column 'NAME' at row 1
> ---------------------------------------------------------
>
>                 Key: CONTINUUM-1954
>                 URL: http://jira.codehaus.org/browse/CONTINUUM-1954
>             Project: Continuum
>          Issue Type: Bug
>          Components: Database
>    Affects Versions: 1.3.1
>         Environment: continuum-1.3-SNAPSHOT, rev. 708424, Linux, MySQL, LDAP
>            Reporter: Jimmy Conway
>            Priority: Minor
>
> This is what I see in continuum.log:
> 2008-10-31 00:00:47,613 [pool-1-thread-1] INFO  buildController  - Performing action update-project-from-working-directory
> 2008-10-31 00:00:47,632 [pool-1-thread-1] INFO  action#update-project-from-working-directory  - Updating project 'Continuum :: Model' from checkout.
> 2008-10-31 00:00:48,602 [pool-1-thread-1] INFO  buildController  - Performing action execute-builder
> 2008-10-31 00:00:48,890 [Thread-18] ERROR taskQueueExecutor#build-project  - Error executing task
> edu.emory.mathcs.backport.java.util.concurrent.ExecutionException: javax.jdo.JDODataStoreException: Insert request failed: INSERT INTO `CHANGEFILE` (`CHANGEFILE_ID`,`STATUS`,`NAME`,`REVISION`,`MODEL_ENCODING`,`FILES_CHANGESET_ID_OID`,`FILES_INTEGER_IDX`) VALUES (?,?,?,?,?,?,?)
> NestedThrowables:
> com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column 'NAME' at row 1
> 	at edu.emory.mathcs.backport.java.util.concurrent.FutureTask.getResult(FutureTask.java:301)
> 	at edu.emory.mathcs.backport.java.util.concurrent.FutureTask.get(FutureTask.java:120)
> 	at org.codehaus.plexus.taskqueue.execution.ThreadedTaskQueueExecutor$ExecutorRunnable.waitForTask(ThreadedTaskQueueExecutor.java:159)
> 	at org.codehaus.plexus.taskqueue.execution.ThreadedTaskQueueExecutor$ExecutorRunnable.run(ThreadedTaskQueueExecutor.java:127)
> Caused by: javax.jdo.JDODataStoreException: Insert request failed: INSERT INTO `CHANGEFILE` (`CHANGEFILE_ID`,`STATUS`,`NAME`,`REVISION`,`MODEL_ENCODING`,`FILES_CHANGESET_ID_OID`,`FILES_INTEGER_IDX`) VALUES (?,?,?,?,?,?,?)
> NestedThrowables:
> com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column 'NAME' at row 1
> 	at org.jpox.store.rdbms.request.InsertRequest.execute(InsertRequest.java:455)
> 	at org.jpox.store.rdbms.table.ClassTable.insert(ClassTable.java:2519)
> 	at org.jpox.store.StoreManager.insert(StoreManager.java:938)
> 	at org.jpox.state.StateManagerImpl.internalMakePersistent(StateManagerImpl.java:3667)
> 	at org.jpox.state.StateManagerImpl.makePersistent(StateManagerImpl.java:3646)
> 	at org.jpox.AbstractPersistenceManager.internalMakePersistent(AbstractPersistenceManager.java:1206)
> 	at org.jpox.AbstractPersistenceManager.makePersistentInternal(AbstractPersistenceManager.java:1259)
> 	at org.jpox.store.rdbms.scostore.FKListStore.validateElementForWriting(FKListStore.java:1231)
> 	at org.jpox.store.rdbms.scostore.FKListStore.internalAdd(FKListStore.java:772)
> 	at org.jpox.store.rdbms.scostore.AbstractListStore.addAll(AbstractListStore.java:387)
> 	at org.jpox.store.mapping.CollectionMapping.postInsert(CollectionMapping.java:209)
> 	at org.jpox.store.rdbms.request.InsertRequest.execute(InsertRequest.java:464)
> 	at org.jpox.store.rdbms.table.ClassTable.insert(ClassTable.java:2519)
> 	at org.jpox.store.StoreManager.insert(StoreManager.java:938)
> 	at org.jpox.state.StateManagerImpl.internalMakePersistent(StateManagerImpl.java:3667)
> 	at org.jpox.state.StateManagerImpl.makePersistent(StateManagerImpl.java:3646)
> 	at org.jpox.AbstractPersistenceManager.internalMakePersistent(AbstractPersistenceManager.java:1206)
> 	at org.jpox.AbstractPersistenceManager.makePersistentInternal(AbstractPersistenceManager.java:1259)
> 	at org.jpox.store.rdbms.scostore.FKListStore.validateElementForWriting(FKListStore.java:1231)
> 	at org.jpox.store.rdbms.scostore.FKListStore.internalAdd(FKListStore.java:772)
> 	at org.jpox.store.rdbms.scostore.AbstractListStore.addAll(AbstractListStore.java:387)
> 	at org.jpox.store.mapping.CollectionMapping.postInsert(CollectionMapping.java:209)
> 	at org.jpox.store.rdbms.request.InsertRequest.execute(InsertRequest.java:464)
> 	at org.jpox.store.rdbms.table.ClassTable.insert(ClassTable.java:2519)
> 	at org.jpox.store.StoreManager.insert(StoreManager.java:938)
> 	at org.jpox.state.StateManagerImpl.internalMakePersistent(StateManagerImpl.java:3667)
> 	at org.jpox.state.StateManagerImpl.makePersistent(StateManagerImpl.java:3646)
> 	at org.jpox.AbstractPersistenceManager.internalMakePersistent(AbstractPersistenceManager.java:1206)
> 	at org.jpox.AbstractPersistenceManager.makePersistentInternal(AbstractPersistenceManager.java:1259)
> 	at org.jpox.store.mapping.PersistenceCapableMapping.setObject(PersistenceCapableMapping.java:450)
> 	at org.jpox.store.rdbms.fieldmanager.ParameterSetter.storeObjectField(ParameterSetter.java:144)
> 	at org.jpox.state.StateManagerImpl.providedObjectField(StateManagerImpl.java:2771)
> 	at org.apache.maven.continuum.model.project.BuildResult.jdoProvideField(BuildResult.java)
> 	at org.apache.maven.continuum.model.project.BuildResult.jdoProvideFields(BuildResult.java)
> 	at org.jpox.state.StateManagerImpl.provideFields(StateManagerImpl.java:3115)
> 	at org.jpox.store.rdbms.request.InsertRequest.execute(InsertRequest.java:252)
> 	at org.jpox.store.rdbms.table.ClassTable.insert(ClassTable.java:2519)
> 	at org.jpox.store.StoreManager.insert(StoreManager.java:938)
> 	at org.jpox.state.StateManagerImpl.internalMakePersistent(StateManagerImpl.java:3667)
> 	at org.jpox.state.StateManagerImpl.makePersistent(StateManagerImpl.java:3646)
> 	at org.jpox.AbstractPersistenceManager.internalMakePersistent(AbstractPersistenceManager.java:1206)
> 	at org.jpox.AbstractPersistenceManager.makePersistent(AbstractPersistenceManager.java:1277)
> 	at org.codehaus.plexus.jdo.PlexusJdoUtils.makePersistent(PlexusJdoUtils.java:175)
> 	at org.apache.continuum.dao.AbstractDao.makePersistent(AbstractDao.java:191)
> 	at org.apache.continuum.dao.BuildResultDaoImpl.addBuildResult(BuildResultDaoImpl.java:99)
> 	at org.apache.maven.continuum.buildcontroller.DefaultBuildController.makeAndStoreBuildResult(DefaultBuildController.java:773)
> 	at org.apache.maven.continuum.buildcontroller.DefaultBuildController.updateBuildResult(DefaultBuildController.java:255)
> 	at org.apache.maven.continuum.buildcontroller.DefaultBuildController.performAction(DefaultBuildController.java:469)
> 	at org.apache.maven.continuum.buildcontroller.DefaultBuildController.build(DefaultBuildController.java:170)
> 	at org.apache.maven.continuum.buildcontroller.BuildProjectTaskExecutor.executeTask(BuildProjectTaskExecutor.java:50)
> 	at org.codehaus.plexus.taskqueue.execution.ThreadedTaskQueueExecutor$ExecutorRunnable$1.run(ThreadedTaskQueueExecutor.java:116)
> 	at edu.emory.mathcs.backport.java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:442)
> 	at edu.emory.mathcs.backport.java.util.concurrent.FutureTask.run(FutureTask.java:178)
> 	at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1061)
> 	at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:575)
> 	at java.lang.Thread.run(Thread.java:675)
> Caused by: com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column 'NAME' at row 1
> 	at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3489)
> 	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:2542)
> 	at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1734)
> 	at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2019)
> 	at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1937)
> 	at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1922)
> 	at org.jpox.store.rdbms.RDBMSManager.executeStatementUpdate(RDBMSManager.java:575)
> 	at org.jpox.store.rdbms.request.InsertRequest.execute(InsertRequest.java:328)
> 	... 55 more

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