Bug #42557 maria: wt_* statistics doesn't work on windows
Submitted: 2 Feb 2009 20:55 Modified: 26 May 2010 17:51
Reporter: Sergei Golubchik Email Updates:
Status: Unsupported Impact on me:
None 
Category:MySQL Server: Maria storage engine Severity:S3 (Non-critical)
Version:6.0 OS:Any
Assigned to: CPU Architecture:Any

[2 Feb 2009 20:55] Sergei Golubchik
Description:
waiting_test-t on windows prints invalid values (all 0-s) in statistic output

How to repeat:
waiting_threads-t.exe
[10 Mar 2009 21:26] Guilhem Bichot
does not happen in 6.0 because for some reason, unittest/mysys/CMakeLists.txt does not ask for building this test. This is weird, as in 5.1-maria it is built. I cannot see how this happened in bzr, by the way, sent questions to Canonical.
[11 Mar 2009 16:03] Guilhem Bichot
On the other hand, I built waiting_threads-t in 6.0-maria in Windows, and am getting non-zero values:

C:\Users\Administrateur\AppData\Bazaar_branches\mysql-6.0-maria\unittest\mysys>Debug\lf-t.exe
# N CPUs: 1, atomic ops: msvc-intrinsics
1..4
ok 1 - my_atomic_initialize() returned 0
# Testing lf_pinbox with 30 threads, 3000 iterations...
ok 2 - tested lf_pinbox in 0.111969 secs (0)
# Testing lf_alloc with 30 threads, 3000 iterations...
# 0 mallocs, 1 pins in stack
ok 3 - tested lf_alloc in 0.162324 secs (0)
# Testing lf_hash with 30 threads, 300 iterations...
# 0 mallocs, 1 pins in stack, 1 hash size, 0 inserts
ok 4 - tested lf_hash in 0.103383 secs (0)

C:\Users\Administrateur\AppData\Bazaar_branches\mysql-6.0-maria\unittest\mysys>Debug\waiting_threads-t.exe
# N CPUs: 1, atomic ops: msvc-intrinsics
1..14
ok 1 - my_atomic_initialize() returned 0
ok 2 - thd[0] will wait for thd[1]
ok 3 - thd[0] will wait for thd[2]
ok 4 - thd[0] will wait for thd[3]
ok 5 - timeout test returned 145
ok 6 - thd[0] will wait for thd[1]
ok 7 - thd[1] will wait for thd[2]
ok 8 - thd[2] will wait for thd[0] - deadlock
ok 9 - as always
ok 10 - as always
# timeout_short=1000 us, deadlock_search_depth_short=6
# timeout_long=100 us, deadlock_search_depth_long=16
# kill strategy: LATEST
# Testing waiting_threads with 30 threads, 3000 iterations...
ok 11 - tested waiting_threads in 18.1045 secs (0)
# deadlock cycles of length  1: 5380    5    25.83 %
# deadlock cycles of length  2: 4799    6    48.88 %
# deadlock cycles of length  3: 4103    5    68.59 %
# deadlock cycles of length  4: 3050    3    83.23 %
# deadlock cycles of length  5: 2058    1    93.11 %
# deadlock cycles of length  6: 1315    2    99.43 %
# deadlock cycles of length  7:    0   62    99.73 %
# deadlock cycles of length  8:    0   27    99.86 %
# deadlock cycles of length  9:    0   19    99.95 %
# deadlock cycles of length 10:    0    4    99.97 %
# deadlock cycles of length 12:    0    2    99.98 %
# deadlock cycles of length 13:    0    1    99.98 %
# deadlock cycles of length 15:    0    1    99.99 %
# deadlock cycles of length 16:    0    3   100.00 %
# depth exceeded: 27980 372
# deadlock waits up to       1 us:     2
# deadlock waits up to      10 us:     2
# deadlock waits up to      22 us:     1
# deadlock waits up to     232 us:     7
# deadlock waits up to     507 us:    94
# deadlock waits up to    1105 us:   479
# deadlock waits up to    2408 us:  2151
# deadlock waits up to    5247 us: 11110
# deadlock waits up to   11433 us: 17070
# deadlock waits up to   24908 us:  4317
# deadlock waits up to   54265 us:    24
# deadlock waits up to  118224 us:     2
# timed out: 34036
# successes: 35118
# kill strategy: RANDOM
# Testing waiting_threads with 30 threads, 3000 iterations...
ok 12 - tested waiting_threads in 107.142 secs (0)
# deadlock cycles of length  1: 4566   89    24.86 %
# deadlock cycles of length  2: 3841  593    48.54 %
# deadlock cycles of length  3: 2749  590    66.38 %
# deadlock cycles of length  4: 2021  437    79.51 %
# deadlock cycles of length  5: 1472  260    88.76 %
# deadlock cycles of length  6: 1194  152    95.95 %
# deadlock cycles of length  7:    0   96    96.46 %
# deadlock cycles of length  8:    0   36    96.65 %
# deadlock cycles of length  9:    0   23    96.77 %
# deadlock cycles of length 10:    0   13    96.84 %
# deadlock cycles of length 11:    0   10    96.90 %
# deadlock cycles of length 12:    0   14    96.97 %
# deadlock cycles of length 13:    0   42    97.20 %
# deadlock cycles of length 14:    0  106    97.76 %
# deadlock cycles of length 15:    0  199    98.82 %
# deadlock cycles of length 16:    0  220   100.00 %
# depth exceeded: 49562 11843
# deadlock waits up to       1 us:    38
# deadlock waits up to       2 us:     2
# deadlock waits up to      10 us:   377
# deadlock waits up to      22 us:     6
# deadlock waits up to      49 us:     3
# deadlock waits up to     106 us:     2
# deadlock waits up to     232 us:    32
# deadlock waits up to     507 us:   320
# deadlock waits up to    1105 us:   940
# deadlock waits up to    2408 us:  2537
# deadlock waits up to    5247 us:  7572
# deadlock waits up to   11433 us: 11099
# deadlock waits up to   24908 us:  5606
# deadlock waits up to   54265 us:  1036
# deadlock waits up to  118224 us:   452
# deadlock waits up to  257565 us:   414
# deadlock waits up to  561136 us:   718
# deadlock waits up to 1222499 us:   328
# deadlock waits up to 2663356 us:    50
# deadlock waits up to 12641257 us:    12
# timed out: 52857
# successes: 21967
# kill strategy: YOUNGEST
# Testing waiting_threads with 30 threads, 3000 iterations... (stays there forever,
not surprising I think).
So, the times are not zeroes.
I am using Visual C++ 2008 Express Edition and Windows Server 2008 32-bit; more recent than the pushbuild machine.
Today I will push into 6.0-maria a patch enabling building of the two unit test above.