codeclimate 0.85.29 → 0.86.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d51ecb6c8346e33100989e76e5e0bc6d47e04ba78c929713fbbd745f8c47ad6e
4
- data.tar.gz: aba53f1d5523c77189e25ceb4f3dc50fe7a7ecac5d282f4f394176d768c7753d
3
+ metadata.gz: ff82fca07cdf87fc66cd1f5999de48ca7361160a82de553ba9d08c4b50cf84d9
4
+ data.tar.gz: 2232adc3deb9897164a58e91e1228ec8d39c29a36eb66e393ec03d783ffe28a6
5
5
  SHA512:
6
- metadata.gz: e0b064b5b43ff970c043a3bf4082c2b8ca1d9c68c8c4ed0244223fd815ad9097a7faf0e88039fc347ae06fd74adadaee5b6a2f1ce1ddfe1493bd74fbc6c6bd31
7
- data.tar.gz: 18ac42775e7c884f63c3bd78847a4365ff452e6fc46c4b55c79149689898cac109245b2e24d1f420038c9d1b61d04221f79510206bf07058dfefb4b7983c4fb3
6
+ metadata.gz: 2095d9f29f26838ac72b91c433b306e93bef66185427eacf100c995619941c012c77d5623f136f651705c3e25ddf0a420a729bacd36d2b7423fce2d5588dd058
7
+ data.tar.gz: e80478964ff1133009fa0cecb81c127cb2c430381b5c77442acfeb33b87f445592d024143a4895932e745a33a23e62f55db8042110519ee5539a814c7725c104
@@ -1,5 +1,5 @@
1
- require "posix/spawn"
2
1
  require "cc/analyzer/container/result"
2
+ require "open3"
3
3
 
4
4
  module CC
5
5
  module Analyzer
@@ -52,19 +52,14 @@ module CC
52
52
 
53
53
  command = docker_run_command(options)
54
54
  Analyzer.logger.debug("docker run: #{command.inspect}")
55
- pid, _, out, err = POSIX::Spawn.popen4(*command)
55
+ _, out, err, @t_wait = Open3.popen3(*command)
56
56
 
57
57
  @t_out = read_stdout(out)
58
58
  @t_err = read_stderr(err)
59
59
  t_timeout = timeout_thread
60
60
 
61
- # blocks until the engine stops. this is put in a thread so that we can
62
- # explicitly abort it as part of #stop. otherwise a run-away container
63
- # could still block here forever if the docker-kill/wait is not
64
- # successful. there may still be stdout in flight if it was being
65
- # produced more quickly than consumed.
66
- @t_wait = Thread.new { _, @status = Process.waitpid2(pid) }
67
- @t_wait.join
61
+ # Calling @t_wait.value waits the termination of the process / engine
62
+ @status = @t_wait.value
68
63
 
69
64
  # blocks until all readers are done. they're still governed by the
70
65
  # timeout thread at this point. if we hit the timeout while processing
@@ -97,6 +92,9 @@ module CC
97
92
  def stop(message = nil)
98
93
  reap_running_container(message)
99
94
  kill_reader_threads
95
+ # Manually killing the process otherwise a run-away container
96
+ # could still block here forever if the docker-kill/wait is not
97
+ # successful
100
98
  kill_wait_thread
101
99
  end
102
100
 
@@ -178,9 +176,11 @@ module CC
178
176
 
179
177
  def reap_running_container(message)
180
178
  Analyzer.logger.warn("killing container name=#{@name} message=#{message.inspect}")
181
- POSIX::Spawn::Child.new("docker", "kill", @name, timeout: 2.minutes)
182
- POSIX::Spawn::Child.new("docker", "wait", @name, timeout: 2.minutes)
183
- rescue POSIX::Spawn::TimeoutExceeded
179
+ Timeout.timeout(2.minutes.to_i) do
180
+ Kernel.system("docker", "kill", @name, [:out, :err] => File::NULL)
181
+ Kernel.system("docker", "wait", @name, [:out, :err] => File::NULL)
182
+ end
183
+ rescue Timeout::Error
184
184
  Analyzer.logger.error("unable to kill container name=#{@name} message=#{message.inspect}")
185
185
  Analyzer.statsd.increment("container.zombie")
186
186
  Analyzer.statsd.increment("container.zombie.#{metric_name}") if metric_name
@@ -31,7 +31,7 @@ module CC
31
31
  @data =
32
32
  if File.exist? self.class::FILE_NAME
33
33
  File.open(self.class::FILE_NAME, "r:bom|utf-8") do |f|
34
- YAML.safe_load(f, [Time], [], false, self.class::FILE_NAME) || {}
34
+ YAML.safe_load(f, permitted_classes: [Time], permitted_symbols: [], aliases: false, filename: self.class::FILE_NAME) || {}
35
35
  end
36
36
  else
37
37
  {}
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: codeclimate
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.85.29
4
+ version: 0.86.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Code Climate
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-06-09 00:00:00.000000000 Z
11
+ date: 2022-07-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -44,40 +44,14 @@ dependencies:
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '1.7'
48
- - - ">="
49
- - !ruby/object:Gem::Version
50
- version: 1.7.2
47
+ version: 2.0.3
51
48
  type: :runtime
52
49
  prerelease: false
53
50
  version_requirements: !ruby/object:Gem::Requirement
54
51
  requirements:
55
52
  - - "~>"
56
53
  - !ruby/object:Gem::Version
57
- version: '1.7'
58
- - - ">="
59
- - !ruby/object:Gem::Version
60
- version: 1.7.2
61
- - !ruby/object:Gem::Dependency
62
- name: posix-spawn
63
- requirement: !ruby/object:Gem::Requirement
64
- requirements:
65
- - - "~>"
66
- - !ruby/object:Gem::Version
67
- version: '0.3'
68
- - - ">="
69
- - !ruby/object:Gem::Version
70
- version: 0.3.11
71
- type: :runtime
72
- prerelease: false
73
- version_requirements: !ruby/object:Gem::Requirement
74
- requirements:
75
- - - "~>"
76
- - !ruby/object:Gem::Version
77
- version: '0.3'
78
- - - ">="
79
- - !ruby/object:Gem::Version
80
- version: 0.3.11
54
+ version: 2.0.3
81
55
  - !ruby/object:Gem::Dependency
82
56
  name: pry
83
57
  requirement: !ruby/object:Gem::Requirement
@@ -256,9 +230,12 @@ require_paths:
256
230
  - lib
257
231
  required_ruby_version: !ruby/object:Gem::Requirement
258
232
  requirements:
259
- - - "~>"
233
+ - - ">="
260
234
  - !ruby/object:Gem::Version
261
235
  version: '2.6'
236
+ - - "<="
237
+ - !ruby/object:Gem::Version
238
+ version: 3.1.2
262
239
  required_rubygems_version: !ruby/object:Gem::Requirement
263
240
  requirements:
264
241
  - - ">="