summaryrefslogtreecommitdiff
path: root/mysql-test/suite/sys_vars/t/transaction_prealloc_size_bug27322.test
blob: b55388d7c4f7d76628c5f7621bdde9e7a66dec41 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#
# test variables big
#

--source include/big_test.inc
# The test would allocate and initialize 5GB of memory
# if compiled with debug. It can take a lot of time
# of for paging/swapping.
#--source include/not_debug.inc

#
# Bug#27322 failure to allocate transaction_prealloc_size causes crash
#
#
# Manual (6.0):
# Platform Bit Size  Range                      Default
# 32                 1024-4294967295 (4 Gi - 1) 4096
# 64                 1024-18446744073709547520  4096
#
# Observation(mleich):
# 1. - Linux 64 Bit, MySQL 64 Bit, 4 GiB RAM, 8 GiB swap
#    - SET SESSION transaction_prealloc_size=1099511627776;
#      SHOW PROCESSLIST;
#      Id   User ... Info
#      <Id> root ... SHOW PROCESSLIST
#      SELECT @@session.transaction_prealloc_size;
#      @@session.transaction_prealloc_size
#      1099511627776
#      very short runtime in 5.0
#      excessive resource consumption + long runtime in 5.1 and 6.0
# 2. - Win in VM, slightly older version of this test, MySQL 5.0
#    - testcase timeout after 900s
#      analyze-timeout-mysqld.1.err :
#      Id User ... Time Info
#      83 root ... 542  set session transaction_prealloc_size=1024*1024*1024*2
#      84 root ... 1    SHOW PROCESSLIST
#
# There is a significant probablitity that this tests fails with testcase
# timeout if the testing box is not powerful enough.
#
SET @def_var= @@session.transaction_prealloc_size;

--disable_warnings
SET SESSION transaction_prealloc_size=1024*1024*1024*1;
# Embedded server is hardcoded to show "Writing to net" as STATE.
--replace_result "Writing to net" "NULL"
--replace_column 1 <Id> 3 <Host> 6 <Time>
# Embedded server is hardcoded to show "Writing to net" as STATE.
--replace_result "Writing to net" "NULL"
--replace_regex /localhost[:0-9]*/localhost/
SHOW PROCESSLIST;
SET SESSION transaction_prealloc_size=1024*1024*1024*2;
--replace_result "Writing to net" "NULL"
--replace_column 1 <Id> 3 <Host> 6 <Time>
--replace_result "Writing to net" "NULL"
--replace_regex /localhost[:0-9]*/localhost/
SHOW PROCESSLIST;
SET SESSION transaction_prealloc_size=1024*1024*1024*3;
--replace_result "Writing to net" "NULL"
--replace_column 1 <Id> 3 <Host> 6 <Time>
--replace_result "Writing to net" "NULL"
--replace_regex /localhost[:0-9]*/localhost/
SHOW PROCESSLIST;
SET SESSION transaction_prealloc_size=1024*1024*1024*4;
--replace_result "Writing to net" "NULL"
--replace_column 1 <Id> 3 <Host> 6 <Time>
--replace_result "Writing to net" "NULL"
--replace_regex /localhost[:0-9]*/localhost/
SHOW PROCESSLIST;
SET SESSION transaction_prealloc_size=1024*1024*1024*5;
--replace_result "Writing to net" "NULL"
--replace_column 1 <Id> 3 <Host> 6 <Time>
--replace_result "Writing to net" "NULL"
SHOW PROCESSLIST;
--enable_warnings