Ruby mogilefs-client dev/users discussion/patches/bugs/help/...
 help / color / mirror / code / Atom feed
Search results ordered by [date|relevance]  view[summary|nested|Atom feed]
thread overview below | download mbox.gz: |
* [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).