db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Brett Wooldridge (JIRA)" <j...@apache.org>
Subject [jira] Updated: (DERBY-4772) Data truncation error with XPLAIN-functionality enabled
Date Mon, 16 Aug 2010 15:25:17 GMT

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

Brett Wooldridge updated DERBY-4772:
------------------------------------

    Bug behavior facts: [Seen in production]
     Affects Version/s: 10.6.1.1

The obvious 'fix', and I think minimum that should be done, is to increase the THREAD_ID column
and TRANSACTION_ID column sizes to the already suggested 128 characters.  Though is there
some reason we are using CHAR rather than VARCHAR here?  It seems like a waste of space. 
Maybe not so much an issue when the size was 32, but I think if we increase the column size
we should consider converting it to VARCHAR.

A step beyond the above fixes would be to truncate the columns to ensure that they fit.  Though
not a likely a problem in the THREAD_ID case, there is the possibility that if some transaction
manager uses extremely long XID, that truncating could result in two transactions that are
actually distinct being mistaken for the same transaction.  I think this is unlikely, and
should be addressed as a bug should it ever occur.


> Data truncation error with XPLAIN-functionality enabled
> -------------------------------------------------------
>
>                 Key: DERBY-4772
>                 URL: https://issues.apache.org/jira/browse/DERBY-4772
>             Project: Derby
>          Issue Type: Bug
>          Components: SQL
>    Affects Versions: 10.6.1.1, 10.7.0.0
>            Reporter: Kristian Waagan
>         Attachments: derby-4771-1a-prototype_code_dump.stat
>
>
> When running a modified version of lang.OrderByAndSortAvoidance I get the following error:
> java.sql.SQLDataException: A truncation error was encountered trying to shrink CHAR 'Thread[DRDAConnThread_3,5,derby.daemons]'
to length 32.
> 	at org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(SQLExceptionFactory40.java:79)
> 	at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Util.java:256)
> 	at org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(TransactionResourceImpl.java:391)
> 	at org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(TransactionResourceImpl.java:346)
> 	at org.apache.derby.impl.jdbc.EmbedConnection.handleException(EmbedConnection.java:2269)
> 	at org.apache.derby.impl.jdbc.ConnectionChild.handleException(ConnectionChild.java:81)
> 	at org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(EmbedStatement.java:1321)
> 	at org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeStatement(EmbedPreparedStatement.java:1673)
> 	at org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeUpdate(EmbedPreparedStatement.java:303)
> 	at org.apache.derby.impl.sql.execute.xplain.XPLAINSystemTableVisitor.addStmtDescriptorsToSystemCatalog(XPLAINSystemTableVisitor.java:390)
> 	at org.apache.derby.impl.sql.execute.xplain.XPLAINSystemTableVisitor.doXPLAIN(XPLAINSystemTableVisitor.java:317)
> 	at org.apache.derby.impl.sql.execute.NoPutResultSetImpl.close(NoPutResultSetImpl.java:179)
> 	at org.apache.derby.impl.sql.execute.SortResultSet.close(SortResultSet.java:467)
> 	at org.apache.derby.impl.jdbc.EmbedResultSet.close(EmbedResultSet.java:575)
> 	at org.apache.derby.impl.drda.DRDAResultSet.close(DRDAResultSet.java:338)
> 	at org.apache.derby.impl.drda.DRDAStatement.rsClose(DRDAStatement.java:995)
> 	at org.apache.derby.impl.drda.DRDAConnThread.doneData(DRDAConnThread.java:7446)
> 	at org.apache.derby.impl.drda.DRDAConnThread.writeFDODTA(DRDAConnThread.java:7026)
> 	at org.apache.derby.impl.drda.DRDAConnThread.writeQRYDTA(DRDAConnThread.java:6910)
> 	at org.apache.derby.impl.drda.DRDAConnThread.processCommands(DRDAConnThread.java:870)
> 	at org.apache.derby.impl.drda.DRDAConnThread.run(DRDAConnThread.java:294)
> Caused by: java.sql.SQLException: A truncation error was encountered trying to shrink
CHAR 'Thread[DRDAConnThread_3,5,derby.daemons]' to length 32.
> 	at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(SQLExceptionFactory.java:45)
> 	at org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(SQLExceptionFactory40.java:119)
> 	at org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(SQLExceptionFactory40.java:70)
> 	... 20 more
> Caused by: ERROR 22001: A truncation error was encountered trying to shrink CHAR 'Thread[DRDAConnThread_3,5,derby.daemons]'
to length 32.
> 	at org.apache.derby.iapi.error.StandardException.newException(StandardException.java:343)
> 	at org.apache.derby.iapi.types.SQLChar.hasNonBlankChars(SQLChar.java:1767)
> 	at org.apache.derby.iapi.types.SQLChar.normalize(SQLChar.java:1743)
> 	at org.apache.derby.iapi.types.SQLChar.normalize(SQLChar.java:1695)
> 	at org.apache.derby.iapi.types.DataTypeDescriptor.normalize(DataTypeDescriptor.java:648)
> 	at org.apache.derby.impl.sql.execute.NormalizeResultSet.normalizeColumn(NormalizeResultSet.java:329)
> 	at org.apache.derby.impl.sql.execute.NormalizeResultSet.normalizeRow(NormalizeResultSet.java:373)
> 	at org.apache.derby.impl.sql.execute.NormalizeResultSet.getNextRowCore(NormalizeResultSet.java:188)
> 	at org.apache.derby.impl.sql.execute.DMLWriteResultSet.getNextRowCore(DMLWriteResultSet.java:127)
> 	at org.apache.derby.impl.sql.execute.InsertResultSet.open(InsertResultSet.java:504)
> 	at org.apache.derby.impl.sql.GenericPreparedStatement.executeStmt(GenericPreparedStatement.java:436)
> 	at org.apache.derby.impl.sql.GenericPreparedStatement.execute(GenericPreparedStatement.java:317)
> 	at org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(EmbedStatement.java:1232)
> 	... 14 more
> I suspect the error can be triggered easily in client/server, but for convenience I'll
attach the patch for the test where I see the issue.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message