0.67.305
by Bernt M. Johnsen
Copyright headres and license added |
1 |
# Copyright (C) 2008 Sun Microsystems, Inc. All rights reserved. Use
|
2 |
# is subject to license terms.
|
|
3 |
#
|
|
4 |
# This program is free software; you can redistribute it and/or modify
|
|
5 |
# it under the terms of the GNU General Public License as published by
|
|
6 |
# the Free Software Foundation; version 2 of the License.
|
|
7 |
#
|
|
8 |
# This program is distributed in the hope that it will be useful, but
|
|
9 |
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
10 |
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
11 |
# General Public License for more details.
|
|
12 |
#
|
|
13 |
# You should have received a copy of the GNU General Public License
|
|
14 |
# along with this program; if not, write to the Free Software
|
|
15 |
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
|
|
16 |
# USA
|
|
17 |
||
0.91.1
by Matthias Leich
Add a template for a configuration file for use with util/bughunt.pl |
18 |
# Configuration file template for util/bughunt.pl
|
19 |
#
|
|
20 |
# Please
|
|
0.67.301
by Matthias Leich
- Add variation of "masking" to bug hunting |
21 |
# - copy this file to for example bughunt1.cfg and
|
0.91.1
by Matthias Leich
Add a template for a configuration file for use with util/bughunt.pl |
22 |
# - adjust the settings so that they fit to your usage case and
|
23 |
# environment
|
|
24 |
#
|
|
25 |
||
26 |
{
|
|
27 |
||
28 |
# desired_status_codes
|
|
29 |
#---------------------
|
|
0.67.301
by Matthias Leich
- Add variation of "masking" to bug hunting |
30 |
# List of status codes we are hunting for.
|
0.91.1
by Matthias Leich
Add a template for a configuration file for use with util/bughunt.pl |
31 |
# Status codes are described in lib/GenTest/Constants.pm
|
0.67.301
by Matthias Leich
- Add variation of "masking" to bug hunting |
32 |
# STATUS_ANY_ERROR means any RQG error like for example deadlock or server crash.
|
0.91.1
by Matthias Leich
Add a template for a configuration file for use with util/bughunt.pl |
33 |
#
|
34 |
||
35 |
desired_status_codes => [+STATUS_ANY_ERROR], |
|
36 |
||
37 |
# expected_output
|
|
38 |
#----------------
|
|
0.67.301
by Matthias Leich
- Add variation of "masking" to bug hunting |
39 |
# String pattern which needs to occur within the RQG output.
|
40 |
# The search pattern is usually derived from a backtrace.
|
|
0.91.1
by Matthias Leich
Add a template for a configuration file for use with util/bughunt.pl |
41 |
# Example 1:
|
42 |
# Starting point is a crash of a server which was compiled with debug.
|
|
43 |
# @expected_output =>
|
|
44 |
# [
|
|
45 |
# 'mysql_execute_command .* at sql_parse.cc\:4441',
|
|
46 |
# 'mysql_parse .* at sql_parse.cc\:5991',
|
|
47 |
# 'dispatch_command .* at sql_parse.cc\:1074'
|
|
48 |
# ];
|
|
49 |
# Please be careful when using source file line numbers in search patterns
|
|
50 |
# - They increase the selectivity of the search.
|
|
51 |
# - There is a significant risk that the line numbers do no more fit
|
|
52 |
# if the source code of the server gets changed.
|
|
53 |
# Example 2:
|
|
54 |
# Starting point is a crash of a server which was compiled without debug.
|
|
55 |
# expected_output => [
|
|
56 |
# '0x0000000000413f61',
|
|
57 |
# '0x00000000004429a0',
|
|
58 |
# '0x0000000000453f0f'
|
|
59 |
# ]
|
|
60 |
# Just some adresses looks ugly but it works quite good.
|
|
61 |
# Example 3:
|
|
0.67.301
by Matthias Leich
- Add variation of "masking" to bug hunting |
62 |
# If you just hunt for some status code ( -> desired_status_codes ) use
|
63 |
# expected_output => [ ]
|
|
0.105.3
by Matthias Leich
- Modify bughunt.pl so that |
64 |
#
|
0.91.1
by Matthias Leich
Add a template for a configuration file for use with util/bughunt.pl |
65 |
|
66 |
expected_outputs => [ '' ], |
|
67 |
||
0.67.301
by Matthias Leich
- Add variation of "masking" to bug hunting |
68 |
# grammar
|
69 |
#--------
|
|
70 |
# RQG grammar file which should be used for the bug hunting process.
|
|
71 |
#
|
|
0.91.1
by Matthias Leich
Add a template for a configuration file for use with util/bughunt.pl |
72 |
|
0.67.454
by Matthias Leich
Improvements for bugunting: |
73 |
grammar => 'conf/runtime/WL5004_sql.yy', |
74 |
gendata => 'conf/runtime/WL5004_data.zz',
|
|
0.91.1
by Matthias Leich
Add a template for a configuration file for use with util/bughunt.pl |
75 |
|
76 |
# rqg_options
|
|
77 |
#------------
|
|
78 |
# runall.pl (RQG) options which should be used
|
|
0.105.3
by Matthias Leich
- Modify bughunt.pl so that |
79 |
#
|
0.91.1
by Matthias Leich
Add a template for a configuration file for use with util/bughunt.pl |
80 |
|
0.67.243
by Bernt M. Johnsen
rqg_options consistently in plural |
81 |
rqg_options => { |
0.105.3
by Matthias Leich
- Modify bughunt.pl so that |
82 |
# rpl_mode => 'mixed',
|
0.91.1
by Matthias Leich
Add a template for a configuration file for use with util/bughunt.pl |
83 |
threads => 10,
|
84 |
queries => 10000,
|
|
85 |
duration => 1200,
|
|
0.105.3
by Matthias Leich
- Modify bughunt.pl so that |
86 |
reporter => 'Deadlock,Backtrace,ErrorLog'
|
0.91.1
by Matthias Leich
Add a template for a configuration file for use with util/bughunt.pl |
87 |
},
|
88 |
||
0.105.3
by Matthias Leich
- Modify bughunt.pl so that |
89 |
# basedir
|
90 |
#--------
|
|
91 |
# Main installation directory of the server software
|
|
92 |
#
|
|
93 |
||
94 |
basedir => '/work2/5.1/mysql-5.1-rep+3/', |
|
95 |
||
0.91.1
by Matthias Leich
Add a template for a configuration file for use with util/bughunt.pl |
96 |
# Mysqld options
|
97 |
#---------------
|
|
98 |
# Mysql server options passed to RQG in addition to the rqg_options
|
|
0.67.301
by Matthias Leich
- Add variation of "masking" to bug hunting |
99 |
#
|
0.91.1
by Matthias Leich
Add a template for a configuration file for use with util/bughunt.pl |
100 |
|
101 |
mysqld => { |
|
102 |
'loose-innodb-lock-wait-timeout' => 1,
|
|
0.67.454
by Matthias Leich
Improvements for bugunting: |
103 |
'lock-wait-timeout' => 1,
|
0.105.3
by Matthias Leich
- Modify bughunt.pl so that |
104 |
# 'plugin-dir' => '/work2/5.1/mysql-5.1-rep+3/plugin/semisync/.libs',
|
105 |
# 'plugin-load' => 'rpl_semi_sync_master=libsemisync_master.so:rpl_semi_sync_slave=libsemisync_slave.so',
|
|
106 |
# 'rpl_semi_sync_master_enabled' => 1,
|
|
107 |
# 'rpl_semi_sync_slave_enabled' => 1,
|
|
108 |
'log-output' => 'none'
|
|
0.91.1
by Matthias Leich
Add a template for a configuration file for use with util/bughunt.pl |
109 |
},
|
110 |
||
111 |
# trials
|
|
112 |
#-------
|
|
113 |
# This is the number of times the oracle() will run the RQG in order to get to
|
|
0.67.301
by Matthias Leich
- Add variation of "masking" to bug hunting |
114 |
# the desired status code and/or desired string (expected_output).
|
115 |
# If an error is sporadic, several runs may be required to show that this error
|
|
116 |
# is present.
|
|
117 |
# The "mask" and "seed" values get incremented per trial.
|
|
118 |
#
|
|
0.91.1
by Matthias Leich
Add a template for a configuration file for use with util/bughunt.pl |
119 |
|
120 |
trials => 50, |
|
121 |
||
0.67.301
by Matthias Leich
- Add variation of "masking" to bug hunting |
122 |
#--------------------------------------------------------------------------
|
123 |
# PARAMETERS AFFECTING THE VARIATIONS OF THE TEST PERFORMED DURING BUG HUNT
|
|
124 |
#--------------------------------------------------------------------------
|
|
125 |
||
126 |
# Seed affects which alternative of a grammar element or random value is selected
|
|
127 |
#--------------------------------------------------------------------------------
|
|
128 |
# The variation of the seed value has a smaller impact than the masking of grammar
|
|
129 |
# element alternatives.
|
|
130 |
#
|
|
131 |
# initial_seed
|
|
132 |
#-------------
|
|
133 |
# Seed value to use for the first RQG run. The seed value changes per RQG run.
|
|
134 |
#
|
|
135 |
||
136 |
initial_seed => 1, |
|
137 |
||
138 |
# Masking of alternatives within grammar elements
|
|
139 |
#------------------------------------------------
|
|
140 |
# Masking has a much bigger impact on what gets finally executed than a variation
|
|
141 |
# of the seed value. It could destroy well balanced ratios between for example
|
|
142 |
# DROP and CREATE or DELETE and INSERT. The final outcome might be an exceptional
|
|
143 |
# growth of the stored data or most statements meeting no or empty tables.
|
|
144 |
# If you want to switch off "masking" for all RQG runs than please
|
|
145 |
# set "mask_level => 0"
|
|
146 |
#
|
|
147 |
# mask_level
|
|
148 |
#-------------------
|
|
149 |
# Level within the grammar hierarchy till which masking has to be applied.
|
|
150 |
# This value is to be used for all RQG runs.
|
|
151 |
# A value of 0 causes that no masking will be applied.
|
|
152 |
# Values > 30 affect most probably all grammar elements.
|
|
153 |
#
|
|
154 |
||
155 |
mask_level => 0, |
|
156 |
||
157 |
# initial_mask
|
|
158 |
#-------------
|
|
159 |
# Masking value to be used for the first RQG run. The mask value changes per RQG run.
|
|
160 |
# Though a value of 0 causes that no masking gets applied for the current RQG run,
|
|
161 |
# a successing run will be withg masking.
|
|
162 |
#
|
|
163 |
||
164 |
initial_mask => 0, |
|
165 |
||
166 |
||
167 |
||
168 |
# vardir_prefix
|
|
169 |
#--------------
|
|
170 |
# "Server activity" should happen in "vardir" which is a subdirecty of
|
|
171 |
# "vardir_prefix".
|
|
172 |
# Important points are:
|
|
173 |
# - Sufficient free space within the filesystem
|
|
174 |
# - performance of the filesystem
|
|
175 |
# RQG runs get a significant speed up if a memory based filesystem is used.
|
|
176 |
#
|
|
177 |
||
178 |
vardir_prefix => '/dev/shm', |
|
179 |
||
180 |
# storage_prefix
|
|
181 |
#---------------
|
|
182 |
# Grammars and logs of RQG runs which showed the errors and output we are hunting
|
|
183 |
# for are stored in a subdirectory of "storage_prefix".
|
|
184 |
#
|
|
185 |
||
186 |
storage_prefix => './storage', |
|
187 |
||
0.91.1
by Matthias Leich
Add a template for a configuration file for use with util/bughunt.pl |
188 |
# search_var_size
|
189 |
#----------------
|
|
190 |
# Number of bytes (counted from the end of the output file) to be used during
|
|
191 |
# search for expected_output We suck the last "search_var_size" Bytes of the file
|
|
192 |
# to be searched into a variable.
|
|
193 |
# A too huge "search_var_size" could cause problems.
|
|
194 |
# The relevant zone within the file is maybe
|
|
195 |
# - smaller
|
|
196 |
# If our search pattern is unfortunately a bit unspecific and if it
|
|
197 |
# could also occur within irrelevant zones of the file than we might
|
|
198 |
# get false positives. Decreasing "search_var_size" might help.
|
|
199 |
# - bigger
|
|
200 |
# We might get false negatives. Increasing "search_var_size" might
|
|
201 |
# help but I am unsure if any OS and PERL implementation supports
|
|
202 |
# such a monstrous variable.
|
|
0.67.301
by Matthias Leich
- Add variation of "masking" to bug hunting |
203 |
#
|
204 |
||
205 |
search_var_size => 1000000 |
|
0.91.1
by Matthias Leich
Add a template for a configuration file for use with util/bughunt.pl |
206 |
|
207 |
}
|