* [ANN] mogilefs-client 3.10.0 - MogileFS client library for Ruby
@ 2016-08-31 7:43 7% Eric Wong
0 siblings, 0 replies; 2+ results
From: Eric Wong @ 2016-08-31 7:43 UTC (permalink / raw)
To: ruby-talk, mogile; +Cc: mogilefs-client-public
A MogileFS client library for Ruby. MogileFS is an open source
distributed filesystem, see: http://mogilefs.org for more details. This
library allows any Ruby application to read, write and delete files in a
MogileFS instance.
Changes:
Ruby mogilefs-client 3.10.0
A bunch of minor tweaks to reduce garbage and exceptions.
In addition to the existing :timeout and :fail_timeout options,
there is a new :connect_timeout directive for all connection
classes which only controls the time spent waiting for a TCP
connection. This defaults to the same value as the existing
:timeout option (3 seconds); but users are advised to lower
it to match ideal network conditions.
For users of Ruby 2.3+, this release takes advantage of
exception-less Socket#connect_nonblock using "exception: false".
Users of Ruby 2.1+ will also benefit from "exception: false"
usage for read_nonblock and write_nonblock calls.
kgio is no longer be useful with this release with Ruby 2.3+
This release also fixes a Ruby 1.8.7 compatibility bug for
non-kgio users. However, this may be the last 1.8.7-compatible
release. Fwiw, I wanted to remove Ruby 1.8 support around 5
years ago but several users were against it. Maybe nobody will
complain, this time...
18 changes since 3.9.0:
doc: avoid inadvertantly documenting the Process class
admin: simplify utilization conversion
more idiomatic comparisons with constants
bigfile/filter: only update MD5 if non-nil
bigfile: lazily require bigfile/filter
backend: simplify regexp
.olddoc.yml: add NNTP and mailing list archive URL
minor garbage reductions for newer Rubies
socket/pure_ruby: fix Ruby 1.8 compatibility
socket/pure_ruby: use `:exception=>false' on Ruby 2.1+
test_fresh: do not delete non-existent domain
admin: map unset reject_bad_md5 field to nil
socket/pure_ruby: connect with "exception:false" on Ruby 2.3+
implement :connect_timeout option
add .gitattributes for Ruby method detection
README: stop mentioning cgit
connect_timeout: match :timeout if unset
pkg.mk: use --local option for gem installation
rdoc :: http://bogomips.org/mogilefs-client/
list :: mogilefs-client-public@bogomips.org
list-cc :: mogile@googlegroups.com
list-archive :: http://bogomips.org/mogilefs-client-public/
git clone git://bogomips.org/mogilefs-client.git
nntp://news.public-inbox.org/inbox.comp.file-systems.mogilefs.ruby
^ permalink raw reply [relevance 7%]
* [7/6 PATCH] connect_timeout: match :timeout if unset
@ 2016-08-31 7:09 6% ` Eric Wong
0 siblings, 0 replies; 2+ results
From: Eric Wong @ 2016-08-31 7:09 UTC (permalink / raw)
To: mogilefs-client-public
And add some weak tests while we're at it.
Actually simulating a connection timeout on localhost
will be difficult.
---
lib/mogilefs/backend.rb | 2 +-
test/test_backend.rb | 17 ++++++++++++++++-
2 files changed, 17 insertions(+), 2 deletions(-)
diff --git a/lib/mogilefs/backend.rb b/lib/mogilefs/backend.rb
index 4cf2526..7f91508 100644
--- a/lib/mogilefs/backend.rb
+++ b/lib/mogilefs/backend.rb
@@ -79,7 +79,7 @@ def initialize(args)
@mutex = Mutex.new
@timeout = args[:timeout] || 3
- @connect_timeout = args[:connect_timeout] || 3
+ @connect_timeout = args[:connect_timeout] || @timeout
@socket = nil
@lasterr = nil
@lasterrstr = nil
diff --git a/test/test_backend.rb b/test/test_backend.rb
index 2078e9b..4d41354 100644
--- a/test/test_backend.rb
+++ b/test/test_backend.rb
@@ -25,12 +25,14 @@ def test_initialize
assert_equal ['localhost:1'], @backend.hosts
assert_equal 3, @backend.timeout
+ assert_equal 3, @backend.instance_variable_get(:@connect_timeout)
assert_equal nil, @backend.lasterr
assert_equal nil, @backend.lasterrstr
assert_equal({}, @backend.dead)
@backend = MogileFS::Backend.new :hosts => ['localhost:6001'], :timeout => 1
assert_equal 1, @backend.timeout
+ assert_equal 1, @backend.instance_variable_get(:@connect_timeout)
end
def test_do_request
@@ -223,5 +225,18 @@ def test_fail_timeout
c = MogileFS::MogileFS.new(o)
assert_equal 0.666, c.backend.instance_variable_get(:@fail_timeout)
end
-end
+ def test_connect_timeout
+ o = {
+ :domain => "none",
+ :hosts => %w(0:666 0:6 0:66),
+ :connect_timeout => 1
+ }
+ c = MogileFS::MogileFS.new(o)
+ assert_equal 1, c.backend.instance_variable_get(:@connect_timeout)
+ o[:timeout] = 5
+ c = MogileFS::MogileFS.new(o)
+ assert_equal 1, c.backend.instance_variable_get(:@connect_timeout)
+ assert_equal 5, c.backend.instance_variable_get(:@timeout)
+ end
+end
--
EW
^ permalink raw reply related [relevance 6%]
Results 1-2 of 2 | reverse | options above
-- pct% links below jump to the message on this page, permalinks otherwise --
2016-08-31 2:50 [PATCH 0/6] misc fixes and features Eric Wong
2016-08-31 2:50 ` [PATCH 4/6] implement :connect_timeout option Eric Wong
2016-08-31 7:09 6% ` [7/6 PATCH] connect_timeout: match :timeout if unset Eric Wong
2016-08-31 7:43 7% [ANN] mogilefs-client 3.10.0 - MogileFS client library for Ruby Eric Wong
Code repositories for project(s) associated with this public inbox
https://yhbt.net/mogilefs-client.git/
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).