Skip to content

Panic when untitled file is saved #1429

@DanielRosenwasser

Description

@DanielRosenwasser

Stack trace

panic handling request textDocument/diagnostic project not found goroutine 12504 [running]:
runtime/debug.Stack()
	runtime/debug/stack.go:26 +0x64
github.com/microsoft/typescript-go/internal/lsp.(*Server).dispatchLoop.func1.1()
	github.com/microsoft/typescript-go/internal/lsp/server.go:357 +0x54
panic({0x7ff636de5380?, 0x7ff6371033c0?})
	runtime/panic.go:792 +0x124
github.com/microsoft/typescript-go/internal/project.(*Service).EnsureDefaultProjectForFile(0x4000264000, {0x4016390000?, 0x4018ec0240?})
	github.com/microsoft/typescript-go/internal/project/service.go:291 +0xe4
github.com/microsoft/typescript-go/internal/project.(*Service).EnsureDefaultProjectForURI(0x4000264000, {0x4012c1db18?, 0x4018ec0240?})
	github.com/microsoft/typescript-go/internal/project/service.go:274 +0x3c
github.com/microsoft/typescript-go/internal/lsp.(*Server).handleDocumentDiagnostic(0x4000000b40, {0x7ff637109870, 0x40161c2000}, 0x401b8bf170)
	github.com/microsoft/typescript-go/internal/lsp/server.go:650 +0x68
github.com/microsoft/typescript-go/internal/lsp.(*Server).handleRequestOrNotification(0x4002055f68?, {0x7ff637109870?, 0x40161c2000?}, 0x7ff63699589c?)
	github.com/microsoft/typescript-go/internal/lsp/server.go:480 +0x210
github.com/microsoft/typescript-go/internal/lsp.(*Server).dispatchLoop.func1()
	github.com/microsoft/typescript-go/internal/lsp/server.go:370 +0x70
created by github.com/microsoft/typescript-go/internal/lsp.(*Server).dispatchLoop in goroutine 9
	github.com/microsoft/typescript-go/internal/lsp/server.go:388 +0x484

[Error - 10:54:50 AM] Request textDocument/diagnostic failed.

Steps to reproduce

  1. Create an anonymous buffer
  2. Change its file type to JS
  3. Save the file as whatever.js
  4. Get the crash
Here's some of the command history
[Trace - 10:56:21 AM] Sending notification 'textDocument/didOpen'.
Params: {
    "textDocument": {
        "uri": "file:///d%3A/typescript-go/lol.js",
        "languageId": "javascript",
        "version": 1,
        "text": "\r\nvar x = { a: 1, b: 2 }\r\nvar entries = Object.entries(x)"
    }
}


[Trace - 10:56:21 AM] Sending notification 'textDocument/didChange'.
Params: {
    "textDocument": {
        "uri": "file:///d%3A/typescript-go/lol.js",
        "version": 2
    },
    "contentChanges": [
        {
            "range": {
                "start": {
                    "line": 0,
                    "character": 0
                },
                "end": {
                    "line": 2,
                    "character": 31
                }
            },
            "rangeLength": 57,
            "text": "var x = { a: 1, b: 2 }\r\n"
        }
    ]
}


[Trace - 10:56:21 AM] Sending notification 'textDocument/didSave'.
Params: {
    "textDocument": {
        "uri": "file:///d%3A/typescript-go/lol.js"
    },
    "text": "var x = { a: 1, b: 2 }\r\n"
}


[Trace - 10:56:21 AM] Sending notification 'textDocument/didChange'.
Params: {
    "textDocument": {
        "uri": "untitled:Untitled-1",
        "version": 26
    },
    "contentChanges": [
        {
            "range": {
                "start": {
                    "line": 0,
                    "character": 0
                },
                "end": {
                    "line": 1,
                    "character": 0
                }
            },
            "rangeLength": 24,
            "text": ""
        }
    ]
}


[Trace - 10:56:21 AM] Sending request 'textDocument/diagnostic - (3)'.
Params: {
    "textDocument": {
        "uri": "untitled:Untitled-1"
    }
}


[Trace - 10:56:21 AM] Sending notification 'textDocument/didClose'.
Params: {
    "textDocument": {
        "uri": "untitled:Untitled-1"
    }
}


[Trace - 10:56:21 AM] Received request 'client/unregisterCapability - (ts8)'.
Params: {
    "unregisterations": [
        {
            "id": "watcher-5",
            "method": "workspace/didChangeWatchedFiles"
        }
    ]
}


[Trace - 10:56:21 AM] Sending response 'client/unregisterCapability - (ts8)'. Processing request took 1ms
No result returned.


[Trace - 10:56:21 AM] Sending notification '$/cancelRequest'.
Params: {
    "id": 3
}


[Trace - 10:56:21 AM] Sending request 'textDocument/diagnostic - (4)'.
Params: {
    "textDocument": {
        "uri": "file:///d%3A/typescript-go/lol.js"
    }
}


[Trace - 10:56:21 AM] Received request 'client/registerCapability - (ts9)'.
Params: {
    "registrations": [
        {
            "id": "watcher-6",
            "method": "workspace/didChangeWatchedFiles",
            "registerOptions": {
                "watchers": [
                    {
                        "globPattern": "C:/Users/drosen/AppData/Local/Microsoft/TypeScript/7.0/node_modules/**/*.{js,jsx,mjs,cjs,ts,tsx,mts,cts,json}",
                        "kind": 1
                    },
                    {
                        "globPattern": "d:/typescript-go/node_modules/**/*.{js,jsx,mjs,cjs,ts,tsx,mts,cts,json}",
                        "kind": 1
                    }
                ]
            }
        }
    ]
}


[Trace - 10:56:21 AM] Sending response 'client/registerCapability - (ts9)'. Processing request took 0ms
No result returned.


[Trace - 10:56:21 AM] Received request 'client/unregisterCapability - (ts10)'.
Params: {
    "unregisterations": [
        {
            "id": "watcher-2",
            "method": "workspace/didChangeWatchedFiles"
        }
    ]
}


[Trace - 10:56:21 AM] Sending response 'client/unregisterCapability - (ts10)'. Processing request took 0ms
No result returned.


[Trace - 10:56:21 AM] Received request 'client/registerCapability - (ts11)'.
Params: {
    "registrations": [
        {
            "id": "watcher-7",
            "method": "workspace/didChangeWatchedFiles",
            "registerOptions": {
                "watchers": [
                    {
                        "globPattern": "C:/Users/drosen/AppData/Local/Microsoft/TypeScript/7.0/node_modules/**/*.{js,jsx,mjs,cjs,ts,tsx,mts,cts,json}",
                        "kind": 7
                    },
                    {
                        "globPattern": "d:/typescript-go/*.{js,jsx,mjs,cjs,ts,tsx,mts,cts,json}",
                        "kind": 7
                    },
                    {
                        "globPattern": "d:/typescript-go/node_modules/**/*.{js,jsx,mjs,cjs,ts,tsx,mts,cts,json}",
                        "kind": 7
                    }
                ]
            }
        }
    ]
}


[Trace - 10:56:21 AM] Sending response 'client/registerCapability - (ts11)'. Processing request took 0ms
No result returned.


[Trace - 10:56:21 AM] Received request 'workspace/diagnostic/refresh - (ts12)'.
[Trace - 10:56:21 AM] Sending notification '$/cancelRequest'.
Params: {
    "id": 4
}


[Trace - 10:56:21 AM] Sending response 'workspace/diagnostic/refresh - (ts12)'. Processing request took 0ms
No result returned.


[Trace - 10:56:22 AM] Sending request 'textDocument/documentSymbol - (5)'.
Params: {
    "textDocument": {
        "uri": "file:///d%3A/typescript-go/lol.js"
    }
}


[Trace - 10:56:22 AM] Received response 'textDocument/documentSymbol - (5)' in 15ms.
Result: [
    {
        "name": "x",
        "kind": 13,
        "range": {
            "start": {
                "line": 0,
                "character": 4
            },
            "end": {
                "line": 0,
                "character": 22
            }
        },
        "selectionRange": {
            "start": {
                "line": 0,
                "character": 4
            },
            "end": {
                "line": 0,
                "character": 5
            }
        },
        "children": [
            {
                "name": "a",
                "kind": 13,
                "range": {
                    "start": {
                        "line": 0,
                        "character": 10
                    },
                    "end": {
                        "line": 0,
                        "character": 14
                    }
                },
                "selectionRange": {
                    "start": {
                        "line": 0,
                        "character": 10
                    },
                    "end": {
                        "line": 0,
                        "character": 11
                    }
                },
                "children": []
            },
            {
                "name": "b",
                "kind": 13,
                "range": {
                    "start": {
                        "line": 0,
                        "character": 16
                    },
                    "end": {
                        "line": 0,
                        "character": 20
                    }
                },
                "selectionRange": {
                    "start": {
                        "line": 0,
                        "character": 16
                    },
                    "end": {
                        "line": 0,
                        "character": 17
                    }
                },
                "children": []
            }
        ]
    }
]


[Trace - 10:56:22 AM] Received response 'textDocument/diagnostic - (3)' in 44ms. Request failed: InternalError: panic handling request textDocument/diagnostic: project not found (-32603).

Metadata

Metadata

Assignees

Labels

CrashDomain: EditorRelated to the LSP server, editor experience

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions