[:errorI"AErrno::ENOSPC: No space left on device @ io_write - :ET[I"[/usr/local/rvm/gems/ruby-2.6.3/gems/rack-2.0.7/lib/rack/common_logger.rb:61:in `write';FI"Y/usr/local/rvm/gems/ruby-2.6.3/gems/rack-2.0.7/lib/rack/common_logger.rb:61:in `log';FI"c/usr/local/rvm/gems/ruby-2.6.3/gems/rack-2.0.7/lib/rack/common_logger.rb:35:in `block in call';FI"X/usr/local/rvm/gems/ruby-2.6.3/gems/rack-2.0.7/lib/rack/body_proxy.rb:23:in `close';FI"e/usr/local/rvm/gems/ruby-2.6.3/gems/shotgun-0.9.2/lib/shotgun/loader.rb:89:in `proceed_as_child';FI"Z/usr/local/rvm/gems/ruby-2.6.3/gems/shotgun-0.9.2/lib/shotgun/loader.rb:31:in `call!';FI"Y/usr/local/rvm/gems/ruby-2.6.3/gems/shotgun-0.9.2/lib/shotgun/loader.rb:18:in `call';FI"Z/usr/local/rvm/gems/ruby-2.6.3/gems/shotgun-0.9.2/lib/shotgun/favicon.rb:12:in `call';FI"\/usr/local/rvm/gems/ruby-2.6.3/gems/rack-2.0.7/lib/rack/urlmap.rb:68:in `block in call';FI"S/usr/local/rvm/gems/ruby-2.6.3/gems/rack-2.0.7/lib/rack/urlmap.rb:53:in `each';FI"S/usr/local/rvm/gems/ruby-2.6.3/gems/rack-2.0.7/lib/rack/urlmap.rb:53:in `call';FI"U/usr/local/rvm/gems/ruby-2.6.3/gems/rack-2.0.7/lib/rack/builder.rb:153:in `call';FI"_/usr/local/rvm/gems/ruby-2.6.3/gems/rack-2.0.7/lib/rack/handler/webrick.rb:86:in `service';FI"[/usr/local/rvm/rubies/ruby-2.6.3/lib/ruby/2.6.0/webrick/httpserver.rb:140:in `service';FI"V/usr/local/rvm/rubies/ruby-2.6.3/lib/ruby/2.6.0/webrick/httpserver.rb:96:in `run';FI"e/usr/local/rvm/rubies/ruby-2.6.3/lib/ruby/2.6.0/webrick/server.rb:307:in `block in start_thread';FHTTP/1.1 500 Internal Server Error Content-Type: text/html Content-Length: 143486 Server: WEBrick/1.4.2 (Ruby/2.6.3/2019-04-16) Date: Thu, 21 Nov 2019 02:50:33 GMT Connection: Keep-Alive Errno::ENOSPC at /tag/usmarinecorp

BACKTRACE

(expand)

  • /usr/local/rvm/gems/ruby-2.6.3/gems/rack-2.0.7/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.6.3/gems/rack-2.0.7/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.6.3/gems/rack-2.0.7/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.6.3/gems/sinatra-2.0.7/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.6.3/gems/sinatra-2.0.7/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.6.3/gems/sinatra-2.0.7/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.6.3/gems/sinatra-2.0.7/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.6.3/gems/sinatra-2.0.7/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.6.3/gems/sinatra-2.0.7/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.6.3/gems/sinatra-2.0.7/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.6.3/gems/sinatra-2.0.7/lib/sinatra/base.rb in dispatch!
    1. end
    2. invoke do
    3. static! if settings.static? && (request.get? || request.head?)
    4. filter! :before
    5. route!
    6. end
    1. rescue ::Exception => boom
    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
  • /usr/local/rvm/gems/ruby-2.6.3/gems/sinatra-2.0.7/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.6.3/gems/sinatra-2.0.7/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.6.3/gems/sinatra-2.0.7/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.6.3/gems/sinatra-2.0.7/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.6.3/gems/sinatra-2.0.7/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.6.3/gems/sinatra-2.0.7/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.6.3/gems/rack-protection-2.0.7/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.6.3/gems/rack-protection-2.0.7/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. encoding = path.encoding
    6. dot = '.'.encode(encoding)
  • /usr/local/rvm/gems/ruby-2.6.3/gems/rack-protection-2.0.7/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.6.3/gems/rack-protection-2.0.7/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.6.3/gems/rack-protection-2.0.7/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.6.3/gems/rack-protection-2.0.7/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.6.3/gems/rack-2.0.7/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.6.3/gems/rack-2.0.7/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.6.3/gems/rack-2.0.7/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.6.3/gems/sinatra-2.0.7/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.6.3/gems/sinatra-2.0.7/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.6.3/gems/sinatra-2.0.7/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.6.3/gems/sinatra-2.0.7/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.6.3/gems/sinatra-2.0.7/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.6.3/gems/sinatra-2.0.7/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.6.3/gems/rack-2.0.7/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.6.3/gems/rack-2.0.7/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.6.3/gems/rack-2.0.7/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.6.3/gems/rack-2.0.7/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.6.3/gems/sinatra-2.0.7/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.6.3/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.6.3/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.6.3/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.6.3/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.6.3/gems/rack-2.0.7/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.6.3/gems/rack-2.0.7/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.6.3/gems/rack-2.0.7/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.6.3/gems/rack-2.0.7/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.6.3/gems/rack-2.0.7/lib/rack/handler/webrick.rb in service
    1. env[QUERY_STRING] ||= ""
    2. unless env[PATH_INFO] == ""
    3. path, n = req.request_uri.path, env[SCRIPT_NAME].length
    4. env[PATH_INFO] = path[n, path.length-n]
    5. end
    6. env[REQUEST_PATH] ||= [env[SCRIPT_NAME], env[PATH_INFO]].join
    1. status, headers, body = @app.call(env)
    1. begin
    2. res.status = status.to_i
    3. io_lambda = nil
    4. headers.each { |k, vs|
    5. if k == RACK_HIJACK
    6. io_lambda = vs
    7. elsif k.downcase == "set-cookie"
  • /usr/local/rvm/rubies/ruby-2.6.3/lib/ruby/2.6.0/webrick/httpserver.rb in service
    1. servlet, options, script_name, path_info = search_servlet(req.path)
    2. raise HTTPStatus::NotFound, "`#{req.path}' not found." unless servlet
    3. req.script_name = script_name
    4. req.path_info = path_info
    5. si = servlet.get_instance(self, *options)
    6. @logger.debug(format("%s is invoked.", si.class.name))
    1. si.service(req, res)
    1. end
    2. ##
    3. # The default OPTIONS request handler says GET, HEAD, POST and OPTIONS
    4. # requests are allowed.
    5. def do_OPTIONS(req, res)
  • /usr/local/rvm/rubies/ruby-2.6.3/lib/ruby/2.6.0/webrick/httpserver.rb in run
    1. if callback = server[:RequestCallback]
    2. callback.call(req, res)
    3. elsif callback = server[:RequestHandler]
    4. msg = ":RequestHandler is deprecated, please use :RequestCallback"
    5. @logger.warn(msg)
    6. callback.call(req, res)
    7. end
    1. server.service(req, res)
    1. rescue HTTPStatus::EOFError, HTTPStatus::RequestTimeout => ex
    2. res.set_error(ex)
    3. rescue HTTPStatus::Error => ex
    4. @logger.error(ex.message)
    5. res.set_error(ex)
    6. rescue HTTPStatus::Status => ex
    7. res.status = ex.code
  • /usr/local/rvm/rubies/ruby-2.6.3/lib/ruby/2.6.0/webrick/server.rb in block in start_thread
    1. rescue Errno::ECONNRESET, Errno::ECONNABORTED,
    2. Errno::EPROTO, Errno::EINVAL
    3. Thread.exit
    4. end
    5. end
    6. end
    7. call_callback(:AcceptCallback, sock)
    1. block ? block.call(sock) : run(sock)
    1. rescue Errno::ENOTCONN
    2. @logger.debug "Errno::ENOTCONN raised"
    3. rescue ServerError => ex
    4. msg = "#{ex.class}: #{ex.message}\n\t#{ex.backtrace[0]}"
    5. @logger.error msg
    6. rescue Exception => ex
    7. @logger.error ex

GET

No GET data.

POST

No POST data.

No cookie data.

Rack ENV

Variable Value
GATEWAY_INTERFACE
CGI/1.1
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
34.231.21.123
HTTP_CF_IPCOUNTRY
US
HTTP_CF_RAY
538f6be7e80acf6c-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_ACCEL_INTERNAL
/internal-nginx-static-location
HTTP_X_FORWARDED_FOR
34.231.21.123, 34.231.21.123, 34.231.21.123
HTTP_X_FORWARDED_HOST
ebhasly.com
HTTP_X_FORWARDED_PROTO
https
HTTP_X_FORWARDED_SERVER
ebhasly.com
HTTP_X_REAL_IP
34.231.21.123
PATH_INFO
/tag/usmarinecorp
QUERY_STRING
REMOTE_ADDR
198.101.12.104
REMOTE_HOST
198.101.12.104
REQUEST_METHOD
GET
REQUEST_PATH
/tag/usmarinecorp
REQUEST_URI
https://ebhasly.com/tag/usmarinecorp
SCRIPT_NAME
SERVER_NAME
ebhasly.com
SERVER_PORT
443
SERVER_PROTOCOL
HTTP/1.1
SERVER_SOFTWARE
WEBrick/1.4.2 (Ruby/2.6.3/2019-04-16)
rack.errors
#<Object:0x00007fe5d00927f8>
rack.hijack
#<Proc:0x00007fe5c474b218@/usr/local/rvm/gems/ruby-2.6.3/gems/rack-2.0.7/lib/rack/lint.rb:525>
rack.hijack?
true
rack.hijack_io
nil
rack.input
#<Rack::Lint::InputWrapper:0x00007fe5c474aa20 @input=#<StringIO:0x00007fe5bc037880>>
rack.logger
#<Rack::NullLogger:0x00007fe5c47c6eb8 @app=#<Rack::Protection::FrameOptions:0x00007fe5c47c7138 @app=#<Rack::Protection::HttpOrigin:0x00007fe5c47c7318 @app=#<Rack::Protection::IPSpoofing:0x00007fe5c47c7430 @app=#<Rack::Protection::JsonCsrf:0x00007fe5c47c7598 @app=#<Rack::Protection::PathTraversal:0x00007fe5c47c7660 @app=#<Rack::Protection::XSSHeader:0x00007fe5c47c7778 @app=#<Sinatra::Application:0x00007fe5c474a930 @default_layout=:layout, @preferred_extension=nil, @app=nil, @template_cache=#<Tilt::Cache:0x00007fe5c474a890 @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:0x00007fe5c48e7b58 @entry="text/html", @type="text/html", @params={}, @q=1.0>, #<Sinatra::Request::AcceptEntry:0x00007fe5c48e7a18 @entry="application/xhtml+xml", @type="application/xhtml+xml", @params={}, @q=1.0>, #<Sinatra::Request::AcceptEntry:0x00007fe5c48e78b0 @entry="application/xml;q=0.9", @type="application/xml", @params={}, @q=0.9>, #<Sinatra::Request::AcceptEntry:0x00007fe5c48e7518 @entry="*/*;q=0.8", @type="*/*", @params={}, @q=0.8>]
sinatra.commonlogger
true
sinatra.error
#<NoMethodError: undefined method `hashtag' for nil:NilClass>
sinatra.error.params
{"hashtag"=>"usmarinecorp"}
sinatra.route
GET /tag/:hashtag

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

[: errorI"AErrno::ENOSPC: No space left on device @ io_write - :ET[I"[/usr/local/rvm/gems/ruby-2.6.3/gems/rack-2.0.7/lib/rack/common_logger.rb:61:in `write';FI"Y/usr/local/rvm/gems/ruby-2.6.3/gems/rack-2.0.7/lib/rack/common_logger.rb:61:in `log';FI"c/usr/local/rvm/gems/ruby-2.6.3/gems/rack-2.0.7/lib/rack/common_logger.rb:35:in `block in call';FI"X/usr/local/rvm/gems/ruby-2.6.3/gems/rack-2.0.7/lib/rack/body_proxy.rb:23:in `close';FI"e/usr/local/rvm/gems/ruby-2.6.3/gems/shotgun-0.9.2/lib/shotgun/loader.rb:89:in `proceed_as_child';FI"Z/usr/local/rvm/gems/ruby-2.6.3/gems/shotgun-0.9.2/lib/shotgun/loader.rb:31:in `call!';FI"Y/usr/local/rvm/gems/ruby-2.6.3/gems/shotgun-0.9.2/lib/shotgun/loader.rb:18:in `call';FI"Z/usr/local/rvm/gems/ruby-2.6.3/gems/shotgun-0.9.2/lib/shotgun/favicon.rb:12:in `call';FI"\/usr/local/rvm/gems/ruby-2.6.3/gems/rack-2.0.7/lib/rack/urlmap.rb:68:in `block in call';FI"S/usr/local/rvm/gems/ruby-2.6.3/gems/rack-2.0.7/lib/rack/urlmap.rb:53:in `each';FI"S/usr/local/rvm/gems/ruby-2.6.3/gems/rack-2.0.7/lib/rack/urlmap.rb:53:in `call';FI"U/usr/local/rvm/gems/ruby-2.6.3/gems/rack-2.0.7/lib/rack/builder.rb:153:in `call';FI"_/usr/local/rvm/gems/ruby-2.6.3/gems/rack-2.0.7/lib/rack/handler/webrick.rb:86:in `service';FI"[/usr/local/rvm/rubies/ruby-2.6.3/lib/ruby/2.6.0/webrick/httpserver.rb:140:in `service';FI"V/usr/local/rvm/rubies/ruby-2.6.3/lib/ruby/2.6.0/webrick/httpserver.rb:96:in `run';FI"e/usr/local/rvm/rubies/ruby-2.6.3/lib/ruby/2.6.0/webrick/server.rb:307:in `block in start_thread';F