On 2-4-2017 15:23, Vlad Khorsun wrote:
>> [V10AsynchronousChannel]Queue event: WireEventHandle:{
>> name:TEST_EVENT_A, localId:694, eventId:0, internalCount:897,
>> previousInternalCount:897 }
>> [AbstractWireOperations]readStatusVector arg:isc_arg_gds int: 0
>> [V10AsynchronousChannel]java.nio.HeapByteBuffer[pos=0 lim=88 cap=2048]:
>> 000000340000000000000012010C544553545F4556454E545F42C201000000000000000000000000000002B5000000340000000000000012010C544553545F4556454E545F418503000000000000000000000000000002B6
>
> It is receive buffer with two op_event (52, or 0x34) packets:
>
> 00000034 0000 0000 00000012 01 0C 544553545F4556454E545F42 C2010000 0000
> 00000000 00000000 000002B5
> TEST_EVENT_B: cnt = 0x1C2 = 450, id = 0x2B5 = 693
>
> 00000034 0000 0000 00000012 01 0C 544553545F4556454E545F41 85030000 0000
> 00000000 00000000 000002B6
> TEST_EVENT_A: cnt = 0x385 = 901, id = 0x2B6 = 694
That was one that went well, it is the next one that is the problem
>> [V10AsynchronousChannel]Received event id 693, eventCount 450
>> [V10AsynchronousChannel]Queue event: WireEventHandle:{
>> name:TEST_EVENT_B, localId:695, eventId:0, internalCount:450,
>> previousInternalCount:450 }
>> [AbstractWireOperations]readStatusVector arg:isc_arg_gds int: 0
>> [AbstractWireOperations]readStatusVector arg:isc_arg_gds int: 0
>> [V10AsynchronousChannel]Received event id 694, eventCount 901
>> [V10AsynchronousChannel]Queue event: WireEventHandle:{
>> name:TEST_EVENT_A, localId:696, eventId:0, internalCount:901,
>> previousInternalCount:901 }
>
> I see no op_que_events (48, or 0x30) packets.
That is because I don't normally log messages (given how Jaybird works,
that is even a little bit hard to do), logging the response in this
specific case is a bit easier, because I use a different way of
processing the event responses over the aux connection.
>> [AbstractWireOperations]readStatusVector arg:isc_arg_gds int: 0
>> [V10AsynchronousChannel]java.nio.HeapByteBuffer[pos=0 lim=44 cap=2048]:
>> 000000340000000000000012010C544553545F4556454E545F42C301000000000000000000000000000002B8
>
> This is received packet with
>
> TEST_EVENT_B: cnt = 0x1C3 = 451, id = 0x2B5 = 696
>
> You claim it must have it 695, correct ?
Yes, because that is the one I queued.
>> [AbstractWireOperations]readStatusVector arg:isc_arg_gds int: 0
>> [V10AsynchronousChannel]Received event id 696, eventCount 451
>> [V10AsynchronousChannel]Queue event: WireEventHandle:{
>> name:TEST_EVENT_A, localId:697, eventId:0, internalCount:451,
>> previousInternalCount:451 }
>>
>> In other words, Firebird posts event data for TEST_EVENT_B (count 450 ->
>> 451) with the local event id of TEST_EVENT_A. On occasion I also see
>> that it resends an earlier - already acknowledged - local event id.
>
> I can't confirm it without op_que_events content.
I will see if I can add logging in this specific case.
>> As the event name is proper (although not 100% sure it always is),
>
> This is really interesting to check
>
> ...
>
>> I can reproduce this with Jaybird master, Firebird 3.0.2.32703 on
>> Windows 10 64 bit, but I have also seen it with other Firebird versions,
>> and with Jaybird 2.2 (which has a significantly different implementation
>> of event handling), both with pure java and the native client use.
>>
>> Any thoughts or ideas on this, or is it better if I just create a bug
>> report?
>
> Ideally, reproducible test case needed. As simple, as possible. Also, we
> could log every packet related to events on server side.
So far I can only trigger it about once every three times if I start the
entire Jaybird test suite. Starting only this test makes it hard to do so.
>> Other example: both A and B are acknowledged with id of event B:
>
> Provide, please, op_que_events contents to confirm this.
Will try to do that.
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