-
-
Notifications
You must be signed in to change notification settings - Fork 522
Closed
Labels
Description
Sending an event with sentry_event['exception']['stacktrace']['frames'] set to
[{"abs_path"=>"foo.rb",
"function"=>"block in <class:Server>",
"pre_context"=>
[" plan = Plan.load()\n",
" {\n",
" :foo => self.foo?,\n"],
"post_context"=>[" }.to_json\n", " end\n", "\n"],
"context_line"=>
" :plan => PlanResource.new(plan).describe\n",
"lineno"=>100,
"in_app"=>true,
"project_root"=>nil,
"filename"=>"foo.rb"}]
will blow up. Changing
"{\n",
to
"{",
makes it work.
Looks like https://github.com/getsentry/raven-ruby/blob/0.12.0/lib/raven/processor.rb#L18 should return nil if the string isn't valid json, but in this case a NoMethodError is happening rather than an OkJson::Error.
NoMethodError
undefined method `[]' for nil:NilClass
ruby/2.1.0/gems/sentry-raven-0.12.0/lib/raven/okjson.rb:137:in `objparse'
ruby/2.1.0/gems/sentry-raven-0.12.0/lib/raven/okjson.rb:105:in `textparse'
ruby/2.1.0/gems/sentry-raven-0.12.0/lib/raven/okjson.rb:47:in `decode'
ruby/2.1.0/gems/sentry-raven-0.12.0/lib/raven/processor.rb:20:in `parse_json_or_nil'
ruby/2.1.0/gems/sentry-raven-0.12.0/lib/raven/processor/sanitizedata.rb:15:in `block in process'
ruby/2.1.0/gems/sentry-raven-0.12.0/lib/raven/processor/sanitizedata.rb:11:in `each'
ruby/2.1.0/gems/sentry-raven-0.12.0/lib/raven/processor/sanitizedata.rb:11:in `inject'
ruby/2.1.0/gems/sentry-raven-0.12.0/lib/raven/processor/sanitizedata.rb:11:in `process'
ruby/2.1.0/gems/sentry-raven-0.12.0/lib/raven/processor/sanitizedata.rb:14:in `block in process'
ruby/2.1.0/gems/sentry-raven-0.12.0/lib/raven/processor/sanitizedata.rb:11:in `each'
ruby/2.1.0/gems/sentry-raven-0.12.0/lib/raven/processor/sanitizedata.rb:11:in `inject'
ruby/2.1.0/gems/sentry-raven-0.12.0/lib/raven/processor/sanitizedata.rb:11:in `process'
ruby/2.1.0/gems/sentry-raven-0.12.0/lib/raven/processor/sanitizedata.rb:14:in `block in process'
ruby/2.1.0/gems/sentry-raven-0.12.0/lib/raven/processor/sanitizedata.rb:11:in `each'
ruby/2.1.0/gems/sentry-raven-0.12.0/lib/raven/processor/sanitizedata.rb:11:in `inject'
ruby/2.1.0/gems/sentry-raven-0.12.0/lib/raven/processor/sanitizedata.rb:11:in `process'
ruby/2.1.0/gems/sentry-raven-0.12.0/lib/raven/processor/sanitizedata.rb:14:in `block in process'
ruby/2.1.0/gems/sentry-raven-0.12.0/lib/raven/processor/sanitizedata.rb:11:in `each'
ruby/2.1.0/gems/sentry-raven-0.12.0/lib/raven/processor/sanitizedata.rb:11:in `inject'
ruby/2.1.0/gems/sentry-raven-0.12.0/lib/raven/processor/sanitizedata.rb:11:in `process'
ruby/2.1.0/gems/sentry-raven-0.12.0/lib/raven/processor/sanitizedata.rb:14:in `block in process'
ruby/2.1.0/gems/sentry-raven-0.12.0/lib/raven/processor/sanitizedata.rb:11:in `each'
ruby/2.1.0/gems/sentry-raven-0.12.0/lib/raven/processor/sanitizedata.rb:11:in `inject'
ruby/2.1.0/gems/sentry-raven-0.12.0/lib/raven/processor/sanitizedata.rb:11:in `process'
ruby/2.1.0/gems/sentry-raven-0.12.0/lib/raven/processor/sanitizedata.rb:14:in `block in process'
ruby/2.1.0/gems/sentry-raven-0.12.0/lib/raven/processor/sanitizedata.rb:11:in `each'
ruby/2.1.0/gems/sentry-raven-0.12.0/lib/raven/processor/sanitizedata.rb:11:in `inject'
ruby/2.1.0/gems/sentry-raven-0.12.0/lib/raven/processor/sanitizedata.rb:11:in `process'
ruby/2.1.0/gems/sentry-raven-0.12.0/lib/raven/client.rb:54:in `block in encode'
ruby/2.1.0/gems/sentry-raven-0.12.0/lib/raven/client.rb:53:in `each'
ruby/2.1.0/gems/sentry-raven-0.12.0/lib/raven/client.rb:53:in `reduce'
ruby/2.1.0/gems/sentry-raven-0.12.0/lib/raven/client.rb:53:in `encode'
ruby/2.1.0/gems/sentry-raven-0.12.0/lib/raven/client.rb:34:in `send'
ruby/2.1.0/gems/sentry-raven-0.12.0/lib/raven/base.rb:72:in `send'