Skip to content

Instantly share code, notes, and snippets.

@2called-chaos
Last active February 12, 2018 14:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save 2called-chaos/ea59493e88f5d9ddcbac4b5e63bdb77f to your computer and use it in GitHub Desktop.
Save 2called-chaos/ea59493e88f5d9ddcbac4b5e63bdb77f to your computer and use it in GitHub Desktop.
[ERROR] SklavenTreiber::Worker encountered an error in `l_decompress_file' (ctn: gp, var: unheavy, db: tomatic, table: ip_bans)
IOError: closed stream
/Users/chaos/.gem/ruby/2.1.1/gems/db_sucker-3.0.3/lib/db_sucker/application/sklaven_treiber/worker/io/file_gunzip.rb:45:in `close'
/Users/chaos/.gem/ruby/2.1.1/gems/db_sucker-3.0.3/lib/db_sucker/application/sklaven_treiber/worker/io/file_gunzip.rb:45:in `block in gunzip!'
/Users/chaos/.gem/ruby/2.1.1/gems/db_sucker-3.0.3/lib/db_sucker/application/sklaven_treiber/worker/io/throughput.rb:207:in `call'
/Users/chaos/.gem/ruby/2.1.1/gems/db_sucker-3.0.3/lib/db_sucker/application/sklaven_treiber/worker/io/throughput.rb:207:in `measure'
/Users/chaos/.gem/ruby/2.1.1/gems/db_sucker-3.0.3/lib/db_sucker/application/sklaven_treiber/worker/io/base.rb:88:in `execute'
/Users/chaos/.gem/ruby/2.1.1/gems/db_sucker-3.0.3/lib/db_sucker/application/sklaven_treiber/worker/io/file_gunzip.rb:23:in `gunzip!'
/Users/chaos/.gem/ruby/2.1.1/gems/db_sucker-3.0.3/lib/db_sucker/application/sklaven_treiber/worker/routines.rb:210:in `block in _l_decompress_file'
/Users/chaos/.gem/ruby/2.1.1/gems/activesupport-4.2.5/lib/active_support/core_ext/object/try.rb:77:in `call'
/Users/chaos/.gem/ruby/2.1.1/gems/activesupport-4.2.5/lib/active_support/core_ext/object/try.rb:77:in `public_send'
/Users/chaos/.gem/ruby/2.1.1/gems/activesupport-4.2.5/lib/active_support/core_ext/object/try.rb:77:in `try!'
/Users/chaos/.gem/ruby/2.1.1/gems/activesupport-4.2.5/lib/active_support/core_ext/object/try.rb:63:in `try'
/Users/chaos/.gem/ruby/2.1.1/gems/db_sucker-3.0.3/lib/db_sucker/application/sklaven_treiber/worker/helpers.rb:26:in `block in file_gunzip'
/Users/chaos/.gem/ruby/2.1.1/gems/db_sucker-3.0.3/lib/db_sucker/application/sklaven_treiber/worker/helpers.rb:25:in `tap'
/Users/chaos/.gem/ruby/2.1.1/gems/db_sucker-3.0.3/lib/db_sucker/application/sklaven_treiber/worker/helpers.rb:25:in `file_gunzip'
/Users/chaos/.gem/ruby/2.1.1/gems/db_sucker-3.0.3/lib/db_sucker/application/sklaven_treiber/worker/routines.rb:198:in `_l_decompress_file'
/Users/chaos/.gem/ruby/2.1.1/gems/db_sucker-3.0.3/lib/db_sucker/application/sklaven_treiber/worker/core.rb:124:in `block (4 levels) in run'
/Users/chaos/.gem/ruby/2.1.1/gems/db_sucker-3.0.3/lib/db_sucker/application/sklaven_treiber/worker/helpers.rb:74:in `call'
/Users/chaos/.gem/ruby/2.1.1/gems/db_sucker-3.0.3/lib/db_sucker/application/sklaven_treiber/worker/helpers.rb:74:in `aquire_slots'
/Users/chaos/.gem/ruby/2.1.1/gems/db_sucker-3.0.3/lib/db_sucker/application/sklaven_treiber/worker/core.rb:120:in `block (3 levels) in run'
/Users/chaos/.gem/ruby/2.1.1/gems/db_sucker-3.0.3/lib/db_sucker/application/sklaven_treiber/worker/core.rb:119:in `catch'
/Users/chaos/.gem/ruby/2.1.1/gems/db_sucker-3.0.3/lib/db_sucker/application/sklaven_treiber/worker/core.rb:119:in `block (2 levels) in run'
/Users/chaos/.gem/ruby/2.1.1/gems/db_sucker-3.0.3/lib/db_sucker/application/sklaven_treiber/worker/core.rb:115:in `each'
/Users/chaos/.gem/ruby/2.1.1/gems/db_sucker-3.0.3/lib/db_sucker/application/sklaven_treiber/worker/core.rb:115:in `each_with_index'
/Users/chaos/.gem/ruby/2.1.1/gems/db_sucker-3.0.3/lib/db_sucker/application/sklaven_treiber/worker/core.rb:115:in `block in run'
/Users/chaos/.gem/ruby/2.1.1/gems/db_sucker-3.0.3/lib/db_sucker/application/sklaven_treiber/worker/core.rb:114:in `catch'
/Users/chaos/.gem/ruby/2.1.1/gems/db_sucker-3.0.3/lib/db_sucker/application/sklaven_treiber/worker/core.rb:114:in `run'
/Users/chaos/.gem/ruby/2.1.1/gems/db_sucker-3.0.3/lib/db_sucker/application/sklaven_treiber.rb:263:in `block in _queueoff'
/Users/chaos/.gem/ruby/2.1.1/gems/db_sucker-3.0.3/lib/db_sucker/application/sklaven_treiber.rb:253:in `loop'
/Users/chaos/.gem/ruby/2.1.1/gems/db_sucker-3.0.3/lib/db_sucker/application/sklaven_treiber.rb:253:in `_queueoff'
/Users/chaos/.gem/ruby/2.1.1/gems/db_sucker-3.0.3/lib/db_sucker/application/sklaven_treiber.rb:234:in `block (2 levels) in _run_in_threads'
/Users/chaos/.gem/ruby/2.1.1/gems/db_sucker-3.0.3/lib/db_sucker/application/core.rb:93:in `call'
/Users/chaos/.gem/ruby/2.1.1/gems/db_sucker-3.0.3/lib/db_sucker/application/core.rb:93:in `block (2 levels) in spawn_thread'
module DbSucker
class Application
class SklavenTreiber
class Worker
module IO
class FileGunzip < Base
attr_accessor :use_tmp
attr_accessor :preserve_original
def init
@label = "decompressing"
@entity = "decompress"
@use_tmp = true
@preserve_original = false
@local ||= "#{File.dirname(@remote)}/#{File.basename(@remote, ".gz")}"
@throughput.categories << :io << :io_gunzip
end
def gunzip! opts = {}
opts = opts.reverse_merge(tries: 1, read_size: @read_size)
prepare_local_destination
execute(opts.slice(:tries).merge(sleep_error: 3)) do
@tmploc = @use_tmp ? "#{@local}.tmp" : @local
@in_file = File.new(@remote, "rb")
@out_file = File.new(@tmploc, "wb")
@filesize = @in_file.size if @filesize.zero?
@state = :decompressing
gz = Zlib::GzipReader.new(@in_file)
begin
while buf = gz.read(opts[:read_size])
if !@closing && @abort_if.call(self)
@closing = true
break
end
@offset += [opts[:read_size], @filesize - @offset].min
@out_file.syswrite(buf)
GC.start if @offset % GC_FORCE_RATE == 0
end
ensure
@state = :finishing
gz.close
@in_file.close
@out_file.close
end
FileUtils.mv(@tmploc, @local) if @use_tmp
File.unlink(@remote) unless @preserve_original
end
end
end
end
end
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment