hotcell-server 1.0.0 → 1.1.0

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: bbb296d96887a9a1bc312a14acef431caa03fc30d05a3f77bd6708a8a9d596a4
4
- data.tar.gz: 6f3a72abba2e2e90ca8b805c15b5bff8feef52d1b1ef5c0a73832e190cc4f182
3
+ metadata.gz: 53155a8007bc4aca15485dd336ec9a4f74942a0315d14b605e3f05b224d68f01
4
+ data.tar.gz: bfb05888e741fb289abb075712894900b022c16d32affd5f21d53a44f2f437da
5
5
  SHA512:
6
- metadata.gz: 3facfa26f280439cbf43dc21aff1e3a4cfb3ba3212402f1d1e5f396b2773e629409f926cf8fcf00debcd68fdb33d126acfe7f2d487afdff194180eb724c4029f
7
- data.tar.gz: 52b1e35eb13e510c912ca7bb9cc706186e36380ee166f5f6d2bff0c36a22088d84d4bed69db0e81cd987eb493b450dd7f71bfeb0d5db63531e3d2aa9cb7602c8
6
+ metadata.gz: d9a0fe3431faabd5b3f19fdac5afd4f5346e85dc4513598242253134d7b392352d15de9ff9debab298103997ac1a28938c1cb1cbb04db2f80121e02dd2fe72c9
7
+ data.tar.gz: 8e35674f33719a62d26a4a269a19017deb9e7de30b8afbf5802a22cba0db6abd5a9348f90cb81e7691dd9f8bb6f3db01d1c8e7e0e0ba4db106a9a7547ce6788a
@@ -7,8 +7,13 @@ module HotCell
7
7
 
8
8
  # The input could not be decoded. Terminal: the same bytes fail the same way on an idle cell. Common
9
9
  # rather than exceptional — it covers truncated uploads, formats the build was not compiled with, and
10
- # formats deliberately refused.
11
- class UnreadableInput < OperationError; end
10
+ # formats deliberately refused. A subclass may name the failure's cause, for a caller that must act
11
+ # on the reason without parsing a message.
12
+ class UnreadableInput < OperationError
13
+ def self.cause
14
+ nil
15
+ end
16
+ end
12
17
 
13
18
  # Reported as `killed` with `cause: memory` rather than as an ordinary failure, because it is the
14
19
  # decompression-bomb case and a caller must be able to act on it without parsing a message.
@@ -2,6 +2,6 @@
2
2
 
3
3
  module HotCell
4
4
  module Server
5
- VERSION = "1.0.0"
5
+ VERSION = "1.1.0"
6
6
  end
7
7
  end
@@ -219,7 +219,8 @@ module HotCell
219
219
 
220
220
  response
221
221
  rescue *operation.unreadable => error
222
- refuse "unreadable", error, timing
222
+ cause = error.class.respond_to?(:cause) ? error.class.cause : nil
223
+ refuse "unreadable", error, timing, cause: cause
223
224
  end
224
225
 
225
226
  # `post` returns what each output received and the worker used to throw all of it away, leaving the
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hotcell-server
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mike Dalessio
@@ -15,14 +15,14 @@ dependencies:
15
15
  requirements:
16
16
  - - '='
17
17
  - !ruby/object:Gem::Version
18
- version: 1.0.0
18
+ version: 1.1.0
19
19
  type: :runtime
20
20
  prerelease: false
21
21
  version_requirements: !ruby/object:Gem::Requirement
22
22
  requirements:
23
23
  - - '='
24
24
  - !ruby/object:Gem::Version
25
- version: 1.0.0
25
+ version: 1.1.0
26
26
  description: |
27
27
  Runs a HotCell container. A supervisor listens on two Unix sockets, forks a worker for each request,
28
28
  and enforces a wall clock deadline and resource limits on it. Write the work as a subclass of
@@ -64,8 +64,8 @@ licenses:
64
64
  - MIT
65
65
  metadata:
66
66
  homepage_uri: https://github.com/basecamp/hotcell
67
- source_code_uri: https://github.com/basecamp/hotcell/tree/v1.0.0/hotcell-server
68
- changelog_uri: https://github.com/basecamp/hotcell/blob/v1.0.0/CHANGELOG.md
67
+ source_code_uri: https://github.com/basecamp/hotcell/tree/v1.1.0/hotcell-server
68
+ changelog_uri: https://github.com/basecamp/hotcell/blob/v1.1.0/CHANGELOG.md
69
69
  documentation_uri: https://basecamp.github.io/hotcell/
70
70
  bug_tracker_uri: https://github.com/basecamp/hotcell/issues
71
71
  rubygems_mfa_required: 'true'
@@ -83,7 +83,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
83
83
  - !ruby/object:Gem::Version
84
84
  version: '0'
85
85
  requirements: []
86
- rubygems_version: 4.0.6
86
+ rubygems_version: 4.0.16
87
87
  specification_version: 4
88
88
  summary: 'Run a HotCell: the supervisor, the worker, and the operation API.'
89
89
  test_files: []