Skip to content

Logging Panic Stack Trace #64

@johndww

Description

@johndww

I'm looking to be able to log a stack trace when one of my field resolvers panics.

Currently, I get something like this:

        { "query": "query AllAttributes() {attributes(key: $value) {names}}", "variables": {}  } 
        
         [
        	{
        		"message": "runtime error: invalid memory address or nil pointer dereference",
        		"locations": []
        	}
        ]

I've tried to FormatErrorFn which works well for regular errors that get bubbled up, but by the time it gets triggered, the panic's stack trace is missing. I believe the defer-recover function in executor.go completeValueCatchingError would need to capture the stack in debug.Stack() and stash it on the gqlerrors.Error.

I'm happy to attempt to implement it and open a PR, but I'd like to make sure I wasn't missing something first.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions