groonga-query-log 1.3.8 → 1.3.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|