workhorse 1.2.8 → 1.2.10

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9e82524a9a4ac0e41a41fe2a1947e3a9e1b58efc96f750f1dfa0ef5ebeeaad39
4
- data.tar.gz: a31b41e50239da3e0b1bb416d2e5d1c649083ad7fc30b7b2747e4ec9bd877931
3
+ metadata.gz: 2d15daf82cef773b8b5d20c371a0a25e57aa52dac2a8adfdede69391229618ec
4
+ data.tar.gz: 4aa045bb14e3ba2dd74a856681ef3e4b96499e0cbd4cde11020547b27bd6b7bd
5
5
  SHA512:
6
- metadata.gz: bcf8c18e959ecfe4ea1db71b3e1cc59a88325b5d70be33220cfe4931f92fb982548514a0f47576f792a33659011a7956f6c0075544681f0f312816428c1f5f20
7
- data.tar.gz: 557a630d4681f635bfde37da63838a900f6938b6a38f7b188e94a1c4c293972020e91a183dc173fbe02be4d08ddee9a868074c70d219af65a4a7408050211247
6
+ metadata.gz: 58ae320fa056a04a572a3ac6a8ad9c99af17c93d30fe6a3194d9b68d2ceddee23fbf669c36ab7abbf7427ae4fd3fd5abb8be7da15dd24c3488e2dc357112ac5a
7
+ data.tar.gz: 02614eaa06c074136467f171038a581bdea771f252b16c717f162442dd3ba270cb12457827fd804940afe525d064b55f3ee59dbadb96c34e70bcfd147f44ca47
data/CHANGELOG.md CHANGED
@@ -1,5 +1,24 @@
1
1
  # Workhorse Changelog
2
2
 
3
+ ## 1.2.10 - 2023-01-05
4
+
5
+ * Attempt to make shutdown of workers more robust by sending both `TERM` and
6
+ `INT` signals.
7
+
8
+ Sitrox reference: #108374.1-1.
9
+
10
+ ## 1.2.9 - 2022-12-08
11
+
12
+ * Properly detach forked worker processes from parent process to prevent zombie
13
+ processes
14
+
15
+ * Reopen STDIN, STDOUT and STDERR pipes to `/dev/null` after forking
16
+ (daemonizing) worker processes. This detaches from the current TTY which
17
+ prevents the issue that SSH connections sometimes could not be closed when
18
+ having daemonized new worker processes.
19
+
20
+ Sitrox reference: #107576.
21
+
3
22
  ## 1.2.8 - 2022-11-23
4
23
 
5
24
  * Add configuration option `lock_shell_commands`. This defaults to `true` to
data/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2017 - 2022 Sitrox
3
+ Copyright (c) 2017 - 2023 Sitrox
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
data/README.md CHANGED
@@ -441,4 +441,4 @@ Please consult the [FAQ](FAQ.md).
441
441
 
442
442
  ## Copyright
443
443
 
444
- Copyright © 2017 - 2022 Sitrox. See `LICENSE` for further details.
444
+ Copyright © 2017 - 2023 Sitrox. See `LICENSE` for further details.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.2.8
1
+ 1.2.10
@@ -147,17 +147,26 @@ module Workhorse
147
147
  def start_worker(worker)
148
148
  pid = fork do
149
149
  $0 = process_name(worker)
150
+
151
+ # Reopen pipes to prevent #107576
152
+ STDIN.reopen File.open('/dev/null', 'r')
153
+ null_out = File.open '/dev/null', 'w'
154
+ STDOUT.reopen null_out
155
+ STDERR.reopen null_out
156
+
150
157
  worker.block.call
151
158
  end
152
159
  IO.write(pid_file_for(worker), pid)
160
+ Process.detach(pid)
153
161
  end
154
162
 
155
163
  def stop_worker(pid_file, pid, kill = false)
156
- signal = kill ? 'KILL' : 'TERM'
164
+ signals = kill ? %w[KILL] : %w[TERM INT]
157
165
 
158
166
  loop do
159
167
  begin
160
- Process.kill(signal, pid)
168
+ puts "Sending signals #{signals.inspect}".red
169
+ signals.each { |signal| Process.kill(signal, pid) }
161
170
  rescue Errno::ESRCH
162
171
  break
163
172
  end
data/workhorse.gemspec CHANGED
@@ -1,14 +1,14 @@
1
1
  # -*- encoding: utf-8 -*-
2
- # stub: workhorse 1.2.8 ruby lib
2
+ # stub: workhorse 1.2.10 ruby lib
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = "workhorse".freeze
6
- s.version = "1.2.8"
6
+ s.version = "1.2.10"
7
7
 
8
8
  s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
9
9
  s.require_paths = ["lib".freeze]
10
10
  s.authors = ["Sitrox".freeze]
11
- s.date = "2022-11-23"
11
+ s.date = "2023-01-05"
12
12
  s.files = [".github/workflows/ruby.yml".freeze, ".gitignore".freeze, ".releaser_config".freeze, ".rubocop.yml".freeze, "CHANGELOG.md".freeze, "FAQ.md".freeze, "Gemfile".freeze, "LICENSE".freeze, "README.md".freeze, "RUBY_VERSION".freeze, "Rakefile".freeze, "VERSION".freeze, "bin/rubocop".freeze, "lib/active_job/queue_adapters/workhorse_adapter.rb".freeze, "lib/generators/workhorse/install_generator.rb".freeze, "lib/generators/workhorse/templates/bin/workhorse.rb".freeze, "lib/generators/workhorse/templates/config/initializers/workhorse.rb".freeze, "lib/generators/workhorse/templates/create_table_jobs.rb".freeze, "lib/workhorse.rb".freeze, "lib/workhorse/daemon.rb".freeze, "lib/workhorse/daemon/shell_handler.rb".freeze, "lib/workhorse/db_job.rb".freeze, "lib/workhorse/enqueuer.rb".freeze, "lib/workhorse/jobs/cleanup_succeeded_jobs.rb".freeze, "lib/workhorse/jobs/detect_stale_jobs_job.rb".freeze, "lib/workhorse/jobs/run_active_job.rb".freeze, "lib/workhorse/jobs/run_rails_op.rb".freeze, "lib/workhorse/performer.rb".freeze, "lib/workhorse/poller.rb".freeze, "lib/workhorse/pool.rb".freeze, "lib/workhorse/scoped_env.rb".freeze, "lib/workhorse/worker.rb".freeze, "test/active_job/queue_adapters/workhorse_adapter_test.rb".freeze, "test/lib/db_schema.rb".freeze, "test/lib/jobs.rb".freeze, "test/lib/test_helper.rb".freeze, "test/workhorse/db_job_test.rb".freeze, "test/workhorse/enqueuer_test.rb".freeze, "test/workhorse/performer_test.rb".freeze, "test/workhorse/poller_test.rb".freeze, "test/workhorse/pool_test.rb".freeze, "test/workhorse/worker_test.rb".freeze, "workhorse.gemspec".freeze]
13
13
  s.rubygems_version = "3.0.3".freeze
14
14
  s.summary = "Multi-threaded job backend with database queuing for ruby.".freeze
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: workhorse
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.8
4
+ version: 1.2.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sitrox
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-11-23 00:00:00.000000000 Z
11
+ date: 2023-01-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler