raptor 0.22.2 → 0.22.3
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 +4 -4
- data/CHANGELOG.md +5 -0
- data/README.md +2 -2
- data/lib/raptor/http1.rb +2 -2
- data/lib/raptor/http2.rb +2 -2
- data/lib/raptor/reactor.rb +1 -1
- data/lib/raptor/server.rb +8 -4
- data/lib/raptor/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 813fde7063bd9f7dd9e965f57ede9e1e207f4f0db558343e777fce9769a7ec0e
|
|
4
|
+
data.tar.gz: faf2cdec407c5c8d36f4da222a50df4b47366d2a76204e22356a91bb24736879
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: be5d3eb531ab184623787d4b18b06a0d51f908c92120fd46031c353518563da756183775155e250c9744fbc34400c82945204ba341f126be8aa3eab5b94ac8c3
|
|
7
|
+
data.tar.gz: 4b125079b570a4e0f15a549d75ef09bcce749f1442fd18a20a27401cc9c6618797e61564e1ebc194fc93c93bf07eee669249a1e1df18064b306b09a2334b7f41
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
## [Unreleased]
|
|
2
2
|
|
|
3
|
+
## [0.22.3] - 2026-10-04
|
|
4
|
+
|
|
5
|
+
- Keep workers accepting connections when clients reset during accept
|
|
6
|
+
- Close reset client connections without logging backtraces
|
|
7
|
+
|
|
3
8
|
## [0.22.2] - 2026-10-03
|
|
4
9
|
|
|
5
10
|
- Load `Raptor::DetachedBody` with `require "raptor"`
|
data/README.md
CHANGED
|
@@ -37,7 +37,7 @@ run proc { |_env| [200, { "content-type" => "text/plain" }, ["Hello, World!"]] }
|
|
|
37
37
|
```
|
|
38
38
|
> bundle exec raptor -w 10 -t 3 hello_world.ru
|
|
39
39
|
[Raptor 72876|Main|Main] Cluster initializing:
|
|
40
|
-
[Raptor 72876|Main|Main] ├─ Version: 0.22.
|
|
40
|
+
[Raptor 72876|Main|Main] ├─ Version: 0.22.3
|
|
41
41
|
[Raptor 72876|Main|Main] ├─ Ruby Version: ruby 4.0.6 (2026-07-14 revision 03b6d3f889) +YJIT +PRISM [arm64-darwin23]
|
|
42
42
|
[Raptor 72876|Main|Main] ├─ Environment: development
|
|
43
43
|
[Raptor 72876|Main|Main] ├─ Master PID: 72876
|
|
@@ -208,7 +208,7 @@ Set `control_url` to a Unix socket URL such as `unix:///tmp/raptor-control.sock`
|
|
|
208
208
|
|
|
209
209
|
## (Micro) Benchmarks
|
|
210
210
|
|
|
211
|
-
Raptor 0.22.
|
|
211
|
+
Raptor 0.22.3 vs Puma 8.0.2 vs Falcon 0.57.0 across two workload profiles. **IO-bound** is a GET endpoint that
|
|
212
212
|
interleaves 5-10 short sleeps (total 2.5-15ms) with small CPU work, simulating a read path that makes several DB or
|
|
213
213
|
cache calls. **CPU-bound** is a POST endpoint that accepts a small JSON body, interleaves 3-5 chunks of JSON item
|
|
214
214
|
building (total 450-1500 items) with sub-100µs sleeps, and returns the built array, simulating a write path that does
|
data/lib/raptor/http1.rb
CHANGED
|
@@ -307,7 +307,7 @@ module Raptor
|
|
|
307
307
|
rescue IO::WaitReadable
|
|
308
308
|
reactor.add(id: id, socket: socket, remote_addr: remote_addr, url_scheme: url_scheme)
|
|
309
309
|
return
|
|
310
|
-
rescue EOFError, IOError
|
|
310
|
+
rescue EOFError, IOError, SystemCallError
|
|
311
311
|
socket.close rescue nil
|
|
312
312
|
return
|
|
313
313
|
end
|
|
@@ -688,7 +688,7 @@ module Raptor
|
|
|
688
688
|
rescue IO::WaitReadable
|
|
689
689
|
reactor.persist(socket, id, request_count, remote_addr: remote_addr, url_scheme: url_scheme)
|
|
690
690
|
return
|
|
691
|
-
rescue EOFError
|
|
691
|
+
rescue EOFError, IOError, SystemCallError
|
|
692
692
|
socket.close rescue nil
|
|
693
693
|
return
|
|
694
694
|
end
|
data/lib/raptor/http2.rb
CHANGED
|
@@ -892,7 +892,7 @@ module Raptor
|
|
|
892
892
|
rescue IO::WaitReadable
|
|
893
893
|
reactor.watch(id)
|
|
894
894
|
return
|
|
895
|
-
rescue EOFError, IOError
|
|
895
|
+
rescue EOFError, IOError, SystemCallError
|
|
896
896
|
reactor.close_connection(id)
|
|
897
897
|
return
|
|
898
898
|
end
|
|
@@ -1013,7 +1013,7 @@ module Raptor
|
|
|
1013
1013
|
|
|
1014
1014
|
data = begin
|
|
1015
1015
|
socket.read_nonblock(EAGER_READ_BUFFER_SIZE)
|
|
1016
|
-
rescue IO::WaitReadable, EOFError, IOError
|
|
1016
|
+
rescue IO::WaitReadable, EOFError, IOError, SystemCallError
|
|
1017
1017
|
return
|
|
1018
1018
|
end
|
|
1019
1019
|
|
data/lib/raptor/reactor.rb
CHANGED
data/lib/raptor/server.rb
CHANGED
|
@@ -167,10 +167,11 @@ module Raptor
|
|
|
167
167
|
return false
|
|
168
168
|
end
|
|
169
169
|
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
170
|
+
remote_addr = begin
|
|
171
|
+
tcp_client.is_a?(TCPSocket) ? tcp_client.remote_address.ip_address : DEFAULT_REMOTE_ADDR
|
|
172
|
+
rescue SystemCallError
|
|
173
|
+
tcp_client.close
|
|
174
|
+
return true
|
|
174
175
|
end
|
|
175
176
|
|
|
176
177
|
ReuseportBPF.update_accepted_load(@reactor.backlog + 1) if @bpf_active
|
|
@@ -268,6 +269,9 @@ module Raptor
|
|
|
268
269
|
Log.rescued_error(error)
|
|
269
270
|
ssl_socket.close rescue nil
|
|
270
271
|
false
|
|
272
|
+
rescue SystemCallError
|
|
273
|
+
ssl_socket.close rescue nil
|
|
274
|
+
false
|
|
271
275
|
end
|
|
272
276
|
end
|
|
273
277
|
|
data/lib/raptor/version.rb
CHANGED