Claire
							
						 
						
							 
							
							
								
								
							
							
							
								
							
							
								bd481204b5 
								
							 
						 
						
							
							
								
								Fix missing timeout options in `Request` class ( #33769 )  
							
							 
							
							
							
						 
						
							2025-01-29 08:42:20 +00:00  
						
					 
				
					
						
							
							
								 
								Claire
							
						 
						
							 
							
							
								
								
							
							
							
								
							
							
								5b291fcbe4 
								
							 
						 
						
							
							
								
								Fix incorrect signature after HTTP redirect ( #33757 )  
							
							 
							
							
							
						 
						
							2025-01-28 14:44:27 +00:00  
						
					 
				
					
						
							
							
								 
								Christian Schmidt
							
						 
						
							 
							
							
								
								
							
							
							
								
							
							
								8e2c642d44 
								
							 
						 
						
							
							
								
								Do now swallow response body on persistent connection ( #32729 )  
							
							 
							
							
							
						 
						
							2025-01-09 08:35:35 +00:00  
						
					 
				
					
						
							
							
								 
								Matt Jankowski
							
						 
						
							 
							
							
								
								
							
							
							
								
							
							
								342055cb15 
								
							 
						 
						
							
							
								
								Update `rubocop` to version 1.69.1 ( #32967 )  
							
							 
							
							
							
						 
						
							2024-12-09 14:52:49 +00:00  
						
					 
				
					
						
							
							
								 
								Claire
							
						 
						
							 
							
							
								
								
							
							
							
								
							
							
								f5f6273d2b 
								
							 
						 
						
							
							
								
								Move `ALLOWED_PRIVATE_ADDRESSES` parsing to an initializer ( #32850 )  
							
							 
							
							
							
						 
						
							2024-11-12 13:00:52 +00:00  
						
					 
				
					
						
							
							
								 
								Claire
							
						 
						
							 
							
							
								
								
							
							
							
								
							
							
								8afa3bb2fa 
								
							 
						 
						
							
							
								
								Change Mastodon to issue correctly-signed queries by default ( #31994 )  
							
							 
							
							
							
						 
						
							2024-09-20 10:10:09 +00:00  
						
					 
				
					
						
							
							
								 
								Christian Schmidt
							
						 
						
							 
							
							
								
								
							
							
							
								
							
							
								9d0cafd06b 
								
							 
						 
						
							
							
								
								Check Content-Length in ResponseWithLimitAdapter ( #31285 )  
							
							 
							
							
							
						 
						
							2024-08-06 08:23:48 +00:00  
						
					 
				
					
						
							
							
								 
								Claire
							
						 
						
							 
							
							
								
								
							
							
							
								
							
							
								092bb8a27a 
								
							 
						 
						
							
							
								
								Fix Mastodon not correctly processing HTTP Signatures with query strings ( #28476 )  
							
							 
							
							
							
						 
						
							2024-01-03 11:29:26 +00:00  
						
					 
				
					
						
							
							
								 
								Claire
							
						 
						
							 
							
							
								
								
							
							
							
								
							
							
								94893cf24f 
								
							 
						 
						
							
							
								
								Merge pull request from GHSA-hcqf-fw2r-52g4  
							
							 
							
							... 
							
							
							
							* Revert "Fix request URL normalisation for bare domain and 8-bit characters (#26285 )"
This reverts commit 8891d8945d .
* Revert "Do not normalize URL before fetching it (#26219 )"
This reverts commit fd284311e7 . 
							
						 
						
							2023-09-19 16:52:52 +02:00  
						
					 
				
					
						
							
							
								 
								Renaud Chaput
							
						 
						
							 
							
							
								
								
							
							
							
								
							
							
								b95867ad1f 
								
							 
						 
						
							
							
								
								Allow setting a custom HTTP method in CacheBuster ( #26528 )  
							
							 
							
							... 
							
							
							
							Co-authored-by: Jorijn Schrijvershof <jorijn@jorijn.com> 
							
						 
						
							2023-08-18 08:18:40 +02:00  
						
					 
				
					
						
							
							
								 
								Val Lorentz
							
						 
						
							 
							
							
								
								
							
							
							
								
							
							
								f55f0ab0c3 
								
							 
						 
						
							
							
								
								Allow spaces around commas in ALLOWED_PRIVATE_ADDRESSES ( #26297 )  
							
							 
							
							
							
						 
						
							2023-08-03 10:05:35 +02:00  
						
					 
				
					
						
							
							
								 
								Christian Schmidt
							
						 
						
							 
							
							
								
								
							
							
							
								
							
							
								8891d8945d 
								
							 
						 
						
							
							
								
								Fix request URL normalisation for bare domain and 8-bit characters ( #26285 )  
							
							 
							
							
							
						 
						
							2023-08-02 19:32:29 +02:00  
						
					 
				
					
						
							
							
								 
								Christian Schmidt
							
						 
						
							 
							
							
								
								
							
							
							
								
							
							
								fd284311e7 
								
							 
						 
						
							
							
								
								Do not normalize URL before fetching it ( #26219 )  
							
							 
							
							
							
						 
						
							2023-07-31 23:17:37 +02:00  
						
					 
				
					
						
							
							
								 
								Claire
							
						 
						
							 
							
							
								
								
							
							
							
								
							
							
								0078e7e760 
								
							 
						 
						
							
							
								
								Fix incorrect connect timeout in outgoing requests ( #26116 )  
							
							 
							
							
							
						 
						
							2023-07-22 20:42:31 +02:00  
						
					 
				
					
						
							
							
								 
								Claire
							
						 
						
							 
							
							
								
								
							
							
							
								
							
							
								ff41e5426a 
								
							 
						 
						
							
							
								
								Change request timeout handling to use a longer deadline ( #26055 )  
							
							 
							
							
							
						 
						
							2023-07-18 20:51:20 +02:00  
						
					 
				
					
						
							
							
								 
								Claire
							
						 
						
							 
							
							
								
								
							
							
							
								
							
							
								c5929798bf 
								
							 
						 
						
							
							
								
								Merge pull request from GHSA-9pxv-6qvf-pjwc  
							
							 
							
							... 
							
							
							
							* Fix timeout handling of outbound HTTP requests
* Use CLOCK_MONOTONIC instead of Time.now 
							
						 
						
							2023-07-06 15:06:23 +02:00  
						
					 
				
					
						
							
							
								 
								Eugen Rochko
							
						 
						
							 
							
							
								
								
							
							
							
								
							
							
								630436ab2d 
								
							 
						 
						
							
							
								
								Refactor monkey-patching of `PrivateAddressCheck` ( #24122 )  
							
							 
							
							
							
						 
						
							2023-03-16 04:33:38 +01:00  
						
					 
				
					
						
							
							
								 
								Nick Schonning
							
						 
						
							 
							
							
								
								
							
							
							
								
							
							
								717683d1c3 
								
							 
						 
						
							
							
								
								Autofix Rubocop remaining Layout rules ( #23679 )  
							
							 
							
							
							
						 
						
							2023-02-20 06:58:28 +01:00  
						
					 
				
					
						
							
							
								 
								Nick Schonning
							
						 
						
							 
							
							
								
								
							
							
							
								
							
							
								2177daeae9 
								
							 
						 
						
							
							
								
								Autofix Rubocop Style/RedundantBegin ( #23703 )  
							
							 
							
							
							
						 
						
							2023-02-19 07:09:40 +09:00  
						
					 
				
					
						
							
							
								 
								Markus Unterwaditzer
							
						 
						
							 
							
							
								
								
							
							
							
								
							
							
								0c689b9d01 
								
							 
						 
						
							
							
								
								fix: allow verification when page size exceeds 1MB (using HTML5 parser) ( #22879 )  
							
							 
							
							... 
							
							
							
							* fix: allow verification when page size exceeds 1MB
Truncates the page after 1MB instead
Closes  #15316 
* switch to HTML5 parser, fix rubocop errors
* undo rubocop fixes
Co-authored-by: Chris Zubak-Skees <chriszs@gmail.com> 
							
						 
						
							2023-01-11 21:59:13 +01:00  
						
					 
				
					
						
							
							
								 
								Claire
							
						 
						
							 
							
							
								
								
							
							
							
								
							
							
								673c54f114 
								
							 
						 
						
							
							
								
								Fix inability to use local LibreTranslate without setting ALLOWED_PRIVATE_ADDRESSES ( #21926 )  
							
							 
							
							... 
							
							
							
							Fixes  #20029  
							
						 
						
							2022-12-15 17:04:38 +01:00  
						
					 
				
					
						
							
							
								 
								Bearice Ren
							
						 
						
							 
							
							
								
								
							
							
							
								
							
							
								28cda42af5 
								
							 
						 
						
							
							
								
								fixes ArgumentError when proxy is used ( #20420 )  
							
							 
							
							... 
							
							
							
							* fixes ArgumentError when proxy is used
* Update app/lib/request.rb
Co-authored-by: Claire <claire.github-309c@sitedethib.com>
Co-authored-by: Eugen Rochko <eugen@zeonfederated.com>
Co-authored-by: Claire <claire.github-309c@sitedethib.com> 
							
						 
						
							2022-11-11 21:31:03 +01:00  
						
					 
				
					
						
							
							
								 
								Claire
							
						 
						
							 
							
							
								
								
							
							
							
								
							
							
								c989faaa62 
								
							 
						 
						
							
							
								
								Change Request connection logic to try both IPv6 and IPv4 when available ( #20108 )  
							
							 
							
							... 
							
							
							
							Fixes  #19751  
							
						 
						
							2022-11-08 16:36:26 +01:00  
						
					 
				
					
						
							
							
								 
								James Tucker
							
						 
						
							 
							
							
								
								
							
							
							
								
							
							
								833d9c2f1c 
								
							 
						 
						
							
							
								
								Improve performance by avoiding method cache busts ( #19957 )  
							
							 
							
							... 
							
							
							
							Switch to monkey-patching http.rb rather than a runtime extend of each
response, so as to avoid busting the global method cache. A guard is
included that will provide developer feedback in development and test
environments should the monkey patch ever collide. 
							
						 
						
							2022-11-08 04:00:27 +01:00  
						
					 
				
					
						
							
							
								 
								Claire
							
						 
						
							 
							
							
								
								
							
							
							
								
							
							
								8cf7006d4e 
								
							 
						 
						
							
							
								
								Refactor ActivityPub handling to prepare for non-Account actors ( #19212 )  
							
							 
							
							... 
							
							
							
							* Move ActivityPub::FetchRemoteAccountService to ActivityPub::FetchRemoteActorService
ActivityPub::FetchRemoteAccountService is kept as a wrapper for when the actor is
specifically required to be an Account
* Refactor SignatureVerification to allow non-Account actors
* fixup! Move ActivityPub::FetchRemoteAccountService to ActivityPub::FetchRemoteActorService
* Refactor ActivityPub::FetchRemoteKeyService to potentially return non-Account actors
* Refactor inbound ActivityPub payload processing to accept non-Account actors
* Refactor inbound ActivityPub processing to accept activities relayed through non-Account
* Refactor how Account key URIs are built
* Refactor Request and drop unused key_id_format parameter
* Rename ActivityPub::Dereferencer `signature_account` to `signature_actor` 
							
						 
						
							2022-09-21 22:45:57 +02:00  
						
					 
				
					
						
							
							
								 
								Claire
							
						 
						
							 
							
							
								
								
							
							
							
								
							
							
								1145dbd327 
								
							 
						 
						
							
							
								
								Improve error reporting and logging when processing remote accounts ( #15605 )  
							
							 
							
							... 
							
							
							
							* Add a more descriptive PrivateNetworkAddressError exception class
* Remove unnecessary exception class to rescue clause
* Remove unnecessary include to JsonLdHelper
* Give more neutral error message when too many webfinger redirects
* Remove unnecessary guard condition
* Rework how “ActivityPub::FetchRemoteAccountService” handles errors
Add “suppress_errors” keyword argument to avoid raising errors in
ActivityPub::FetchRemoteAccountService#call (default/previous behavior).
* Rework how “ActivityPub::FetchRemoteKeyService” handles errors
Add “suppress_errors” keyword argument to avoid raising errors in
ActivityPub::FetchRemoteKeyService#call (default/previous behavior).
* Fix Webfinger::RedirectError not being a subclass of Webfinger::Error
* Add suppress_errors option to ResolveAccountService
Defaults to true (to preserve previous behavior). If set to false,
errors will be raised instead of caught, allowing the caller to be
informed of what went wrong.
* Return more precise error when failing to fetch account signing AP payloads
* Add tests
* Fixes
* Refactor error handling a bit
* Fix various issues
* Add specific error when provided Digest is not 256 bits of base64-encoded data
* Please CodeClimate
* Improve webfinger error reporting 
							
						 
						
							2022-09-20 23:30:26 +02:00  
						
					 
				
					
						
							
							
								 
								Jeong Arm
							
						 
						
							 
							
							
								
								
							
							
							
								
							
							
								861b35dd54 
								
							 
						 
						
							
							
								
								Support "http_hidden_proxy" ENV var for hidden service only proxy ( #18427 )  
							
							 
							
							... 
							
							
							
							* Support "http_hidden_proxy" ENV var for hidden service only proxy
* Fallback to http_proxy if http_hidden_proxy is not set 
							
						 
						
							2022-08-25 04:41:14 +02:00  
						
					 
				
					
						
							
							
								 
								Eugen Rochko
							
						 
						
							 
							
							
								
								
							
							
							
								
							
							
								39cdf61ab7 
								
							 
						 
						
							
							
								
								Add support for structured data and more OpenGraph tags to link cards ( #16938 )  
							
							 
							
							... 
							
							
							
							Save preview cards under their canonical URL
Increase max redirects to follow from 2 to 3 
							
						 
						
							2021-11-05 23:23:05 +01:00  
						
					 
				
					
						
							
							
								 
								luigi
							
						 
						
							 
							
							
								
								
							
							
							
								
							
							
								eb51e43fb4 
								
							 
						 
						
							
							
								
								Optimize some regex matching ( #15528 )  
							
							 
							
							... 
							
							
							
							* Use Regex#match?
* Replace =~ too
* Avoid to call match? from Nil
* Keep value of Regexp.last_match 
							
						 
						
							2021-01-22 10:09:08 +01:00  
						
					 
				
					
						
							
							
								 
								ThibG
							
						 
						
							 
							
							
								
								
							
							
							
								
							
							
								d60290044e 
								
							 
						 
						
							
							
								
								Add environment variable to allow requests to some private addresses ( #14722 )  
							
							 
							
							
							
						 
						
							2020-09-26 20:57:39 +02:00  
						
					 
				
					
						
							
							
								 
								dependabot[bot]
							
						 
						
							 
							
							
								
								
							
							
							
								
							
							
								8972e5f7f6 
								
							 
						 
						
							
							
								
								Bump rubocop from 0.86.0 to 0.88.0 ( #14412 )  
							
							 
							
							... 
							
							
							
							* Bump rubocop from 0.86.0 to 0.88.0
Bumps [rubocop](https://github.com/rubocop-hq/rubocop ) from 0.86.0 to 0.88.0.
- [Release notes](https://github.com/rubocop-hq/rubocop/releases )
- [Changelog](https://github.com/rubocop-hq/rubocop/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rubocop-hq/rubocop/compare/v0.86.0...v0.88.0 )
Signed-off-by: dependabot[bot] <support@github.com>
* Fix for latest RuboCop
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Yamagishi Kazutoshi <ykzts@desire.sh> 
							
						 
						
							2020-09-01 03:04:00 +02:00  
						
					 
				
					
						
							
							
								 
								abcang
							
						 
						
							 
							
							
								
								
							
							
							
								
							
							
								6a96af4d20 
								
							 
						 
						
							
							
								
								Fix rubocop warning ( #14288 )  
							
							 
							
							... 
							
							
							
							* Fix rubocop warning
* use limit variable
* use ContextCreatingMethods option 
							
						 
						
							2020-07-14 19:05:07 +02:00  
						
					 
				
					
						
							
							
								 
								Eugen Rochko
							
						 
						
							 
							
							
								
								
							
							
							
								
							
							
								e9ecbca70d 
								
							 
						 
						
							
							
								
								Fix error within error when limiting backtrace to 3 lines ( #13120 )  
							
							 
							
							... 
							
							
							
							Fix  #13086 , close  #13113  
							
						 
						
							2020-05-10 10:30:27 +02:00  
						
					 
				
					
						
							
							
								 
								ThibG
							
						 
						
							 
							
							
							
							
								
							
							
								24cd2126c6 
								
							 
						 
						
							
							
								
								Fix Ruby 2.7 support ( #12831 )  
							
							 
							
							... 
							
							
							
							- update http gem to avoid errors
- update blurhash gem to avoid shared object loading error
- update goldfinger gem so the http gem could be updated
- update json gem to avoid warnings 
							
						 
						
							2020-01-12 15:49:30 +01:00  
						
					 
				
					
						
							
							
								 
								Daigo 3 Dango
							
						 
						
							 
							
							
							
							
								
							
							
								e9ea09d173 
								
							 
						 
						
							
							
								
								Suppress backtrace when delivering toots ( #12798 )  
							
							 
							
							... 
							
							
							
							This is to suppress irrelevant backtrace from errors raised when
delivering toots to remote servers. The errors are usually out of
control by the local server and backtraces don't provide much
information.
This is similar to https://github.com/tootsuite/mastodon/pull/5174 
and shortens backtraces like below:
```
WARN: Mastodon::UnexpectedResponseError: https://example.com/inbox  returned code 523
WARN: app/workers/activitypub/delivery_worker.rb:48:in `block (3 levels) in perform_request'
app/lib/request.rb:75:in `perform'
app/workers/activitypub/delivery_worker.rb:47:in `block (2 levels) in perform_request'
app/lib/request_pool.rb:53:in `use'
app/lib/request_pool.rb:108:in `block (2 levels) in with'
vendor/bundle/ruby/2.7.0/gems/activesupport-5.2.4.1/lib/active_support/notifications.rb:170:in `instrument'
app/lib/request_pool.rb:107:in `block in with'
app/lib/connection_pool/shared_connection_pool.rb:21:in `block (2 levels) in with'
app/lib/connection_pool/shared_connection_pool.rb:20:in `handle_interrupt'
app/lib/connection_pool/shared_connection_pool.rb:20:in `block in with'
app/lib/connection_pool/shared_connection_pool.rb:16:in `handle_interrupt'
app/lib/connection_pool/shared_connection_pool.rb:16:in `with'
app/lib/request_pool.rb:106:in `with'
app/workers/activitypub/delivery_worker.rb:46:in `block in perform_request'
vendor/bundle/ruby/2.7.0/gems/stoplight-2.2.0/lib/stoplight/light/runnable.rb:51:in `run_code'
vendor/bundle/ruby/2.7.0/gems/stoplight-2.2.0/lib/stoplight/light/runnable.rb:42:in `run_yellow'
vendor/bundle/ruby/2.7.0/gems/stoplight-2.2.0/lib/stoplight/light/runnable.rb:24:in `run'
app/workers/activitypub/delivery_worker.rb:57:in `perform_request'
app/workers/activitypub/delivery_worker.rb:25:in `perform'
vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:192:in `execute_job'
vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:165:in `block (2 levels) in process'
vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/middleware/chain.rb:128:in `block in invoke'
vendor/bundle/ruby/2.7.0/gems/nsa-0.2.7/lib/nsa/collectors/sidekiq.rb:31:in `block in call'
vendor/bundle/ruby/2.7.0/gems/nsa-0.2.7/lib/nsa/statsd/publisher.rb:27:in `statsd_time'
vendor/bundle/ruby/2.7.0/gems/nsa-0.2.7/lib/nsa/collectors/sidekiq.rb:30:in `call'
vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/middleware/chain.rb:130:in `block in invoke'
app/lib/sidekiq_error_handler.rb:5:in `call'
vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/middleware/chain.rb:130:in `block in invoke'
vendor/bundle/ruby/2.7.0/gems/scout_apm-2.3.0.pre3/lib/scout_apm/background_job_integrations/sidekiq.rb:69:in `call'
vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/middleware/chain.rb:130:in `block in invoke'
vendor/bundle/ruby/2.7.0/gems/sidekiq-unique-jobs-6.0.18/lib/sidekiq_unique_jobs/server/middleware.rb:29:in `call'
vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/middleware/chain.rb:130:in `block in invoke'
vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/middleware/chain.rb:133:in `invoke'
vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:164:in `block in process'
vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:137:in `block (6 levels) in dispatch'
vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/job_retry.rb:109:in `local'
vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:136:in `block (5 levels) in dispatch'
vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/rails.rb:43:in `block in call'
vendor/bundle/ruby/2.7.0/gems/activesupport-5.2.4.1/lib/active_support/execution_wrapper.rb:87:in `wrap'
vendor/bundle/ruby/2.7.0/gems/activesupport-5.2.4.1/lib/active_support/reloader.rb:73:in `block in wrap'
vendor/bundle/ruby/2.7.0/gems/activesupport-5.2.4.1/lib/active_support/execution_wrapper.rb:87:in `wrap'
vendor/bundle/ruby/2.7.0/gems/activesupport-5.2.4.1/lib/active_support/reloader.rb:72:in `wrap'
vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/rails.rb:42:in `call'
vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:132:in `block (4 levels) in dispatch'
vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:250:in `stats'
vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:127:in `block (3 levels) in dispatch'
vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/job_logger.rb:8:in `call'
vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:126:in `block (2 levels) in dispatch'
vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/job_retry.rb:74:in `global'
vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:125:in `block in dispatch'
vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/logging.rb:48:in `with_context'
vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/logging.rb:42:in `with_job_hash_context'
vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:124:in `dispatch'
vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:163:in `process'
vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:83:in `process_one'
vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:71:in `run'
vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/util.rb:16:in `watchdog'
vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/util.rb:25:in `block in safe_thread'
```
```
WARN: Stoplight::Error::RedLight: https://example.com/inbox 
WARN: vendor/bundle/ruby/2.7.0/gems/stoplight-2.2.0/lib/stoplight/light/runnable.rb:46:in `run_red'
vendor/bundle/ruby/2.7.0/gems/stoplight-2.2.0/lib/stoplight/light/runnable.rb:25:in `run'
app/workers/activitypub/delivery_worker.rb:57:in `perform_request'
app/workers/activitypub/delivery_worker.rb:25:in `perform'
vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:192:in `execute_job'
vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:165:in `block (2 levels) in process'
vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/middleware/chain.rb:128:in `block in invoke'
vendor/bundle/ruby/2.7.0/gems/nsa-0.2.7/lib/nsa/collectors/sidekiq.rb:31:in `block in call'
vendor/bundle/ruby/2.7.0/gems/nsa-0.2.7/lib/nsa/statsd/publisher.rb:27:in `statsd_time'
vendor/bundle/ruby/2.7.0/gems/nsa-0.2.7/lib/nsa/collectors/sidekiq.rb:30:in `call'
vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/middleware/chain.rb:130:in `block in invoke'
app/lib/sidekiq_error_handler.rb:5:in `call'
vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/middleware/chain.rb:130:in `block in invoke'
vendor/bundle/ruby/2.7.0/gems/scout_apm-2.3.0.pre3/lib/scout_apm/background_job_integrations/sidekiq.rb:69:in `call'
vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/middleware/chain.rb:130:in `block in invoke'
vendor/bundle/ruby/2.7.0/gems/sidekiq-unique-jobs-6.0.18/lib/sidekiq_unique_jobs/server/middleware.rb:29:in `call'
vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/middleware/chain.rb:130:in `block in invoke'
vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/middleware/chain.rb:133:in `invoke'
vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:164:in `block in process'
vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:137:in `block (6 levels) in dispatch'
vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/job_retry.rb:109:in `local'
vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:136:in `block (5 levels) in dispatch'
vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/rails.rb:43:in `block in call'
vendor/bundle/ruby/2.7.0/gems/activesupport-5.2.4.1/lib/active_support/execution_wrapper.rb:87:in `wrap'
vendor/bundle/ruby/2.7.0/gems/activesupport-5.2.4.1/lib/active_support/reloader.rb:73:in `block in wrap'
vendor/bundle/ruby/2.7.0/gems/activesupport-5.2.4.1/lib/active_support/execution_wrapper.rb:87:in `wrap'
vendor/bundle/ruby/2.7.0/gems/activesupport-5.2.4.1/lib/active_support/reloader.rb:72:in `wrap'
vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/rails.rb:42:in `call'
vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:132:in `block (4 levels) in dispatch'
vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:250:in `stats'
vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:127:in `block (3 levels) in dispatch'
vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/job_logger.rb:8:in `call'
vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:126:in `block (2 levels) in dispatch'
vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/job_retry.rb:74:in `global'
vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:125:in `block in dispatch'
vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/logging.rb:48:in `with_context'
vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/logging.rb:42:in `with_job_hash_context'
vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:124:in `dispatch'
vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:163:in `process'
vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:83:in `process_one'
vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:71:in `run'
vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/util.rb:16:in `watchdog'
vendor/bundle/ruby/2.7.0/gems/sidekiq-5.2.7/lib/sidekiq/util.rb:25:in `block in safe_thread'
``` 
							
						 
						
							2020-01-11 02:15:03 +01:00  
						
					 
				
					
						
							
							
								 
								ThibG
							
						 
						
							 
							
							
							
							
								
							
							
								1653b58777 
								
							 
						 
						
							
							
								
								Attempt to concurrently connect to remote IP addresses ( #11757 )  
							
							 
							
							... 
							
							
							
							* Attempt to concurrently connect to remote IP addresses
* Reduce code length to please CodeClimate 🤷  
							
						 
						
							2019-09-05 05:32:53 +02:00  
						
					 
				
					
						
							
							
								 
								Eugen Rochko
							
						 
						
							 
							
							
								
								
							
							
							
								
							
							
								4e8dcc5dbb 
								
							 
						 
						
							
							
								
								Add HTTP signatures to all outgoing ActivityPub GET requests ( #11284 )  
							
							 
							
							
							
						 
						
							2019-07-11 14:49:55 +02:00  
						
					 
				
					
						
							
							
								 
								Eugen Rochko
							
						 
						
							 
							
							
								
								
							
							
							
								
							
							
								5d3feed191 
								
							 
						 
						
							
							
								
								Refactor fetching of remote resources ( #11251 )  
							
							 
							
							
							
						 
						
							2019-07-10 18:59:28 +02:00  
						
					 
				
					
						
							
							
								 
								Eugen Rochko
							
						 
						
							 
							
							
								
								
							
							
							
								
							
							
								406b46395d 
								
							 
						 
						
							
							
								
								Fix URLs appearing twice in errors of ActivityPub::DeliveryWorker ( #11231 )  
							
							 
							
							
							
						 
						
							2019-07-07 03:37:01 +02:00  
						
					 
				
					
						
							
							
								 
								ThibG
							
						 
						
							 
							
							
							
							
								
							
							
								58276715be 
								
							 
						 
						
							
							
								
								Fix support for HTTP proxies ( #11245 )  
							
							 
							
							... 
							
							
							
							* Disable incorrect check for hidden services in Socket
Hidden services can only be accessed with an HTTP proxy, in which
case the host seen by the Socket class will be the proxy, not the
target host.
Hidden services are already filtered in `Request#initialize`.
* Use our Socket class to connect to HTTP proxies
Avoid the timeout logic being bypassed
* Add support for IP addresses in Request::Socket
* Refactor a bit, no need to keep the DNS resolver around 
							
						 
						
							2019-07-07 02:05:38 +02:00  
						
					 
				
					
						
							
							
								 
								ThibG
							
						 
						
							 
							
							
							
							
								
							
							
								ed544f3166 
								
							 
						 
						
							
							
								
								Fix HTTP requests to IPv6 hosts ( #11240 )  
							
							 
							
							
							
						 
						
							2019-07-05 22:03:00 +02:00  
						
					 
				
					
						
							
							
								 
								Eugen Rochko
							
						 
						
							 
							
							
								
								
							
							
							
								
							
							
								0d9ffe56fb 
								
							 
						 
						
							
							
								
								Add request pool to improve delivery performance ( #10353 )  
							
							 
							
							... 
							
							
							
							* Add request pool to improve delivery performance
Fix  #7909 
* Ensure connection is closed when exception interrupts execution
* Remove Timeout#timeout from socket connection
* Fix infinite retrial loop on HTTP::ConnectionError
* Close sockets on failure, reduce idle time to 90 seconds
* Add MAX_REQUEST_POOL_SIZE option to limit concurrent connections to the same server
* Use a shared pool size, 512 by default, to stay below open file limit
* Add some tests
* Add more tests
* Reduce MAX_IDLE_TIME from 90 to 30 seconds, reap every 30 seconds
* Use a shared pool that returns preferred connection but re-purposes other ones when needed
* Fix wrong connection being returned on subsequent calls within the same thread
* Reduce mutex calls on flushes from 2 to 1 and add test for reaping 
							
						 
						
							2019-07-02 00:34:38 +02:00  
						
					 
				
					
						
							
							
								 
								ThibG
							
						 
						
							 
							
							
							
							
								
							
							
								79b00d294d 
								
							 
						 
						
							
							
								
								Increase DNS timeouts ( #10238 )  
							
							 
							
							
							
						 
						
							2019-03-11 13:27:57 +01:00  
						
					 
				
					
						
							
							
								 
								Eugen Rochko
							
						 
						
							 
							
							
								
								
							
							
							
								
							
							
								aa9a20cde0 
								
							 
						 
						
							
							
								
								Fix ThreadResolveWorker getting queued with invalid URLs ( #9628 )  
							
							 
							
							
							
						 
						
							2018-12-26 19:15:53 +01:00  
						
					 
				
					
						
							
							
								 
								Eugen Rochko
							
						 
						
							 
							
							
								
								
							
							
							
								
							
							
								c39d7e7b2b 
								
							 
						 
						
							
							
								
								Fix TLS handshake timeout not being enforced ( #9381 )  
							
							 
							
							... 
							
							
							
							Follow-up to #9329  
							
						 
						
							2018-11-27 19:46:05 +01:00  
						
					 
				
					
						
							
							
								 
								Eugen Rochko
							
						 
						
							 
							
							
								
								
							
							
							
								
							
							
								43c311b3a1 
								
							 
						 
						
							
							
								
								Fix nil error when no DNS addresses are found for host ( #9379 )  
							
							 
							
							
							
						 
						
							2018-11-27 18:13:36 +01:00  
						
					 
				
					
						
							
							
								 
								Eugen Rochko
							
						 
						
							 
							
							
								
								
							
							
							
								
							
							
								fd8145d232 
								
							 
						 
						
							
							
								
								Fix connect timeout not being enforced ( #9329 )  
							
							 
							
							... 
							
							
							
							* Fix connect timeout not being enforced
The loop was catching the timeout exception that should stop execution, so the next IP would no longer be within a timed block, which led to requests taking much longer than 10 seconds.
* Use timeout on each IP attempt, but limit to 2 attempts
* Fix code style issue
* Do not break Request#perform if no block given
* Update method stub in spec for Request
* Move timeout inside the begin/rescue block
* Use Resolv::DNS with timeout of 1 to get IP addresses
* Update Request spec to stub Resolv::DNS instead of Addrinfo
* Fix Resolve::DNS stubs in Request spec 
							
						 
						
							2018-11-22 20:12:04 +01:00  
						
					 
				
					
						
							
							
								 
								Eugen Rochko
							
						 
						
							 
							
							
								
								
							
							
							
								
							
							
								384e953b75 
								
							 
						 
						
							
							
								
								Revert connect timeout from 1s to 10s ( #9319 )  
							
							 
							
							... 
							
							
							
							The failure rate in Sidekiq is too high 
							
						 
						
							2018-11-21 17:00:56 +01:00  
						
					 
				
					
						
							
							
								 
								Eugen Rochko
							
						 
						
							 
							
							
								
								
							
							
							
								
							
							
								4615512285 
								
							 
						 
						
							
							
								
								Reduce connect timeout limit and limit signature failures by source IP ( #9236 )  
							
							 
							
							... 
							
							
							
							* Reduce connect timeout from 10s to 1s
* Limit failing signature verifications per source IP 
							
						 
						
							2018-11-08 21:35:58 +01:00  
						
					 
				
					
						
							
							
								 
								Eugen Rochko
							
						 
						
							 
							
							
								
								
							
							
							
								
							
							
								e3764bdb52 
								
							 
						 
						
							
							
								
								Do not sign useless User-Agent or Accept-Encoding headers ( #8533 )  
							
							 
							
							... 
							
							
							
							Fix  #8080  
							
						 
						
							2018-08-31 04:22:52 +02:00