groonga-query-log 1.3.8 → 1.3.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (38) hide show
  1. checksums.yaml +5 -5
  2. data/doc/text/news.md +34 -0
  3. data/groonga-query-log.gemspec +0 -1
  4. data/lib/groonga-query-log/command/check-crash.rb +58 -4
  5. data/lib/groonga-query-log/command/format-regression-test-logs.rb +17 -1
  6. data/lib/groonga-query-log/command/run-regression-test.rb +34 -5
  7. data/lib/groonga-query-log/command/verify-server.rb +19 -2
  8. data/lib/groonga-query-log/filter-rewriter.rb +24 -2
  9. data/lib/groonga-query-log/memory-leak-detector.rb +1 -1
  10. data/lib/groonga-query-log/replayer.rb +2 -2
  11. data/lib/groonga-query-log/server-verifier.rb +66 -18
  12. data/lib/groonga-query-log/version.rb +1 -1
  13. data/test/command/test-format-regression-test-logs.rb +31 -8
  14. data/test/fixtures/regression-test-logs/error.log +5 -0
  15. data/test/run-test.rb +1 -2
  16. data/test/test-filter-rewriter.rb +40 -2
  17. metadata +34 -88
  18. data/test/fixtures/run-regression-test/db.new/db +0 -0
  19. data/test/fixtures/run-regression-test/db.new/db.0000000 +0 -0
  20. data/test/fixtures/run-regression-test/db.new/db.0000100 +0 -0
  21. data/test/fixtures/run-regression-test/db.new/db.0000101 +0 -0
  22. data/test/fixtures/run-regression-test/db.new/db.0000102 +0 -0
  23. data/test/fixtures/run-regression-test/db.new/db.0000103 +0 -0
  24. data/test/fixtures/run-regression-test/db.new/db.0000103.c +0 -0
  25. data/test/fixtures/run-regression-test/db.new/db.001 +0 -0
  26. data/test/fixtures/run-regression-test/db.new/db.conf +0 -0
  27. data/test/fixtures/run-regression-test/db.new/groonga.log +0 -165
  28. data/test/fixtures/run-regression-test/db.old/db +0 -0
  29. data/test/fixtures/run-regression-test/db.old/db.0000000 +0 -0
  30. data/test/fixtures/run-regression-test/db.old/db.0000100 +0 -0
  31. data/test/fixtures/run-regression-test/db.old/db.0000101 +0 -0
  32. data/test/fixtures/run-regression-test/db.old/db.0000102 +0 -0
  33. data/test/fixtures/run-regression-test/db.old/db.0000103 +0 -0
  34. data/test/fixtures/run-regression-test/db.old/db.0000103.c +0 -0
  35. data/test/fixtures/run-regression-test/db.old/db.001 +0 -0
  36. data/test/fixtures/run-regression-test/db.old/db.conf +0 -0
  37. data/test/fixtures/run-regression-test/db.old/groonga.log +0 -79
  38. data/test/fixtures/run-regression-test/results/query.log +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA256:
3
- metadata.gz: 661030b254c034e486074270e46e90f9ea593ceea13f1e648f9e7b76fe75bb3c
4
- data.tar.gz: c8cae31736b8265e9b160019dbf0c72e0944e4e6113b94ad67a3a897e3bb240a
2
+ SHA1:
3
+ metadata.gz: 747d884c77f1a62e7266740a0a5cfe796dc9afc5
4
+ data.tar.gz: 17a9c5e1f2463a1d5b4deee9d187619ceec6f690
5
5
  SHA512:
6
- metadata.gz: 821547ca78bda0bc51ea23f12c0f1d72d3bbec079e96ed24884791b355279d9904f5a2a2e03b3f064bc3ca13d519df3be30153effaa530686659bfaf0235780c
7
- data.tar.gz: fb253f2e4d5d50c6a4f0cc056b7b270647733d6c4b1f99e85316ac30f41f41944bcdfca74060d166f3f6da2094bf8727db6fafe91214aa4ee59abf33c22708c9
6
+ metadata.gz: f9ed114c27916395db0d9cf82d02b3c938b7aa338863da6972b156726646ee18cd7cff536c1483ae95af065c697a945d0fb618b2bf34e5c92de15af01e87ced7
7
+ data.tar.gz: 5cfe3856cca14f355c1f2d6f19c36b4da3ec61918938e6e3ecdc97ccae8c183726b6ebf30309f8cd6c234f405a910f6c4d1f419caa5a401cf5a233585940fcd7
@@ -1,5 +1,39 @@
1
1
  # News
2
2
 
3
+ ## 1.3.9: 2018-11-20
4
+
5
+ ### Improvements
6
+
7
+ * Improve the accuracy of time so as to become the same accuracy as Groonga.
8
+
9
+ * `groonga-query-log-check-crash`:
10
+
11
+ * Added support for truncate leak detection.
12
+
13
+ * `groonga-query-log-run-regression-test`:
14
+
15
+ * Added support for rewriting `vector.column != \"\"` with `vector_size(vector) > 0`.
16
+
17
+ * Improve "stop-on-failure" option so as to stop execute of tests even when cause HTTP errors.
18
+
19
+ * Added `--rewrite_nullable_reference_number` option.
20
+
21
+ * `groonga-query-log-server-verifier`:
22
+
23
+ * support reporting unexpected error.
24
+
25
+ * `groonga-query-log-format-regression-test-logs`
26
+
27
+ * Added support error log.
28
+
29
+ * Added label for command.
30
+
31
+ ### Fixes
32
+
33
+ * `groonga-query-log-run-regression-test`:
34
+
35
+ * Fixed a bug that fails read a file that except ".rb" under the schema directory.
36
+
3
37
  ## 1.3.8: 2018-10-18
4
38
 
5
39
  ### Improvements
@@ -57,7 +57,6 @@ Gem::Specification.new do |spec|
57
57
  spec.add_runtime_dependency("groonga-log", ">= 0.1.2")
58
58
 
59
59
  spec.add_development_dependency("test-unit")
60
- spec.add_development_dependency("test-unit-notify")
61
60
  spec.add_development_dependency("test-unit-rr")
62
61
  spec.add_development_dependency("rake")
63
62
  spec.add_development_dependency("bundler")
@@ -163,7 +163,7 @@ module GroongaQueryLog
163
163
 
164
164
  start = process.start_time
165
165
  last = process.last_time
166
- @flushed = nil
166
+ @flushed = true
167
167
  @unflushed_statistics = []
168
168
  query_log_parser = Parser.new
169
169
  query_log_parser.parse_paths(@query_log_paths) do |statistic|
@@ -216,10 +216,11 @@ module GroongaQueryLog
216
216
  when "delete"
217
217
  @flushed = false
218
218
  @unflushed_statistics << statistic
219
+ when "truncate"
220
+ @flushed = false
221
+ @unflushed_statistics << statistic
219
222
  when "io_flush"
220
- # TODO: Improve flushed target detection.
221
- @flushed = true
222
- @unflushed_statistics.clear
223
+ check_io_flush(statistic.command)
223
224
  when "database_unmap"
224
225
  @unflushed_statistics.reject! do |statistic|
225
226
  statistic.command.name == "load"
@@ -232,7 +233,60 @@ module GroongaQueryLog
232
233
  when /\Acolumn_/
233
234
  @flushed = false
234
235
  @unflushed_statistics << statistic
236
+ when "plugin_register", "plugin_unregister"
237
+ @flushed = false
238
+ @unflushed_statistics << statistic
239
+ end
240
+ end
241
+
242
+ def check_io_flush(io_flush)
243
+ # TODO: Improve flushed target detection.
244
+ if io_flush.target_name
245
+ if io_flush.recursive?
246
+ @unflushed_statistics.reject! do |statistic|
247
+ case statistic.command.command_name
248
+ when "load"
249
+ # TODO: Not enough
250
+ statistic.command.table == io_flush.target_name
251
+ when "delete"
252
+ # TODO: Not enough
253
+ statistic.command.table == io_flush.target_name
254
+ when "truncate"
255
+ # TODO: Not enough
256
+ statistic.command.target_name == io_flush.target_name
257
+ else
258
+ false
259
+ end
260
+ end
261
+ else
262
+ @unflushed_statistics.reject! do |statistic|
263
+ case statistic.command.command_name
264
+ when /_create/
265
+ true # TODO: Need io_flush for database
266
+ else
267
+ false
268
+ end
269
+ end
270
+ end
271
+ else
272
+ if io_flush.recursive?
273
+ @unflushed_statistics.clear
274
+ else
275
+ @unflushed_statistics.reject! do |statistic|
276
+ case statistic.command.command_name
277
+ when /_create\z/
278
+ true # TODO: Need io_flush for the target
279
+ when /_remove\z/, /_rename\z/
280
+ true
281
+ when "plugin_register", "plugin_unregister"
282
+ true
283
+ else
284
+ false
285
+ end
286
+ end
287
+ end
235
288
  end
289
+ @flushed = @unflushed_statistics.empty?
236
290
  end
237
291
  end
238
292
 
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2014-2017 Kouhei Sutou <kou@clear-code.com>
1
+ # Copyright (C) 2014-2018 Kouhei Sutou <kou@clear-code.com>
2
2
  #
3
3
  # This library is free software; you can redistribute it and/or
4
4
  # modify it under the terms of the GNU Lesser General Public
@@ -63,6 +63,8 @@ module GroongaQueryLog
63
63
  command = nil
64
64
  response_old = nil
65
65
  response_new = nil
66
+ backtrace = []
67
+ error_message = nil
66
68
 
67
69
  input.each_line do |line|
68
70
  unless line.valid_encoding?
@@ -79,6 +81,12 @@ module GroongaQueryLog
79
81
  response_new = $POSTMATCH.chomp
80
82
  next unless valid_entry?(command, response_old, response_new)
81
83
  report_diff(command, response_old, response_new)
84
+ when /\Aerror: /
85
+ error_message = $POSTMATCH.chomp
86
+ report_error(command, error_message, backtrace)
87
+ backtrace.clear
88
+ when /\Abacktrace: /
89
+ backtrace.unshift($POSTMATCH.chomp)
82
90
  end
83
91
  end
84
92
  end
@@ -126,7 +134,15 @@ module GroongaQueryLog
126
134
  end
127
135
  end
128
136
 
137
+ def report_error(command, message, backtrace)
138
+ report_command(command)
139
+ puts("Error: #{message}")
140
+ puts("Backtrace:")
141
+ puts(backtrace)
142
+ end
143
+
129
144
  def report_command(command)
145
+ puts("Command:")
130
146
  puts(command)
131
147
  parsed_command = Groonga::Command::Parser.parse(command)
132
148
  puts("Name: #{parsed_command.name}")
@@ -48,6 +48,8 @@ module GroongaQueryLog
48
48
  @rewrite_vector_equal = false
49
49
  @rewrite_vector_not_equal_empty_string = false
50
50
  @vector_accessors = []
51
+ @rewrite_nullable_reference_number = false
52
+ @nullable_reference_number_accessors = []
51
53
 
52
54
  @care_order = true
53
55
  @ignored_drilldown_keys = []
@@ -160,7 +162,9 @@ module GroongaQueryLog
160
162
  @rewrite_vector_equal = boolean
161
163
  end
162
164
  parser.on("--[no-]rewrite-vector-not-equal-empty-string",
163
- "Rewrite 'vector != \"\"' with 'false'",
165
+ "Rewrite 'vector != \"\"' and " +
166
+ "'vector.column != \"\"' " +
167
+ "with 'vector_size(vector) > 0'",
164
168
  "(#{@rewrite_vector_not_equal_empty_string})") do |boolean|
165
169
  @rewrite_vector_not_equal_empty_string = boolean
166
170
  end
@@ -170,6 +174,19 @@ module GroongaQueryLog
170
174
  "specifying this option multiple times") do |accessor|
171
175
  @vector_accessors << accessor
172
176
  end
177
+ parser.on("--[no-]rewrite-nullable-reference-number",
178
+ "Rewrite 'nullable_reference.number' with " +
179
+ "with '(nullable_reference._key == null ? 0 : " +
180
+ "nullable_reference.number)'",
181
+ "(#{@rewrite_nullable_reference_number})") do |boolean|
182
+ @rewrite_nullable_reference_number = boolean
183
+ end
184
+ parser.on("--nullable-reference-number-accessor=ACCESSOR",
185
+ "Mark ACCESSOR as rewrite nullable reference number targets",
186
+ "You can specify multiple accessors by",
187
+ "specifying this option multiple times") do |accessor|
188
+ @nullable_reference_number_accessors << accessor
189
+ end
173
190
 
174
191
  parser.separator("")
175
192
  parser.separator("Comparisons:")
@@ -231,6 +248,10 @@ module GroongaQueryLog
231
248
  :rewrite_vector_not_equal_empty_string =>
232
249
  @rewrite_vector_not_equal_empty_string,
233
250
  :vector_accessors => @vector_accessors,
251
+ :rewrite_nullable_reference_number =>
252
+ @rewrite_nullable_reference_number,
253
+ :nullable_reference_number_accessors =>
254
+ @nullable_reference_number_accessors,
234
255
  :target_command_names => @target_command_names,
235
256
  :read_timeout => @read_timeout,
236
257
  }
@@ -324,7 +345,7 @@ module GroongaQueryLog
324
345
  command = [
325
346
  @groonga,
326
347
  "--log-path", log_path.to_s,
327
- "--file", grn_file.to_s,
348
+ "--file", load_file.to_s,
328
349
  @database_path.to_s,
329
350
  ]
330
351
  end
@@ -513,10 +534,18 @@ module GroongaQueryLog
513
534
  if @options[:rewrite_vector_not_equal_empty_string]
514
535
  command_line << "--rewrite-vector-not-equal-empty-string"
515
536
  end
516
- vector_accessors = @options[:vector_accessors] || []
517
- vector_accessors.each do |vector_accessor|
537
+ accessors = @options[:vector_accessors] || []
538
+ accessors.each do |accessor|
518
539
  command_line << "--vector-accessor"
519
- command_line << vector_accessor
540
+ command_line << accessor
541
+ end
542
+ if @options[:rewrite_nullable_reference_number]
543
+ command_line << "--rewrite-nullable-reference-number"
544
+ end
545
+ accessors = @options[:nullable_reference_number_accessors] || []
546
+ accessors.each do |accessor|
547
+ command_line << "--nullable-reference-number-accessor"
548
+ command_line << accessor
520
549
  end
521
550
  if @options[:target_command_names]
522
551
  command_line << "--target-command-names"
@@ -208,18 +208,35 @@ module GroongaQueryLog
208
208
  end
209
209
 
210
210
  parser.on("--[no-]rewrite-vector-not-equal-empty-string",
211
- "Rewrite 'vector != \"\"' with 'false'",
211
+ "Rewrite 'vector != \"\"' and " +
212
+ "'vector.column != \"\"' " +
213
+ "with 'vector_size(vector) > 0'",
212
214
  "(#{@options.rewrite_vector_not_equal_empty_string?})") do |boolean|
213
215
  @options.rewrite_vector_not_equal_empty_string = boolean
214
216
  end
215
217
 
216
218
  parser.on("--vector-accessor=ACCESSOR",
217
219
  "Mark ACCESSOR as rewrite vector targets",
218
- "You can specify multiple vector accessors by",
220
+ "You can specify multiple accessors by",
219
221
  "specifying this option multiple times") do |accessor|
220
222
  @options.vector_accessors << accessor
221
223
  end
222
224
 
225
+ parser.on("--[no-]rewrite-nullable-reference-number",
226
+ "Rewrite 'nullable_reference.number' with " +
227
+ "with '(nullable_reference._key == null ? 0 : " +
228
+ "nullable_reference.number)'",
229
+ "(#{@options.rewrite_nullable_reference_number?})") do |boolean|
230
+ @options.rewrite_nullable_reference_number = boolean
231
+ end
232
+
233
+ parser.on("--nullable-reference-number-accessor=ACCESSOR",
234
+ "Mark ACCESSOR as rewrite nullable reference number targets",
235
+ "You can specify multiple accessors by",
236
+ "specifying this option multiple times") do |accessor|
237
+ @options.nullable_reference_number_accessors << accessor
238
+ end
239
+
223
240
  parser.separator("Debug options:")
224
241
  parser.separator("")
225
242
 
@@ -20,6 +20,8 @@ module GroongaQueryLog
20
20
  @filter = filter
21
21
  @options = options
22
22
  @vector_accessors = @options[:vector_accessors] || []
23
+ @nullable_reference_number_accessors =
24
+ @options[:nullable_reference_number_accessors] || []
23
25
  end
24
26
 
25
27
  def rewrite
@@ -30,6 +32,9 @@ module GroongaQueryLog
30
32
  if @options[:rewrite_vector_not_equal_empty_string]
31
33
  rewritten = rewrite_vector_not_equal_empty_string(rewritten)
32
34
  end
35
+ if @options[:rewrite_nullable_reference_number]
36
+ rewritten = rewrite_nullable_reference_number(rewritten)
37
+ end
33
38
  rewritten
34
39
  end
35
40
 
@@ -48,8 +53,25 @@ module GroongaQueryLog
48
53
  def rewrite_vector_not_equal_empty_string(filter)
49
54
  filter.gsub(/([a-zA-Z0-9_.]+) *!= *(?:''|"")/) do |matched|
50
55
  variable = $1
51
- if @vector_accessors.include?(variable)
52
- "false"
56
+ path = variable.split(".")
57
+ replaced = matched
58
+ path.size.downto(1) do |i|
59
+ sub_path = path[0, i].join(".")
60
+ if @vector_accessors.include?(sub_path)
61
+ replaced = "vector_size(#{sub_path}) > 0"
62
+ break
63
+ end
64
+ end
65
+ replaced
66
+ end
67
+ end
68
+
69
+ def rewrite_nullable_reference_number(filter)
70
+ filter.gsub(/([a-zA-Z0-9_.]+)/) do |matched|
71
+ accessor = $1
72
+ if @nullable_reference_number_accessors.include?(accessor)
73
+ sub_accessor = accessor.split(".")[0..-2].join(".")
74
+ "(#{sub_accessor}._key == null ? 0 : #{accessor})"
53
75
  else
54
76
  matched
55
77
  end
@@ -33,7 +33,7 @@ module GroongaQueryLog
33
33
  check_command(client, command)
34
34
  rescue Groonga::Client::Connection::Error
35
35
  # TODO: add error log mechanism
36
- $stderr.puts(Time.now.iso8601)
36
+ $stderr.puts(Time.now.iso8601(6))
37
37
  $stderr.puts(command.original_source)
38
38
  $stderr.puts($!.raw_error.message)
39
39
  $stderr.puts($!.raw_error.backtrace)
@@ -81,14 +81,14 @@ module GroongaQueryLog
81
81
  replay_command(client, id, statistic.command)
82
82
  rescue Groonga::Client::Error
83
83
  # TODO: add error log mechanism
84
- $stderr.puts(Time.now.iso8601)
84
+ $stderr.puts(Time.now.iso8601(6))
85
85
  $stderr.puts(statistic.command.original_source)
86
86
  $stderr.puts($!.raw_error.message)
87
87
  $stderr.puts($!.raw_error.backtrace)
88
88
  return false
89
89
  rescue
90
90
  # TODO: add error log mechanism
91
- $stderr.puts(Time.now.iso8601)
91
+ $stderr.puts(Time.now.iso8601(6))
92
92
  $stderr.puts(statistic.command.original_source)
93
93
  $stderr.puts($!.message)
94
94
  $stderr.puts($!.backtrace)
@@ -28,17 +28,18 @@ module GroongaQueryLog
28
28
  def initialize(options)
29
29
  @options = options
30
30
  @queue = SizedQueue.new(@options.request_queue_size)
31
- @different_results = Queue.new
31
+ @events = Queue.new
32
32
  end
33
33
 
34
34
  def verify(input, &callback)
35
35
  @same = true
36
+ @client_error_is_occurred = false
36
37
  producer = run_producer(input, &callback)
37
38
  reporter = run_reporter
38
39
  producer.join
39
- @different_results.push(nil)
40
+ @events.push(nil)
40
41
  reporter.join
41
- @same
42
+ success?
42
43
  end
43
44
 
44
45
  private
@@ -50,7 +51,7 @@ module GroongaQueryLog
50
51
  n_commands = 0
51
52
  callback_per_n_commands = 100
52
53
  parser.parse(input) do |statistic|
53
- break if !@same and @options.stop_on_failure?
54
+ break if stop?
54
55
 
55
56
  command = statistic.command
56
57
  next if command.nil?
@@ -90,25 +91,31 @@ module GroongaQueryLog
90
91
  loop do
91
92
  statistic = @queue.pop
92
93
  return true if statistic.nil?
94
+ next if stop?
93
95
 
94
96
  original_source = statistic.command.original_source
95
97
  begin
96
98
  verify_command(groonga1_client, groonga2_client,
97
99
  statistic.command)
98
- rescue
99
- log_client_error($!) do
100
+ rescue => error
101
+ log_client_error(error) do
100
102
  $stderr.puts(original_source)
101
103
  end
104
+ @client_error_is_occurred = true
105
+ @events.push([:error, statistic.command, error])
102
106
  return false
103
107
  end
104
108
  if @options.verify_cache?
109
+ command = Groonga::Command::Status.new
105
110
  begin
106
111
  verify_command(groonga1_client, groonga2_client,
107
- Groonga::Command::Status.new)
108
- rescue
109
- log_client_error($!) do
112
+ command)
113
+ rescue => error
114
+ log_client_error(error) do
110
115
  $stderr.puts("status after #{original_source}")
111
116
  end
117
+ @client_error_is_occurred = true
118
+ @events.push([:error, command, error])
112
119
  return false
113
120
  end
114
121
  end
@@ -121,9 +128,14 @@ module GroongaQueryLog
121
128
  Thread.new do
122
129
  @options.open_output do |output|
123
130
  loop do
124
- result = @different_results.pop
125
- break if result.nil?
126
- report_result(output, result)
131
+ event = @events.pop
132
+ break if event.nil?
133
+ case event[0]
134
+ when :different
135
+ report_different(output, *event[1..-1])
136
+ when :error
137
+ report_error(output, *event[1..-1])
138
+ end
127
139
  end
128
140
  end
129
141
  end
@@ -133,6 +145,20 @@ module GroongaQueryLog
133
145
  @options.target_command_name?(command.command_name)
134
146
  end
135
147
 
148
+ def success?
149
+ return false unless @same
150
+ return false if @client_error_is_occurred
151
+ true
152
+ end
153
+
154
+ def failed?
155
+ not success?
156
+ end
157
+
158
+ def stop?
159
+ @options.stop_on_failure? and failed?
160
+ end
161
+
136
162
  def verify_command(groonga1_client, groonga2_client, command)
137
163
  command["cache"] = "no" if @options.disable_cache?
138
164
  command["output_type"] = "json"
@@ -147,7 +173,8 @@ module GroongaQueryLog
147
173
  comparer = ResponseComparer.new(command, response1, response2,
148
174
  compare_options)
149
175
  unless comparer.same?
150
- @different_results.push([command, response1, response2])
176
+ @same = false
177
+ @events.push([:different, command, response1, response2])
151
178
  end
152
179
  end
153
180
 
@@ -166,9 +193,7 @@ module GroongaQueryLog
166
193
  command[name] = rewritten_target
167
194
  end
168
195
 
169
- def report_result(output, result)
170
- @same = false
171
- command, response1, response2 = result
196
+ def report_different(output, command, response1, response2)
172
197
  command_source = command.original_source || command.to_uri_format
173
198
  output.puts("command: #{command_source}")
174
199
  output.puts("response1: #{response1.body.to_json}")
@@ -176,8 +201,18 @@ module GroongaQueryLog
176
201
  output.flush
177
202
  end
178
203
 
204
+ def report_error(output, command, error)
205
+ command_source = command.original_source || command.to_uri_format
206
+ output.puts("command: #{command_source}")
207
+ error.backtrace.reverse_each do |trace|
208
+ output.puts("backtrace: #{trace}")
209
+ end
210
+ output.puts("error: #{error.class}: #{error.message}")
211
+ output.flush
212
+ end
213
+
179
214
  def log_client_error(error)
180
- $stderr.puts(Time.now.iso8601)
215
+ $stderr.puts(Time.now.iso8601(6))
181
216
  yield if block_given?
182
217
  if error.respond_to?(:raw_error)
183
218
  target_error = error.raw_error
@@ -203,6 +238,8 @@ module GroongaQueryLog
203
238
  attr_writer :rewrite_vector_equal
204
239
  attr_writer :rewrite_vector_not_equal_empty_string
205
240
  attr_accessor :vector_accessors
241
+ attr_writer :rewrite_nullable_reference_number
242
+ attr_accessor :nullable_reference_number_accessors
206
243
  def initialize
207
244
  @groonga1 = GroongaOptions.new
208
245
  @groonga2 = GroongaOptions.new
@@ -229,6 +266,8 @@ module GroongaQueryLog
229
266
  @rewrite_vector_equal = false
230
267
  @rewrite_vector_not_equal_empty_string = false
231
268
  @vector_accessors = []
269
+ @rewrite_nullable_reference_number = false
270
+ @nullable_reference_number_accessors = []
232
271
  end
233
272
 
234
273
  def request_queue_size
@@ -255,6 +294,10 @@ module GroongaQueryLog
255
294
  @rewrite_vector_not_equal_empty_string
256
295
  end
257
296
 
297
+ def rewrite_nullable_reference_number?
298
+ @rewrite_nullable_reference_number
299
+ end
300
+
258
301
  def target_command_name?(name)
259
302
  return false if name.nil?
260
303
 
@@ -282,7 +325,8 @@ module GroongaQueryLog
282
325
 
283
326
  def need_filter_rewrite?
284
327
  rewrite_vector_equal? or
285
- rewrite_vector_not_equal_empty_string?
328
+ rewrite_vector_not_equal_empty_string? or
329
+ rewrite_nullable_reference_number?
286
330
  end
287
331
 
288
332
  def to_filter_rewriter_options
@@ -291,6 +335,10 @@ module GroongaQueryLog
291
335
  :rewrite_vector_not_equal_empty_string =>
292
336
  rewrite_vector_not_equal_empty_string?,
293
337
  :vector_accessors => vector_accessors,
338
+ :rewrite_nullable_reference_number =>
339
+ rewrite_nullable_reference_number?,
340
+ :nullable_reference_number_accessors =>
341
+ nullable_reference_number_accessors,
294
342
  }
295
343
  end
296
344
  end
@@ -15,5 +15,5 @@
15
15
  # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
16
 
17
17
  module GroongaQueryLog
18
- VERSION = "1.3.8"
18
+ VERSION = "1.3.9"
19
19
  end
@@ -1,6 +1,4 @@
1
- # -*- coding: utf-8 -*-
2
- #
3
- # Copyright (C) 2014 Kouhei Sutou <kou@clear-code.com>
1
+ # Copyright (C) 2014-2018 Kouhei Sutou <kou@clear-code.com>
4
2
  #
5
3
  # This library is free software; you can redistribute it and/or
6
4
  # modify it under the terms of the GNU Lesser General Public
@@ -28,12 +26,16 @@ class FormatRegressionTestLogsCommandTest < Test::Unit::TestCase
28
26
  def run_command(command_line)
29
27
  stdout = $stdout.dup
30
28
  output = Tempfile.open("output")
31
- $stdout.reopen(output)
32
- succees = @command.run(command_line)
33
- output.rewind
29
+ success = false
30
+ begin
31
+ $stdout.reopen(output)
32
+ succees = @command.run(command_line)
33
+ ensure
34
+ $stdout.reopen(stdout)
35
+ end
36
+ output.close
37
+ output.open
34
38
  [succees, output.read]
35
- ensure
36
- $stdout.reopen(stdout)
37
39
  end
38
40
 
39
41
  def fixture_path(*components)
@@ -48,6 +50,7 @@ class FormatRegressionTestLogsCommandTest < Test::Unit::TestCase
48
50
 
49
51
  def test_command_format
50
52
  output = <<-OUTPUT
53
+ Command:
51
54
  select Logs
52
55
  Name: select
53
56
  Arguments:
@@ -67,6 +70,7 @@ Arguments:
67
70
 
68
71
  def test_url_format
69
72
  output = <<-OUTPUT
73
+ Command:
70
74
  /d/select?table=Logs&match_columns=message&query=%E7%84%BC%E8%82%89
71
75
  Name: select
72
76
  Arguments:
@@ -85,4 +89,23 @@ Arguments:
85
89
  assert_equal([true, output],
86
90
  run_command([fixture_path("url-format.log")]))
87
91
  end
92
+
93
+ def test_error
94
+ output = <<-OUTPUT
95
+ Command:
96
+ /d/select?table=Logs&match_columns=message&query=%E7%84%BC%E8%82%89
97
+ Name: select
98
+ Arguments:
99
+ match_columns: message
100
+ query: 焼肉
101
+ table: Logs
102
+ Error: Message
103
+ Backtrace:
104
+ 1
105
+ 2
106
+ 3
107
+ OUTPUT
108
+ assert_equal([true, output],
109
+ run_command([fixture_path("error.log")]))
110
+ end
88
111
  end
@@ -0,0 +1,5 @@
1
+ command: /d/select?table=Logs&match_columns=message&query=%E7%84%BC%E8%82%89
2
+ backtrace: 3
3
+ backtrace: 2
4
+ backtrace: 1
5
+ error: Message
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
2
  #
3
- # Copyright (C) 2012-2013 Kouhei Sutou <kou@clear-code.com>
3
+ # Copyright (C) 2012-2018 Kouhei Sutou <kou@clear-code.com>
4
4
  #
5
5
  # This library is free software; you can redistribute it and/or
6
6
  # modify it under the terms of the GNU Lesser General Public
@@ -41,7 +41,6 @@ lib_dir = base_dir + "lib"
41
41
  test_dir = base_dir + "test"
42
42
 
43
43
  require "test-unit"
44
- require "test/unit/notify"
45
44
  require "test/unit/rr"
46
45
 
47
46
  Test::Unit::Priority.enable
@@ -61,15 +61,53 @@ class FilterRewriterTest < Test::Unit::TestCase
61
61
  end
62
62
 
63
63
  def test_parenthesis
64
- assert_equal("((false))",
64
+ assert_equal("((vector_size(vector) > 0))",
65
65
  rewrite("((vector != \"\"))",
66
66
  ["vector"]))
67
67
  end
68
68
 
69
69
  def test_under_score
70
- assert_equal("false",
70
+ assert_equal("vector_size(vector_column) > 0",
71
71
  rewrite("vector_column != \"\"",
72
72
  ["vector_column"]))
73
73
  end
74
+
75
+ def test_vector_sub_path
76
+ assert_equal("vector_size(vector) > 0",
77
+ rewrite("vector.column != \"\"",
78
+ ["vector"]))
79
+ end
80
+
81
+ def test_reference_vector
82
+ assert_equal("vector_size(reference.vector) > 0",
83
+ rewrite("reference.vector != \"\"",
84
+ ["reference.vector"]))
85
+ end
86
+ end
87
+
88
+ class NullableReferenceNumberTest < self
89
+ def rewrite(filter, accessors)
90
+ super(filter,
91
+ :rewrite_nullable_reference_number => true,
92
+ :nullable_reference_number_accessors => accessors)
93
+ end
94
+
95
+ def test_not_target_accessor
96
+ assert_equal("reference.number < 1000",
97
+ rewrite("reference.number < 1000",
98
+ ["nonexistent"]))
99
+ end
100
+
101
+ def test_parenthesis
102
+ assert_equal("(((reference._key == null ? 0 : reference.number)) < 1000)",
103
+ rewrite("((reference.number) < 1000)",
104
+ ["reference.number"]))
105
+ end
106
+
107
+ def test_under_score
108
+ assert_equal("(ref_column._key == null ? 0 : ref_column.number) < 1000",
109
+ rewrite("ref_column.number < 1000",
110
+ ["ref_column.number"]))
111
+ end
74
112
  end
75
113
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: groonga-query-log
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.8
4
+ version: 1.3.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kouhei Sutou
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-10-18 00:00:00.000000000 Z
11
+ date: 2018-11-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: groonga-command-parser
@@ -66,20 +66,6 @@ dependencies:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
- - !ruby/object:Gem::Dependency
70
- name: test-unit-notify
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - ">="
74
- - !ruby/object:Gem::Version
75
- version: '0'
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - ">="
81
- - !ruby/object:Gem::Version
82
- version: '0'
83
69
  - !ruby/object:Gem::Dependency
84
70
  name: test-unit-rr
85
71
  requirement: !ruby/object:Gem::Requirement
@@ -168,17 +154,17 @@ description: ''
168
154
  email:
169
155
  - kou@clear-code.com
170
156
  executables:
171
- - groonga-query-log-replay
172
- - groonga-query-log-format-regression-test-logs
173
- - groonga-query-log-show-running-queries
174
- - groonga-query-log-detect-memory-leak
175
- - groonga-query-log-verify-server
157
+ - groonga-query-log-extract
176
158
  - groonga-query-log-run-regression-test
159
+ - groonga-query-log-analyze-load
177
160
  - groonga-query-log-check-crash
178
- - groonga-query-log-check-command-version-compatibility
179
161
  - groonga-query-log-analyze
180
- - groonga-query-log-analyze-load
181
- - groonga-query-log-extract
162
+ - groonga-query-log-verify-server
163
+ - groonga-query-log-check-command-version-compatibility
164
+ - groonga-query-log-detect-memory-leak
165
+ - groonga-query-log-format-regression-test-logs
166
+ - groonga-query-log-show-running-queries
167
+ - groonga-query-log-replay
182
168
  extensions: []
183
169
  extra_rdoc_files: []
184
170
  files:
@@ -256,35 +242,15 @@ files:
256
242
  - test/fixtures/other-query.log
257
243
  - test/fixtures/query.log
258
244
  - test/fixtures/regression-test-logs/command-format.log
245
+ - test/fixtures/regression-test-logs/error.log
259
246
  - test/fixtures/regression-test-logs/url-format.log
260
247
  - test/fixtures/reporter/console.expected
261
248
  - test/fixtures/reporter/html.expected
262
249
  - test/fixtures/reporter/json-stream.expected
263
250
  - test/fixtures/reporter/json.expected
264
251
  - test/fixtures/run-regression-test/data/data.grn
265
- - test/fixtures/run-regression-test/db.new/db
266
- - test/fixtures/run-regression-test/db.new/db.0000000
267
- - test/fixtures/run-regression-test/db.new/db.0000100
268
- - test/fixtures/run-regression-test/db.new/db.0000101
269
- - test/fixtures/run-regression-test/db.new/db.0000102
270
- - test/fixtures/run-regression-test/db.new/db.0000103
271
- - test/fixtures/run-regression-test/db.new/db.0000103.c
272
- - test/fixtures/run-regression-test/db.new/db.001
273
- - test/fixtures/run-regression-test/db.new/db.conf
274
- - test/fixtures/run-regression-test/db.new/groonga.log
275
- - test/fixtures/run-regression-test/db.old/db
276
- - test/fixtures/run-regression-test/db.old/db.0000000
277
- - test/fixtures/run-regression-test/db.old/db.0000100
278
- - test/fixtures/run-regression-test/db.old/db.0000101
279
- - test/fixtures/run-regression-test/db.old/db.0000102
280
- - test/fixtures/run-regression-test/db.old/db.0000103
281
- - test/fixtures/run-regression-test/db.old/db.0000103.c
282
- - test/fixtures/run-regression-test/db.old/db.001
283
- - test/fixtures/run-regression-test/db.old/db.conf
284
- - test/fixtures/run-regression-test/db.old/groonga.log
285
252
  - test/fixtures/run-regression-test/indexes/indexes.grn
286
253
  - test/fixtures/run-regression-test/query-logs/query.log
287
- - test/fixtures/run-regression-test/results/query.log
288
254
  - test/fixtures/run-regression-test/schema/schema.grn
289
255
  - test/fixtures/target-commands.expected
290
256
  - test/fixtures/target-tables.expected
@@ -315,7 +281,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
315
281
  version: '0'
316
282
  requirements: []
317
283
  rubyforge_project:
318
- rubygems_version: 3.0.0.beta1
284
+ rubygems_version: 2.5.2.1
319
285
  signing_key:
320
286
  specification_version: 4
321
287
  summary: Groonga-query-log is a collection of library and tools to process [Groonga](http://groonga.org/)'s
@@ -323,55 +289,35 @@ summary: Groonga-query-log is a collection of library and tools to process [Groo
323
289
  as a library. You can analyze your Groonga's queries and test with your Groonga's
324
290
  query log by using groonga-query-log as a tool.
325
291
  test_files:
326
- - test/test-filter-rewriter.rb
327
- - test/fixtures/multi.expected
328
- - test/fixtures/target-tables.expected
329
- - test/fixtures/target-commands.expected
330
- - test/fixtures/n_entries.expected
292
+ - test/test-response-comparer.rb
293
+ - test/run-test.rb
294
+ - test/test-replayer.rb
295
+ - test/test-parser.rb
296
+ - test/helper.rb
331
297
  - test/fixtures/query.log
298
+ - test/fixtures/n_entries.expected
332
299
  - test/fixtures/other-query.log
333
- - test/fixtures/order/-start-time.expected
334
- - test/fixtures/order/elapsed.expected
335
- - test/fixtures/order/-elapsed.expected
336
- - test/fixtures/order/start-time.expected
337
- - test/fixtures/regression-test-logs/url-format.log
338
- - test/fixtures/regression-test-logs/command-format.log
300
+ - test/fixtures/no-report-summary.expected
301
+ - test/fixtures/reporter/json-stream.expected
339
302
  - test/fixtures/reporter/json.expected
340
- - test/fixtures/reporter/console.expected
341
303
  - test/fixtures/reporter/html.expected
342
- - test/fixtures/reporter/json-stream.expected
343
- - test/fixtures/run-regression-test/db.old/db.0000100
344
- - test/fixtures/run-regression-test/db.old/db.0000103
345
- - test/fixtures/run-regression-test/db.old/db.0000103.c
346
- - test/fixtures/run-regression-test/db.old/db.0000101
347
- - test/fixtures/run-regression-test/db.old/db
348
- - test/fixtures/run-regression-test/db.old/db.0000000
349
- - test/fixtures/run-regression-test/db.old/db.001
350
- - test/fixtures/run-regression-test/db.old/db.conf
351
- - test/fixtures/run-regression-test/db.old/db.0000102
352
- - test/fixtures/run-regression-test/db.old/groonga.log
304
+ - test/fixtures/reporter/console.expected
305
+ - test/fixtures/regression-test-logs/command-format.log
306
+ - test/fixtures/regression-test-logs/url-format.log
307
+ - test/fixtures/regression-test-logs/error.log
308
+ - test/fixtures/target-commands.expected
309
+ - test/fixtures/multi.expected
353
310
  - test/fixtures/run-regression-test/query-logs/query.log
354
311
  - test/fixtures/run-regression-test/schema/schema.grn
355
- - test/fixtures/run-regression-test/data/data.grn
356
312
  - test/fixtures/run-regression-test/indexes/indexes.grn
357
- - test/fixtures/run-regression-test/db.new/db.0000100
358
- - test/fixtures/run-regression-test/db.new/db.0000103
359
- - test/fixtures/run-regression-test/db.new/db.0000103.c
360
- - test/fixtures/run-regression-test/db.new/db.0000101
361
- - test/fixtures/run-regression-test/db.new/db
362
- - test/fixtures/run-regression-test/db.new/db.0000000
363
- - test/fixtures/run-regression-test/db.new/db.001
364
- - test/fixtures/run-regression-test/db.new/db.conf
365
- - test/fixtures/run-regression-test/db.new/db.0000102
366
- - test/fixtures/run-regression-test/db.new/groonga.log
367
- - test/fixtures/run-regression-test/results/query.log
368
- - test/fixtures/no-report-summary.expected
369
- - test/helper.rb
370
- - test/command/test-analyzer.rb
313
+ - test/fixtures/run-regression-test/data/data.grn
314
+ - test/fixtures/order/-elapsed.expected
315
+ - test/fixtures/order/start-time.expected
316
+ - test/fixtures/order/-start-time.expected
317
+ - test/fixtures/order/elapsed.expected
318
+ - test/fixtures/target-tables.expected
319
+ - test/test-filter-rewriter.rb
371
320
  - test/command/test-format-regression-test-logs.rb
372
321
  - test/command/test-extract.rb
373
- - test/test-replayer.rb
322
+ - test/command/test-analyzer.rb
374
323
  - test/test-incompatibility-detector.rb
375
- - test/run-test.rb
376
- - test/test-parser.rb
377
- - test/test-response-comparer.rb
@@ -1,165 +0,0 @@
1
- 2017-04-24 11:06:45.783903|n| grn_init: <7.0.1-105-gf940037>
2
- 2017-04-24 11:06:45.783995|n| vm.overcommit_memory kernel parameter should be 1: <0>: See INFO level log to resolve this
3
- 2017-04-24 11:06:45.785696|n| DDL:256:table_create Entries
4
- 2017-04-24 11:06:45.832240|n| spec:256:update:Entries:48(table:hash_key):0
5
- 2017-04-24 11:06:45.832566|n| DDL:257:column_create Entries description
6
- 2017-04-24 11:06:45.882379|n| spec:257:update:Entries.description:65(column:var_size):15(Text)
7
- 2017-04-24 11:06:45.902188|n| grn_fin (0)
8
- 2017-04-24 11:06:45.911851|n| grn_init: <7.0.1-105-gf940037>
9
- 2017-04-24 11:06:45.911981|n| vm.overcommit_memory kernel parameter should be 1: <0>: See INFO level log to resolve this
10
- 2017-04-24 11:06:45.927281|n| grn_fin (0)
11
- 2017-04-24 11:06:45.938921|n| grn_init: <7.0.1-105-gf940037>
12
- 2017-04-24 11:06:45.939085|n| vm.overcommit_memory kernel parameter should be 1: <0>: See INFO level log to resolve this
13
- 2017-04-24 11:06:45.943080|n| DDL:258:table_create Bigram
14
- 2017-04-24 11:06:45.990956|n| spec:258:update:Bigram:49(table:pat_key):0
15
- 2017-04-24 11:06:45.991456|n| DDL:259:column_create Bigram Entries_description
16
- 2017-04-24 11:06:46.084367|n| spec:259:update:Bigram.Entries_description:72(column:index):256(Entries)
17
- 2017-04-24 11:06:46.099864|n| DDL:259:set_source Bigram.Entries_description Entries.description
18
- 2017-04-24 11:06:46.099925|n| spec:257:update:Entries.description:65(column:var_size):15(Text)
19
- 2017-04-24 11:06:46.104701|n| spec:259:update:Bigram.Entries_description:72(column:index):256(Entries)
20
- 2017-04-24 11:06:46.113406|n| grn_fin (0)
21
- 2017-04-24 11:06:46.117714|n| grn_init: <7.0.1-105-gf940037>
22
- 2017-04-24 11:06:46.117765|n| vm.overcommit_memory kernel parameter should be 1: <0>: See INFO level log to resolve this
23
- 2017-04-24 11:06:46.117899|n| RLIMIT_NOFILE(4096,4096)
24
- 2017-04-24 11:06:47.117263|n| thread start (0/1)
25
- 2017-04-24 11:06:47.495184|n| thread end (0/0)
26
- 2017-04-24 11:06:47.498054|n| grn_fin (0)
27
- 2017-04-24 11:07:45.262160|n| grn_init: <7.0.1-105-gf940037>
28
- 2017-04-24 11:07:45.262192|n| vm.overcommit_memory kernel parameter should be 1: <0>: See INFO level log to resolve this
29
- 2017-04-24 11:07:45.262282|n| RLIMIT_NOFILE(4096,4096)
30
- 2017-04-24 11:07:46.261844|n| thread start (0/1)
31
- 2017-04-24 11:07:46.580606|n| thread end (0/0)
32
- 2017-04-24 11:07:46.583733|n| grn_fin (0)
33
- 2017-04-24 11:07:46.586691|n| grn_init: <7.0.1-105-gf940037>
34
- 2017-04-24 11:07:46.586724|n| vm.overcommit_memory kernel parameter should be 1: <0>: See INFO level log to resolve this
35
- 2017-04-24 11:07:46.586809|n| RLIMIT_NOFILE(4096,4096)
36
- 2017-04-24 11:07:47.585962|n| thread start (0/1)
37
- 2017-04-24 11:07:48.028639|n| thread end (0/0)
38
- 2017-04-24 11:07:48.030048|n| grn_fin (0)
39
- 2017-04-24 11:07:48.034362|n| grn_init: <7.0.1-105-gf940037>
40
- 2017-04-24 11:07:48.034410|n| vm.overcommit_memory kernel parameter should be 1: <0>: See INFO level log to resolve this
41
- 2017-04-24 11:07:48.034549|n| RLIMIT_NOFILE(4096,4096)
42
- 2017-04-24 11:07:49.032453|n| thread start (0/1)
43
- 2017-04-24 11:07:49.195891|n| thread end (0/0)
44
- 2017-04-24 11:07:49.196755|n| grn_fin (0)
45
- 2017-04-24 11:10:47.018307|n| grn_init: <7.0.1-105-gf940037>
46
- 2017-04-24 11:10:47.018349|n| vm.overcommit_memory kernel parameter should be 1: <0>: See INFO level log to resolve this
47
- 2017-04-24 11:10:47.018437|n| RLIMIT_NOFILE(4096,4096)
48
- 2017-04-24 11:10:48.017869|n| thread start (0/1)
49
- 2017-04-24 11:10:48.313167|n| thread end (0/0)
50
- 2017-04-24 11:10:48.314042|n| grn_fin (0)
51
- 2017-04-24 11:10:48.316882|n| grn_init: <7.0.1-105-gf940037>
52
- 2017-04-24 11:10:48.316926|n| vm.overcommit_memory kernel parameter should be 1: <0>: See INFO level log to resolve this
53
- 2017-04-24 11:10:48.317007|n| RLIMIT_NOFILE(4096,4096)
54
- 2017-04-24 11:10:49.315935|n| thread start (0/1)
55
- 2017-04-24 11:10:49.698905|n| thread end (0/0)
56
- 2017-04-24 11:10:49.700064|n| grn_fin (0)
57
- 2017-04-24 11:10:49.705284|n| grn_init: <7.0.1-105-gf940037>
58
- 2017-04-24 11:10:49.705412|n| vm.overcommit_memory kernel parameter should be 1: <0>: See INFO level log to resolve this
59
- 2017-04-24 11:10:49.705578|n| RLIMIT_NOFILE(4096,4096)
60
- 2017-04-24 11:10:50.702205|n| thread start (0/1)
61
- 2017-04-24 11:10:50.858002|n| thread end (0/0)
62
- 2017-04-24 11:10:50.858862|n| grn_fin (0)
63
- 2017-04-24 11:11:12.606175|n| grn_init: <7.0.1-105-gf940037>
64
- 2017-04-24 11:11:12.606214|n| vm.overcommit_memory kernel parameter should be 1: <0>: See INFO level log to resolve this
65
- 2017-04-24 11:11:12.606307|n| RLIMIT_NOFILE(4096,4096)
66
- 2017-04-24 11:11:13.605834|n| thread start (0/1)
67
- 2017-04-24 11:11:13.842406|n| thread end (0/0)
68
- 2017-04-24 11:11:13.843288|n| grn_fin (0)
69
- 2017-04-24 11:11:13.846133|n| grn_init: <7.0.1-105-gf940037>
70
- 2017-04-24 11:11:13.846164|n| vm.overcommit_memory kernel parameter should be 1: <0>: See INFO level log to resolve this
71
- 2017-04-24 11:11:13.846254|n| RLIMIT_NOFILE(4096,4096)
72
- 2017-04-24 11:11:14.845410|n| thread start (0/1)
73
- 2017-04-24 11:11:15.127688|n| thread end (0/0)
74
- 2017-04-24 11:11:15.128568|n| grn_fin (0)
75
- 2017-04-24 11:11:15.131325|n| grn_init: <7.0.1-105-gf940037>
76
- 2017-04-24 11:11:15.131357|n| vm.overcommit_memory kernel parameter should be 1: <0>: See INFO level log to resolve this
77
- 2017-04-24 11:11:15.131440|n| RLIMIT_NOFILE(4096,4096)
78
- 2017-04-24 11:11:16.130617|n| thread start (0/1)
79
- 2017-04-24 11:11:42.306188|n| grn_init: <7.0.1-105-gf940037>
80
- 2017-04-24 11:11:42.306219|n| vm.overcommit_memory kernel parameter should be 1: <0>: See INFO level log to resolve this
81
- 2017-04-24 11:11:42.306306|n| RLIMIT_NOFILE(4096,4096)
82
- 2017-04-24 11:11:43.308553|n| thread start (0/1)
83
- 2017-04-24 11:11:43.580788|n| thread end (0/0)
84
- 2017-04-24 11:11:43.581685|n| grn_fin (0)
85
- 2017-04-24 11:11:43.584541|n| grn_init: <7.0.1-105-gf940037>
86
- 2017-04-24 11:11:43.584576|n| vm.overcommit_memory kernel parameter should be 1: <0>: See INFO level log to resolve this
87
- 2017-04-24 11:11:43.584662|n| RLIMIT_NOFILE(4096,4096)
88
- 2017-04-24 11:11:44.583985|n| thread start (0/1)
89
- 2017-04-24 11:11:44.874262|n| thread end (0/0)
90
- 2017-04-24 11:11:44.875167|n| grn_fin (0)
91
- 2017-04-24 11:11:44.877971|n| grn_init: <7.0.1-105-gf940037>
92
- 2017-04-24 11:11:44.878014|n| vm.overcommit_memory kernel parameter should be 1: <0>: See INFO level log to resolve this
93
- 2017-04-24 11:11:44.878098|n| RLIMIT_NOFILE(4096,4096)
94
- 2017-04-24 11:11:45.877207|n| thread start (0/1)
95
- 2017-04-24 11:11:46.066477|n| thread end (0/0)
96
- 2017-04-24 11:11:46.067611|n| grn_fin (0)
97
- 2017-04-24 11:12:06.890149|n| grn_init: <7.0.1-105-gf940037>
98
- 2017-04-24 11:12:06.890181|n| vm.overcommit_memory kernel parameter should be 1: <0>: See INFO level log to resolve this
99
- 2017-04-24 11:12:06.890263|n| RLIMIT_NOFILE(4096,4096)
100
- 2017-04-24 11:12:07.889979|n| thread start (0/1)
101
- 2017-04-24 11:12:08.166979|n| thread end (0/0)
102
- 2017-04-24 11:12:08.167884|n| grn_fin (0)
103
- 2017-04-24 11:12:08.170752|n| grn_init: <7.0.1-105-gf940037>
104
- 2017-04-24 11:12:08.170794|n| vm.overcommit_memory kernel parameter should be 1: <0>: See INFO level log to resolve this
105
- 2017-04-24 11:12:08.170877|n| RLIMIT_NOFILE(4096,4096)
106
- 2017-04-24 11:12:09.170034|n| thread start (0/1)
107
- 2017-04-24 11:12:09.466889|n| thread end (0/0)
108
- 2017-04-24 11:12:09.467813|n| grn_fin (0)
109
- 2017-04-24 11:12:09.470729|n| grn_init: <7.0.1-105-gf940037>
110
- 2017-04-24 11:12:09.470761|n| vm.overcommit_memory kernel parameter should be 1: <0>: See INFO level log to resolve this
111
- 2017-04-24 11:12:09.470845|n| RLIMIT_NOFILE(4096,4096)
112
- 2017-04-24 11:12:10.469841|n| thread start (0/1)
113
- 2017-04-24 11:12:10.568799|n| thread end (0/0)
114
- 2017-04-24 11:12:10.569881|n| grn_fin (0)
115
- 2017-04-24 11:12:21.466214|n| grn_init: <7.0.1-105-gf940037>
116
- 2017-04-24 11:12:21.466249|n| vm.overcommit_memory kernel parameter should be 1: <0>: See INFO level log to resolve this
117
- 2017-04-24 11:12:21.466332|n| RLIMIT_NOFILE(4096,4096)
118
- 2017-04-24 11:12:22.466174|n| thread start (0/1)
119
- 2017-04-24 11:12:22.724694|n| thread end (0/0)
120
- 2017-04-24 11:12:22.725556|n| grn_fin (0)
121
- 2017-04-24 11:12:22.728489|n| grn_init: <7.0.1-105-gf940037>
122
- 2017-04-24 11:12:22.728520|n| vm.overcommit_memory kernel parameter should be 1: <0>: See INFO level log to resolve this
123
- 2017-04-24 11:12:22.728608|n| RLIMIT_NOFILE(4096,4096)
124
- 2017-04-24 11:12:23.727545|n| thread start (0/1)
125
- 2017-04-24 11:12:23.997429|n| thread end (0/0)
126
- 2017-04-24 11:12:23.998293|n| grn_fin (0)
127
- 2017-04-24 11:12:24.001106|n| grn_init: <7.0.1-105-gf940037>
128
- 2017-04-24 11:12:24.001138|n| vm.overcommit_memory kernel parameter should be 1: <0>: See INFO level log to resolve this
129
- 2017-04-24 11:12:24.001219|n| RLIMIT_NOFILE(4096,4096)
130
- 2017-04-24 11:12:25.000343|n| thread start (0/1)
131
- 2017-04-24 11:12:25.201017|n| thread end (0/0)
132
- 2017-04-24 11:12:25.202162|n| grn_fin (0)
133
- 2017-04-24 11:19:59.316027|n| grn_init: <7.0.1-105-gf940037>
134
- 2017-04-24 11:19:59.316064|n| vm.overcommit_memory kernel parameter should be 1: <0>: See INFO level log to resolve this
135
- 2017-04-24 11:19:59.316148|n| RLIMIT_NOFILE(4096,4096)
136
- 2017-04-24 11:20:00.315342|n| thread start (0/1)
137
- 2017-04-24 11:20:00.543339|n| thread end (0/0)
138
- 2017-04-24 11:20:00.544322|n| grn_fin (0)
139
- 2017-04-24 11:20:00.547319|n| grn_init: <7.0.1-105-gf940037>
140
- 2017-04-24 11:20:00.547355|n| vm.overcommit_memory kernel parameter should be 1: <0>: See INFO level log to resolve this
141
- 2017-04-24 11:20:00.547440|n| RLIMIT_NOFILE(4096,4096)
142
- 2017-04-24 11:20:01.545653|n| thread start (0/1)
143
- 2017-04-24 11:20:01.731747|n| thread end (0/0)
144
- 2017-04-24 11:20:01.732644|n| grn_fin (0)
145
- 2017-04-24 11:20:01.735519|n| grn_init: <7.0.1-105-gf940037>
146
- 2017-04-24 11:20:01.735558|n| vm.overcommit_memory kernel parameter should be 1: <0>: See INFO level log to resolve this
147
- 2017-04-24 11:20:01.735643|n| RLIMIT_NOFILE(4096,4096)
148
- 2017-04-24 11:20:02.734551|n| thread start (0/1)
149
- 2017-04-24 11:20:02.951152|n| thread end (0/0)
150
- 2017-04-24 11:20:02.952691|n| grn_fin (0)
151
- 2017-04-24 11:20:09.446073|n| grn_init: <7.0.1-105-gf940037>
152
- 2017-04-24 11:20:09.446115|n| vm.overcommit_memory kernel parameter should be 1: <0>: See INFO level log to resolve this
153
- 2017-04-24 11:20:09.446201|n| RLIMIT_NOFILE(4096,4096)
154
- 2017-04-24 11:20:10.448377|n| thread start (0/1)
155
- 2017-04-24 11:20:10.789136|n| thread end (0/0)
156
- 2017-04-24 11:20:10.792153|n| grn_fin (0)
157
- 2017-04-24 13:01:10.344434|e| system call error: Interrupted system call: epoll_wait
158
- 2017-04-24 13:01:10.344720|e| /tmp/local/lib/libgroonga.so.0(grn_com_event_poll+0x600) [0x7fe1890695cf]
159
- 2017-04-24 13:01:10.344749|e| /tmp/local/bin/groonga(+0x8db6) [0x564c572ecdb6]
160
- 2017-04-24 13:01:10.344763|e| /tmp/local/bin/groonga(+0x9e7c) [0x564c572ede7c]
161
- 2017-04-24 13:01:10.344776|e| /tmp/local/bin/groonga(+0xa035) [0x564c572ee035]
162
- 2017-04-24 13:01:10.344788|e| /tmp/local/bin/groonga(+0x132b7) [0x564c572f72b7]
163
- 2017-04-24 13:01:10.344800|e| /tmp/local/bin/groonga(+0x18088) [0x564c572fc088]
164
- 2017-04-24 13:01:10.344813|e| /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf1) [0x7fe1872bf2b1]
165
- 2017-04-24 13:01:10.344825|e| /tmp/local/bin/groonga(+0x4e2a) [0x564c572e8e2a]
@@ -1,79 +0,0 @@
1
- 2017-04-24 11:06:44.872561|n| grn_init: <7.0.1-105-gf940037>
2
- 2017-04-24 11:06:44.872642|n| vm.overcommit_memory kernel parameter should be 1: <0>: See INFO level log to resolve this
3
- 2017-04-24 11:06:44.873832|n| DDL:256:table_create Entries
4
- 2017-04-24 11:06:44.929837|n| spec:256:update:Entries:48(table:hash_key):0
5
- 2017-04-24 11:06:44.930157|n| DDL:257:column_create Entries description
6
- 2017-04-24 11:06:44.979980|n| spec:257:update:Entries.description:65(column:var_size):15(Text)
7
- 2017-04-24 11:06:45.005342|n| grn_fin (0)
8
- 2017-04-24 11:06:45.013826|n| grn_init: <7.0.1-105-gf940037>
9
- 2017-04-24 11:06:45.013966|n| vm.overcommit_memory kernel parameter should be 1: <0>: See INFO level log to resolve this
10
- 2017-04-24 11:06:45.030106|n| grn_fin (0)
11
- 2017-04-24 11:06:45.038715|n| grn_init: <7.0.1-105-gf940037>
12
- 2017-04-24 11:06:45.038857|n| vm.overcommit_memory kernel parameter should be 1: <0>: See INFO level log to resolve this
13
- 2017-04-24 11:06:45.042555|n| DDL:258:table_create Bigram
14
- 2017-04-24 11:06:45.088700|n| spec:258:update:Bigram:49(table:pat_key):0
15
- 2017-04-24 11:06:45.089198|n| DDL:259:column_create Bigram Entries_description
16
- 2017-04-24 11:06:45.189880|n| spec:259:update:Bigram.Entries_description:72(column:index):256(Entries)
17
- 2017-04-24 11:06:45.210684|n| DDL:259:set_source Bigram.Entries_description Entries.description
18
- 2017-04-24 11:06:45.210758|n| spec:257:update:Entries.description:65(column:var_size):15(Text)
19
- 2017-04-24 11:06:45.215438|n| spec:259:update:Bigram.Entries_description:72(column:index):256(Entries)
20
- 2017-04-24 11:06:45.223494|n| grn_fin (0)
21
- 2017-04-24 11:06:46.117605|n| grn_init: <7.0.1-105-gf940037>
22
- 2017-04-24 11:06:46.117680|n| vm.overcommit_memory kernel parameter should be 1: <0>: See INFO level log to resolve this
23
- 2017-04-24 11:06:46.117807|n| RLIMIT_NOFILE(4096,4096)
24
- 2017-04-24 11:06:47.117914|n| thread start (0/1)
25
- 2017-04-24 11:06:47.495106|n| thread end (0/0)
26
- 2017-04-24 11:06:47.498049|n| grn_fin (0)
27
- 2017-04-24 11:07:45.260497|n| grn_init: <7.0.1-105-gf940037>
28
- 2017-04-24 11:07:45.260555|n| vm.overcommit_memory kernel parameter should be 1: <0>: See INFO level log to resolve this
29
- 2017-04-24 11:07:45.260635|n| RLIMIT_NOFILE(4096,4096)
30
- 2017-04-24 11:07:46.262231|n| thread start (0/1)
31
- 2017-04-24 11:07:49.196124|n| thread end (0/0)
32
- 2017-04-24 11:07:49.199045|n| grn_fin (0)
33
- 2017-04-24 11:10:47.015640|n| grn_init: <7.0.1-105-gf940037>
34
- 2017-04-24 11:10:47.015723|n| vm.overcommit_memory kernel parameter should be 1: <0>: See INFO level log to resolve this
35
- 2017-04-24 11:10:47.015811|n| RLIMIT_NOFILE(4096,4096)
36
- 2017-04-24 11:10:48.018144|n| thread start (0/1)
37
- 2017-04-24 11:10:50.858117|n| thread end (0/0)
38
- 2017-04-24 11:10:50.861057|n| grn_fin (0)
39
- 2017-04-24 11:11:12.604406|n| grn_init: <7.0.1-105-gf940037>
40
- 2017-04-24 11:11:12.604464|n| vm.overcommit_memory kernel parameter should be 1: <0>: See INFO level log to resolve this
41
- 2017-04-24 11:11:12.604542|n| RLIMIT_NOFILE(4096,4096)
42
- 2017-04-24 11:11:13.606243|n| thread start (0/1)
43
- 2017-04-24 11:11:42.304545|n| grn_init: <7.0.1-105-gf940037>
44
- 2017-04-24 11:11:42.304594|n| vm.overcommit_memory kernel parameter should be 1: <0>: See INFO level log to resolve this
45
- 2017-04-24 11:11:42.304674|n| RLIMIT_NOFILE(4096,4096)
46
- 2017-04-24 11:11:43.305717|n| thread start (0/1)
47
- 2017-04-24 11:11:46.066584|n| thread end (0/0)
48
- 2017-04-24 11:11:46.070501|n| grn_fin (0)
49
- 2017-04-24 11:12:06.886810|n| grn_init: <7.0.1-105-gf940037>
50
- 2017-04-24 11:12:06.886857|n| vm.overcommit_memory kernel parameter should be 1: <0>: See INFO level log to resolve this
51
- 2017-04-24 11:12:06.886933|n| RLIMIT_NOFILE(4096,4096)
52
- 2017-04-24 11:12:06.888501|n| thread start (0/1)
53
- 2017-04-24 11:12:10.568618|n| thread end (0/0)
54
- 2017-04-24 11:12:10.571785|n| grn_fin (0)
55
- 2017-04-24 11:12:21.462928|n| grn_init: <7.0.1-105-gf940037>
56
- 2017-04-24 11:12:21.462974|n| vm.overcommit_memory kernel parameter should be 1: <0>: See INFO level log to resolve this
57
- 2017-04-24 11:12:21.463054|n| RLIMIT_NOFILE(4096,4096)
58
- 2017-04-24 11:12:21.467367|n| thread start (0/1)
59
- 2017-04-24 11:12:25.201154|n| thread end (0/0)
60
- 2017-04-24 11:12:25.205066|n| grn_fin (0)
61
- 2017-04-24 11:19:59.312302|n| grn_init: <7.0.1-105-gf940037>
62
- 2017-04-24 11:19:59.312348|n| vm.overcommit_memory kernel parameter should be 1: <0>: See INFO level log to resolve this
63
- 2017-04-24 11:19:59.312424|n| RLIMIT_NOFILE(4096,4096)
64
- 2017-04-24 11:19:59.314172|n| thread start (0/1)
65
- 2017-04-24 11:20:02.950972|n| thread end (0/0)
66
- 2017-04-24 11:20:02.956336|n| grn_fin (0)
67
- 2017-04-24 11:20:09.443167|n| grn_init: <7.0.1-105-gf940037>
68
- 2017-04-24 11:20:09.443214|n| vm.overcommit_memory kernel parameter should be 1: <0>: See INFO level log to resolve this
69
- 2017-04-24 11:20:09.443297|n| RLIMIT_NOFILE(4096,4096)
70
- 2017-04-24 11:20:10.445853|n| thread start (0/1)
71
- 2017-04-24 11:20:10.789276|n| thread end (0/0)
72
- 2017-04-24 11:20:10.792230|n| grn_fin (0)
73
- 2017-04-24 13:01:10.343392|e| system call error: Interrupted system call: epoll_wait
74
- 2017-04-24 13:01:10.343699|e| /tmp/local/lib/libgroonga.so.0(grn_com_event_poll+0x600) [0x7f8575c9c5cf]
75
- 2017-04-24 13:01:10.343722|e| groonga(+0xc58b) [0x56012441658b]
76
- 2017-04-24 13:01:10.343737|e| groonga(+0xde2e) [0x560124417e2e]
77
- 2017-04-24 13:01:10.343748|e| groonga(+0x54e0) [0x56012440f4e0]
78
- 2017-04-24 13:01:10.343759|e| /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf1) [0x7f857478d2b1]
79
- 2017-04-24 13:01:10.343771|e| groonga(+0x5e6a) [0x56012440fe6a]