[
https://issues.apache.org/jira/browse/DERBY-1595?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12878985#action_12878985
]
Kristian Waagan commented on DERBY-1595:
----------------------------------------
The fix for this bug consists of two parts:
- make the client and the server agree on how the length is represented.
Currently the client writes a long (8 bytes), whereas the server expects 6
bytes.
- switch to using long instead of int where appropriate in the client.
There are several places where using int may result in an overflow (i.e.
user data length + overhead).
I hope to post the first patch tomorrow.
> Network server fails with DRDAProtocolException if a BLOB with size
> 2147483647 is streamed from client
> ------------------------------------------------------------------------------------------------------
>
> Key: DERBY-1595
> URL: https://issues.apache.org/jira/browse/DERBY-1595
> Project: Derby
> Issue Type: Bug
> Components: Network Server
> Affects Versions: 10.2.1.6
> Reporter: Andreas Korneliussen
> Assignee: Kristian Waagan
> Priority: Minor
> Fix For: 10.7.0.0
>
>
> When executing a program which inserts a BLOB of size 2GB-1, the Network
> server fails with DRDAProtocolException. This happens before it starts
> handling the actual LOB data:
> java org.apache.derby.drda.NetworkServerControl start
> Apache Derby Network Server - 10.2.0.4 alpha started and ready to accept
> connections on port 1527 at 2006-07-26 14:15:21.284 GMT
> Execution failed because of a Distributed Protocol Error:
> DRDA_Proto_SYNTAXRM; CODPNT arg = 0; Error Code Value = c
> org.apache.derby.impl.drda.DRDAProtocolException
> at
> org.apache.derby.impl.drda.DRDAConnThread.throwSyntaxrm(DRDAConnThread.java:441)
> at
> org.apache.derby.impl.drda.DDMReader.readLengthAndCodePoint(DDMReader.java:554)
> at
> org.apache.derby.impl.drda.DDMReader.getCodePoint(DDMReader.java:617)
> at
> org.apache.derby.impl.drda.DRDAConnThread.parseSQLDTA_work(DRDAConnThread.java:4072)
> at
> org.apache.derby.impl.drda.DRDAConnThread.parseSQLDTA(DRDAConnThread.java:3928)
> at
> org.apache.derby.impl.drda.DRDAConnThread.parseEXCSQLSTTobjects(DRDAConnThread.java:3806)
> at
> org.apache.derby.impl.drda.DRDAConnThread.parseEXCSQLSTT(DRDAConnThread.java:3640)
> at
> org.apache.derby.impl.drda.DRDAConnThread.processCommands(DRDAConnThread.java:928)
> at
> org.apache.derby.impl.drda.DRDAConnThread.run(DRDAConnThread.java:254)
> null
> org.apache.derby.impl.drda.DRDAProtocolException
> at
> org.apache.derby.impl.drda.DRDAConnThread.throwSyntaxrm(DRDAConnThread.java:441)
> at
> org.apache.derby.impl.drda.DDMReader.readLengthAndCodePoint(DDMReader.java:554)
> at
> org.apache.derby.impl.drda.DDMReader.getCodePoint(DDMReader.java:617)
> at
> org.apache.derby.impl.drda.DRDAConnThread.parseSQLDTA_work(DRDAConnThread.java:4072)
> at
> org.apache.derby.impl.drda.DRDAConnThread.parseSQLDTA(DRDAConnThread.java:3928)
> at
> org.apache.derby.impl.drda.DRDAConnThread.parseEXCSQLSTTobjects(DRDAConnThread.java:3806)
> at
> org.apache.derby.impl.drda.DRDAConnThread.parseEXCSQLSTT(DRDAConnThread.java:3640)
> at
> org.apache.derby.impl.drda.DRDAConnThread.processCommands(DRDAConnThread.java:928)
> at
> org.apache.derby.impl.drda.DRDAConnThread.run(DRDAConnThread.java:254)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.