Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,9 @@ def initialize(options = {}, &block)
end

def with(options = {})
# We need to manage exception handling manually here in order
# to work correctly with `Gem::Timeout.timeout` and `Thread#raise`.
# Otherwise an interrupted Thread can leak connections.
Thread.handle_interrupt(Exception => :never) do
conn = checkout(options)
begin
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,9 +54,12 @@ def push(obj, options = {})
# immediately returned. If no connection is available within the given
# timeout a Bundler::ConnectionPool::TimeoutError is raised.
#
# +:timeout+ is the only checked entry in +options+ and is preferred over
# the +timeout+ argument (which will be removed in a future release). Other
# options may be used by subclasses that extend TimedStack.
# @option options [Float] :timeout (0.5) Wait this many seconds for an available entry
# @option options [Class] :exception (Bundler::ConnectionPool::TimeoutError) Exception class to raise
# if an entry was not available within the timeout period. Use `exception: false` to return nil.
#
# The +timeout+ argument will be removed in 3.0.
# Other options may be used by subclasses that extend TimedStack.
def pop(timeout = 0.5, options = {})
options, timeout = timeout, 0.5 if Hash === timeout
timeout = options.fetch :timeout, timeout
Expand All @@ -73,7 +76,14 @@ def pop(timeout = 0.5, options = {})
return connection if connection

to_wait = deadline - current_time
raise Bundler::ConnectionPool::TimeoutError, "Waited #{timeout} sec, #{length}/#{@max} available" if to_wait <= 0
if to_wait <= 0
exc = options.fetch(:exception, Bundler::ConnectionPool::TimeoutError)
if exc
raise Bundler::ConnectionPool::TimeoutError, "Waited #{timeout} sec, #{length}/#{@max} available"
else
return nil
end
end
@resource.wait(@mutex, to_wait)
end
end
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
class Bundler::ConnectionPool
VERSION = "2.5.4"
VERSION = "2.5.5"
end
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
> GET /info/CFPropertyList
> accept-encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3
> accept: */*
> user-agent: bundler/4.0.0.dev rubygems/3.7.0.dev ruby/3.4.4 (arm64-apple-darwin24) command/lock options/frozen b2f78d4bb6681c33
> user-agent: bundler/4.1.0.dev rubygems/4.1.0.dev ruby/4.1.0.dev (arm64-apple-darwin25) command/lock options/frozen 2903e3f7845945cb
> connection: keep-alive
> keep-alive: 30
> host: index.rubygems.org
Original file line number Diff line number Diff line change
@@ -1,21 +1,21 @@
HTTP/1.1 200 OK
connection: keep-alive
content-length: 3775
last-modified: Thu, 15 Feb 2024 14:03:31 GMT
etag: "0c6a97ab420471df168d0243202d7cd9"
content-length: 4072
last-modified: Wed, 19 Nov 2025 05:45:46 GMT
etag: "ef9d39843aac1d5217908cdaca937daa"
cache-control: max-age=60, public
content-type: text/plain; charset=utf-8
digest: sha-256="tCwBT9VSSiuWgCA1HWwZrsLLgTcTDcEScKySWrZ9EF8="
repr-digest: sha-256="tCwBT9VSSiuWgCA1HWwZrsLLgTcTDcEScKySWrZ9EF8="
digest: sha-256="you+MrfHo7BJorGNoIhduiVMxtn0v15ZYk3xPUoHwKs="
repr-digest: sha-256="you+MrfHo7BJorGNoIhduiVMxtn0v15ZYk3xPUoHwKs="
via: 1.1 varnish, 1.1 varnish
x-backend: fastlyshield--shield_ssl_cache_bfi_kbfi7400065_BFI 167.82.142.65:443
accept-ranges: bytes
date: Mon, 14 Jul 2025 08:09:05 GMT
age: 249
x-served-by: cache-bfi-kbfi7400065-BFI, cache-mad22046-MAD
date: Mon, 05 Jan 2026 06:53:49 GMT
age: 1001
x-served-by: cache-bfi-kbfi7400065-BFI, cache-tyo11971-TYO
x-cache: HIT, HIT
x-cache-hits: 52211, 1
x-timer: S1752480545.041227,VS0,VE1
x-cache-hits: 129058, 1
x-timer: S1767596030.787830,VS0,VE1
server: RubyGems.org

---
Expand Down Expand Up @@ -59,3 +59,6 @@ server: RubyGems.org
3.0.5 rexml:>= 0|checksum:a78551cd4768d78ebca98488c27e33652ef818be64697a54676d34e6434674a4
3.0.6 rexml:>= 0|checksum:78097539f2c69424d8a29ca725584469fbe1de4611a8799dc62b7a7f8efd66a8
3.0.7 base64:>= 0,nkf:>= 0,rexml:>= 0|checksum:c45721614aca8d5eb6fa216f2ec28ec38de1a94505e9766a20e98745492c3c4c
3.0.8 |checksum:2c99d0d980536d3d7ab252f7bd59ac8be50fbdd1ff487c98c949bb66bb114261
3.0.9 |checksum:fb6c83657a4f983408ff46ea062bdaa292ea8e92f3d7f2ea2c5315cec3936674,ruby:< 3.2
4.0.0 base64:>= 0,nkf:>= 0,rexml:>= 0|checksum:385e7bbd7c27e176b23415275ca936ca0ece1727e5b890b08e36632076b00aff,ruby:>= 3.2
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
> GET /info/ParseTree
> accept-encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3
> accept: */*
> user-agent: bundler/4.0.0.dev rubygems/3.7.0.dev ruby/3.4.4 (arm64-apple-darwin24) command/install options/jobs,no_install 3225600f6858afa1
> user-agent: bundler/4.1.0.dev rubygems/4.1.0.dev ruby/4.1.0.dev (arm64-apple-darwin25) command/lock options/frozen 4b6017e271b33195
> connection: keep-alive
> keep-alive: 30
> host: index.rubygems.org
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,12 @@ repr-digest: sha-256="FxiIU2PrEMdya3ads+xrfYwO+jcVNdXl1gz1syBXoBI="
via: 1.1 varnish, 1.1 varnish
x-backend: fastlyshield--shield_ssl_cache_bfi_kbfi7400060_BFI 167.82.142.60:443
accept-ranges: bytes
age: 2174
date: Mon, 14 Jul 2025 08:08:59 GMT
x-served-by: cache-bfi-kbfi7400060-BFI, cache-mad22062-MAD
date: Mon, 05 Jan 2026 06:53:48 GMT
age: 1318
x-served-by: cache-bfi-kbfi7400060-BFI, cache-tyo11939-TYO
x-cache: HIT, HIT
x-cache-hits: 117212, 0
x-timer: S1752480540.702908,VS0,VE1
x-cache-hits: 157899, 5
x-timer: S1767596028.399101,VS0,VE0
server: RubyGems.org

---
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
> GET /info/RubyInline
> accept-encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3
> accept: */*
> user-agent: bundler/4.0.0.dev rubygems/3.7.0.dev ruby/3.4.4 (arm64-apple-darwin24) command/install options/jobs,no_install 3225600f6858afa1
> user-agent: bundler/4.1.0.dev rubygems/4.1.0.dev ruby/4.1.0.dev (arm64-apple-darwin25) command/lock options/frozen 4b6017e271b33195
> connection: keep-alive
> keep-alive: 30
> host: index.rubygems.org
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,12 @@ repr-digest: sha-256="NTID7oZHO5y4pO1LvlgT94JrmV4m+QKP7ke7+j62CVQ="
via: 1.1 varnish, 1.1 varnish
x-backend: fastlyshield--shield_ssl_cache_bfi_kbfi7400119_BFI 167.82.142.119:443
accept-ranges: bytes
date: Mon, 14 Jul 2025 08:08:59 GMT
age: 2280
x-served-by: cache-bfi-kbfi7400119-BFI, cache-mad2200141-MAD
date: Mon, 05 Jan 2026 06:53:48 GMT
age: 601
x-served-by: cache-bfi-kbfi7400119-BFI, cache-tyo11961-TYO
x-cache: HIT, HIT
x-cache-hits: 194710, 1
x-timer: S1752480540.527150,VS0,VE1
x-cache-hits: 162351, 1
x-timer: S1767596028.380122,VS0,VE1
server: RubyGems.org

---
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
> GET /info/SexpProcessor
> accept-encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3
> accept: */*
> user-agent: bundler/4.0.0.dev rubygems/3.7.0.dev ruby/3.4.4 (arm64-apple-darwin24) command/install options/jobs,no_install 3225600f6858afa1
> user-agent: bundler/4.1.0.dev rubygems/4.1.0.dev ruby/4.1.0.dev (arm64-apple-darwin25) command/lock options/frozen 4b6017e271b33195
> connection: keep-alive
> keep-alive: 30
> host: index.rubygems.org
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,12 @@ repr-digest: sha-256="fxR6GgHkBJHVWHlaoYKUPMCr2dYITHA0qPmwoQSWhB8="
via: 1.1 varnish, 1.1 varnish
x-backend: fastlyshield--shield_ssl_cache_bfi_kbfi7400114_BFI 167.82.142.114:443
accept-ranges: bytes
age: 1225
date: Mon, 14 Jul 2025 08:08:59 GMT
x-served-by: cache-bfi-kbfi7400114-BFI, cache-mad22048-MAD
date: Mon, 05 Jan 2026 06:53:48 GMT
age: 1233
x-served-by: cache-bfi-kbfi7400114-BFI, cache-tyo11921-TYO
x-cache: HIT, HIT
x-cache-hits: 261462, 0
x-timer: S1752480540.728223,VS0,VE1
x-cache-hits: 50303, 5
x-timer: S1767596028.412041,VS0,VE0
server: RubyGems.org

---
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
> GET /info/ZenTest
> accept-encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3
> accept: */*
> user-agent: bundler/4.0.0.dev rubygems/3.7.0.dev ruby/3.4.4 (arm64-apple-darwin24) command/install options/jobs,no_install 3225600f6858afa1
> user-agent: bundler/4.1.0.dev rubygems/4.1.0.dev ruby/4.1.0.dev (arm64-apple-darwin25) command/lock options/frozen 4b6017e271b33195
> connection: keep-alive
> keep-alive: 30
> host: index.rubygems.org
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,12 @@ repr-digest: sha-256="/2ZieQJarZ7BEHiGJXR9+tNmmUjsqf7t0JMcVQLICDA="
via: 1.1 varnish, 1.1 varnish
x-backend: fastlyshield--shield_ssl_cache_bfi_kbfi7400047_BFI 167.82.142.47:443
accept-ranges: bytes
date: Mon, 14 Jul 2025 08:08:59 GMT
age: 433
x-served-by: cache-bfi-kbfi7400047-BFI, cache-mad22076-MAD
date: Mon, 05 Jan 2026 06:53:48 GMT
age: 1104
x-served-by: cache-bfi-kbfi7400047-BFI, cache-tyo11967-TYO
x-cache: HIT, HIT
x-cache-hits: 202878, 1
x-timer: S1752480540.525598,VS0,VE1
x-cache-hits: 182017, 3
x-timer: S1767596028.380065,VS0,VE0
server: RubyGems.org

---
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
> GET /info/abstract
> accept-encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3
> accept: */*
> user-agent: bundler/4.0.0.dev rubygems/3.7.0.dev ruby/3.4.4 (arm64-apple-darwin24) command/lock options/frozen 4b5d8ce170c6816b
> user-agent: bundler/4.1.0.dev rubygems/4.1.0.dev ruby/4.1.0.dev (arm64-apple-darwin25) command/lock options/frozen 4b6017e271b33195
> connection: keep-alive
> keep-alive: 30
> host: index.rubygems.org
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,12 @@ repr-digest: sha-256="zrqslZz/x28+iul7VX8y2x5PFmxggYaYPhj8UFaf9qY="
via: 1.1 varnish, 1.1 varnish
x-backend: fastlyshield--shield_ssl_cache_bfi_krnt7300091_BFI 167.82.143.91:443
accept-ranges: bytes
age: 2761
date: Mon, 14 Jul 2025 08:09:03 GMT
x-served-by: cache-bfi-krnt7300091-BFI, cache-mad2200141-MAD
date: Mon, 05 Jan 2026 06:53:48 GMT
age: 2430
x-served-by: cache-bfi-krnt7300091-BFI, cache-tyo11967-TYO
x-cache: HIT, HIT
x-cache-hits: 183514, 0
x-timer: S1752480544.998240,VS0,VE1
x-cache-hits: 150658, 4
x-timer: S1767596028.371969,VS0,VE0
server: RubyGems.org

---
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
> GET /info/action_text-trix
> accept-encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3
> accept: */*
> user-agent: bundler/4.1.0.dev rubygems/4.1.0.dev ruby/4.1.0.dev (arm64-apple-darwin25) command/lock options/frozen 2903e3f7845945cb
> connection: keep-alive
> keep-alive: 30
> host: index.rubygems.org
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
HTTP/1.1 200 OK
connection: keep-alive
content-length: 288
last-modified: Tue, 30 Dec 2025 20:21:10 GMT
etag: "63e5cba23df1e5e308407e40305d7654"
cache-control: max-age=60, public
content-type: text/plain; charset=utf-8
digest: sha-256="4/Vd1BN+iUG0/V22xXftb/ov1rFIu7zACKCDVX8ieno="
repr-digest: sha-256="4/Vd1BN+iUG0/V22xXftb/ov1rFIu7zACKCDVX8ieno="
via: 1.1 varnish, 1.1 varnish
x-backend: fastlyshield--shield_ssl_cache_bfi_kbfi7400035_BFI 167.82.142.35:443
accept-ranges: bytes
date: Mon, 05 Jan 2026 06:53:49 GMT
age: 1899
x-served-by: cache-bfi-kbfi7400035-BFI, cache-tyo11971-TYO
x-cache: HIT, HIT
x-cache-hits: 52322, 2
x-timer: S1767596030.705537,VS0,VE0
server: RubyGems.org

---
0.0.1 railties:>= 0|checksum:8ad7bcda890808674d6bcf09b5223aa6770c9db1038af9bb7ce7ec37fd150e53
2.1.15 railties:>= 0|checksum:4bf9bbd8fa95954de3f0022dae0d927bce22c1bb31d5dc9c3766f8c145c109c1
2.1.16 railties:>= 0|checksum:f645a2c21821b8449fd1d6770708f4031c91a2eedf9ef476e9be93c64e703a8a
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
> GET /info/actioncable
> accept-encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3
> accept: */*
> user-agent: bundler/4.0.0.dev rubygems/3.7.0.dev ruby/3.4.4 (arm64-apple-darwin24) command/lock options/frozen b2f78d4bb6681c33
> user-agent: bundler/4.1.0.dev rubygems/4.1.0.dev ruby/4.1.0.dev (arm64-apple-darwin25) command/lock options/frozen 2903e3f7845945cb
> connection: keep-alive
> keep-alive: 30
> host: index.rubygems.org
Original file line number Diff line number Diff line change
@@ -1,21 +1,21 @@
HTTP/1.1 200 OK
connection: keep-alive
content-length: 36619
last-modified: Wed, 12 Mar 2025 03:09:28 GMT
etag: "ce30fdbaa5ddbf5016d11c8c167dea6d"
content-length: 38934
last-modified: Tue, 28 Oct 2025 23:47:34 GMT
etag: "920a4a40e7db426e3ea8be57141593ba"
cache-control: max-age=60, public
content-type: text/plain; charset=utf-8
digest: sha-256="56+REgZYgP5GqZxUniBG2+sHCMV16ObgDifJuyyawlw="
repr-digest: sha-256="56+REgZYgP5GqZxUniBG2+sHCMV16ObgDifJuyyawlw="
digest: sha-256="f8ZSVGzeXfu3B9L6kAjhDc6EpYUTWyDeEXqCYbfok0U="
repr-digest: sha-256="f8ZSVGzeXfu3B9L6kAjhDc6EpYUTWyDeEXqCYbfok0U="
via: 1.1 varnish, 1.1 varnish
x-backend: fastlyshield--shield_ssl_cache_bfi_krnt7300033_BFI 167.82.143.33:443
x-backend: fastlyshield--shield_ssl_cache_bfi_krnt7300035_BFI 167.82.143.35:443
accept-ranges: bytes
age: 2526
date: Mon, 14 Jul 2025 08:09:04 GMT
x-served-by: cache-bfi-krnt7300033-BFI, cache-mad2200134-MAD
date: Mon, 05 Jan 2026 06:53:49 GMT
age: 896
x-served-by: cache-bfi-krnt7300035-BFI, cache-tyo11940-TYO
x-cache: HIT, HIT
x-cache-hits: 53323, 0
x-timer: S1752480545.876085,VS0,VE1
x-cache-hits: 159551, 3
x-timer: S1767596030.616501,VS0,VE0
server: RubyGems.org

---
Expand Down Expand Up @@ -228,3 +228,15 @@ server: RubyGems.org
8.0.0.1 actionpack:= 8.0.0.1,activesupport:= 8.0.0.1,nio4r:~> 2.0,websocket-driver:>= 0.6.1,zeitwerk:~> 2.6|checksum:cfe444bcd1e22efe8130989ba73e0c8086606fde1d2f0043babb33e3ed2f0118,ruby:>= 3.2.0
8.0.1 actionpack:= 8.0.1,activesupport:= 8.0.1,nio4r:~> 2.0,websocket-driver:>= 0.6.1,zeitwerk:~> 2.6|checksum:808bff2a4e3aba36f66f0cd65d7a1579ad52fb65e99304442c46051a79689d9b,ruby:>= 3.2.0
8.0.2 actionpack:= 8.0.2,activesupport:= 8.0.2,nio4r:~> 2.0,websocket-driver:>= 0.6.1,zeitwerk:~> 2.6|checksum:7bcce2df62e91a80143592600e16583c273e98aab50ae40a9f6a2604bb3289a0,ruby:>= 3.2.0
7.1.5.2 actionpack:= 7.1.5.2,activesupport:= 7.1.5.2,nio4r:~> 2.0,websocket-driver:>= 0.6.1,zeitwerk:~> 2.6|checksum:79dd467dab2351110fe1fc69e25cee0110bf11f0b9f30165b945b574eebd5e37,ruby:>= 2.7.0
7.2.2.2 actionpack:= 7.2.2.2,activesupport:= 7.2.2.2,nio4r:~> 2.0,websocket-driver:>= 0.6.1,zeitwerk:~> 2.6|checksum:3d957adc9d1d2ddb5ac8ed8791dc35b273c722f2dca2644f415bd24ba64c7425,ruby:>= 3.1.0
8.0.2.1 actionpack:= 8.0.2.1,activesupport:= 8.0.2.1,nio4r:~> 2.0,websocket-driver:>= 0.6.1,zeitwerk:~> 2.6|checksum:6f1cb20db39fba28a93569e8d5dab42b2749d7ddd4baebb5bbecd4217e49d6a2,ruby:>= 3.2.0
8.1.0.beta1 actionpack:= 8.1.0.beta1,activesupport:= 8.1.0.beta1,nio4r:~> 2.0,websocket-driver:>= 0.6.1,zeitwerk:~> 2.6|checksum:36be1d37041c849d00d788050375a9e28f9cdb0c756942767c0c7b072448d9d9,ruby:>= 3.2.0
8.0.3 actionpack:= 8.0.3,activesupport:= 8.0.3,nio4r:~> 2.0,websocket-driver:>= 0.6.1,zeitwerk:~> 2.6|checksum:f8cad39cebefaa1c9d4904f3e843022f22ee7a9201b59db703bf3ef7f2877493,ruby:>= 3.2.0
8.1.0.rc1 actionpack:= 8.1.0.rc1,activesupport:= 8.1.0.rc1,nio4r:~> 2.0,websocket-driver:>= 0.6.1,zeitwerk:~> 2.6|checksum:801e738c7408fb6ed0820f509661941235c4bb7dcbfec07cbffc5b0caf56f9a5,ruby:>= 3.2.0
8.1.0 actionpack:= 8.1.0,activesupport:= 8.1.0,nio4r:~> 2.0,websocket-driver:>= 0.6.1,zeitwerk:~> 2.6|checksum:336d5868db5629d2071ddc6b4e654f9c0af94117ccebee884f45035232ffd8b9,ruby:>= 3.2.0
7.0.10 actionpack:= 7.0.10,activesupport:= 7.0.10,nio4r:~> 2.0,websocket-driver:>= 0.6.1|checksum:7aa02ea26d6cc21c33e604bb28a0759c5212653311bc42105f96f709e507afab,ruby:>= 2.7.0
7.1.6 actionpack:= 7.1.6,activesupport:= 7.1.6,nio4r:~> 2.0,websocket-driver:>= 0.6.1,zeitwerk:~> 2.6|checksum:ad428d5f0a810452160820ae3cf3d9d68d8f59e7c76de3bd1f1de2a5ad03c3da,ruby:>= 2.7.0
7.2.3 actionpack:= 7.2.3,activesupport:= 7.2.3,nio4r:~> 2.0,websocket-driver:>= 0.6.1,zeitwerk:~> 2.6|checksum:e15d17b245f1dfe7cafdda4a0c6f7ba8ebaab1af33884415e09cfef4e93ad4f9,ruby:>= 3.1.0
8.0.4 actionpack:= 8.0.4,activesupport:= 8.0.4,nio4r:~> 2.0,websocket-driver:>= 0.6.1,zeitwerk:~> 2.6|checksum:aadb2bf2977b666cfeaa7dee66fd50e147559f78a8d55f6169e913502475e09f,ruby:>= 3.2.0
8.1.1 actionpack:= 8.1.1,activesupport:= 8.1.1,nio4r:~> 2.0,websocket-driver:>= 0.6.1,zeitwerk:~> 2.6|checksum:7262307e9693f09b299e281590110ce4b6ba7e4e4cee6da4b9d987eaf56f9139,ruby:>= 3.2.0
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
> GET /info/actionmailbox
> accept-encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3
> accept: */*
> user-agent: bundler/4.0.0.dev rubygems/3.7.0.dev ruby/3.4.4 (arm64-apple-darwin24) command/lock options/frozen b2f78d4bb6681c33
> user-agent: bundler/4.1.0.dev rubygems/4.1.0.dev ruby/4.1.0.dev (arm64-apple-darwin25) command/lock options/frozen 2903e3f7845945cb
> connection: keep-alive
> keep-alive: 30
> host: index.rubygems.org
Loading
Loading