On 23-7-2018 15:07, Alex Peshkoff via Firebird-devel wrote:
On 22.07.2018 18:03, Mark Rotteveel wrote:
On 22-7-2018 16:14, Dimitry Sibiryakov wrote:
22.07.2018 14:56, Mark Rotteveel wrote:
If I change one of the two test classes that triggers this problem
to create a single database for the entire test class, the problem
changes from a too large buffer being read (which causes the hang)
to an error
Unsupported or unexpected operation code 16777216 in
processOperation [SQLState:08000, ISC error code:337248276]
This error means that Jaybird received a response packet with an
operation code of 16777216 instead of a valid operation code
(op_response (9), op_fetch_response (66) or op_sql_response (78)).
It looks like the previous packet was a little smaller than you
expected because 16777216 is "01 00 00 00" which may be a valid piece
of status vector.
It is entirely possible the problem already occurred with an earlier
read, but given that Jaybird itself does nothing with the
TcpRemoteBufferSize setting of Firebird, it would suggest the problem
is on the side of Firebird, because the only difference is that setting.
I don't have this problem if TcpRemoteBufferSize has the default
value, nor with some other values, and only if wire encryption is used.
When I tested it back in March, it worked fine with
TcpRemoteBufferSize value 8192, 32755, 32756, 32760, 32761 and 32764,
but broke with 8191, 32759, 32765, 32766 and 32767 (I haven't retested
all those values).
Mark, I tried to reproduce this with c++ client. I did the following -
set in FB4 TcpRemoteBufferSize=8191, connected to it using FB3 client
(to avoid having same size preset at both ends of wire link) 'isql -user
sysdba -pas masterkey localhost:employee' and in order to produce some
network load did:
execute block returns(x int) as begin x=0; while (x < 1000000) do begin
x=x+1; suspend; end end
but nothing bad happens. Please can yo tell me what exactly should I run
to reproduce an error.
The problem can't be reproduced with the native client, which suggests
Jaybird does something wrong, or this is something that is only
triggered by what Jaybird does.
Back in March I provided a sample testcase that runs the test classes
necessary to reproduce this. The error is currently only triggered when
running multiple testcases that should be independent from the
perspective of Jaybird. I'll see if I can further reduce that to a
single testcase.
Mark
--
Mark Rotteveel
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
Firebird-Devel mailing list, web interface at
https://lists.sourceforge.net/lists/listinfo/firebird-devel