09.04.2017 13:00, Mark Rotteveel wrote: > On 2-4-2017 15:23, Vlad Khorsun wrote: >> 02.04.2017 14:59, Mark Rotteveel wrote: ... >>> 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. > > I have built a sample application that reproduces it a little bit more > consistently (although it still occasionally succeeds without a > mismatch).
Thanks. I downloaded and run it. Note, i need to change WireCrypt setting to Enabled to make it work, but this is not so important :) It is almost impossible to see the mismatch at my host. Only way to see it once in a few runs is to set 64 threads and 5000 inserts per thread. Ok, it is reproduced, but... To verify what i see i run FlameRobin and register same two events for monitoring. When test failed i saved output of FlameRobin into a text file and convert it into LibreOffice Calc sheet. Then i evaluate sum of every event counters and check it for mismatch - they are equal. Also, every pair of "TEST_EVENT_A" and "TEST_EVENT_B" have the same number of events - it looks like 16:50:54 Monitoring started 16:50:54 TEST_EVENT_A (170) 16:50:54 TEST_EVENT_B (170) 16:50:54 TEST_EVENT_A (195) 16:50:54 TEST_EVENT_B (195) 16:50:54 TEST_EVENT_A (227) 16:50:54 TEST_EVENT_B (227) 16:50:55 TEST_EVENT_A (222) 16:50:55 TEST_EVENT_B (222) and so on I.e. test app shows: Using thread count 64, number of inserts per thread 5000 Inserts done 320000, matches expected 320000: true Event EVENT_NAME_A, expected 320000, actual 320000: true Event EVENT_NAME_B, expected 320000, actual 271541: false <================ while FlameRobin received 301782 of events "TEST_EVENT_A" and same number of "TEST_EVENT_B". Yes, it is not 320000 as one could expect - it is because i need some time to connect and to start event monitoring. I can't do it in advance as test applications recreates database and fails on start if there is attachment exists. Anyway, 301782 is much more than 271541. Then i repeat the test and results is: Using thread count 64, number of inserts per thread 5000 Inserts done 320000, matches expected 320000: true Event EVENT_NAME_A, expected 320000, actual 133394: false <================ Event EVENT_NAME_B, expected 320000, actual 320000: true while FlameRobin received 312263 events "TEST_EVENT_A" and 312263 events "TEST_EVENT_B". I can send you sheet with data if you wish. Regards, Vlad PS Every time test app show mismatsh i see that one event have expected counter. I.e. there was no case when both counters was wrong. ------------------------------------------------------------------------------ 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
