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 Bryan Pendleton <bp...@amberpoint.com> on 2005/11/27 01:22:35 UTC
Possible new DRDA bug -- can you reproduce?
While trying to test my fixes for DERBY-614, I think I may have
stumbled into an entirely unrelated DRDA protocol bug of some
sort. I've backed out my changes for DERBY-614 and I still see
this problem, so I don't think I've caused it; however, I might
have blown it. :)
Below are the steps to reproduce this problem; I'd
appreciate it if somebody could have a look and see if they can
observe the same problem on their system.
thanks,
bryan
1) Add the following code to
java\testing\org\apache\derbyTesting\functionTests\util\ProcedureTest.java
This code adds a new data-loading feature to the bigTestData() method.
Index: java/testing/org/apache/derbyTesting/functionTests/util/ProcedureTest.java
===================================================================
--- java/testing/org/apache/derbyTesting/functionTests/util/ProcedureTest.java(revision 348831)
+++ java/testing/org/apache/derbyTesting/functionTests/util/ProcedureTest.java(working copy)
@@ -214,6 +214,13 @@
ps.executeUpdate();
ps.close();
break;
+ case 9:
+ String lStringA32672 = new String(Formatters.repeatChar("a",32672));
+ String lStringB32672 = new String(Formatters.repeatChar("b",32672));
+ String lStringC32672 = new String(Formatters.repeatChar("c",32672));
+ String lStringD32672 = new String(Formatters.repeatChar("d",32672));
+ insertInBig(conn, lStringA32672, lStringB32672,lStringC32672, lStringD32672);
+ break;
}
conn.close();
}
2) Start up the network server and create a database called 'testBig'.
3) Connect with IJ, being sure that
a) db2jcc.jar and db2jcc_license_c.jar are in your path
b) you are authenticated (-Dij.user=APP -Dij.password=APP
in the simple case)
4) Run the following small script:
driver 'com.ibm.db2.jcc.DB2Driver';
connect 'jdbc:derby:net://localhost:1527/testBig';
create procedure INSERTDATA1(IN a int) language java parameter style java
external name 'org.apache.derbyTesting.functionTests.util.ProcedureTest.bigTestData';
prepare p1 as 'call INSERTDATA1(?)';
drop table big;
-- Mix clob and varchar in the table.
create table big(c1 clob(32672), c2 varchar(32672), c3 varchar(32672), c4 clob(32672));
execute p1 using 'values 9';
execute p1 using 'values 9';
execute p1 using 'values 9';
get scroll insensitive cursor c1 as 'select * from big';
first c1;
quit;
In my case, what happens is that I get the following DRDAProtocolException:
org.apache.derby.impl.drda.DRDAProtocolException
at org.apache.derby.impl.drda.DRDAConnThread.throwSyntaxrm(DRDAConnThread.java:406)
at org.apache.derby.impl.drda.DRDAConnThread.invalidValue(DRDAConnThread.java:6783)
at org.apache.derby.impl.drda.DRDAConnThread.parseEXCSQLSTT(DRDAConnThread.java:3506)
at org.apache.derby.impl.drda.DRDAConnThread.processCommands(DRDAConnThread.java:868)
at org.apache.derby.impl.drda.DRDAConnThread.run(DRDAConnThread.java:219)
According to the server-side traces, the server is choking on
the following EXCSQLSTT request from the client:
(2005.11.26 14:17:19) Request fill DRDAConnThread_9 5
RECEIVE BUFFER: EXCSQLSTT (ASCII) (EBCDIC)
0 1 2 3 4 5 6 7 8 9 A B C D E F 0123456789ABCDEF 0123456789ABCDEF
0000 0058D05100010052 200B00442113A385 .X.Q...R ..D!... ..}...........te
0010 A2A3C28987404040 4040404040404040 .....@@@@@@@@@@@ stBig
0020 D5E4D3D3C9C44040 4040404040404040 ......@@@@@@@@@@ NULLID
0030 4040E2E8E2E2E3C1 E340404040404040 @@.......@@@@@@@ SYSSTAT
0040 404040405359534C 564C303100070005 @@@@SYSLVL01.... ...<.<......
0050 2105F100052111F1 0024D0030001001E !....!...$...... ..1....1..}.....
0060 2412001000100676 D01B00040671E4D0 $......v.....q.. ........}.....U}
0070 0001000A147A0000 00008000 .....z...... .....:......
(2005.11.26 14:17:31) Reply flush DRDAConnThread_9 5
SEND BUFFER: SYNTAXRM (ASCII) (EBCDIC)
0 1 2 3 4 5 6 7 8 9 A B C D E F 0123456789ABCDEF 0123456789ABCDEF
0000 001BD00200010015 124C000611490008 .........L...I.. ..}......<......
0010 0006000C21130005 114A14 ....!....J. ...........