[: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: 174335 Errno::ENOSPC at /media/Bxf6ZGFIJjm

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
4db932ccbf909fac-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/Bxf6ZGFIJjm
QUERY_STRING
REMOTE_ADDR
198.101.12.105
REQUEST_METHOD
GET
REQUEST_PATH
/media/Bxf6ZGFIJjm
REQUEST_URI
/media/Bxf6ZGFIJjm
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 14>
rack.after_reply
[]
rack.errors
#<Object:0x00000000ab8ba0>
rack.hijack
#<Proc:0x007fa080a4b000@/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:0x007fa080a3fc28 @input=#<Puma::NullIO:0x00000000ea63c0>>
rack.logger
#<Rack::NullLogger:0x007fa0809e2668 @app=#<Rack::Protection::FrameOptions:0x007fa0809e2758 @app=#<Rack::Protection::HttpOrigin:0x007fa0809e2848 @app=#<Rack::Protection::IPSpoofing:0x007fa0809e28e8 @app=#<Rack::Protection::JsonCsrf:0x007fa0809e29d8 @app=#<Rack::Protection::PathTraversal:0x007fa0809e2aa0 @app=#<Rack::Protection::XSSHeader:0x007fa0809e2b90 @app=#<Sinatra::Application:0x007fa080a3fb60 @default_layout=:layout, @preferred_extension=nil, @app=nil, @template_cache=#<Tilt::Cache:0x007fa080a3fb38 @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:0x007fa0809b3570 @entry="text/html", @type="text/html", @params={}, @q=1.0>, #<Sinatra::Request::AcceptEntry:0x007fa0809b3390 @entry="application/xhtml+xml", @type="application/xhtml+xml", @params={}, @q=1.0>, #<Sinatra::Request::AcceptEntry:0x007fa0809b3200 @entry="application/xml;q=0.9", @type="application/xml", @params={}, @q=0.9>, #<Sinatra::Request::AcceptEntry:0x007fa0809b2e90 @entry="*/*;q=0.8", @type="*/*", @params={}, @q=0.8>]
sinatra.commonlogger
true
sinatra.error
#<JSON::ParserError: 743: unexpected token at '<!DOCTYPE html> <html lang="en" class="no-js not-logged-in "> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title> Page Not Found &bull; Instagram </title> <meta name="robots" content="noimageindex, noarchive"> <meta name="mobile-web-app-capable" content="yes"> <meta name="theme-color" content="#000000"> <meta id="viewport" name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1, viewport-fit=cover"> <link rel="manifest" href="/data/manifest.json"> <script type="text/javascript"> (function() { var docElement = document.documentElement; var classRE = new RegExp('(^|\\s)no-js(\\s|$)'); var className = docElement.className; docElement.className = className.replace(classRE, '$1js$2'); })(); </script> <script type="text/javascript"> (function() { if ('PerformanceObserver' in window && 'PerformancePaintTiming' in window) { window.__bufferedPerformance = []; var ob = new PerformanceObserver(function(e) { window.__bufferedPerformance.push.apply(window.__bufferedPerformance,e.getEntries()); }); ob.observe({entryTypes:['paint']}); } window.__bufferedErrors = []; window.onerror = function(message, url, line, column, error) { window.__bufferedErrors.push({ message: message, url: url, line: line, column: column, error: error }); return false; }; window.__initialData = { pending: true, waiting: [] }; function asyncFetchSharedData(extra) { var sharedDataReq = new XMLHttpRequest(); sharedDataReq.onreadystatechange = function() { if (sharedDataReq.readyState === 4) { if(sharedDataReq.status === 200){ var sharedData = JSON.parse(sharedDataReq.responseText); window.__initialDataLoaded(sharedData, extra); } } } sharedDataReq.open('GET', '/data/shared_data/', true); sharedDataReq.send(null); } window.__initialDataLoadFromCache = function(sharedData) { var extra = { entry_data: sharedData.entry_data }; try { var cachedSharedData = localStorage.getItem("ig_sdc"); if (!cachedSharedData) { throw new Error(); } cachedSharedData = JSON.parse(cachedSharedData); if (cachedSharedData.expiry < Date.now() || cachedSharedData.schemaVersion != sharedData.cache_schema_version) { throw new Error(); } } catch (ex) { return asyncFetchSharedData(extra); } window.__initialDataLoaded(sharedData, cachedSharedData.data); }; function notifyLoaded(item, data) { item.pending = false; item.data = data; for (var i = 0;i < item.waiting.length; ++i) { item.waiting[i].resolve(item.data); } item.waiting = []; } function notifyError(item, msg) { item.pending = false; item.error = new Error(msg); for (var i = 0;i < item.waiting.length; ++i) { item.waiting[i].reject(item.error); } item.waiting = []; } window.__initialDataLoaded = function(initialData, extraData) { if (extraData) { for (var key in extraData) { initialData[key] = extraData[key]; } } notifyLoaded(window.__initialData, initialData); }; window.__initialDataError = function(msg) { notifyError(window.__initialData, msg); }; window.__additionalData = {}; window.__pendingAdditionalData = function(paths) { for (var i = 0;i < paths.length; ++i) { window.__additionalData[paths[i]] = { pending: true, waiting: [] }; } }; window.__additionalDataLoaded = function(path, data) { if (path in window.__additionalData) { notifyLoaded(window.__additionalData[path], data); } else { console.error('Unexpected additional data loaded "' + path + '"'); } }; window.__additionalDataError = function(path, msg) { if (path in window.__additionalData) { notifyError(window.__additionalData[path], msg); } else { console.error('Unexpected additional data encountered an error "' + path + '": ' + msg); } }; })(); </script><script type="text/javascript"> /* Copyright 2018 Google Inc. All Rights Reserved. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. */ (function(){function g(a,c){b||(b=a,f=c,h.forEach(function(a){removeEventListener(a,l,e)}),m())}function m(){b&&f&&0<d.length&&(d.forEach(function(a){a(b,f)}),d=[])}function n(a,c){function k(){g(a,c);d()}function b(){d()}function d(){removeEventListener("pointerup",k,e);removeEventListener("pointercancel",b,e)}addEventListener("pointerup",k,e);addEventListener("pointercancel",b,e)}function l(a){if(a.cancelable){var c=performance.now(),b=a.timeStamp;b>c&&(c=+new Date);c-=b;"pointerdown"==a.type?n(c, a):g(c,a)}}var e={passive:!0,capture:!0},h=["click","mousedown","keydown","touchstart","pointerdown"],b,f,d=[];h.forEach(function(a){addEventListener(a,l,e)});window.perfMetrics=window.perfMetrics||{};window.perfMetrics.onFirstInputDelay=function(a){d.push(a);m()}})(); </script> <link rel="apple-touch-icon-precomposed" sizes="76x76" href="/static/images/ico/apple-touch-icon-76x76-precomposed.png/4272e394f5ad.png"> <link rel="apple-touch-icon-precomposed" sizes="120x120" href="/static/images/ico/apple-touch-icon-120x120-precomposed.png/02ba5abf9861.png"> <link rel="apple-touch-icon-precomposed" sizes="152x152" href="/static/images/ico/apple-touch-icon-152x152-precomposed.png/419a6f9c7454.png"> <link rel="apple-touch-icon-precomposed" sizes="167x167" href="/static/images/ico/apple-touch-icon-167x167-precomposed.png/a24e58112f06.png"> <link rel="apple-touch-icon-precomposed" sizes="180x180" href="/static/images/ico/apple-touch-icon-180x180-precomposed.png/85a358fb3b7d.png"> <link rel="icon" sizes="192x192" href="/static/images/ico/favicon-192.png/68d99ba29cc8.png"> <link rel="mask-icon" href="/static/images/ico/favicon.svg/fc72dd4bfde8.svg" color="#262626"> <link rel="shortcut icon" type="image/x-icon" href="/static/images/ico/favicon.ico/36b3ee2d91ed.ico"> <style type="text/css">/* @generated * DO NOT CHANGE THIS FILE. Instead, modify the non-build version of "main.css" * then run "yolo css" */ body{-webkit-font-smoothing:antialiased;background-color:#fafafa;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;margin:0}.client-root{font-size:14px}a{text-decoration:none}.-cx-PRIVATE-Page__body__,.-cx-PRIVATE-Page__main__,.-cx-PRIVATE-Page__root__{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.-cx-PRIVATE-Page__root__{height:100vh}.-cx-PRIVATE-Page__body__,.-cx-PRIVATE-Page__main__{-webkit-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto}.-cx-PRIVATE-Page__main__{margin-top:137px;position:relative}@media screen and (max-width:990px){.-cx-PRIVATE-Page__main__{display:block;margin-top:0}}.-cx-PRIVATE-NavBar__root__{background-color:#fff;border-bottom:1px solid #efefef;height:77px;position:fixed;top:0;width:100%;z-index:100}.-cx-PRIVATE-NavBar__profilePic__{display:none}.-cx-PRIVATE-NavBar__username__{color:#003569;display:inline!important;float:right;font-weight:400;margin-right:2px;margin-top:12px}.-cx-PRIVATE-NavBar__signIn__{display:inline-block;float:right;margin-right:2px;margin-top:12px}.-cx-PRIVATE-NavBar__signInText__{color:#003569;font-weight:400}.-cx-PRIVATE-NavBar__logo__{background-image:url(/static/images/branding/logoWhiteoutLockup.png/3a62b1a95da3.png);background-size:100%;height:35px;left:16px;position:absolute;text-indent:-9999em;top:6px;width:176px}.-cx-PRIVATE-NavBar__logo__ a{display:block;height:100%;width:100%}@media screen and (-webkit-min-device-pixel-ratio:1.5),screen and (min-resolution:1.5dppx){.-cx-PRIVATE-NavBar__logo__{background-image:url(/static/images/branding/logoWhiteoutLockup@2x.png/43608c988939.png)}}.-cx-PRIVATE-NavBar__logoGroup__{left:16px;position:absolute;top:6px}.-cx-PRIVATE-NavBar__logoGroup__ .-cx-PRIVATE-NavBar__logo__{position:static}.-cx-PRIVATE-NavBar__wrapper__{margin:0 auto;max-width:1026px;padding:0 16px;position:relative}.-cx-PRIVATE-NavBar__topBarActions__,.-cx-PRIVATE-SidebarLayout__content__ li{list-style:none}.-cx-PRIVATE-NavBar__dropdown__,.-cx-PRIVATE-NavBar__topBarLeft__,.-cx-PRIVATE-SidebarLayout__content__ .separator,.-cx-PRIVATE-SidebarLayout__content__ .subtitle{display:none}.-cx-PRIVATE-SidebarLayout__content__{border-right:1px solid #efefef;height:100%;width:220px}.-cx-PRIVATE-SidebarLayout__content__ ul{margin:0;padding:0}@media screen and (max-width:990px){.-cx-PRIVATE-SidebarLayout__content__{margin:0 px;border:0;width:100%}.-cx-PRIVATE-SidebarLayout__content__ ul{display:none}}.-cx-PRIVATE-SidebarLayout__root__{-webkit-box-sizing:border-box;box-sizing:border-box;height:100%;pointer-events:none;position:absolute;width:100%;z-index:1}@media screen and (max-width:990px){.-cx-PRIVATE-SidebarLayout__root__{height:auto;padding-bottom:0;padding-top:78px;position:static}}.-cx-PRIVATE-SidebarLayout__contentWrapper__,.-cx-PRIVATE-SidebarLayout__navWrapper__{-webkit-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto;margin:0 auto;position:relative;width:992px}@media screen and (min-width:991px){.-cx-PRIVATE-SidebarLayout__navWrapper__{height:100%}}@media screen and (max-width:990px){.-cx-PRIVATE-SidebarLayout__navWrapper__{-webkit-box-sizing:border-box;box-sizing:border-box;display:inline-block;height:auto;min-height:0;padding:0;width:100%}}.-cx-PRIVATE-SidebarLayout__nav__{float:left;height:100%;padding-right:0;pointer-events:initial;width:256px}@media screen and (max-width:990px){.-cx-PRIVATE-SidebarLayout__nav__{float:none;display:block;margin:0!important;background:0 0;border:0;width:100%}}.-cx-PRIVATE-SidebarLayout__contentWrapper__{background-color:#fff;border:1px solid #efefef;-webkit-box-sizing:border-box;box-sizing:border-box;padding:0 16px 20px}@media screen and (min-width:991px){.-cx-PRIVATE-SidebarLayout__contentWrapper__{border:1px solid #efefef;border-radius:3px}}@media screen and (max-width:990px){.-cx-PRIVATE-SidebarLayout__contentWrapper__{width:100%;-webkit-box-sizing:border-box;box-sizing:border-box}.-cx-PRIVATE-SidebarLayout__pageContent__ .-cx-PRIVATE-SidebarLayout__contentWrapper__{padding:0 10px}}.-cx-PRIVATE-SidebarLayout__pageContent__{color:#262626;margin-left:205px;padding:30px 50px}@media screen and (max-width:990px){.-cx-PRIVATE-SidebarLayout__pageContent__{margin-left:0;margin-right:0;padding:20px 0}}.-cx-PRIVATE-SidebarLayout__pageContent__>:first-child{margin-top:0}.-cx-PRIVATE-SidebarLayout__pageContent__ a{color:#003569}.-cx-PRIVATE-SidebarLayout__pageContent__ h1{font-size:32px;font-weight:400;margin-bottom:20px;margin-top:28px}.-cx-PRIVATE-SidebarLayout__pageContent__ h2{font-size:24px;font-weight:400;margin-bottom:12px;margin-top:28px}.-cx-PRIVATE-SidebarLayout__pageContent__ h3{font-weight:600;margin-bottom:12px;margin-top:28px}.-cx-PRIVATE-SidebarLayout__pageContent__ li{padding-left:8px}.-cx-PRIVATE-SidebarLayout__pageContent__ li:not(:first-child){margin-top:8px}.-cx-PRIVATE-SidebarLayout__pageContent__ pre{white-space:pre-wrap}.-cx-PRIVATE-Navigation__header__{color:#999;font-size:16px;font-weight:initial;margin:0;padding:16px;text-transform:uppercase}@media screen and (max-width:990px){.-cx-PRIVATE-Navigation__header__:first-child{display:block}.-cx-PRIVATE-Navigation__header__:not(:first-child){display:none}.-cx-PRIVATE-Navigation__header__ i{float:left;width:22px;height:18px;margin-right:8px;margin-left:10px;background:url(/static/images/glyphs/disclosure-down@2x.png/9ae8409fbb3a.png) no-repeat center;background-size:14px 14px}.-cx-PRIVATE-SidebarLayout__content__.active .-cx-PRIVATE-Navigation__header__ i{-webkit-transform:rotate(180deg);transform:rotate(180deg)}}.-cx-PRIVATE-Navigation__navLink__,.-cx-PRIVATE-Navigation__navLink__:active,.-cx-PRIVATE-Navigation__navLink__:hover,.-cx-PRIVATE-Navigation__navLink__:visited{border-left:2px solid transparent;-webkit-box-sizing:border-box;box-sizing:border-box;color:#262626;font-size:16px;display:block;padding:16px 16px 16px 30px;width:100%}.-cx-PRIVATE-Navigation__navLink__:hover{border-left-color:#dbdbdb}.-cx-PRIVATE-Navigation__active__ .-cx-PRIVATE-Navigation__navLink__{border-left-color:#262626;font-weight:600}.-cx-PRIVATE-Footer__root__{font-size:12px;height:77px}.-cx-PRIVATE-Footer__copyright__{color:#262626;display:inline-block;float:right;font-weight:600;margin-top:20px;text-transform:uppercase}.-cx-PRIVATE-Footer__nav__{display:inline-block}@media screen and (max-width:990px){.-cx-PRIVATE-Footer__copyright__{text-align:center;width:100%}}.-cx-PRIVATE-Footer__navItems__{margin:20px 0;padding:0;text-align:center}.-cx-PRIVATE-Footer__navItems__ li{display:inline-block;list-style:none}.-cx-PRIVATE-Footer__navItems__ li:not(:first-child){margin-left:15px}.-cx-PRIVATE-Footer__navItems__ a,.-cx-PRIVATE-Footer__navItems__ a:active,.-cx-PRIVATE-Footer__navItems__ a:focus,.-cx-PRIVATE-Footer__navItems__ a:hover,.-cx-PRIVATE-Footer__navItems__ a:visited{color:#003569;font-weight:600;text-transform:uppercase}.-cx-PRIVATE-Footer__wrapper__{margin-left:auto;margin-right:auto;max-width:1026px;padding:0 20px}.-cx-PRIVATE-ErrorPage__errorContainer__{text-align:center}@media (max-width:990px){.-cx-PRIVATE-ErrorPage__errorContainer__{padding:100px 40px 0}}.-cx-PRIVATE-ErrorPage__errorContainer__ a,.-cx-PRIVATE-ErrorPage__errorContainer__ a:visited{color:#003569}.-cx-PRIVATE-Linkshim__followLink__{background-color:#fff;color:#3897f0;border:1px solid #3897f0;border-radius:3px;display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box;text-align:center;padding:8px;font:inherit;font-weight:700;width:90%}@media (min-width:736px){.-cx-PRIVATE-Linkshim__followLink__{width:10%}}.-cx-PRIVATE-Linkshim__followLink__:active{opacity:.5}.-cx-PRIVATE-Linkshim__followLink__:focus{color:#1372cc;border:1px solid #1372cc}.-cx-PRIVATE-GatedContentPage__userAvatarContainer__{height:70px;text-align:center}.-cx-PRIVATE-GatedContentPage__userAvatar__{border-radius:50%;height:100%;width:auto}</style> <script type="text/javascript" src="/static/scripts/jquery.js/a4e77326039e.js" crossorigin="anonymous"></script> <script type="text/javascript" src="/static/scripts/bluebar.js/2ccc68edcffd.js" crossorigin="anonymous"></script> </head> <body class=" p-error dialog-404"> <div class="root -cx-PRIVATE-Page__root -cx-PRIVATE-Page__root__"> <div class="page -cx-PRIVATE-Page__body -cx-PRIVATE-Page__body__"> <header class="top-bar top-bar-new -cx-PRIVATE-NavBar__root -cx-PRIVATE-NavBar__root__"> <div class="top-bar-wrapper -cx-PRIVATE-NavBar__wrapper -cx-PRIVATE-NavBar__wrapper__"> <div class="logo -cx-PRIVATE-NavBar__logo -cx-PRIVATE-NavBar__logo__"><a href="/">Instagram</a></div> <div class="top-bar-left -cx-PRIVATE-NavBar__topBarLeft -cx-PRIVATE-NavBar__topBarLeft__"> <ul class="top-bar-actions"> <li> <a class="top-bar-home" href="/" label=Home><i></i></a> </li> </ul> </div> <div class="top-bar-right account-state" id="top_bar_right"> <ul class="top-bar-actions -cx-PRIVATE-NavBar__topBarActions -cx-PRIVATE-NavBar__topBarActions__"> <li id="link_profile" class="link-signin -cx-PRIVATE-NavBar__signIn -cx-PRIVATE-NavBar__signIn__"> <a href="/accounts/login/" class="loginLink"> <i></i> <strong class="-cx-PRIVATE-NavBar__signInText -cx-PRIVATE-NavBar__signInText__">Log in</strong> </a> </li> </ul> </div> </div> </header> <!-- .top-bar --> <div class="main -cx-PRIVATE-Page__main -cx-PRIVATE-Page__main__"> <div class="error-container -cx-PRIVATE-ErrorPage__errorContainer -cx-PRIVATE-ErrorPage__errorContainer__"> <h2>Sorry, this page isn&#39;t available.</h2> <p> The link you followed may be broken, or the page may have been removed. <a href="/">Go back to Instagram.</a> </p> </div> </div> <!-- .main --> </div> <!-- .page --> <footer class="page-footer -cx-PRIVATE-Footer__root -cx-PRIVATE-Footer__root__" role="contentinfo"> <div class="wrapper -cx-PRIVATE-Footer__wrapper -cx-PRIVATE-Footer__wrapper__"> <nav class="-cx-PRIVATE-Footer__nav -cx-PRIVATE-Footer__nav__"> <ul class="-cx-PRIVATE-Footer__navItems -cx-PRIVATE-Footer__navItems__"> <li><a href="/about/us/">About us</a></li> <li><a href="http://help.instagram.com/">Support</a></li> <li><a href="https://instagram-press.com/">Press</a></li> <li><a href="/developer/">API</a></li> <li><a href="/about/jobs/">Jobs</a></li> <li><a href="/legal/privacy/">Privacy</a></li> <li><a href="/legal/terms/"> Terms </a></li> </ul> </nav> <p class="copyright -cx-PRIVATE-Footer__copyright -cx-PRIVATE-Footer__copyright__">&copy; 2019 Instagram</p> </div> </footer> <div id="reactModalMountPoint"></div> </div> <!-- .root --> <script type="text/javascript"> (function(){ function normalizeError(err) { var errorInfo = err.error || {}; var getConfigProp = function(propName, defaultValueIfNotTruthy) { var propValue = window._sharedData && window._sharedData[propName]; return propValue ? propValue : defaultValueIfNotTruthy; }; return { line: err.line || errorInfo.message || 0, column: err.column || 0, name: 'InitError', message: err.message || errorInfo.message || '', script: errorInfo.script || '', stack: errorInfo.stackTrace || errorInfo.stack || '', timestamp: Date.now(), ref: window.location.href, deployment_stage: getConfigProp('deployment_stage', ''), is_canary: getConfigProp('is_canary', false), rollout_hash: getConfigProp('rollout_hash', ''), is_prerelease: window.__PRERELEASE__ || false, bundle_variant: getConfigProp('bundle_variant', null), request_url: err.url || window.location.href, response_status_code: errorInfo.statusCode || 0 } } window.addEventListener('load', function(){ if (window.__bufferedErrors && window.__bufferedErrors.length) { if (window.caches && window.caches.keys && window.caches.delete) { window.caches.keys().then(function(keys) { keys.forEach(function(key) { window.caches.delete(key) }) }) } window.__bufferedErrors.map(function(error) { return normalizeError(error) }).forEach(function(normalizedError) { var request = new XMLHttpRequest(); request.open('POST', '/client_error/', true); request.setRequestHeader('Content-Type', 'application/json; charset=utf-8'); request.send(JSON.stringify(normalizedError)); }) } }) }()); </script> </body> </html> '>
sinatra.error.params
{"media"=>"Bxf6ZGFIJjm"}
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