Commits on Aug 18, 2015
  1. Fix Redis eval pattern

    avar committed Aug 18, 2015
  2. Stop using Carp, just use die instead

    This results in us getting the stacktrace twice if we have a handler
    that already gets it for us:
        $ perl -MCarp=croak -wE '$SIG{__DIE__} = sub {warn "<@_>"}; sub moo {croak("hi")} moo()'
        <hi at -e line 1.
                main::moo() called at -e line 1
        > at -e line 1.
        hi at -e line 1.
                main::moo() called at -e line 1
    avar committed Aug 18, 2015
Commits on Oct 3, 2014
  1. Redis doesn't encode/decode stuff, for some time now, so it should be…

    … safe to remove this
    dams committed Oct 3, 2014
Commits on Jun 14, 2014
  1. v0.20

      - In addition to reconnecting if we get a MySQL error matching
        "MySQL server has gone away" we now also reconnect if the error
        matches "Lost connection to MySQL server during query".
    avar committed Jun 14, 2014
  2. Bump dist.ini for 0.20

    avar committed Jun 14, 2014
  3. Reconnect to MySQL on "Lost connection to MySQL server during query"

    This change adds detection for another recoverable MySQL error, see
    ffb4d57 and 8e60c92 in the work code. I have a local monkeypatch for
    ShardedKV::Storage::MySQL::_run_sql added in the latter that I can
    remove when I release this.
    avar committed Jun 14, 2014
Commits on Mar 19, 2014
  1. v0.19

      - This module is *no longer* considered experimental. It's been used
        in production at for a long time now without much
      - Several minor bugfixes like "use"-ing a module that might be used
        for exceptions, fixing some exception logic.
      - Try to deal with Redis clients that have gone away for whatever
        reason (likely due to errors) by resetting the Redis connection on
    avar committed Mar 19, 2014
  2. Amend the 0.19 changelog

    avar committed Mar 19, 2014
Commits on Jan 14, 2014
  1. Merge pull request #3 from dams/master

    fix critical typo in Redis connection creation, and reset connection when an exception is thrown
    committed Jan 14, 2014
  2. reset Redis connection in case of exception, to avoid desynchronizati…

    …on in Redis protocol
    dams committed Jan 14, 2014
  3. we want to be the redis instance, not 1. will always be true except i…

    …f an exception arose, no need for the final 1
    dams committed Jan 14, 2014
  4. Merge pull request #2 from avar/misc-fixes

    Misc fixes
    committed Jan 14, 2014
  5. Redis::Hash: Better error message when returning odd number of hgetal…

    …l() elements
    I can't reproduce this now but at an outage at work I started getting
    "Odd number of elements in hash assignment at
    [...]/lib/ShardedKV/Storage/Redis/ line 20". This likely had
    something to do with a stale persistent connection to Redis instance
    from a long-living uWSGI, because it only happened on a subset of the
    machines talking to Redis, and went away when uWSGI restarted.
    In any case made this code a bit more defensive so if it happens again
    then we'll have better error reporting, likely this was just
    returning (undef) or something like that.
    This happned against version 1.967, the latest current CPAN
    avar committed Jan 14, 2014
  6. Normalize use of eval

    A lot of this code would call methods and whatnot before accessing $@,
    which is a logic error, it also conflated returning false from a method
    with dying.
    avar committed Jan 14, 2014
Commits on Dec 13, 2013
Commits on Nov 4, 2013
  1. Duh, fix ketama arg validation logic

    Kind of embarrassing. Thanks to Ruud for spotting it.
    committed Nov 4, 2013
Commits on Sep 27, 2013
  1. Merge pull request #1 from ksurent/master

    actually `use` exception classes
    dgryski committed Sep 27, 2013
Commits on Sep 26, 2013
  1. actually `use` exception classes

    this is to prevent errors like this:
    Can't locate object method "throw" via package "ShardedKV::Error::ReadFail" (perhaps you forgot to load "ShardedKV::Error::ReadFail"?) at [snip]/ShardedKV/Storage/ line 344.
    ksurent committed Sep 26, 2013
Commits on May 28, 2013
  1. v0.18

      - Auto-reconnect options for Redis storage backend.
    committed May 28, 2013
  2. changelog and version bump

    committed May 28, 2013
  3. Test for Redis reconnect logic

    committed May 28, 2013
Commits on Feb 28, 2013
  1. v0.17

      - Correctly capture exception messages so they proprogated
      - Add a new exception type DeleteFail (this was uncovered before)
    nperez committed Feb 28, 2013
  2. Correct the problems with the exceptions not reporting the actual rea…

    …son for the exception occuring. Also add a new exception type for coverage when deletes happen.
    nperez committed Feb 28, 2013
Commits on Jan 28, 2013
  1. v0.16

      - Implement reset_connection($key) at the top level
      - Add tests for reset_connection() functionality
      - Fix some POD retardedness
      - Fix a bug in MySQL storage reset_connection
    nperez committed Jan 28, 2013
  2. Add tests for reconnect logic

    nperez committed Jan 28, 2013
Commits on Jan 22, 2013
  1. v0.15

      - Ugh. Forgot the damn Throwable dep
    nperez committed Jan 22, 2013