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.
- checksums.yaml +5 -5
- data/doc/text/news.md +34 -0
- data/groonga-query-log.gemspec +0 -1
- data/lib/groonga-query-log/command/check-crash.rb +58 -4
- data/lib/groonga-query-log/command/format-regression-test-logs.rb +17 -1
- data/lib/groonga-query-log/command/run-regression-test.rb +34 -5
- data/lib/groonga-query-log/command/verify-server.rb +19 -2
- data/lib/groonga-query-log/filter-rewriter.rb +24 -2
- data/lib/groonga-query-log/memory-leak-detector.rb +1 -1
- data/lib/groonga-query-log/replayer.rb +2 -2
- data/lib/groonga-query-log/server-verifier.rb +66 -18
- data/lib/groonga-query-log/version.rb +1 -1
- data/test/command/test-format-regression-test-logs.rb +31 -8
- data/test/fixtures/regression-test-logs/error.log +5 -0
- data/test/run-test.rb +1 -2
- data/test/test-filter-rewriter.rb +40 -2
- metadata +34 -88
- data/test/fixtures/run-regression-test/db.new/db +0 -0
- data/test/fixtures/run-regression-test/db.new/db.0000000 +0 -0
- data/test/fixtures/run-regression-test/db.new/db.0000100 +0 -0
- data/test/fixtures/run-regression-test/db.new/db.0000101 +0 -0
- data/test/fixtures/run-regression-test/db.new/db.0000102 +0 -0
- data/test/fixtures/run-regression-test/db.new/db.0000103 +0 -0
- data/test/fixtures/run-regression-test/db.new/db.0000103.c +0 -0
- data/test/fixtures/run-regression-test/db.new/db.001 +0 -0
- data/test/fixtures/run-regression-test/db.new/db.conf +0 -0
- data/test/fixtures/run-regression-test/db.new/groonga.log +0 -165
- data/test/fixtures/run-regression-test/db.old/db +0 -0
- data/test/fixtures/run-regression-test/db.old/db.0000000 +0 -0
- data/test/fixtures/run-regression-test/db.old/db.0000100 +0 -0
- data/test/fixtures/run-regression-test/db.old/db.0000101 +0 -0
- data/test/fixtures/run-regression-test/db.old/db.0000102 +0 -0
- data/test/fixtures/run-regression-test/db.old/db.0000103 +0 -0
- data/test/fixtures/run-regression-test/db.old/db.0000103.c +0 -0
- data/test/fixtures/run-regression-test/db.old/db.001 +0 -0
- data/test/fixtures/run-regression-test/db.old/db.conf +0 -0
- data/test/fixtures/run-regression-test/db.old/groonga.log +0 -79
- data/test/fixtures/run-regression-test/results/query.log +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 747d884c77f1a62e7266740a0a5cfe796dc9afc5
|
4
|
+
data.tar.gz: 17a9c5e1f2463a1d5b4deee9d187619ceec6f690
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f9ed114c27916395db0d9cf82d02b3c938b7aa338863da6972b156726646ee18cd7cff536c1483ae95af065c697a945d0fb618b2bf34e5c92de15af01e87ced7
|
7
|
+
data.tar.gz: 5cfe3856cca14f355c1f2d6f19c36b4da3ec61918938e6e3ecdc97ccae8c183726b6ebf30309f8cd6c234f405a910f6c4d1f419caa5a401cf5a233585940fcd7
|
data/doc/text/news.md
CHANGED
@@ -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
|
data/groonga-query-log.gemspec
CHANGED
@@ -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 =
|
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
|
-
|
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-
|
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 != \"\"'
|
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",
|
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
|
-
|
517
|
-
|
537
|
+
accessors = @options[:vector_accessors] || []
|
538
|
+
accessors.each do |accessor|
|
518
539
|
command_line << "--vector-accessor"
|
519
|
-
command_line <<
|
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 != \"\"'
|
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
|
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
|
-
|
52
|
-
|
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
|
-
@
|
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
|
-
@
|
40
|
+
@events.push(nil)
|
40
41
|
reporter.join
|
41
|
-
|
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
|
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(
|
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
|
-
|
108
|
-
rescue
|
109
|
-
log_client_error(
|
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
|
-
|
125
|
-
break if
|
126
|
-
|
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
|
-
@
|
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
|
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
|
@@ -1,6 +1,4 @@
|
|
1
|
-
#
|
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
|
-
|
32
|
-
|
33
|
-
|
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
|
data/test/run-test.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
#
|
3
|
-
# Copyright (C) 2012-
|
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("((
|
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("
|
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.
|
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-
|
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-
|
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-
|
181
|
-
- groonga-query-log-
|
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:
|
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-
|
327
|
-
- test/
|
328
|
-
- test/
|
329
|
-
- test/
|
330
|
-
- test/
|
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/
|
334
|
-
- test/fixtures/
|
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/
|
343
|
-
- test/fixtures/
|
344
|
-
- test/fixtures/
|
345
|
-
- test/fixtures/
|
346
|
-
- test/fixtures/
|
347
|
-
- test/fixtures/
|
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/
|
358
|
-
- test/fixtures/
|
359
|
-
- test/fixtures/
|
360
|
-
- test/fixtures/
|
361
|
-
- test/fixtures/
|
362
|
-
- test/fixtures/
|
363
|
-
- test/
|
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-
|
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
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -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]
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -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]
|
File without changes
|