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/12/04 01:52:59 UTC
Can somebody try to reproduce this problem for me, please?
Can somebody who has a reasonably current source tree please
try to reproduce this problem for me and tell me if they
can replicate my results?
thanks,
bryan
-------- Original Message --------
Subject: Possible new DRDA bug -- can you reproduce?
Date: Sat, 26 Nov 2005 16:22:35 -0800
From: Bryan Pendleton <bp...@amberpoint.com>
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. ...........
Re: Can somebody try to reproduce this problem for me, please?
Posted by Bryan Pendleton <bp...@amberpoint.com>.
Rajesh Kartha wrote:
> I was able to reproduce this issue with the DB2 JCC Driver (version 2.6
> - (90) ).
Hi Rajesh,
Thank you very much for confirming this for me. I opened JIRA bug 745
to track this problem, and I will attach your simpler test case to it
as well.
thanks,
bryan
Re: Can somebody try to reproduce this problem for me, please?
Posted by Rajesh Kartha <ka...@Source-Zone.Org>.
Hi Bryan
I was able to reproduce this issue with the DB2 JCC Driver (version 2.6
- (90) ). With the
derbyclient it *just worked fine*.
The issue seems to be with the JCC driver and large columns(?), the
exception is thrown
even with one row in the 'big' table.
Here is simpler repro:
connect
'jdbc:derby:net://localhost:1527/testjccdb;create=true:user=app;password=app;';
create table big(c1 clob(32672), c2 varchar(32672), c3 varchar(32672),
c4 clob(32672));
insert into big values ('AAA','BBB','CCC','DDD');
select * from big;
get scroll insensitive cursor c1 as 'select * from big';
first c1;
Using JCC:
-------------
ij> connect
'jdbc:derby:net://localhost:1527/testjccdb;create=true:user=app;pass
word=app;';
ij> create table big(c1 clob(32672), c2 varchar(32672), c3
varchar(32672), c4 cl
ob(32672));
0 rows inserted/updated/deleted
ij> insert into big values ('AAA','BBB','CCC','DDD');
1 row inserted/updated/deleted
ij> select * from big;
C1
|C2
|C3
|C4
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
-----------------------------------
AAA
|BBB
|CCC
|DDD
1 row selected
ij> get scroll insensitive cursor c1 as 'select * from big';
ij> first c1;
C1
|C2
|C3
|C4
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
-----------------------------------
ERROR 58009: Execution failed due to a distribution protocol error that
caused d
eallocation of the conversation. A DRDA Data Stream Syntax Error was
detected.
Reason: 0x2113 DB2ConnectionCorrelator: NF000001.GC42.01080D60D44C
Using DerbyClient:
-------------
ij> connect 'jdbc:derby://localhost:1527/testclientdb;create=true';
ij> create table big(c1 clob(32672), c2 varchar(32672), c3
varchar(32672), c4 cl
ob(32672));
0 rows inserted/updated/deleted
ij> insert into big values ('AAA','BBB','CCC','DDD');
1 row inserted/updated/deleted
ij> select * from big;
C1
|C2
|C3
|C4
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
-----------------------------------
AAA
|BBB
|CCC
|DDD
1 row selected
ij> get scroll insensitive cursor c1 as 'select * from big';
ij> first c1;
C1
|C2
|C3
|C4
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
-----------------------------------
|BBB
|CCC
|
======================================================================
-Rajesh
Bryan Pendleton wrote:
> Can somebody who has a reasonably current source tree please
> try to reproduce this problem for me and tell me if they
> can replicate my results?
>
> thanks,
>
> bryan
>
>
> -------- Original Message --------
> Subject: Possible new DRDA bug -- can you reproduce?
> Date: Sat, 26 Nov 2005 16:22:35 -0800
> From: Bryan Pendleton <bp...@amberpoint.com>
>
> 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. ...........
>
>
>