Permalink
Commits on Nov 12, 2013
  1. Merge pull request #164 from seomoz/improve-memory-logged-message

    myronmarston committed Nov 12, 2013
    Improve memory logged message
  2. Merge pull request #147 from seomoz/fix_memory_issues

    myronmarston committed Nov 12, 2013
    Don't allow a bloated job to permanently keep a worker's memory usage high
  3. Fix typo.

    myronmarston committed Nov 12, 2013
  4. Merge pull request #163 from seomoz/build-on-2.0

    myronmarston committed Nov 12, 2013
    Bun build against 2.0.
Commits on Nov 11, 2013
  1. Harden the test against flickering.

    myronmarston committed Nov 11, 2013
    I found it was passing in isolation but failing
    when run with the whole suite, depending on when
    it runs.  It's best to make it relative to the
    current memory usage of the process.
  2. usage is different on OS X and Linux, apparently.

    myronmarston committed Nov 11, 2013
    On my computer, it returns the memory usage in bytes.
    On a linux server, I SSH'd into, it returns it in KB.
    
    The OS X (BSD) getrusage man page says it is in bytes.
    The Linux man page says it is in KB as of a particular
    Linux version.
    
    We deal with this by comparing the `ps` approach to
    what rusage returns, and optionally dividing by 1024
    if it appears that the amount is coming back in raw bytes.
    
    We also switched everything to KB while we are at it
    as that is easier to deal with.
  3. Switch from proc-wait3 to rusage gem.

    myronmarston committed Nov 7, 2013
    proc-wait3 monkey patches `$?` which was causing
    problems for poltergeist. rusage is lighter weight
    and provides the bit of proc-wait3 we care about.
  4. Bun build against 2.0.

    myronmarston committed Nov 11, 2013
Commits on Nov 7, 2013
  1. Switch from a multiple to an absolute value.

    myronmarston committed Nov 7, 2013
    This is easier to reason about and less prone
    to flapping based on the initial memory varying.
  2. Add nicer formatting.

    myronmarston committed Nov 7, 2013
  3. Move memory monitoring logic to a middleware.

    myronmarston committed Nov 7, 2013
    Dan rightfully pointed out that this logic
    doesn't really belong in the core worker and is
    much more appropriate for a middleware.
  4. Use proc-wait3, when available, to get memory usage.

    myronmarston committed Nov 6, 2013
    It's much, much faster (see the benchmark!).
  5. Add optional debugging info for this spec, and increase timeout.

    myronmarston committed Oct 6, 2013
    Travis needs more time for this spec.
  6. Don't check memory after every job.

    myronmarston committed Oct 6, 2013
    * From my benchmarks, it takes about 3-4ms to get the
      current memory usage since we shell out since ruby
      doesn't provide us with a system call API for that.
    * I don't want to add 3ms to the time it takes to run
      every job.  Adding 3ms to every 10th job isn't so
      bad, though.
  7. Fix "implicit argument passing of super from method defined by define…

    myronmarston committed Nov 7, 2013
    …_method() is not supported. Specify all arguments explicitly."
Commits on Oct 25, 2013
  1. Merge pull request #159 from seomoz/fix-flush

    myronmarston committed Oct 25, 2013
    Fix our redis management for integration tests.
  2. Fix our redis management for integration tests.

    myronmarston committed Oct 25, 2013
    Before, we detected that the redis instance had keys
    in a `before(:each)` hook, and made the spec pending.
    This was intended to keep us from blowing away data
    the user might find useful.  However, we also had an
    `after(:each)` hook that flushed the DB anyway,
    so it didn't really serve it's purpose.
    
    This improved version now checks if the redis DB
    is empty in a `before(:suite)` hook, aborting early
    if it sees there are keys in the DB.  This ensures
    we never flush the DB if it starts non-empty. It
    has the nice side benefit of calling `redis.keys`
    (an O(N) operation generally best avoided) once total,
    rather than once per spec.
Commits on Oct 16, 2013
  1. Merge pull request #156 from seomoz/remove_worker_name

    myronmarston committed Oct 16, 2013
    Remove Qless.worker_name.
  2. Remove Qless.worker_name.

    myronmarston committed Oct 16, 2013
    With the changes in ef2d396,
    it's no longer safe to use when using a forking worker,
    because the worker name used by the client could differ
    from what `Qless.worker_name` returns, given that it's
    lazily initialized, so if it's called for the first
    time in a child process, it'll have a different value
    then what the client is using, causing problems.
    
    Note: this isn't just a theoretic problem; it was happening
    in plines, which referenced Qless.worker_name directly.
  3. Merge pull request #148 from seomoz/remove_thread_raise

    myronmarston committed Oct 16, 2013
    Remove thread raise
  4. Merge branch 'master' into remove_thread_raise

    myronmarston committed Oct 16, 2013
    Conflicts:
    	lib/qless/worker/base.rb
    	lib/qless/worker/forking.rb
    	spec/integration/workers/forking_spec.rb
    	spec/spec_helper.rb
  5. Merge pull request #155 from seomoz/dan_remove_thread_raise

    myronmarston committed Oct 16, 2013
    Updating to modified qless-core that includes a worker in 'put'
Commits on Oct 15, 2013
  1. Merge pull request #149 from seomoz/after_fork_hook

    myronmarston committed Oct 15, 2013
    Adds an after fork hook for workers.
Commits on Oct 14, 2013
  1. Merge pull request #154 from seomoz/backport_drain_worker_queues

    myronmarston committed Oct 14, 2013
    Backport drain worker queues