db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Mike Matrigali (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (DERBY-5858) java.sql.SQLException: nospc.U trying to update a row
Date Fri, 20 Jul 2012 21:51:35 GMT

    [ https://issues.apache.org/jira/browse/DERBY-5858?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13419600#comment-13419600
] 

Mike Matrigali commented on DERBY-5858:
---------------------------------------

another possible workaround for people running into this problem would be to try offline compressing
the table - 
SYSCS_UTIL.SYSCS_COMPRESS_TABLE.  The system is supposed to reserve enough space in a page
such that any update is always possible.  There have been bugs fixed in the past in this area
where there
were off by one cases dealing with variable compressed fields.  Running offline compress sometimes
can 
change how the rows are packed on the page when they are copied to a new container.  It is
not guaranteed
to work, but a relatively easy workaround if it does.
                
> 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
>
> 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: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

       

Mime
View raw message