[:errorI"AErrno::ENOSPC: No space left on device @ io_write - :EF[I"[/usr/local/rvm/gems/ruby-2.2.2/gems/rack-2.0.5/lib/rack/common_logger.rb:61:in `write';FI"Y/usr/local/rvm/gems/ruby-2.2.2/gems/rack-2.0.5/lib/rack/common_logger.rb:61:in `log';FI"c/usr/local/rvm/gems/ruby-2.2.2/gems/rack-2.0.5/lib/rack/common_logger.rb:35:in `block in call';FI"W/usr/local/rvm/gems/ruby-2.2.2/gems/rack-2.0.5/lib/rack/body_proxy.rb:23:in `call';FI"X/usr/local/rvm/gems/ruby-2.2.2/gems/rack-2.0.5/lib/rack/body_proxy.rb:23:in `close';FI"e/usr/local/rvm/gems/ruby-2.2.2/gems/shotgun-0.9.2/lib/shotgun/loader.rb:89:in `proceed_as_child';FI"Z/usr/local/rvm/gems/ruby-2.2.2/gems/shotgun-0.9.2/lib/shotgun/loader.rb:31:in `call!';FI"Y/usr/local/rvm/gems/ruby-2.2.2/gems/shotgun-0.9.2/lib/shotgun/loader.rb:18:in `call';FI"Z/usr/local/rvm/gems/ruby-2.2.2/gems/shotgun-0.9.2/lib/shotgun/favicon.rb:12:in `call';FI"\/usr/local/rvm/gems/ruby-2.2.2/gems/rack-2.0.5/lib/rack/urlmap.rb:68:in `block in call';FI"S/usr/local/rvm/gems/ruby-2.2.2/gems/rack-2.0.5/lib/rack/urlmap.rb:53:in `each';FI"S/usr/local/rvm/gems/ruby-2.2.2/gems/rack-2.0.5/lib/rack/urlmap.rb:53:in `call';FI"U/usr/local/rvm/gems/ruby-2.2.2/gems/rack-2.0.5/lib/rack/builder.rb:153:in `call';FI"\/usr/local/rvm/gems/ruby-2.2.2/gems/puma-3.12.0/lib/puma/configuration.rb:225:in `call';FI"_/usr/local/rvm/gems/ruby-2.2.2/gems/puma-3.12.0/lib/puma/server.rb:658:in `handle_request';FI"_/usr/local/rvm/gems/ruby-2.2.2/gems/puma-3.12.0/lib/puma/server.rb:472:in `process_client';FI"]/usr/local/rvm/gems/ruby-2.2.2/gems/puma-3.12.0/lib/puma/server.rb:332:in `block in run';FI"Z/usr/local/rvm/gems/ruby-2.2.2/gems/puma-3.12.0/lib/puma/thread_pool.rb:133:in `call';FI"k/usr/local/rvm/gems/ruby-2.2.2/gems/puma-3.12.0/lib/puma/thread_pool.rb:133:in `block in spawn_thread';FHTTP/1.1 500 Internal Server Error Content-Type: text/html Content-Length: 150116 Errno::ENOSPC at /media/Bxf7QA0nxgV

BACKTRACE

(expand)

  • /usr/local/rvm/gems/ruby-2.2.2/gems/rack-2.0.5/lib/rack/lint.rb in write
    1. def initialize(error)
    2. @error = error
    3. end
    4. ## * +puts+ must be called with a single argument that responds to +to_s+.
    5. def puts(str)
    1. @error.puts str
    1. end
    2. ## * +write+ must be called with a single argument that is a String.
    3. def write(str)
    4. assert("rack.errors#write not called with a String") { str.kind_of? String }
    5. @error.write str
    6. end
  • /usr/local/rvm/gems/ruby-2.2.2/gems/rack-2.0.5/lib/rack/lint.rb in puts
    1. def initialize(error)
    2. @error = error
    3. end
    4. ## * +puts+ must be called with a single argument that responds to +to_s+.
    5. def puts(str)
    1. @error.puts str
    1. end
    2. ## * +write+ must be called with a single argument that is a String.
    3. def write(str)
    4. assert("rack.errors#write not called with a String") { str.kind_of? String }
    5. @error.write str
    6. end
  • /usr/local/rvm/gems/ruby-2.2.2/gems/rack-2.0.5/lib/rack/lint.rb in puts
    1. def initialize(error)
    2. @error = error
    3. end
    4. ## * +puts+ must be called with a single argument that responds to +to_s+.
    5. def puts(str)
    1. @error.puts str
    1. end
    2. ## * +write+ must be called with a single argument that is a String.
    3. def write(str)
    4. assert("rack.errors#write not called with a String") { str.kind_of? String }
    5. @error.write str
    6. end
  • /usr/local/rvm/gems/ruby-2.2.2/gems/sinatra-2.0.3/lib/sinatra/base.rb in dump_errors!
    1. end
    2. return false unless key.respond_to? :superclass and key.superclass < Exception
    3. error_block!(key.superclass, *block_params)
    4. end
    5. def dump_errors!(boom)
    6. msg = ["#{Time.now.strftime("%Y-%m-%d %H:%M:%S")} - #{boom.class} - #{boom.message}:", *boom.backtrace].join("\n\t")
    1. @env['rack.errors'].puts(msg)
    1. end
    2. class << self
    3. CALLERS_TO_IGNORE = [ # :nodoc:
    4. /\/sinatra(\/(base|main|show_exceptions))?\.rb$/, # all sinatra code
    5. /lib\/tilt.*\.rb$/, # all tilt code
    6. /^\(.*\)$/, # generated code
  • /usr/local/rvm/gems/ruby-2.2.2/gems/sinatra-2.0.3/lib/sinatra/base.rb in handle_exception!
    1. status(500)
    2. end
    3. status(500) unless status.between? 400, 599
    4. boom_message = boom.message if boom.message && boom.message != boom.class.name
    5. if server_error?
    1. dump_errors! boom if settings.dump_errors?
    1. raise boom if settings.show_exceptions? and settings.show_exceptions != :after_handler
    2. elsif not_found?
    3. headers['X-Cascade'] = 'pass' if settings.x_cascade?
    4. body boom_message || '<h1>Not Found</h1>'
    5. elsif bad_request?
    6. body boom_message || '<h1>Bad Request</h1>'
    7. end
  • /usr/local/rvm/gems/ruby-2.2.2/gems/sinatra-2.0.3/lib/sinatra/base.rb in block in dispatch!
    1. invoke do
    2. static! if settings.static? && (request.get? || request.head?)
    3. filter! :before
    4. route!
    5. end
    6. rescue ::Exception => boom
    1. invoke { handle_exception!(boom) }
    1. ensure
    2. begin
    3. filter! :after unless env['sinatra.static_file']
    4. rescue ::Exception => boom
    5. invoke { handle_exception!(boom) } unless @env['sinatra.error']
    6. end
    7. end
  • /usr/local/rvm/gems/ruby-2.2.2/gems/sinatra-2.0.3/lib/sinatra/base.rb in block in invoke
    1. env['sinatra.static_file'] = path
    2. cache_control(*settings.static_cache_control) if settings.static_cache_control?
    3. send_file path, options.merge(:disposition => nil)
    4. end
    5. # Run the block with 'throw :halt' support and apply result to the response.
    6. def invoke
    1. res = catch(:halt) { yield }
    1. res = [res] if Integer === res or String === res
    2. if Array === res and Integer === res.first
    3. res = res.dup
    4. status(res.shift)
    5. body(res.pop)
    6. headers(*res)
  • /usr/local/rvm/gems/ruby-2.2.2/gems/sinatra-2.0.3/lib/sinatra/base.rb in catch
    1. env['sinatra.static_file'] = path
    2. cache_control(*settings.static_cache_control) if settings.static_cache_control?
    3. send_file path, options.merge(:disposition => nil)
    4. end
    5. # Run the block with 'throw :halt' support and apply result to the response.
    6. def invoke
    1. res = catch(:halt) { yield }
    1. res = [res] if Integer === res or String === res
    2. if Array === res and Integer === res.first
    3. res = res.dup
    4. status(res.shift)
    5. body(res.pop)
    6. headers(*res)
  • /usr/local/rvm/gems/ruby-2.2.2/gems/sinatra-2.0.3/lib/sinatra/base.rb in invoke
    1. env['sinatra.static_file'] = path
    2. cache_control(*settings.static_cache_control) if settings.static_cache_control?
    3. send_file path, options.merge(:disposition => nil)
    4. end
    5. # Run the block with 'throw :halt' support and apply result to the response.
    6. def invoke
    1. res = catch(:halt) { yield }
    1. res = [res] if Integer === res or String === res
    2. if Array === res and Integer === res.first
    3. res = res.dup
    4. status(res.shift)
    5. body(res.pop)
    6. headers(*res)
  • /usr/local/rvm/gems/ruby-2.2.2/gems/sinatra-2.0.3/lib/sinatra/base.rb in rescue in dispatch!
    1. invoke do
    2. static! if settings.static? && (request.get? || request.head?)
    3. filter! :before
    4. route!
    5. end
    6. rescue ::Exception => boom
    1. invoke { handle_exception!(boom) }
    1. ensure
    2. begin
    3. filter! :after unless env['sinatra.static_file']
    4. rescue ::Exception => boom
    5. invoke { handle_exception!(boom) } unless @env['sinatra.error']
    6. end
    7. end
  • /usr/local/rvm/gems/ruby-2.2.2/gems/sinatra-2.0.3/lib/sinatra/base.rb in dispatch!
    1. invoke { handle_exception!(boom) }
    2. ensure
    3. begin
    4. filter! :after unless env['sinatra.static_file']
    5. rescue ::Exception => boom
    6. invoke { handle_exception!(boom) } unless @env['sinatra.error']
    7. end
    1. end
    1. # Error handling during requests.
    2. def handle_exception!(boom)
    3. if error_params = @env['sinatra.error.params']
    4. @params = @params.merge(error_params)
    5. end
    6. @env['sinatra.error'] = boom
  • /usr/local/rvm/gems/ruby-2.2.2/gems/sinatra-2.0.3/lib/sinatra/base.rb in block in call!
    1. @env = env
    2. @params = IndifferentHash.new
    3. @request = Request.new(env)
    4. @response = Response.new
    5. template_cache.clear if settings.reload_templates
    6. @response['Content-Type'] = nil
    1. invoke { dispatch! }
    1. invoke { error_block!(response.status) } unless @env['sinatra.error']
    2. unless @response['Content-Type']
    3. if Array === body and body[0].respond_to? :content_type
    4. content_type body[0].content_type
    5. else
    6. content_type :html
  • /usr/local/rvm/gems/ruby-2.2.2/gems/sinatra-2.0.3/lib/sinatra/base.rb in block in invoke
    1. env['sinatra.static_file'] = path
    2. cache_control(*settings.static_cache_control) if settings.static_cache_control?
    3. send_file path, options.merge(:disposition => nil)
    4. end
    5. # Run the block with 'throw :halt' support and apply result to the response.
    6. def invoke
    1. res = catch(:halt) { yield }
    1. res = [res] if Integer === res or String === res
    2. if Array === res and Integer === res.first
    3. res = res.dup
    4. status(res.shift)
    5. body(res.pop)
    6. headers(*res)
  • /usr/local/rvm/gems/ruby-2.2.2/gems/sinatra-2.0.3/lib/sinatra/base.rb in catch
    1. env['sinatra.static_file'] = path
    2. cache_control(*settings.static_cache_control) if settings.static_cache_control?
    3. send_file path, options.merge(:disposition => nil)
    4. end
    5. # Run the block with 'throw :halt' support and apply result to the response.
    6. def invoke
    1. res = catch(:halt) { yield }
    1. res = [res] if Integer === res or String === res
    2. if Array === res and Integer === res.first
    3. res = res.dup
    4. status(res.shift)
    5. body(res.pop)
    6. headers(*res)
  • /usr/local/rvm/gems/ruby-2.2.2/gems/sinatra-2.0.3/lib/sinatra/base.rb in invoke
    1. env['sinatra.static_file'] = path
    2. cache_control(*settings.static_cache_control) if settings.static_cache_control?
    3. send_file path, options.merge(:disposition => nil)
    4. end
    5. # Run the block with 'throw :halt' support and apply result to the response.
    6. def invoke
    1. res = catch(:halt) { yield }
    1. res = [res] if Integer === res or String === res
    2. if Array === res and Integer === res.first
    3. res = res.dup
    4. status(res.shift)
    5. body(res.pop)
    6. headers(*res)
  • /usr/local/rvm/gems/ruby-2.2.2/gems/sinatra-2.0.3/lib/sinatra/base.rb in call!
    1. @env = env
    2. @params = IndifferentHash.new
    3. @request = Request.new(env)
    4. @response = Response.new
    5. template_cache.clear if settings.reload_templates
    6. @response['Content-Type'] = nil
    1. invoke { dispatch! }
    1. invoke { error_block!(response.status) } unless @env['sinatra.error']
    2. unless @response['Content-Type']
    3. if Array === body and body[0].respond_to? :content_type
    4. content_type body[0].content_type
    5. else
    6. content_type :html
  • /usr/local/rvm/gems/ruby-2.2.2/gems/sinatra-2.0.3/lib/sinatra/base.rb in call
    1. @app = app
    2. @template_cache = Tilt::Cache.new
    3. yield self if block_given?
    4. end
    5. # Rack call interface.
    6. def call(env)
    1. dup.call!(env)
    1. end
    2. def call!(env) # :nodoc:
    3. @env = env
    4. @params = IndifferentHash.new
    5. @request = Request.new(env)
    6. @response = Response.new
  • /usr/local/rvm/gems/ruby-2.2.2/gems/rack-protection-2.0.3/lib/rack/protection/xss_header.rb in call
    1. #
    2. # Options:
    3. # xss_mode:: How the browser should prevent the attack (default: :block)
    4. class XSSHeader < Base
    5. default_options :xss_mode => :block, :nosniff => true
    6. def call(env)
    1. status, headers, body = @app.call(env)
    1. headers['X-XSS-Protection'] ||= "1; mode=#{options[:xss_mode]}" if html? headers
    2. headers['X-Content-Type-Options'] ||= 'nosniff' if options[:nosniff]
    3. [status, headers, body]
    4. end
    5. end
    6. end
    7. end
  • /usr/local/rvm/gems/ruby-2.2.2/gems/rack-protection-2.0.3/lib/rack/protection/path_traversal.rb in call
    1. #
    2. # Unescapes '/' and '.', expands +path_info+.
    3. # Thus <tt>GET /foo/%2e%2e%2fbar</tt> becomes <tt>GET /bar</tt>.
    4. class PathTraversal < Base
    5. def call(env)
    6. path_was = env["PATH_INFO"]
    7. env["PATH_INFO"] = cleanup path_was if path_was && !path_was.empty?
    1. app.call env
    1. ensure
    2. env["PATH_INFO"] = path_was
    3. end
    4. def cleanup(path)
    5. if path.respond_to?(:encoding)
    6. # Ruby 1.9+ M17N
  • /usr/local/rvm/gems/ruby-2.2.2/gems/rack-protection-2.0.3/lib/rack/protection/json_csrf.rb in call
    1. class JsonCsrf < Base
    2. default_options :allow_if => nil
    3. alias react deny
    4. def call(env)
    5. request = Request.new(env)
    1. status, headers, body = app.call(env)
    1. if has_vector?(request, headers)
    2. warn env, "attack prevented by #{self.class}"
    3. react_and_close(env, body) or [status, headers, body]
    4. else
    5. [status, headers, body]
  • /usr/local/rvm/gems/ruby-2.2.2/gems/rack-protection-2.0.3/lib/rack/protection/base.rb in call
    1. end
    2. def call(env)
    3. unless accepts? env
    4. instrument env
    5. result = react env
    6. end
    1. result or app.call(env)
    1. end
    2. def react(env)
    3. result = send(options[:reaction], env)
    4. result if Array === result and result.size == 3
    5. end
  • /usr/local/rvm/gems/ruby-2.2.2/gems/rack-protection-2.0.3/lib/rack/protection/base.rb in call
    1. end
    2. def call(env)
    3. unless accepts? env
    4. instrument env
    5. result = react env
    6. end
    1. result or app.call(env)
    1. end
    2. def react(env)
    3. result = send(options[:reaction], env)
    4. result if Array === result and result.size == 3
    5. end
  • /usr/local/rvm/gems/ruby-2.2.2/gems/rack-protection-2.0.3/lib/rack/protection/frame_options.rb in call
    1. frame_options = options[:frame_options]
    2. frame_options = options[:frame_options].to_s.upcase unless frame_options.respond_to? :to_str
    3. frame_options.to_str
    4. end
    5. end
    6. def call(env)
    1. status, headers, body = @app.call(env)
    1. headers['X-Frame-Options'] ||= frame_options if html? headers
    2. [status, headers, body]
    3. end
    4. end
    5. end
    6. end
  • /usr/local/rvm/gems/ruby-2.2.2/gems/rack-2.0.5/lib/rack/null_logger.rb in call
    1. class NullLogger
    2. def initialize(app)
    3. @app = app
    4. end
    5. def call(env)
    6. env[RACK_LOGGER] = self
    1. @app.call(env)
    1. end
    2. def info(progname = nil, &block); end
    3. def debug(progname = nil, &block); end
    4. def warn(progname = nil, &block); end
    5. def error(progname = nil, &block); end
    6. def fatal(progname = nil, &block); end
  • /usr/local/rvm/gems/ruby-2.2.2/gems/rack-2.0.5/lib/rack/head.rb in call
    1. # all other requests unchanged.
    2. class Head
    3. def initialize(app)
    4. @app = app
    5. end
    6. def call(env)
    1. status, headers, body = @app.call(env)
    1. if env[REQUEST_METHOD] == HEAD
    2. [
    3. status, headers, Rack::BodyProxy.new([]) do
    4. body.close if body.respond_to? :close
    5. end
    6. ]
  • /usr/local/rvm/gems/ruby-2.2.2/gems/rack-2.0.5/lib/rack/method_override.rb in call
    1. method = method_override(env)
    2. if HTTP_METHODS.include?(method)
    3. env[RACK_METHODOVERRIDE_ORIGINAL_METHOD] = env[REQUEST_METHOD]
    4. env[REQUEST_METHOD] = method
    5. end
    6. end
    1. @app.call(env)
    1. end
    2. def method_override(env)
    3. req = Request.new(env)
    4. method = method_override_param(req) ||
    5. env[HTTP_METHOD_OVERRIDE_HEADER]
    6. begin
  • /usr/local/rvm/gems/ruby-2.2.2/gems/sinatra-2.0.3/lib/sinatra/show_exceptions.rb in call
    1. def @@eats_errors.puts(*) end
    2. def initialize(app)
    3. @app = app
    4. end
    5. def call(env)
    1. @app.call(env)
    1. rescue Exception => e
    2. errors, env["rack.errors"] = env["rack.errors"], @@eats_errors
    3. if prefers_plain_text?(env)
    4. content_type = "text/plain"
    5. body = dump_exception(e)
    6. else
  • /usr/local/rvm/gems/ruby-2.2.2/gems/sinatra-2.0.3/lib/sinatra/base.rb in call
    1. # Some Rack handlers (Thin, Rainbows!) implement an extended body object protocol, however,
    2. # some middleware (namely Rack::Lint) will break it by not mirroring the methods in question.
    3. # This middleware will detect an extended body object and will make sure it reaches the
    4. # handler directly. We do this here, so our middleware and middleware set up by the app will
    5. # still be able to run.
    6. class ExtendedRack < Struct.new(:app)
    7. def call(env)
    1. result, callback = app.call(env), env['async.callback']
    1. return result unless callback and async?(*result)
    2. after_response { callback.call result }
    3. setup_close(env, *result)
    4. throw :async
    5. end
    6. private
  • /usr/local/rvm/gems/ruby-2.2.2/gems/sinatra-2.0.3/lib/sinatra/base.rb in call
    1. end
    2. def helpers
    3. @instance
    4. end
    5. def call(env)
    1. @stack.call(env)
    1. end
    2. def inspect
    3. "#<#{@instance.class} app_file=#{settings.app_file.inspect}>"
    4. end
    5. end
  • /usr/local/rvm/gems/ruby-2.2.2/gems/sinatra-2.0.3/lib/sinatra/base.rb in block in call
    1. setup_default_middleware builder
    2. setup_middleware builder
    3. builder.run app
    4. builder
    5. end
    6. def call(env)
    1. synchronize { prototype.call(env) }
    1. end
    2. # Like Kernel#caller but excluding certain magic entries and without
    3. # line / method information; the resulting array contains filenames only.
    4. def caller_files
    5. cleaned_caller(1).flatten
    6. end
  • /usr/local/rvm/gems/ruby-2.2.2/gems/sinatra-2.0.3/lib/sinatra/base.rb in synchronize
    1. end
    2. @@mutex = Mutex.new
    3. def synchronize(&block)
    4. if lock?
    5. @@mutex.synchronize(&block)
    6. else
    1. yield
    1. end
    2. end
    3. # used for deprecation warnings
    4. def warn(message)
    5. super message + "\n\tfrom #{cleaned_caller.first.join(':')}"
    6. end
  • /usr/local/rvm/gems/ruby-2.2.2/gems/sinatra-2.0.3/lib/sinatra/base.rb in call
    1. setup_default_middleware builder
    2. setup_middleware builder
    3. builder.run app
    4. builder
    5. end
    6. def call(env)
    1. synchronize { prototype.call(env) }
    1. end
    2. # Like Kernel#caller but excluding certain magic entries and without
    3. # line / method information; the resulting array contains filenames only.
    4. def caller_files
    5. cleaned_caller(1).flatten
    6. end
  • /usr/local/rvm/gems/ruby-2.2.2/gems/rack-2.0.5/lib/rack/lint.rb in _call
    1. assert("No env given") { env }
    2. check_env env
    3. env[RACK_INPUT] = InputWrapper.new(env[RACK_INPUT])
    4. env[RACK_ERRORS] = ErrorWrapper.new(env[RACK_ERRORS])
    5. ## and returns an Array of exactly three values:
    1. status, headers, @body = @app.call(env)
    1. ## The *status*,
    2. check_status status
    3. ## the *headers*,
    4. check_headers headers
    5. check_hijack_response headers, env
  • /usr/local/rvm/gems/ruby-2.2.2/gems/rack-2.0.5/lib/rack/lint.rb in call
    1. ## after to catch all mistakes.
    2. ## = Rack applications
    3. ## A Rack application is a Ruby object (not a class) that
    4. ## responds to +call+.
    5. def call(env=nil)
    1. dup._call(env)
    1. end
    2. def _call(env)
    3. ## It takes exactly one argument, the *environment*
    4. assert("No env given") { env }
    5. check_env env
  • /usr/local/rvm/gems/ruby-2.2.2/gems/rack-2.0.5/lib/rack/show_exceptions.rb in call
    1. CONTEXT = 7
    2. def initialize(app)
    3. @app = app
    4. end
    5. def call(env)
    1. @app.call(env)
    1. rescue StandardError, LoadError, SyntaxError => e
    2. exception_string = dump_exception(e)
    3. env[RACK_ERRORS].puts(exception_string)
    4. env[RACK_ERRORS].flush
    5. if accepts_html?(env)
  • /usr/local/rvm/gems/ruby-2.2.2/gems/rack-2.0.5/lib/rack/common_logger.rb in call
    1. def initialize(app, logger=nil)
    2. @app = app
    3. @logger = logger
    4. end
    5. def call(env)
    6. began_at = Time.now
    1. status, header, body = @app.call(env)
    1. header = Utils::HeaderHash.new(header)
    2. body = BodyProxy.new(body) { log(env, status, header, began_at) }
    3. [status, header, body]
    4. end
    5. private
  • /usr/local/rvm/gems/ruby-2.2.2/gems/sinatra-2.0.3/lib/sinatra/base.rb in call
    1. env['sinatra.commonlogger'] ? @app.call(env) : super
    2. end
    3. superclass.class_eval do
    4. alias call_without_check call unless method_defined? :call_without_check
    5. def call(env)
    6. env['sinatra.commonlogger'] = true
    1. call_without_check(env)
    1. end
    2. end
    3. end
    4. class BadRequest < TypeError #:nodoc:
    5. def http_status; 400 end
    6. end
  • /usr/local/rvm/gems/ruby-2.2.2/gems/shotgun-0.9.2/lib/shotgun/loader.rb in proceed_as_child
    1. ##
    2. # Stuff that happens in the child process
    3. def proceed_as_child
    4. boom = false
    5. @reader.close
    1. status, headers, body = assemble_app.call(@env)
    1. Marshal.dump([:ok, status, headers.to_hash], @writer)
    2. spec_body(body).each { |chunk| @writer.write(chunk) }
    3. body.close if body.respond_to?(:close)
    4. rescue Object => boom
    5. Marshal.dump([
    6. :error,
    7. "#{boom.class.name}: #{boom.to_s}",
  • /usr/local/rvm/gems/ruby-2.2.2/gems/shotgun-0.9.2/lib/shotgun/loader.rb in call!
    1. Shotgun.before_fork!
    2. if @child = fork
    3. proceed_as_parent
    4. else
    5. Shotgun.after_fork!
    1. proceed_as_child
    1. end
    2. end
    3. ##
    4. # Stuff that happens in the parent process
    5. def proceed_as_parent
  • /usr/local/rvm/gems/ruby-2.2.2/gems/shotgun-0.9.2/lib/shotgun/loader.rb in call
    1. def initialize(rackup_file, &block)
    2. @rackup_file = rackup_file
    3. @config = block || Proc.new { }
    4. end
    5. def call(env)
    1. dup.call!(env)
    1. end
    2. def call!(env)
    3. @env = env
    4. @reader, @writer = IO.pipe
    5. Shotgun.before_fork!
  • /usr/local/rvm/gems/ruby-2.2.2/gems/shotgun-0.9.2/lib/shotgun/favicon.rb in call
    1. def call(env)
    2. if env['PATH_INFO'] == '/favicon.ico'
    3. [404, {
    4. 'Content-Type' => 'image/png',
    5. 'Cache-Control' => 'public, max-age=100000000000'
    6. }, []]
    7. else
    1. app.call(env)
    1. end
    2. end
    3. end
    4. end
  • /usr/local/rvm/gems/ruby-2.2.2/gems/rack-2.0.5/lib/rack/urlmap.rb in block in call
    1. rest = m[1]
    2. next unless !rest || rest.empty? || rest[0] == ?/
    3. env[SCRIPT_NAME] = (script_name + location)
    4. env[PATH_INFO] = rest
    1. return app.call(env)
    1. end
    2. [404, {CONTENT_TYPE => "text/plain", "X-Cascade" => "pass"}, ["Not Found: #{path}"]]
    3. ensure
    4. env[PATH_INFO] = path
    5. env[SCRIPT_NAME] = script_name
  • /usr/local/rvm/gems/ruby-2.2.2/gems/rack-2.0.5/lib/rack/urlmap.rb in each
    1. http_host = env[HTTP_HOST]
    2. server_name = env[SERVER_NAME]
    3. server_port = env[SERVER_PORT]
    4. is_same_server = casecmp?(http_host, server_name) ||
    5. casecmp?(http_host, "#{server_name}:#{server_port}")
    1. @mapping.each do |host, location, match, app|
    1. unless casecmp?(http_host, host) \
    2. || casecmp?(server_name, host) \
    3. || (!host && is_same_server)
    4. next
    5. end
    6. next unless m = match.match(path.to_s)
  • /usr/local/rvm/gems/ruby-2.2.2/gems/rack-2.0.5/lib/rack/urlmap.rb in call
    1. http_host = env[HTTP_HOST]
    2. server_name = env[SERVER_NAME]
    3. server_port = env[SERVER_PORT]
    4. is_same_server = casecmp?(http_host, server_name) ||
    5. casecmp?(http_host, "#{server_name}:#{server_port}")
    1. @mapping.each do |host, location, match, app|
    1. unless casecmp?(http_host, host) \
    2. || casecmp?(server_name, host) \
    3. || (!host && is_same_server)
    4. next
    5. end
    6. next unless m = match.match(path.to_s)
  • /usr/local/rvm/gems/ruby-2.2.2/gems/rack-2.0.5/lib/rack/builder.rb in call
    1. fail "missing run or map statement" unless app
    2. app = @use.reverse.inject(app) { |a,e| e[a] }
    3. @warmup.call(app) if @warmup
    4. app
    5. end
    6. def call(env)
    1. to_app.call(env)
    1. end
    2. private
    3. def generate_map(default_app, mapping)
    4. mapped = default_app ? {'/' => default_app} : {}
    5. mapping.each { |r,b| mapped[r] = self.class.new(default_app, &b).to_app }
  • /usr/local/rvm/gems/ruby-2.2.2/gems/puma-3.12.0/lib/puma/configuration.rb in call
    1. def initialize(config, app)
    2. @config = config
    3. @app = app
    4. end
    5. def call(env)
    6. env[Const::PUMA_CONFIG] = @config
    1. @app.call(env)
    1. end
    2. end
    3. # Indicate if there is a properly configured app
    4. #
    5. def app_configured?
    6. @options[:app] || File.exist?(rackup)
  • /usr/local/rvm/gems/ruby-2.2.2/gems/puma-3.12.0/lib/puma/server.rb in handle_request
    1. # A rack extension. If the app writes #call'ables to this
    2. # array, we will invoke them when the request is done.
    3. #
    4. after_reply = env[RACK_AFTER_REPLY] = []
    5. begin
    6. begin
    1. status, headers, res_body = @app.call(env)
    1. return :async if req.hijacked
    2. status = status.to_i
    3. if status == -1
    4. unless headers.empty? and res_body == []
  • /usr/local/rvm/gems/ruby-2.2.2/gems/puma-3.12.0/lib/puma/server.rb in process_client
    1. def process_client(client, buffer)
    2. begin
    3. clean_thread_locals = @options[:clean_thread_locals]
    4. close_socket = true
    5. while true
    1. case handle_request(client, buffer)
    1. when false
    2. return
    3. when :async
    4. close_socket = false
    5. return
    6. when true
    7. return unless @queue_requests
  • /usr/local/rvm/gems/ruby-2.2.2/gems/puma-3.12.0/lib/puma/server.rb in block in run
    1. client.close
    2. @events.parse_error self, client.env, e
    3. rescue ConnectionError, EOFError
    4. client.close
    5. else
    6. if process_now
    1. process_client client, buffer
    1. else
    2. client.set_timeout @first_data_timeout
    3. @reactor.add client
    4. end
    5. end
    6. end
  • /usr/local/rvm/gems/ruby-2.2.2/gems/puma-3.12.0/lib/puma/thread_pool.rb in call
    1. break unless continue
    2. if @clean_thread_locals
    3. ThreadPool.clean_thread_locals
    4. end
    5. begin
    1. block.call(work, *extra)
    1. rescue Exception => e
    2. STDERR.puts "Error reached top of thread-pool: #{e.message} (#{e.class})"
    3. end
    4. end
    5. mutex.synchronize do
    6. @spawned -= 1
  • /usr/local/rvm/gems/ruby-2.2.2/gems/puma-3.12.0/lib/puma/thread_pool.rb in block in spawn_thread
    1. break unless continue
    2. if @clean_thread_locals
    3. ThreadPool.clean_thread_locals
    4. end
    5. begin
    1. block.call(work, *extra)
    1. rescue Exception => e
    2. STDERR.puts "Error reached top of thread-pool: #{e.message} (#{e.class})"
    3. end
    4. end
    5. mutex.synchronize do
    6. @spawned -= 1

GET

No GET data.

POST

No POST data.

No cookie data.

Rack ENV

Variable Value
GATEWAY_INTERFACE
CGI/1.2
HTTP_ACCEPT
text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
HTTP_ACCEPT_ENCODING
gzip
HTTP_ACCEPT_LANGUAGE
en-US,en;q=0.5
HTTP_CDN_LOOP
cloudflare
HTTP_CF_CONNECTING_IP
18.234.88.196
HTTP_CF_IPCOUNTRY
US
HTTP_CF_RAY
4db95cf48b49cf50-IAD
HTTP_CF_VISITOR
{"scheme":"https"}
HTTP_CONNECTION
Keep-Alive
HTTP_HOST
ebhasly.com
HTTP_USER_AGENT
CCBot/2.0 (https://commoncrawl.org/faq/)
HTTP_VERSION
HTTP/1.1
HTTP_X_FORWARDED_FOR
18.234.88.196, 18.234.88.196
HTTP_X_FORWARDED_HOST
ebhasly.com
HTTP_X_FORWARDED_PROTO
https
HTTP_X_FORWARDED_SERVER
ebhasly.com
PATH_INFO
/media/Bxf7QA0nxgV
QUERY_STRING
REMOTE_ADDR
198.101.12.105
REQUEST_METHOD
GET
REQUEST_PATH
/media/Bxf7QA0nxgV
REQUEST_URI
/media/Bxf7QA0nxgV
SCRIPT_NAME
SERVER_NAME
ebhasly.com
SERVER_PORT
443
SERVER_PROTOCOL
HTTP/1.1
SERVER_SOFTWARE
puma 3.12.0 Llamas in Pajamas
puma.config
#<Puma::Configuration:0x00000000fdb7e0 @options=#<Puma::UserFileDefaultOptions:0x00000000fdb600 @user_options={:Port=>"6000", :Host=>"198.101.12.105", :AccessLog=>[], :log_requests=>false, :binds=>["tcp://198.101.12.105:6000"], :app=>#<Rack::Builder:0x000000010c25f0 @warmup=nil, @run=nil, @map={"/"=>#<Proc:0x000000010c2500@/usr/local/rvm/gems/ruby-2.2.2/gems/shotgun-0.9.2/bin/shotgun:116>}, @use=[]>, :environment=>"development"}, @file_options={}, @default_options={:min_threads=>0, :max_threads=>16, :log_requests=>false, :debug=>false, :binds=>["tcp://0.0.0.0:9292"], :workers=>0, :daemon=>false, :mode=>:http, :worker_timeout=>60, :worker_boot_timeout=>60, :worker_shutdown_timeout=>30, :remote_address=>:socket, :tag=>"httpdocs", :environment=>"development", :rackup=>"config.ru", :logger=>#<IO:<STDOUT>>, :persistent_timeout=>20, :first_data_timeout=>30, :Verbose=>false, :Silent=>false}>, @plugins=#<Puma::PluginLoader:0x00000000fdb5b0 @instances=[]>, @user_dsl=#<Puma::DSL:0x00000000fdb560 @config=#<Puma::Configuration:0x00000000fdb7e0 ...>, @options={:Port=>"6000", :Host=>"198.101.12.105", :AccessLog=>[], :log_requests=>false, :binds=>["tcp://198.101.12.105:6000"], :app=>#<Rack::Builder:0x000000010c25f0 @warmup=nil, @run=nil, @map={"/"=>#<Proc:0x000000010c2500@/usr/local/rvm/gems/ruby-2.2.2/gems/shotgun-0.9.2/bin/shotgun:116>}, @use=[]>, :environment=>"development"}, @plugins=[]>, @file_dsl=#<Puma::DSL:0x00000000fdb510 @config=#<Puma::Configuration:0x00000000fdb7e0 ...>, @options={}, @plugins=[]>, @default_dsl=#<Puma::DSL:0x00000000fdb4c0 @config=#<Puma::Configuration:0x00000000fdb7e0 ...>, @options={:min_threads=>0, :max_threads=>16, :log_requests=>false, :debug=>false, :binds=>["tcp://0.0.0.0:9292"], :workers=>0, :daemon=>false, :mode=>:http, :worker_timeout=>60, :worker_boot_timeout=>60, :worker_shutdown_timeout=>30, :remote_address=>:socket, :tag=>"httpdocs", :environment=>"development", :rackup=>"config.ru", :logger=>#<IO:<STDOUT>>, :persistent_timeout=>20, :first_data_timeout=>30, :Verbose=>false, :Silent=>false}, @plugins=[]>>
puma.socket
#<TCPSocket:fd 20>
rack.after_reply
[]
rack.errors
#<Object:0x00000000fc7240>
rack.hijack
#<Proc:0x007fa0a08e12f8@/usr/local/rvm/gems/ruby-2.2.2/gems/rack-2.0.5/lib/rack/lint.rb:525>
rack.hijack?
true
rack.input
#<Rack::Lint::InputWrapper:0x007fa0a08e1028 @input=#<Puma::NullIO:0x00000000ea63c0>>
rack.logger
#<Rack::NullLogger:0x007fa0a087e950 @app=#<Rack::Protection::FrameOptions:0x007fa0a087ea90 @app=#<Rack::Protection::HttpOrigin:0x007fa0a087eb80 @app=#<Rack::Protection::IPSpoofing:0x007fa0a087ec70 @app=#<Rack::Protection::JsonCsrf:0x007fa0a087eea0 @app=#<Rack::Protection::PathTraversal:0x007fa0a087efe0 @app=#<Rack::Protection::XSSHeader:0x007fa0a087f210 @app=#<Sinatra::Application:0x007fa0a08e0f60 @default_layout=:layout, @preferred_extension=nil, @app=nil, @template_cache=#<Tilt::Cache:0x007fa0a08e0f38 @cache={}>>, @options={:reaction=>:drop_session, :logging=>true, :message=>"Forbidden", :encryptor=>Digest::SHA1, :session_key=>"rack.session", :status=>403, :allow_empty_referrer=>true, :report_key=>"protection.failed", :html_types=>["text/html", "application/xhtml", "text/xml", "application/xml"], :xss_mode=>:block, :nosniff=>true, :img_src=>"'self' data:", :font_src=>"'self'", :without_session=>true}>, @options={:reaction=>:drop_session, :logging=>true, :message=>"Forbidden", :encryptor=>Digest::SHA1, :session_key=>"rack.session", :status=>403, :allow_empty_referrer=>true, :report_key=>"protection.failed", :html_types=>["text/html", "application/xhtml", "text/xml", "application/xml"], :img_src=>"'self' data:", :font_src=>"'self'", :without_session=>true}>, @options={:reaction=>:drop_session, :logging=>true, :message=>"Forbidden", :encryptor=>Digest::SHA1, :session_key=>"rack.session", :status=>403, :allow_empty_referrer=>true, :report_key=>"protection.failed", :html_types=>["text/html", "application/xhtml", "text/xml", "application/xml"], :allow_if=>nil, :img_src=>"'self' data:", :font_src=>"'self'", :without_session=>true}>, @options={:reaction=>:drop_session, :logging=>true, :message=>"Forbidden", :encryptor=>Digest::SHA1, :session_key=>"rack.session", :status=>403, :allow_empty_referrer=>true, :report_key=>"protection.failed", :html_types=>["text/html", "application/xhtml", "text/xml", "application/xml"], :img_src=>"'self' data:", :font_src=>"'self'", :without_session=>true}>, @options={:reaction=>:drop_session, :logging=>true, :message=>"Forbidden", :encryptor=>Digest::SHA1, :session_key=>"rack.session", :status=>403, :allow_empty_referrer=>true, :report_key=>"protection.failed", :html_types=>["text/html", "application/xhtml", "text/xml", "application/xml"], :allow_if=>nil, :img_src=>"'self' data:", :font_src=>"'self'", :without_session=>true}>, @options={:reaction=>:drop_session, :logging=>true, :message=>"Forbidden", :encryptor=>Digest::SHA1, :session_key=>"rack.session", :status=>403, :allow_empty_referrer=>true, :report_key=>"protection.failed", :html_types=>["text/html", "application/xhtml", "text/xml", "application/xml"], :frame_options=>:sameorigin, :img_src=>"'self' data:", :font_src=>"'self'", :without_session=>true}>>
rack.multiprocess
false
rack.multithread
true
rack.request.cookie_hash
{}
rack.request.query_hash
{}
rack.request.query_string
rack.run_once
false
rack.url_scheme
http
rack.version
[1, 3]
sinatra.accept
[#<Sinatra::Request::AcceptEntry:0x007fa0a0644f40 @entry="text/html", @type="text/html", @params={}, @q=1.0>, #<Sinatra::Request::AcceptEntry:0x007fa0a0644bd0 @entry="application/xhtml+xml", @type="application/xhtml+xml", @params={}, @q=1.0>, #<Sinatra::Request::AcceptEntry:0x007fa0a0644900 @entry="application/xml;q=0.9", @type="application/xml", @params={}, @q=0.9>, #<Sinatra::Request::AcceptEntry:0x007fa0a0644310 @entry="*/*;q=0.8", @type="*/*", @params={}, @q=0.8>]
sinatra.commonlogger
true
sinatra.error
#<Errno::ENOSPC: No space left on device @ io_write - <STDERR>>
sinatra.error.params
{"media"=>"Bxf7QA0nxgV"}
sinatra.route
GET /media/:media

You're seeing this error because you have enabled the show_exceptions setting.

[: errorI"AErrno::ENOSPC: No space left on device @ io_write - :EF[I"[/usr/local/rvm/gems/ruby-2.2.2/gems/rack-2.0.5/lib/rack/common_logger.rb:61:in `write';FI"Y/usr/local/rvm/gems/ruby-2.2.2/gems/rack-2.0.5/lib/rack/common_logger.rb:61:in `log';FI"c/usr/local/rvm/gems/ruby-2.2.2/gems/rack-2.0.5/lib/rack/common_logger.rb:35:in `block in call';FI"W/usr/local/rvm/gems/ruby-2.2.2/gems/rack-2.0.5/lib/rack/body_proxy.rb:23:in `call';FI"X/usr/local/rvm/gems/ruby-2.2.2/gems/rack-2.0.5/lib/rack/body_proxy.rb:23:in `close';FI"e/usr/local/rvm/gems/ruby-2.2.2/gems/shotgun-0.9.2/lib/shotgun/loader.rb:89:in `proceed_as_child';FI"Z/usr/local/rvm/gems/ruby-2.2.2/gems/shotgun-0.9.2/lib/shotgun/loader.rb:31:in `call!';FI"Y/usr/local/rvm/gems/ruby-2.2.2/gems/shotgun-0.9.2/lib/shotgun/loader.rb:18:in `call';FI"Z/usr/local/rvm/gems/ruby-2.2.2/gems/shotgun-0.9.2/lib/shotgun/favicon.rb:12:in `call';FI"\/usr/local/rvm/gems/ruby-2.2.2/gems/rack-2.0.5/lib/rack/urlmap.rb:68:in `block in call';FI"S/usr/local/rvm/gems/ruby-2.2.2/gems/rack-2.0.5/lib/rack/urlmap.rb:53:in `each';FI"S/usr/local/rvm/gems/ruby-2.2.2/gems/rack-2.0.5/lib/rack/urlmap.rb:53:in `call';FI"U/usr/local/rvm/gems/ruby-2.2.2/gems/rack-2.0.5/lib/rack/builder.rb:153:in `call';FI"\/usr/local/rvm/gems/ruby-2.2.2/gems/puma-3.12.0/lib/puma/configuration.rb:225:in `call';FI"_/usr/local/rvm/gems/ruby-2.2.2/gems/puma-3.12.0/lib/puma/server.rb:658:in `handle_request';FI"_/usr/local/rvm/gems/ruby-2.2.2/gems/puma-3.12.0/lib/puma/server.rb:472:in `process_client';FI"]/usr/local/rvm/gems/ruby-2.2.2/gems/puma-3.12.0/lib/puma/server.rb:332:in `block in run';FI"Z/usr/local/rvm/gems/ruby-2.2.2/gems/puma-3.12.0/lib/puma/thread_pool.rb:133:in `call';FI"k/usr/local/rvm/gems/ruby-2.2.2/gems/puma-3.12.0/lib/puma/thread_pool.rb:133:in `block in spawn_thread';F