fluentd 0.10.39 → 0.10.40

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of fluentd might be problematic. Click here for more details.

data/ChangeLog CHANGED
@@ -1,3 +1,13 @@
1
+ Release 0.10.40 - 2013/11/08
2
+
3
+ * Dump gem version of fluent-plugin-xxx and fluent-mixin-xxx
4
+ * in_http: Doesn't set REMOTE_ADDR when IO#getpeername failed
5
+ * in_tail/parser: Fix RegexpParser which ignores time_format parameter
6
+ * in_exec: Catch error and dumps error message in run_periodic
7
+ * in_forward: Show error class in the error message
8
+ * in_exec/out_exec_filter: Catch more exceptions, not only Errno::ESRCH, at shutdown
9
+ * Log: Catch exception for log event handling at shutdown
10
+
1
11
  Release 0.10.39 - 2013/09/18
2
12
 
3
13
  * out_file: Improve symlink handling with buf_file
@@ -80,6 +80,11 @@ module Fluent
80
80
  end
81
81
 
82
82
  def configure(conf)
83
+ # plugins / configuration dumps
84
+ Gem::Specification.find_all.select{|x| x.name =~ /^fluent(d|-(plugin|mixin)-.*)$/}.each do |spec|
85
+ $log.info "gem '#{spec.name}' version '#{spec.version}'"
86
+ end
87
+
83
88
  unless @suppress_config_dump
84
89
  $log.info "using configuration file: #{conf.to_s.rstrip}"
85
90
  end
@@ -104,6 +104,8 @@ module Fluent
104
104
  args << block.call if block
105
105
  time, msg = event(:trace, args)
106
106
  puts [@color_trace, caller_line(time, 1, LEVEL_TRACE), msg, @color_reset].join
107
+ rescue
108
+ # logger should not raise an exception. This rescue prevents unexpected behaviour.
107
109
  end
108
110
  alias TRACE trace
109
111
 
@@ -126,6 +128,7 @@ module Fluent
126
128
  args << block.call if block
127
129
  time, msg = event(:debug, args)
128
130
  puts [@color_debug, caller_line(time, 1, LEVEL_DEBUG), msg, @color_reset].join
131
+ rescue
129
132
  end
130
133
  alias DEBUG debug
131
134
 
@@ -148,6 +151,7 @@ module Fluent
148
151
  args << block.call if block
149
152
  time, msg = event(:info, args)
150
153
  puts [@color_info, caller_line(time, 1, LEVEL_INFO), msg, @color_reset].join
154
+ rescue
151
155
  end
152
156
  alias INFO info
153
157
 
@@ -170,6 +174,7 @@ module Fluent
170
174
  args << block.call if block
171
175
  time, msg = event(:warn, args)
172
176
  puts [@color_warn, caller_line(time, 1, LEVEL_WARN), msg, @color_reset].join
177
+ rescue
173
178
  end
174
179
  alias WARN warn
175
180
 
@@ -192,6 +197,7 @@ module Fluent
192
197
  args << block.call if block
193
198
  time, msg = event(:error, args)
194
199
  puts [@color_error, caller_line(time, 1, LEVEL_ERROR), msg, @color_reset].join
200
+ rescue
195
201
  end
196
202
  alias ERROR error
197
203
 
@@ -214,6 +220,7 @@ module Fluent
214
220
  args << block.call if block
215
221
  time, msg = event(:fatal, args)
216
222
  puts [@color_fatal, caller_line(time, 1, LEVEL_FATAL), msg, @color_reset].join
223
+ rescue
217
224
  end
218
225
  alias FATAL fatal
219
226
 
@@ -327,7 +327,7 @@ module Fluent
327
327
  raise ConfigError, "Invalid regexp '#{format[1..-2]}': #{$!}"
328
328
  end
329
329
 
330
- @parser = RegexpParser.new(regexp)
330
+ @parser = RegexpParser.new(regexp, conf)
331
331
 
332
332
  else
333
333
  # built-in template
@@ -96,11 +96,18 @@ module Fluent
96
96
  @finished = true
97
97
  @thread.join
98
98
  else
99
- Process.kill(:TERM, @pid)
99
+ begin
100
+ Process.kill(:TERM, @pid)
101
+ rescue #Errno::ECHILD, Errno::ESRCH, Errno::EPERM
102
+ end
100
103
  if @thread.join(60) # TODO wait time
101
104
  return
102
105
  end
103
- Process.kill(:KILL, @pid)
106
+
107
+ begin
108
+ Process.kill(:KILL, @pid)
109
+ rescue #Errno::ECHILD, Errno::ESRCH, Errno::EPERM
110
+ end
104
111
  @thread.join
105
112
  end
106
113
  end
@@ -111,10 +118,15 @@ module Fluent
111
118
 
112
119
  def run_periodic
113
120
  until @finished
114
- sleep @run_interval
115
- io = IO.popen(@command, "r")
116
- @parser.call(io)
117
- Process.waitpid(io.pid)
121
+ begin
122
+ sleep @run_interval
123
+ io = IO.popen(@command, "r")
124
+ @parser.call(io)
125
+ Process.waitpid(io.pid)
126
+ rescue
127
+ $log.error "exec failed to run or shutdown child process", :error => $!.to_s, :error_class => $!.class.to_s
128
+ $log.warn_backtrace $!.backtrace
129
+ end
118
130
  end
119
131
  end
120
132
 
@@ -79,8 +79,8 @@ module Fluent
79
79
 
80
80
  def run
81
81
  @loop.run
82
- rescue
83
- $log.error "unexpected error", :error=>$!.to_s
82
+ rescue => e
83
+ $log.error "unexpected error", :error => e, :error_class => e.class
84
84
  $log.error_backtrace
85
85
  end
86
86
 
@@ -175,16 +175,16 @@ module Fluent
175
175
 
176
176
  def on_read_json(data)
177
177
  @y << data
178
- rescue
179
- $log.error "forward error: #{$!.to_s}"
178
+ rescue => e
179
+ $log.error "forward error", :error => e, :error_class => e.class
180
180
  $log.error_backtrace
181
181
  close
182
182
  end
183
183
 
184
184
  def on_read_msgpack(data)
185
185
  @u.feed_each(data, &@on_message)
186
- rescue
187
- $log.error "forward error: #{$!.to_s}"
186
+ rescue => e
187
+ $log.error "forward error", :error => e, :error_class => e.class
188
188
  $log.error_backtrace
189
189
  close
190
190
  end
@@ -154,7 +154,7 @@ module Fluent
154
154
  @idle = 0
155
155
  @km.add(self)
156
156
 
157
- @remote_port, @remote_addr = *Socket.unpack_sockaddr_in(io.getpeername)
157
+ @remote_port, @remote_addr = *Socket.unpack_sockaddr_in(io.getpeername) rescue nil
158
158
  end
159
159
 
160
160
  def step_idle
@@ -234,7 +234,7 @@ module Fluent
234
234
  def on_message_complete
235
235
  return if closing?
236
236
 
237
- @env['REMOTE_ADDR'] = @remote_addr
237
+ @env['REMOTE_ADDR'] = @remote_addr if @remote_addr
238
238
 
239
239
  params = WEBrick::HTTPUtils.parse_query(@parser.query_string)
240
240
 
@@ -358,7 +358,6 @@ module Fluent
358
358
  @inode = nil
359
359
  @fsize = -1 # first
360
360
  @on_rotate = on_rotate
361
- @path = path
362
361
  end
363
362
 
364
363
  def on_notify
@@ -261,7 +261,7 @@ module Fluent
261
261
  def kill_child(join_wait)
262
262
  begin
263
263
  Process.kill(:TERM, @pid)
264
- rescue Errno::ESRCH
264
+ rescue #Errno::ECHILD, Errno::ESRCH, Errno::EPERM
265
265
  # Errno::ESRCH 'No such process', ignore
266
266
  # child process killed by signal chained from fluentd process
267
267
  end
@@ -271,7 +271,7 @@ module Fluent
271
271
  end
272
272
  begin
273
273
  Process.kill(:KILL, @pid)
274
- rescue Errno::ESRCH
274
+ rescue #Errno::ECHILD, Errno::ESRCH, Errno::EPERM
275
275
  # ignore if successfully killed by :TERM
276
276
  end
277
277
  @thread.join
@@ -1,5 +1,5 @@
1
1
  module Fluent
2
2
 
3
- VERSION = '0.10.39'
3
+ VERSION = '0.10.40'
4
4
 
5
5
  end
metadata CHANGED
@@ -1,32 +1,34 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluentd
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.10.39
4
+ version: 0.10.40
5
+ prerelease:
5
6
  platform: ruby
6
7
  authors:
7
8
  - Sadayuki Furuhashi
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2013-09-18 00:00:00.000000000 Z
12
+ date: 2013-11-08 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: msgpack
15
16
  requirement: !ruby/object:Gem::Requirement
17
+ none: false
16
18
  requirements:
17
- - - '>='
19
+ - - ! '>='
18
20
  - !ruby/object:Gem::Version
19
21
  version: 0.4.4
20
- - - '!='
22
+ - - ! '!='
21
23
  - !ruby/object:Gem::Version
22
24
  version: 0.5.0
23
- - - '!='
25
+ - - ! '!='
24
26
  - !ruby/object:Gem::Version
25
27
  version: 0.5.1
26
- - - '!='
28
+ - - ! '!='
27
29
  - !ruby/object:Gem::Version
28
30
  version: 0.5.2
29
- - - '!='
31
+ - - ! '!='
30
32
  - !ruby/object:Gem::Version
31
33
  version: 0.5.3
32
34
  - - <
@@ -35,20 +37,21 @@ dependencies:
35
37
  type: :runtime
36
38
  prerelease: false
37
39
  version_requirements: !ruby/object:Gem::Requirement
40
+ none: false
38
41
  requirements:
39
- - - '>='
42
+ - - ! '>='
40
43
  - !ruby/object:Gem::Version
41
44
  version: 0.4.4
42
- - - '!='
45
+ - - ! '!='
43
46
  - !ruby/object:Gem::Version
44
47
  version: 0.5.0
45
- - - '!='
48
+ - - ! '!='
46
49
  - !ruby/object:Gem::Version
47
50
  version: 0.5.1
48
- - - '!='
51
+ - - ! '!='
49
52
  - !ruby/object:Gem::Version
50
53
  version: 0.5.2
51
- - - '!='
54
+ - - ! '!='
52
55
  - !ruby/object:Gem::Version
53
56
  version: 0.5.3
54
57
  - - <
@@ -57,20 +60,23 @@ dependencies:
57
60
  - !ruby/object:Gem::Dependency
58
61
  name: json
59
62
  requirement: !ruby/object:Gem::Requirement
63
+ none: false
60
64
  requirements:
61
- - - '>='
65
+ - - ! '>='
62
66
  - !ruby/object:Gem::Version
63
67
  version: 1.4.3
64
68
  type: :runtime
65
69
  prerelease: false
66
70
  version_requirements: !ruby/object:Gem::Requirement
71
+ none: false
67
72
  requirements:
68
- - - '>='
73
+ - - ! '>='
69
74
  - !ruby/object:Gem::Version
70
75
  version: 1.4.3
71
76
  - !ruby/object:Gem::Dependency
72
77
  name: yajl-ruby
73
78
  requirement: !ruby/object:Gem::Requirement
79
+ none: false
74
80
  requirements:
75
81
  - - ~>
76
82
  - !ruby/object:Gem::Version
@@ -78,6 +84,7 @@ dependencies:
78
84
  type: :runtime
79
85
  prerelease: false
80
86
  version_requirements: !ruby/object:Gem::Requirement
87
+ none: false
81
88
  requirements:
82
89
  - - ~>
83
90
  - !ruby/object:Gem::Version
@@ -85,6 +92,7 @@ dependencies:
85
92
  - !ruby/object:Gem::Dependency
86
93
  name: cool.io
87
94
  requirement: !ruby/object:Gem::Requirement
95
+ none: false
88
96
  requirements:
89
97
  - - ~>
90
98
  - !ruby/object:Gem::Version
@@ -92,6 +100,7 @@ dependencies:
92
100
  type: :runtime
93
101
  prerelease: false
94
102
  version_requirements: !ruby/object:Gem::Requirement
103
+ none: false
95
104
  requirements:
96
105
  - - ~>
97
106
  - !ruby/object:Gem::Version
@@ -99,6 +108,7 @@ dependencies:
99
108
  - !ruby/object:Gem::Dependency
100
109
  name: http_parser.rb
101
110
  requirement: !ruby/object:Gem::Requirement
111
+ none: false
102
112
  requirements:
103
113
  - - ~>
104
114
  - !ruby/object:Gem::Version
@@ -106,6 +116,7 @@ dependencies:
106
116
  type: :runtime
107
117
  prerelease: false
108
118
  version_requirements: !ruby/object:Gem::Requirement
119
+ none: false
109
120
  requirements:
110
121
  - - ~>
111
122
  - !ruby/object:Gem::Version
@@ -113,57 +124,65 @@ dependencies:
113
124
  - !ruby/object:Gem::Dependency
114
125
  name: rake
115
126
  requirement: !ruby/object:Gem::Requirement
127
+ none: false
116
128
  requirements:
117
- - - '>='
129
+ - - ! '>='
118
130
  - !ruby/object:Gem::Version
119
131
  version: 0.9.2
120
132
  type: :development
121
133
  prerelease: false
122
134
  version_requirements: !ruby/object:Gem::Requirement
135
+ none: false
123
136
  requirements:
124
- - - '>='
137
+ - - ! '>='
125
138
  - !ruby/object:Gem::Version
126
139
  version: 0.9.2
127
140
  - !ruby/object:Gem::Dependency
128
141
  name: parallel_tests
129
142
  requirement: !ruby/object:Gem::Requirement
143
+ none: false
130
144
  requirements:
131
- - - '>='
145
+ - - ! '>='
132
146
  - !ruby/object:Gem::Version
133
147
  version: 0.15.3
134
148
  type: :development
135
149
  prerelease: false
136
150
  version_requirements: !ruby/object:Gem::Requirement
151
+ none: false
137
152
  requirements:
138
- - - '>='
153
+ - - ! '>='
139
154
  - !ruby/object:Gem::Version
140
155
  version: 0.15.3
141
156
  - !ruby/object:Gem::Dependency
142
157
  name: rr
143
158
  requirement: !ruby/object:Gem::Requirement
159
+ none: false
144
160
  requirements:
145
- - - '>='
161
+ - - ! '>='
146
162
  - !ruby/object:Gem::Version
147
163
  version: 1.0.0
148
164
  type: :development
149
165
  prerelease: false
150
166
  version_requirements: !ruby/object:Gem::Requirement
167
+ none: false
151
168
  requirements:
152
- - - '>='
169
+ - - ! '>='
153
170
  - !ruby/object:Gem::Version
154
171
  version: 1.0.0
155
172
  - !ruby/object:Gem::Dependency
156
173
  name: timecop
157
174
  requirement: !ruby/object:Gem::Requirement
175
+ none: false
158
176
  requirements:
159
- - - '>='
177
+ - - ! '>='
160
178
  - !ruby/object:Gem::Version
161
179
  version: 0.3.0
162
180
  type: :development
163
181
  prerelease: false
164
182
  version_requirements: !ruby/object:Gem::Requirement
183
+ none: false
165
184
  requirements:
166
- - - '>='
185
+ - - ! '>='
167
186
  - !ruby/object:Gem::Version
168
187
  version: 0.3.0
169
188
  description: Fluentd is an event collector system. It is a generalized version of
@@ -270,26 +289,30 @@ files:
270
289
  - test/scripts/exec_script.rb
271
290
  homepage: http://fluentd.org/
272
291
  licenses: []
273
- metadata: {}
274
292
  post_install_message:
275
293
  rdoc_options: []
276
294
  require_paths:
277
295
  - lib
278
296
  required_ruby_version: !ruby/object:Gem::Requirement
297
+ none: false
279
298
  requirements:
280
- - - '>='
299
+ - - ! '>='
281
300
  - !ruby/object:Gem::Version
282
301
  version: 1.9.2
283
302
  required_rubygems_version: !ruby/object:Gem::Requirement
303
+ none: false
284
304
  requirements:
285
- - - '>='
305
+ - - ! '>='
286
306
  - !ruby/object:Gem::Version
287
307
  version: '0'
308
+ segments:
309
+ - 0
310
+ hash: -2484756068667475409
288
311
  requirements: []
289
312
  rubyforge_project:
290
- rubygems_version: 2.0.2
313
+ rubygems_version: 1.8.23
291
314
  signing_key:
292
- specification_version: 4
315
+ specification_version: 3
293
316
  summary: Fluentd event collector
294
317
  test_files:
295
318
  - test/config.rb
checksums.yaml DELETED
@@ -1,7 +0,0 @@
1
- ---
2
- SHA1:
3
- metadata.gz: 14f93577d21ab248d08466b142442d503ba9ad55
4
- data.tar.gz: 9036d89bf55c57a454120dc766c3da6fe445fbf8
5
- SHA512:
6
- metadata.gz: 5c4ae2365e4e3a59cc22e7089203ea57b3cf7bc89d759915e4f02b795312903116484dd65f43a7e07ed9e98a1da13f5e1aa6112a0448d03706e4171cd3dad63a
7
- data.tar.gz: 806d690bccc9674f2bd45d693eb523a07e06d0aa4e2dc63e42396421d34ce8f27977bba119b0e5470d8844ee62c140cd1cf8c4bff1b8ce2aa16bd8d40e7fb419