Open
Description
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)
...