db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "A B (JIRA)" <derby-...@db.apache.org>
Subject [jira] Updated: (DERBY-170) Inserting large string value into non-existent table causes communication link failure over Network Server.
Date Thu, 04 Aug 2005 19:15:36 GMT
     [ http://issues.apache.org/jira/browse/DERBY-170?page=all ]

A B updated DERBY-170:
----------------------

        Summary: Inserting large string value into non-existent table causes communication
link failure over Network Server.  (was: Three Network Server problems related to large data
transfer from server to client.)
    Description: 
The following failure, along with the 2 sub-tasks created under this issue, are reproducible
both from a JDBC client (JCC) and from an ODBC client (in this case, DB2 Runtime Client).
 I've grouped them all together because they all share the characteristic of "large data transfer",
though the context in which the transfer occurs is different for each failure.

Failure: When trying to insert a large string value (ex. 1 million chars) into a non-existent
table using a prepared statement, an ASSERT failure occurs on the Derby side (because data
size < 0), which leads to connection closure and communication link failure.  Note that
the problem does NOT happen if the target table actually exists.  Repro can be found in the
"assert_repro.java" file attached to this bug.

  was:
The following three failures, all of which deal with large data in some form or another, can
occur when an application is running against Derby Network Server.  The failures are reproducible
both from a JDBC client (JCC) and from an ODBC client (in this case, DB2 Runtime Client).

I'm filing all three failures as a single JIRA entry since they all share the characteristic
of "large data transfer", though the context in which the transfer occurs is different for
each failure.  A fix for this bug won't necessarily be a single patch--it's reasonable and
acceptable that the different failures be addressed in different patches, and that the set
of patches as a whole is considered the "fix" for this bug.  Of course, if people prefer that
I break this down into separate JIRA entries, feel free to say so.

Failure 1: When trying to insert a large string value (ex. 1 million chars) into a non-existent
table using a prepared statement, an ASSERT failure occurs on the Derby side (because data
size < 0), which leads to connection closure and communication link failure.  Note that
the problem does NOT happen if the target table actually exists.  Repro can be found in the
"assert_repro.java" file attached to this bug.

Failure 2: When Derby Network Server tries to return ~32K or greater data as part of the result
set for a stored procedure, a protocol exception occurs and causes deallocation of the connection.
 Repro can be found in the "stored_proc_repro.java" file, which uses the stored procedure
"BIG_COL" declared in "storedProcs.java".  Both files are attached to this bug.

Failure 3: Server hangs in communication with client when it (the server) tries to send a
DSS continuation header to accommodate a high number (hundreds) of return columns from a Java
procedure.  Problem appears to be in the way the server creates the DSS continuation header.
 Repro can be found in the "stored_proc_repro.java" file, which uses the stored procedure
"LOTS_O_COLS" declared in "storedProcs.java".  Both files are attached to this bug.

NOTE: In order for the repros for #2 and #3 to work, you must compile "storedProcs.java" and
include the storedProcs.class file in the _server_'s classpath.


I separated the three issues into different Jira tasks, per Kathy Marsden's suggestion.  
Thus this issue now only talks about one of the failures; the other two are subtasks.

> Inserting large string value into non-existent table causes communication link failure
over Network Server.
> -----------------------------------------------------------------------------------------------------------
>
>          Key: DERBY-170
>          URL: http://issues.apache.org/jira/browse/DERBY-170
>      Project: Derby
>         Type: Bug
>   Components: Network Server
>  Environment: Derby Network Server running with either JDBC or ODBC driver.
>     Reporter: A B
>  Attachments: assert_repro.java, storedProcs.java, stored_proc_repro.java
>
> The following failure, along with the 2 sub-tasks created under this issue, are reproducible
both from a JDBC client (JCC) and from an ODBC client (in this case, DB2 Runtime Client).
 I've grouped them all together because they all share the characteristic of "large data transfer",
though the context in which the transfer occurs is different for each failure.
> Failure: When trying to insert a large string value (ex. 1 million chars) into a non-existent
table using a prepared statement, an ASSERT failure occurs on the Derby side (because data
size < 0), which leads to connection closure and communication link failure.  Note that
the problem does NOT happen if the target table actually exists.  Repro can be found in the
"assert_repro.java" file attached to this bug.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


Mime
View raw message