You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-dev@db.apache.org by "Mike Matrigali (JIRA)" <ji...@apache.org> on 2012/09/14 18:03:07 UTC

[jira] [Updated] (DERBY-5858) java.sql.SQLException: nospc.U trying to update a row

     [ https://issues.apache.org/jira/browse/DERBY-5858?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Mike Matrigali updated DERBY-5858:
----------------------------------

    Labels: derby_triage10_10  (was: )

triaged for 10.10

without a repro not much can be done.   Should leave open to track issues in the field in this area.  
There have been fixes in the past so anyone running into this issue should upgrade to the most
recent release possible.  The fixes in this area tend to not fix existing issues, but instead prevent
future problems.  Usually running SYSCS_UTIL.SYSCS_COMPRESS_TABLE fixes the problem in
these cases.
                
> java.sql.SQLException: nospc.U trying to update a row
> -----------------------------------------------------
>
>                 Key: DERBY-5858
>                 URL: https://issues.apache.org/jira/browse/DERBY-5858
>             Project: Derby
>          Issue Type: Bug
>          Components: Store
>    Affects Versions: 10.8.2.2
>         Environment: Linux 2.6.18-194.el5    Java 1.6.0_23
> Derby 10.8.2.2 - (1181258)
>            Reporter: Gonzalo Herreros
>              Labels: derby_triage10_10
>
> After browsing other issues, it seems the error nospc.U should not be thrown whenever there is still space in the disk.
> The issue is that I have a table with about 80k rows and 3 rows for some reason became corrupted, The rows where inserted about the same time. The rest of the table and the DB is working ok for weeks until I noticed the problem with those 3.
> The error is triggered when I try to set a value update in the timestamp column in any of those 3 rows. If I set that column to null it allows me to update other columns.
> I'm not sure if it is related but I have added 3 other columns to that table after it was created but not the timestamp one that is failing.
> The way I worked around this problem was dropping and recreating the timestamp column.
> Following the derby log, the problem is in the column named "last_update":
> Fri Jul 13 12:31:57 IDT 2012 Thread[DRDAConnThread_5,5,main] (XID = 458542073), (SESSIONID = 7), (DATABASE = twitter), (DRDAID = ��������.���-650487329006424032{4}), Cleanup action starting
> Fri Jul 13 12:31:57 IDT 2012 Thread[DRDAConnThread_5,5,main] (XID = 458542073), (SESSIONID = 7), (DATABASE = twitter), (DRDAID = ��������.���-650487329006424032{4}), Failed Statement is: UPDATE trend_info SET last_update='2012-07-13 09:30:52' WHERE stream='android' AND period_id='2012_06_02_23' AND trend_id=262
> ERROR nospc: nospc.U
>         at org.apache.derby.impl.store.raw.data.StoredPage.logRow(Unknown Source)
>         at org.apache.derby.impl.store.raw.data.UpdateOperation.writeOptionalDataToBuffer(Unknown Source)
>         at org.apache.derby.impl.store.raw.data.UpdateOperation.<init>(Unknown Source)
>         at org.apache.derby.impl.store.raw.data.LoggableActions.actionUpdate(Unknown Source)
>         at org.apache.derby.impl.store.raw.data.StoredPage.doUpdateAtSlot(Unknown Source)
>         at org.apache.derby.impl.store.raw.data.BasePage.updateAtSlot(Unknown Source)
>         at org.apache.derby.impl.store.access.conglomerate.GenericConglomerateController.replace(Unknown Source)
>         at org.apache.derby.impl.sql.execute.RowChangerImpl.updateRow(Unknown Source)
>         at org.apache.derby.impl.sql.execute.UpdateResultSet.collectAffectedRows(Unknown Source)
>         at org.apache.derby.impl.sql.execute.UpdateResultSet.open(Unknown Source)
>         at org.apache.derby.impl.sql.GenericPreparedStatement.executeStmt(Unknown Source)
>         at org.apache.derby.impl.sql.GenericPreparedStatement.execute(Unknown Source)
>         at org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(Unknown Source)
>         at org.apache.derby.impl.jdbc.EmbedStatement.execute(Unknown Source)
>         at org.apache.derby.impl.jdbc.EmbedStatement.executeUpdate(Unknown Source)
>         at org.apache.derby.impl.drda.DRDAConnThread.parseEXCSQLIMM(Unknown Source)
>         at org.apache.derby.impl.drda.DRDAConnThread.processCommands(Unknown Source)
>         at org.apache.derby.impl.drda.DRDAConnThread.run(Unknown Source)
> Cleanup action completed

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira