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 "Gonzalo Herreros (JIRA)" <ji...@apache.org> on 2012/07/25 14:20:35 UTC

[jira] [Comment Edited] (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:comment-tabpanel&focusedCommentId=13422187#comment-13422187 ] 

Gonzalo Herreros edited comment on DERBY-5858 at 7/25/12 12:20 PM:
-------------------------------------------------------------------

CREATE TABLE trend_info 
(
   stream varchar(30),
   period_id VARCHAR(30) NOT NULL,
   trend_id INT  NOT NULL,
   sex FLOAT,
   sentiment CLOB,
   relevance FLOAT,   
   last_update timestamp,
   FOREIGN KEY (stream, period_id, trend_id) REFERENCES trends(stream, period_id, trend_id) ON DELETE CASCADE,
   PRIMARY KEY (stream, period_id, trend_id)   
);

alter table trend_info add column rt_ratio float;
alter table trend_info add column description varchar(500);
alter table trend_info add column location clob;

I have noticed something more important, about the time the error happened I indexed the column that later became corrupted:
create index trends_info_last_update  on trend_info (last_update);

I would bet that indexing is related to the issue.


                
      was (Author: gherreros):
    CREATE TABLE trend_info 
(
   stream varchar(30),
   period_id VARCHAR(30) NOT NULL,
   trend_id INT  NOT NULL,
   sex FLOAT,
   sentiment CLOB,
   relevance FLOAT,   
   last_update timestamp,
   FOREIGN KEY (stream, period_id, trend_id) REFERENCES trends(stream, period_id, trend_id) ON DELETE CASCADE,
   PRIMARY KEY (stream, period_id, trend_id)   
);

alter table trend_info add column rt_ratio float;
alter table trend_info add column description varchar(500);
alter table trend_info add column location clob;

I have noticed something more important, about the time the error happened I indexed the column that later became corrupted:
create index trends_info_last_update  on trend_info (last_update);



                  
> 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