microsoft / TypeScript

TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
https://www.typescriptlang.org
Apache License 2.0
100.26k stars 12.38k forks source link

[ServerErrors][JavaScript] 5.3.0-dev.20231029 #56252

Closed typescript-bot closed 1 month ago

typescript-bot commented 10 months ago

The following errors were reported by 5.3.0-dev.20231029 Pipeline that generated this bug Logs for the pipeline run File that generated the pipeline

This run considered 200 popular TS repos from GH (after skipping the top 0).

Successfully analyzed 193 of 200 visited repos | Outcome | Count | |---------|-------| | Detected interesting changes | 3 | | Detected no interesting changes | 190 | | Unknown failure | 7 |

Investigation Status

Repo Errors Outcome
!a65c951aa1ef9eae2bb61ce354ef2e58 1
05dc022b77792efd84491358bf4bf0af 1
946072a365ec9c366c0d2a84d2e41c5a 1
typescript-bot commented 10 months ago
RangeError: Maximum call stack size exceeded ``` Req #7173 - completionInfo at getSymbolLinks (/typescript-5.2.2/lib/tsserver.js:49047:26) at getTypeOfSymbolWithDeferredType (/typescript-5.2.2/lib/tsserver.js:56953:19) at getTypeOfSymbol (/typescript-5.2.2/lib/tsserver.js:56986:14) at getExpandedParameters (/typescript-5.2.2/lib/tsserver.js:57892:24) at signatureToSignatureDeclarationHelper (/typescript-5.2.2/lib/tsserver.js:53150:30) at createTypeNodesFromResolvedType (/typescript-5.2.2/lib/tsserver.js:52909:29) at createTypeNodeFromObjectType (/typescript-5.2.2/lib/tsserver.js:52741:25) at createAnonymousTypeNode (/typescript-5.2.2/lib/tsserver.js:52629:18) at typeToTypeNodeWorker (/typescript-5.2.2/lib/tsserver.js:52426:16) at typeToTypeNodeHelper (/typescript-5.2.2/lib/tsserver.js:52206:24) at /typescript-5.2.2/lib/tsserver.js:52141:134 at withContext (/typescript-5.2.2/lib/tsserver.js:52193:29) at Object.typeToTypeNode (/typescript-5.2.2/lib/tsserver.js:52141:71) at typeToString (/typescript-5.2.2/lib/tsserver.js:52094:34) at reportNonexistentProperty (/typescript-5.2.2/lib/tsserver.js:74205:27) at checkPropertyAccessExpressionOrQualifiedName (/typescript-5.2.2/lib/tsserver.js:74039:11) at checkPropertyAccessExpression (/typescript-5.2.2/lib/tsserver.js:73824:94) at checkExpressionWorker (/typescript-5.2.2/lib/tsserver.js:79454:16) at checkExpression (/typescript-5.2.2/lib/tsserver.js:79375:32) at checkExpressionCached (/typescript-5.2.2/lib/tsserver.js:79048:28) at getTargetOfAliasLikeExpression (/typescript-5.2.2/lib/tsserver.js:50484:5) at getTargetOfAccessExpression (/typescript-5.2.2/lib/tsserver.js:50491:12) at getTargetOfAliasDeclaration (/typescript-5.2.2/lib/tsserver.js:50526:16) at getTypeOfAlias (/typescript-5.2.2/lib/tsserver.js:56915:51) at getTypeOfSymbol (/typescript-5.2.2/lib/tsserver.js:57010:14) at getNonMissingTypeOfSymbol (/typescript-5.2.2/lib/tsserver.js:57015:30) at addPropertyToElementList (/typescript-5.2.2/lib/tsserver.js:52970:97) at createTypeNodesFromResolvedType (/typescript-5.2.2/lib/tsserver.js:52947:11) at createTypeNodeFromObjectType (/typescript-5.2.2/lib/tsserver.js:52741:25) at createAnonymousTypeNode (/typescript-5.2.2/lib/tsserver.js:52629:18) at typeToTypeNodeWorker (/typescript-5.2.2/lib/tsserver.js:52426:16) at typeToTypeNodeHelper (/typescript-5.2.2/lib/tsserver.js:52206:24) at /typescript-5.2.2/lib/tsserver.js:52141:134 at withContext (/typescript-5.2.2/lib/tsserver.js:52193:29) at Object.typeToTypeNode (/typescript-5.2.2/lib/tsserver.js:52141:71) at typeToString (/typescript-5.2.2/lib/tsserver.js:52094:34) at reportNonexistentProperty (/typescript-5.2.2/lib/tsserver.js:74205:27) at checkPropertyAccessExpressionOrQualifiedName (/typescript-5.2.2/lib/tsserver.js:74039:11) at checkPropertyAccessExpression (/typescript-5.2.2/lib/tsserver.js:73824:94) at checkExpressionWorker (/typescript-5.2.2/lib/tsserver.js:79454:16) at checkExpression (/typescript-5.2.2/lib/tsserver.js:79375:32) at checkExpressionCached (/typescript-5.2.2/lib/tsserver.js:79048:28) at getTargetOfAliasLikeExpression (/typescript-5.2.2/lib/tsserver.js:50484:5) at getTargetOfAccessExpression (/typescript-5.2.2/lib/tsserver.js:50491:12) at getTargetOfAliasDeclaration (/typescript-5.2.2/lib/tsserver.js:50526:16) at getTypeOfAlias (/typescript-5.2.2/lib/tsserver.js:56915:51) at getTypeOfSymbol (/typescript-5.2.2/lib/tsserver.js:57010:14) at getNonMissingTypeOfSymbol (/typescript-5.2.2/lib/tsserver.js:57015:30) at addPropertyToElementList (/typescript-5.2.2/lib/tsserver.js:52970:97) at createTypeNodesFromResolvedType (/typescript-5.2.2/lib/tsserver.js:52947:11) at createTypeNodeFromObjectType (/typescript-5.2.2/lib/tsserver.js:52741:25) at createAnonymousTypeNode (/typescript-5.2.2/lib/tsserver.js:52629:18) at typeToTypeNodeWorker (/typescript-5.2.2/lib/tsserver.js:52426:16) at typeToTypeNodeHelper (/typescript-5.2.2/lib/tsserver.js:52206:24) at /typescript-5.2.2/lib/tsserver.js:52141:134 at withContext (/typescript-5.2.2/lib/tsserver.js:52193:29) at Object.typeToTypeNode (/typescript-5.2.2/lib/tsserver.js:52141:71) at typeToString (/typescript-5.2.2/lib/tsserver.js:52094:34) at reportNonexistentProperty (/typescript-5.2.2/lib/tsserver.js:74205:27) at checkPropertyAccessExpressionOrQualifiedName (/typescript-5.2.2/lib/tsserver.js:74039:11) at checkPropertyAccessExpression (/typescript-5.2.2/lib/tsserver.js:73824:94) at checkExpressionWorker (/typescript-5.2.2/lib/tsserver.js:79454:16) at checkExpression (/typescript-5.2.2/lib/tsserver.js:79375:32) at checkExpressionCached (/typescript-5.2.2/lib/tsserver.js:79048:28) at getTargetOfAliasLikeExpression (/typescript-5.2.2/lib/tsserver.js:50484:5) at getTargetOfAccessExpression (/typescript-5.2.2/lib/tsserver.js:50491:12) at getTargetOfAliasDeclaration (/typescript-5.2.2/lib/tsserver.js:50526:16) at getTypeOfAlias (/typescript-5.2.2/lib/tsserver.js:56915:51) at getTypeOfSymbol (/typescript-5.2.2/lib/tsserver.js:57010:14) at getNonMissingTypeOfSymbol (/typescript-5.2.2/lib/tsserver.js:57015:30) at addPropertyToElementList (/typescript-5.2.2/lib/tsserver.js:52970:97) at createTypeNodesFromResolvedType (/typescript-5.2.2/lib/tsserver.js:52947:11) at createTypeNodeFromObjectType (/typescript-5.2.2/lib/tsserver.js:52741:25) at createAnonymousTypeNode (/typescript-5.2.2/lib/tsserver.js:52629:18) at typeToTypeNodeWorker (/typescript-5.2.2/lib/tsserver.js:52426:16) at typeToTypeNodeHelper (/typescript-5.2.2/lib/tsserver.js:52206:24) at /typescript-5.2.2/lib/tsserver.js:52141:134 at withContext (/typescript-5.2.2/lib/tsserver.js:52193:29) at Object.typeToTypeNode (/typescript-5.2.2/lib/tsserver.js:52141:71) at typeToString (/typescript-5.2.2/lib/tsserver.js:52094:34) at reportNonexistentProperty (/typescript-5.2.2/lib/tsserver.js:74205:27) at checkPropertyAccessExpressionOrQualifiedName (/typescript-5.2.2/lib/tsserver.js:74039:11) at checkPropertyAccessExpression (/typescript-5.2.2/lib/tsserver.js:73824:94) at checkExpressionWorker (/typescript-5.2.2/lib/tsserver.js:79454:16) at checkExpression (/typescript-5.2.2/lib/tsserver.js:79375:32) at checkExpressionCached (/typescript-5.2.2/lib/tsserver.js:79048:28) at getTargetOfAliasLikeExpression (/typescript-5.2.2/lib/tsserver.js:50484:5) at getTargetOfAccessExpression (/typescript-5.2.2/lib/tsserver.js:50491:12) at getTargetOfAliasDeclaration (/typescript-5.2.2/lib/tsserver.js:50526:16) at getTypeOfAlias (/typescript-5.2.2/lib/tsserver.js:56915:51) at getTypeOfSymbol (/typescript-5.2.2/lib/tsserver.js:57010:14) at getNonMissingTypeOfSymbol (/typescript-5.2.2/lib/tsserver.js:57015:30) at addPropertyToElementList (/typescript-5.2.2/lib/tsserver.js:52970:97) at createTypeNodesFromResolvedType (/typescript-5.2.2/lib/tsserver.js:52947:11) at createTypeNodeFromObjectType (/typescript-5.2.2/lib/tsserver.js:52741:25) at createAnonymousTypeNode (/typescript-5.2.2/lib/tsserver.js:52629:18) at typeToTypeNodeWorker (/typescript-5.2.2/lib/tsserver.js:52426:16) at typeToTypeNodeHelper (/typescript-5.2.2/lib/tsserver.js:52206:24) at /typescript-5.2.2/lib/tsserver.js:52141:134 at withContext (/typescript-5.2.2/lib/tsserver.js:52193:29) ```

Repos no longer reporting the error

typescript-bot commented 10 months ago

Server exited prematurely with code unknown and signal SIGABRT

Server exited prematurely with code unknown and signal SIGABRT

Affected repos

tastejs/todomvc Raw error text: RepoResults5/tastejs.todomvc.rawError.txt in the artifact folder

Last few requests

```json {"seq":4544,"type":"request","command":"completionInfo","arguments":{"file":"@PROJECT_ROOT@/examples/angular-dart/web/main.dart.js","line":17772,"offset":82,"includeExternalModuleExports":false,"triggerKind":1}} {"seq":4545,"type":"request","command":"definitionAndBoundSpan","arguments":{"file":"@PROJECT_ROOT@/examples/angular-dart/web/main.dart.js","line":17772,"offset":87}} {"seq":4546,"type":"request","command":"references","arguments":{"file":"@PROJECT_ROOT@/examples/angular-dart/web/main.dart.js","line":17772,"offset":87}} {"seq":4547,"type":"request","command":"completionInfo","arguments":{"file":"@PROJECT_ROOT@/examples/angular-dart/web/main.dart.js","line":17772,"offset":87,"includeExternalModuleExports":false,"triggerKind":1}} ```

Repro steps

  1. git clone https://github.com/tastejs/todomvc --recurse-submodules
  2. In dir todomvc, run git reset --hard 3595bc2c4d136032fde2cd008f843fb205d1b44f
  3. Install packages (exact steps are below, but it might be easier to follow the repo readme)
    1. In dir todomvc/bower_components/bootstrap, run npm install --prefer-offline --no-audit --no-progress --legacy-peer-deps --ignore-scripts -q
    2. In dir todomvc/bower_components/webcomponentsjs, run npm install --prefer-offline --no-audit --no-progress --legacy-peer-deps --ignore-scripts -q
    3. In dir todomvc/examples/angular-dart, run npm install --prefer-offline --no-audit --no-progress --legacy-peer-deps --ignore-scripts -q
    4. In dir todomvc/examples/angular2_es2015, run npm install --prefer-offline --no-audit --no-progress --legacy-peer-deps --ignore-scripts -q
    5. In dir todomvc/examples/angular2, run npm install --prefer-offline --no-audit --no-progress --legacy-peer-deps --ignore-scripts -q
    6. In dir todomvc/examples/angularjs_require, run npm install --prefer-offline --no-audit --no-progress --legacy-peer-deps --ignore-scripts -q
    7. In dir todomvc/examples/angularjs_require/test, run npm install --prefer-offline --no-audit --no-progress --legacy-peer-deps --ignore-scripts -q
    8. In dir todomvc/examples/angularjs, run npm install --prefer-offline --no-audit --no-progress --legacy-peer-deps --ignore-scripts -q
    9. In dir todomvc/examples/aurelia, run npm ci --prefer-offline --no-audit --no-progress --legacy-peer-deps --ignore-scripts -q
    10. In dir todomvc/examples/backbone_marionette, run npm install --prefer-offline --no-audit --no-progress --legacy-peer-deps --ignore-scripts -q
    11. In dir todomvc/examples/backbone_require, run npm install --prefer-offline --no-audit --no-progress --legacy-peer-deps --ignore-scripts -q
    12. In dir todomvc/examples/backbone, run npm install --prefer-offline --no-audit --no-progress --legacy-peer-deps --ignore-scripts -q
    13. In dir todomvc/examples/binding-scala, run npm install --prefer-offline --no-audit --no-progress --legacy-peer-deps --ignore-scripts -q
    14. In dir todomvc/examples/canjs_require, run npm install --prefer-offline --no-audit --no-progress --legacy-peer-deps --ignore-scripts -q
    15. In dir todomvc/examples/canjs, run npm install --prefer-offline --no-audit --no-progress --legacy-peer-deps --ignore-scripts -q
    16. In dir todomvc/examples/closure, run npm install --prefer-offline --no-audit --no-progress --legacy-peer-deps --ignore-scripts -q
    17. In dir todomvc/examples/cujo, run npm install --prefer-offline --no-audit --no-progress --legacy-peer-deps --ignore-scripts -q
    18. In dir todomvc/examples/dijon, run npm install --prefer-offline --no-audit --no-progress --legacy-peer-deps --ignore-scripts -q
    19. In dir todomvc/examples/dojo, run npm install --prefer-offline --no-audit --no-progress --legacy-peer-deps --ignore-scripts -q
    20. In dir todomvc/examples/duel, run npm install --prefer-offline --no-audit --no-progress --legacy-peer-deps --ignore-scripts -q
    21. In dir todomvc/examples/elm, run npm install --prefer-offline --no-audit --no-progress --legacy-peer-deps --ignore-scripts -q
    22. In dir todomvc/examples/emberjs/todomvc, run npm ci --prefer-offline --no-audit --no-progress --legacy-peer-deps --ignore-scripts -q
    23. In dir todomvc/examples/enyo_backbone, run npm install --prefer-offline --no-audit --no-progress --legacy-peer-deps --ignore-scripts -q
    24. In dir todomvc/examples/exoskeleton, run npm install --prefer-offline --no-audit --no-progress --legacy-peer-deps --ignore-scripts -q
    25. In dir todomvc/examples/firebase-angular, run npm install --prefer-offline --no-audit --no-progress --legacy-peer-deps --ignore-scripts -q
    26. In dir todomvc/examples/gwt, run npm install --prefer-offline --no-audit --no-progress --legacy-peer-deps --ignore-scripts -q
    27. In dir todomvc/examples/jquery, run npm install --prefer-offline --no-audit --no-progress --legacy-peer-deps --ignore-scripts -q
    28. In dir todomvc/examples/js_of_ocaml, run npm install --prefer-offline --no-audit --no-progress --legacy-peer-deps --ignore-scripts -q
    29. In dir todomvc/examples/jsblocks, run npm install --prefer-offline --no-audit --no-progress --legacy-peer-deps --ignore-scripts -q
    30. In dir todomvc/examples/knockback, run npm install --prefer-offline --no-audit --no-progress --legacy-peer-deps --ignore-scripts -q
    31. In dir todomvc/examples/knockoutjs_require, run npm install --prefer-offline --no-audit --no-progress --legacy-peer-deps --ignore-scripts -q
    32. In dir todomvc/examples/knockoutjs, run npm install --prefer-offline --no-audit --no-progress --legacy-peer-deps --ignore-scripts -q
    33. In dir todomvc/examples/kotlin-react, run npm install --prefer-offline --no-audit --no-progress --legacy-peer-deps --ignore-scripts -q
    34. In dir todomvc/examples/lavaca_require, run npm install --prefer-offline --no-audit --no-progress --legacy-peer-deps --ignore-scripts -q
    35. In dir todomvc/examples/lit, run npm ci --prefer-offline --no-audit --no-progress --legacy-peer-deps --ignore-scripts -q
    36. In dir todomvc/examples/mithril, run npm install --prefer-offline --no-audit --no-progress --legacy-peer-deps --ignore-scripts -q
    37. In dir todomvc/examples/polymer, run npm install --prefer-offline --no-audit --no-progress --legacy-peer-deps --ignore-scripts -q
    38. In dir todomvc/examples/ractive, run npm install --prefer-offline --no-audit --no-progress --legacy-peer-deps --ignore-scripts -q
    39. In dir todomvc/examples/react-alt, run npm install --prefer-offline --no-audit --no-progress --legacy-peer-deps --ignore-scripts -q
    40. In dir todomvc/examples/react-backbone, run npm install --prefer-offline --no-audit --no-progress --legacy-peer-deps --ignore-scripts -q
    41. In dir todomvc/examples/react-hooks, run npm ci --prefer-offline --no-audit --no-progress --legacy-peer-deps --ignore-scripts -q
    42. In dir todomvc/examples/react-redux, run npm ci --prefer-offline --no-audit --no-progress --legacy-peer-deps --ignore-scripts -q
    43. In dir todomvc/examples/react, run npm install --prefer-offline --no-audit --no-progress --legacy-peer-deps --ignore-scripts -q
    44. In dir todomvc/examples/reagent, run npm install --prefer-offline --no-audit --no-progress --legacy-peer-deps --ignore-scripts -q
    45. In dir todomvc/examples/riotjs, run npm install --prefer-offline --no-audit --no-progress --legacy-peer-deps --ignore-scripts -q
    46. In dir todomvc/examples/scalajs-react, run npm install --prefer-offline --no-audit --no-progress --legacy-peer-deps --ignore-scripts -q
    47. In dir todomvc/examples/svelte, run npm ci --prefer-offline --no-audit --no-progress --legacy-peer-deps --ignore-scripts -q
    48. In dir todomvc/examples/typescript-angular, run npm install --prefer-offline --no-audit --no-progress --legacy-peer-deps --ignore-scripts -q
    49. In dir todomvc/examples/typescript-backbone, run npm install --prefer-offline --no-audit --no-progress --legacy-peer-deps --ignore-scripts -q
    50. In dir todomvc/examples/typescript-react, run npm install --prefer-offline --no-audit --no-progress --legacy-peer-deps --ignore-scripts -q
    51. In dir todomvc/examples/vanilla-es6, run npm install --prefer-offline --no-audit --no-progress --legacy-peer-deps --ignore-scripts -q
    52. In dir todomvc/examples/vanillajs, run npm install --prefer-offline --no-audit --no-progress --legacy-peer-deps --ignore-scripts -q
    53. In dir todomvc/examples/vue, run npm install --prefer-offline --no-audit --no-progress --legacy-peer-deps --ignore-scripts -q
    54. In dir todomvc/examples/web-components, run npm ci --prefer-offline --no-audit --no-progress --legacy-peer-deps --ignore-scripts -q
    55. In dir todomvc, run npm ci --prefer-offline --no-audit --no-progress --legacy-peer-deps --ignore-scripts -q
    56. In dir todomvc/tasks, run npm install --prefer-offline --no-audit --no-progress --legacy-peer-deps --ignore-scripts -q
    57. In dir todomvc/tests, run npm install --prefer-offline --no-audit --no-progress --legacy-peer-deps --ignore-scripts -q
    58. In dir todomvc/tooling, run npm install --prefer-offline --no-audit --no-progress --legacy-peer-deps --ignore-scripts -q
    59. In dir todomvc/updates/backbone, run npm ci --prefer-offline --no-audit --no-progress --legacy-peer-deps --ignore-scripts -q
    60. In dir todomvc/updates/jquery, run npm ci --prefer-offline --no-audit --no-progress --legacy-peer-deps --ignore-scripts -q
    61. In dir todomvc/updates/react, run npm ci --prefer-offline --no-audit --no-progress --legacy-peer-deps --ignore-scripts -q
  4. Back in the initial folder, download RepoResults5/tastejs.todomvc.replay.txt from the artifact folder
  5. npm install --no-save @typescript/server-replay
  6. npx tsreplay ./todomvc ./tastejs.todomvc.replay.txt path/to/tsserver.js
  7. npx tsreplay --help to learn about helpful switches for debugging, logging, etc

typescript-bot commented 10 months ago

Verbose Debug Information: {"pos":74020,"end":77774} and {"pos":74020,"end":77774}

Req #3 - organizeImports
    at /typescript-5.3.0-dev.20231029/lib/tsserver.js:169200:15
    at mapDefined (/typescript-5.3.0-dev.20231029/lib/tsserver.js:2668:22)
    at Object.getTextChangesFromChanges (/typescript-5.3.0-dev.20231029/lib/tsserver.js:169196:12)
    at _ChangeTracker.getChanges (/typescript-5.3.0-dev.20231029/lib/tsserver.js:169093:35)
    at Object.organizeImports (/typescript-5.3.0-dev.20231029/lib/tsserver.js:165885:24)
    at Object.organizeImports2 [as organizeImports] (/typescript-5.3.0-dev.20231029/lib/tsserver.js:145392:39)
    at IOSession.organizeImports (/typescript-5.3.0-dev.20231029/lib/tsserver.js:185018:50)
    at organizeImports (/typescript-5.3.0-dev.20231029/lib/tsserver.js:183228:43)
    at /typescript-5.3.0-dev.20231029/lib/tsserver.js:185366:69
    at IOSession.executeWithRequestId (/typescript-5.3.0-dev.20231029/lib/tsserver.js:185358:14)
    at IOSession.executeCommand (/typescript-5.3.0-dev.20231029/lib/tsserver.js:185366:29)
    at IOSession.onMessage (/typescript-5.3.0-dev.20231029/lib/tsserver.js:185408:51)
    at Interface.<anonymous> (/typescript-5.3.0-dev.20231029/lib/tsserver.js:186966:14)

Affected repos

parcel-bundler/parcel Raw error text: RepoResults2/parcel-bundler.parcel.rawError.txt in the artifact folder

Last few requests

```json {"rootDirPlaceholder":"@PROJECT_ROOT@","serverArgs":["--disableAutomaticTypingAcquisition"]} {"seq":1,"type":"request","command":"configure","arguments":{"preferences":{"disableLineTextInReferences":true,"includePackageJsonAutoImports":"auto","includeCompletionsForImportStatements":true,"includeCompletionsWithSnippetText":true,"includeAutomaticOptionalChainCompletions":true,"includeCompletionsWithInsertText":true,"includeCompletionsWithClassMemberSnippets":true,"allowIncompleteCompletions":true,"includeCompletionsForModuleExports":false},"watchOptions":{"excludeDirectories":["**/node_modules"]}}} {"seq":2,"type":"request","command":"updateOpen","arguments":{"changedFiles":[],"closedFiles":[],"openFiles":[{"file":"@PROJECT_ROOT@/flow-typed/npm/@swc/core_v1.x.x.js","projectRootPath":"@PROJECT_ROOT@"}]}} {"seq":3,"type":"request","command":"organizeImports","arguments":{"scope":{"type":"file","args":{"file":"@PROJECT_ROOT@/flow-typed/npm/@swc/core_v1.x.x.js"}},"skipDestructiveCodeActions":false}} ```

Repro steps

  1. git clone https://github.com/parcel-bundler/parcel --recurse-submodules
  2. In dir parcel, run git reset --hard e0909fed31feb41e1029146a08f311a7e5769fb7
  3. In dir parcel, run yarn install --ignore-engines --ignore-scripts --silent
  4. Back in the initial folder, download RepoResults2/parcel-bundler.parcel.replay.txt from the artifact folder
  5. npm install --no-save @typescript/server-replay
  6. npx tsreplay ./parcel ./parcel-bundler.parcel.replay.txt path/to/tsserver.js
  7. npx tsreplay --help to learn about helpful switches for debugging, logging, etc