Skip to content

Call stacks containing <anonymous> source fail to symbolicate #1580

@samuelmaddock

Description

@samuelmaddock

Environment

macOS 15.2 ARM64

Steps to Reproduce

  1. Format a call stack received from the Crash Reporting API
Error: Example unresponsive call stack
    at Object.hasOwnProperty (<anonymous>)
  1. Submit it to the /symbolicate-js endpoint
{
  "platform": "node",
  "source": {
    "id": "<id>",
    "url": "https://sentry.io/api/0/projects/sentry-org/sentry-project/artifact-lookup/",
    "token": "secret"
  },
  "stacktraces": [
    {
      "frames": [
        {
          "function": "Object.hasOwnProperty",
          "in_app": false
        }
      ]
    }
  ],
  "dist": "production",
  "release": "1.33.1",
  "scraping": {
    "enabled": true,
    "allowed_origins": [
      "*"
    ],
    "headers": {}
  }
}

Expected Result

The call stack is returned with a partially symbolicated call stack.

Actual Result

Failed to deserialize the JSON body into the target type: stacktraces[0].frames[0]: missing field `abs_path` at line 1 column 220

Additional Background

I'm investigating collecting unresponsive renderer call stacks in Sentry using the new Crash Reporting API. This relates to the work @timfish initiated in getsentry/sentry-javascript#14044

The first line of the call stacks contain the <anonymous> source. Whether this is expected or not, it'd be great if the symbolicator service could handle this case so the call stacks can be symbolicated.


I found the code within V8 which handles formatting JS call stacks.
https://source.chromium.org/chromium/chromium/src/+/main:v8/src/objects/call-site-info.cc;l=688-718;drc=763100e0bf9a25ba6f203612af5a4331fbd2d048

According to the implementation of AppendFileLocation, it can output <anonymous> by itself if there's no line number associated with the frame.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

Status

No status

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions