Skip to content

Dynamic failures in analysis server during dart fix #50553

Open
@eernstg

Description

@eernstg

I hope this is useful, even though I haven't made any attempts to create a minimal scenario. I've experienced a number of dynamic errors raised in the analysis server (2.19.0-421.0.dev) as follows. Run this command:

> cd $SDK/tests/language
> dart fix --dry-run .

The current commit of the SDK repo was e7985b28e9007bc4bfc9f1e5084c1b5376617fe8 .

One example run provided this output:

Computing fixes in language (dry run)...
Error from the analysis server: Exception while getting bulk fixes: type 'BooleanLiteralImpl' is not a subtype of type '_ParenthesizedCondition' in type cast
#0      AstBuilder.endSwitchStatement (package:analyzer/src/fasta/ast_builder.dart:3051:27)
#1      Parser.parseSwitchStatement (package:_fe_analyzer_shared/src/parser/parser_impl.dart:8278:14)
#2      Parser.parseStatementX (package:_fe_analyzer_shared/src/parser/parser_impl.dart:5250:14)
#3      Parser.parseStatement (package:_fe_analyzer_shared/src/parser/parser_impl.dart:5198:20)
#4      Parser.parseFunctionBody (package:_fe_analyzer_shared/src/parser/parser_impl.dart:5103:15)
#5      Parser.parseTopLevelMethod (package:_fe_analyzer_shared/src/parser/parser_impl.dart:3573:13)
#6      Parser.parseTopLevelMemberImpl (package:_fe_analyzer_shared/src/parser/parser_impl.dart:3318:14)
#7      Parser.parseTopLevelDeclarationImpl (package:_fe_analyzer_shared/src/parser/parser_impl.dart:574:14)
#8      Parser.parseUnit (package:_fe_analyzer_shared/src/parser/parser_impl.dart:392:15)
#9      Parser.parseCompilationUnit2 (package:analyzer/src/generated/parser.dart:107:32)
#10     Parser.parseCompilationUnit (package:analyzer/src/generated/parser.dart:103:12)
#11     FileState._parse (package:analyzer/src/dart/analysis/file_state.dart:709:23)
#12     FileState.parse (package:analyzer/src/dart/analysis/file_state.dart:489:14)
#13     FileState._getUnlinkedUnit (package:analyzer/src/dart/analysis/file_state.dart:655:16)
#14     FileState.refresh (package:analyzer/src/dart/analysis/file_state.dart:526:27)
#15     FileSystemState._newFile (package:analyzer/src/dart/analysis/file_state.dart:1435:10)
#16     FileSystemState.getFileForPath2 (package:analyzer/src/dart/analysis/file_state.dart:1267:14)
#17     FileSystemState.getFileForPath (package:analyzer/src/dart/analysis/file_state.dart:1251:12)
#18     AnalysisDriver.getResolvedLibrary (package:analyzer/src/dart/analysis/driver.dart:873:27)
#19     AnalysisSessionImpl.getResolvedLibrary (package:analyzer/src/dart/analysis/session.dart:103:26)
#20     BulkFixProcessor.fixErrors (package:analysis_server/src/services/correction/bulk_fix_processor.dart:244:52)
<asynchronous suspension>
#21     EditBulkFixes.handle (package:analysis_server/src/handler/legacy/edit_bulk_fixes.dart:43:20)
<asynchronous suspension>


#0      FileState.parse (package:analyzer/src/dart/analysis/file_state.dart:491:7)
#1      FileState._getUnlinkedUnit (package:analyzer/src/dart/analysis/file_state.dart:655:16)
#2      FileState.refresh (package:analyzer/src/dart/analysis/file_state.dart:526:27)
#3      FileSystemState._newFile (package:analyzer/src/dart/analysis/file_state.dart:1435:10)
#4      FileSystemState.getFileForPath2 (package:analyzer/src/dart/analysis/file_state.dart:1267:14)
#5      FileSystemState.getFileForPath (package:analyzer/src/dart/analysis/file_state.dart:1251:12)
#6      AnalysisDriver.getResolvedLibrary (package:analyzer/src/dart/analysis/driver.dart:873:27)
#7      AnalysisSessionImpl.getResolvedLibrary (package:analyzer/src/dart/analysis/session.dart:103:26)
#8      BulkFixProcessor.fixErrors (package:analysis_server/src/services/correction/bulk_fix_processor.dart:244:52)
<asynchronous suspension>
#9      EditBulkFixes.handle (package:analysis_server/src/handler/legacy/edit_bulk_fixes.dart:43:20)
<asynchronous suspension>


#0      FileState.parse (package:analyzer/src/dart/analysis/file_state.dart:491:7)
#1      FileState._getUnlinkedUnit (package:analyzer/src/dart/analysis/file_state.dart:655:16)
#2      FileState.refresh (package:analyzer/src/dart/analysis/file_state.dart:526:27)
#3      FileSystemState._newFile (package:analyzer/src/dart/analysis/file_state.dart:1435:10)
#4      FileSystemState.getFileForPath2 (package:analyzer/src/dart/analysis/file_state.dart:1267:14)
#5      FileSystemState.getFileForPath (package:analyzer/src/dart/analysis/file_state.dart:1251:12)
#6      AnalysisDriver.getResolvedLibrary (package:analyzer/src/dart/analysis/driver.dart:873:27)
#7      AnalysisSessionImpl.getResolvedLibrary (package:analyzer/src/dart/analysis/session.dart:103:26)
#8      BulkFixProcessor.fixErrors (package:analysis_server/src/services/correction/bulk_fix_processor.dart:244:52)
<asynchronous suspension>
#9      EditBulkFixes.handle (package:analysis_server/src/handler/legacy/edit_bulk_fixes.dart:43:20)
<asynchronous suspension>

The process was stuck at this point (no changes for about half an hour):

> sudo strace -p 160073
strace: Process 160073 attached
futex(0x7fff97b3b4f0, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0, NULL, FUTEX_BITSET_MATCH_ANY) = ? ERESTARTSYS (To be restarted if SA_RESTART is set)

It seems like this procedure will yield many different crashes, perhaps because it will process the input libraries in a different order from time to time. Here is another one:

Computing fixes in language (dry run)...
Error from the analysis server: Exception while getting bulk fixes: Stack Overflow
#0      SubtypeHelper.isSubtypeOf (package:analyzer/src/dart/element/subtype.dart:36:3)
#1      SubtypeHelper.isSubtypeOf (package:analyzer/src/dart/element/subtype.dart:165:11)
#2      SubtypeHelper.isSubtypeOf (package:analyzer/src/dart/element/subtype.dart:285:25)
#3      SubtypeHelper.isSubtypeOf (package:analyzer/src/dart/element/subtype.dart:165:11)
#4      SubtypeHelper.isSubtypeOf (package:analyzer/src/dart/element/subtype.dart:285:25)
#5      SubtypeHelper.isSubtypeOf (package:analyzer/src/dart/element/subtype.dart:165:11)
#6      SubtypeHelper.isSubtypeOf (package:analyzer/src/dart/element/subtype.dart:285:25)
#7      SubtypeHelper.isSubtypeOf (package:analyzer/src/dart/element/subtype.dart:165:11)
...

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2A bug or feature request we're likely to work onarea-dart-modelFor issues related to conformance to the language spec in the parser, compilers or the CLI analyzer.crashProcess exits with SIGSEGV, SIGABRT, etc. An unhandled exception is not a crash.dart-cli-fixtype-bugIncorrect behavior (everything from a crash to more subtle misbehavior)

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions