Skip to content

Analysis engine terminates with "no iterator type for" #1978

@patrys

Description

@patrys

Environment data

  • VS Code version: 1.25.0-insider
  • Extension version (available under the Extensions sidebar): current nightly
  • OS and version: macOS
  • Python version: 2.7.15 (see comment below)
  • Type of virtual environment used: direnv layout python (virtualenv)
  • Relevant/affected Python packages and their versions: N/A

Actual behavior

The extension terminates right after starting. Unfortunately I can't share the source as it's covered by an NDA.

I'm using the current master of PTVS to test (7eab53bf9f0fd9fd01e366dcf8ede77e738a003e).

Expected behavior

Analysis engine works.

Logs

Output for Python in the Output panel (ViewOutput, change the drop-down the upper-right of the Output panel to Python)

[Info  - 12:20:19] Created Microsoft.PythonTools.Interpreter.Ast.AstPythonInterpreter instance from Microsoft.PythonTools.Interpreter.Ast.AstPythonInterpreterFactory
Initializing for /Users/patrys/GitHub/redacted/redacted/.direnv/python-2.7.15/bin/python
Loading files from /Users/patrys/GitHub/redacted/redacted
Assertion Failed
No iterator type for Microsoft.PythonTools.Interpreter.Ast.AstPythonType (list::Type

   at Microsoft.PythonTools.Analysis.Values.BaseIteratorValue.GetIteratorTypeFromType(BuiltinClassInfo klass, AnalysisUnit unit) in /Users/patrys/GitHub/Microsoft/ptvs/Python/Product/Analysis/Values/IteratorInfo.cs:line 62
   at Microsoft.PythonTools.Analysis.Values.IterableValue.MakeIteratorInfo(Node n, AnalysisUnit unit) in /Users/patrys/GitHub/Microsoft/ptvs/Python/Product/Analysis/Values/IterableInfo.cs:line 159
   at Microsoft.PythonTools.Analysis.Values.BaseIterableValue.<>c__DisplayClass12_0.<IterableIter>b__0(Node n) in /Users/patrys/GitHub/Microsoft/ptvs/Python/Product/Analysis/Values/IterableInfo.cs:line 78
   at Microsoft.PythonTools.Analysis.Analyzer.InterpreterScope.GetOrMakeNodeValue(Node node, NodeValueKind kind, Func`2 maker) in /Users/patrys/GitHub/Microsoft/ptvs/Python/Product/Analysis/Analyzer/InterpreterScope.cs:line 379
   at Microsoft.PythonTools.Analysis.Values.BaseIterableValue.IterableIter(Node node, AnalysisUnit unit, IAnalysisSet[] args, NameExpression[] keywordArgNames) in /Users/patrys/GitHub/Microsoft/ptvs/Python/Product/Analysis/Values/IterableInfo.cs:line 75
   at Microsoft.PythonTools.Analysis.Values.SpecializedCallable.Call(Node node, AnalysisUnit unit, IAnalysisSet[] args, NameExpression[] keywordArgNames) in /Users/patrys/GitHub/Microsoft/ptvs/Python/Product/Analysis/Values/SpecializedCallable.cs:line 49
   at Microsoft.PythonTools.Analysis.AnalysisValueSetExtensions.Call(IAnalysisSet self, Node node, AnalysisUnit unit, IAnalysisSet[] args, NameExpression[] keywordArgNames) in /Users/patrys/GitHub/Microsoft/ptvs/Python/Product/Analysis/AnalysisValueSetExtensions.cs:line 79
   at Microsoft.PythonTools.Analysis.AnalysisValue.GetIterator(Node node, AnalysisUnit unit) in /Users/patrys/GitHub/Microsoft/ptvs/Python/Product/Analysis/AnalysisValue.cs:line 272
   at Microsoft.PythonTools.Analysis.AnalysisValueSetExtensions.GetIterator(IAnalysisSet self, Node node, AnalysisUnit unit) in /Users/patrys/GitHub/Microsoft/ptvs/Python/Product/Analysis/AnalysisValueSetExtensions.cs:line 96
   at Microsoft.PythonTools.Analysis.PythonAnalyzer.SpecialIter(Node node, AnalysisUnit unit, IAnalysisSet[] args, NameExpression[] keywordArgNames) in /Users/patrys/GitHub/Microsoft/ptvs/Python/Product/Analysis/PythonAnalyzer.Specializations.cs:line 380
   at Microsoft.PythonTools.Analysis.Values.SpecializedCallable.Call(Node node, AnalysisUnit unit, IAnalysisSet[] args, NameExpression[] keywordArgNames) in /Users/patrys/GitHub/Microsoft/ptvs/Python/Product/Analysis/Values/SpecializedCallable.cs:line 49
   at Microsoft.PythonTools.Analysis.Analyzer.ExpressionEvaluator.EvaluateCall(ExpressionEvaluator ee, Node node) in /Users/patrys/GitHub/Microsoft/ptvs/Python/Product/Analysis/Analyzer/ExpressionEvaluator.cs:line 388
   at Microsoft.PythonTools.Analysis.Analyzer.ExpressionEvaluator.EvaluateWorker(Node node) in /Users/patrys/GitHub/Microsoft/ptvs/Python/Product/Analysis/Analyzer/ExpressionEvaluator.cs:line 220
   at Microsoft.PythonTools.Analysis.Analyzer.ExpressionEvaluator.Evaluate(Expression node) in /Users/patrys/GitHub/Microsoft/ptvs/Python/Product/Analysis/Analyzer/ExpressionEvaluator.cs:line 56
   at Microsoft.PythonTools.Analysis.Analyzer.DDG.Walk(ReturnStatement node) in /Users/patrys/GitHub/Microsoft/ptvs/Python/Product/Analysis/Analyzer/DDG.cs:line 529
   at Microsoft.PythonTools.Parsing.Ast.ReturnStatement.Walk(PythonWalker walker) in /Users/patrys/GitHub/Microsoft/ptvs/Python/Product/Analysis/Parsing/Ast/ReturnStatement.cs:line 32
   at Microsoft.PythonTools.Analysis.Analyzer.DDG.Walk(SuiteStatement node) in /Users/patrys/GitHub/Microsoft/ptvs/Python/Product/Analysis/Analyzer/DDG.cs:line 597
   at Microsoft.PythonTools.Parsing.Ast.SuiteStatement.Walk(PythonWalker walker) in /Users/patrys/GitHub/Microsoft/ptvs/Python/Product/Analysis/Parsing/Ast/SuiteStatement.cs:line 34
   at Microsoft.PythonTools.Analysis.Analyzer.FunctionAnalysisUnit.AnalyzeWorker(DDG ddg, CancellationToken cancel) in /Users/patrys/GitHub/Microsoft/ptvs/Python/Product/Analysis/Analyzer/FunctionAnalysisUnit.cs:line 89
   at Microsoft.PythonTools.Analysis.AnalysisUnit.Analyze(DDG ddg, CancellationToken cancel) in /Users/patrys/GitHub/Microsoft/ptvs/Python/Product/Analysis/AnalysisUnit.cs:line 152
   at Microsoft.PythonTools.Analysis.Analyzer.DDG.Analyze(Deque`1 queue, CancellationToken cancel, Action`1 reportQueueSize, Int32 reportQueueInterval) in /Users/patrys/GitHub/Microsoft/ptvs/Python/Product/Analysis/Analyzer/DDG.cs:line 75
   at Microsoft.PythonTools.Analysis.PythonAnalyzer.AnalyzeQueuedEntries(CancellationToken cancel) in /Users/patrys/GitHub/Microsoft/ptvs/Python/Product/Analysis/PythonAnalyzer.cs:line 946
   at Microsoft.PythonTools.Intellisense.AnalysisQueue.GroupAnalysis.Analyze(CancellationToken cancel) in /Users/patrys/GitHub/Microsoft/ptvs/Python/Product/Analysis/Intellisense/AnalysisQueue.cs:line 290
   at Microsoft.PythonTools.Intellisense.AnalysisQueue.Worker(Object threadStarted) in /Users/patrys/GitHub/Microsoft/ptvs/Python/Product/Analysis/Intellisense/AnalysisQueue.cs:line 235
   at System.Threading.Thread.ThreadMain_ParameterizedThreadStart(Object parameter)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
[Info  - 12:20:35] Connection to server got closed. Server will restart.

Output from Console under the Developer Tools panel (toggle Developer Tools on under Help)

The Python Tools server crashed 5 times in the last 3 minutes. The server will not be restarted.

Metadata

Metadata

Labels

area-intellisenseLSP-related functionality: auto-complete, docstrings, navigation, refactoring, etc.bugIssue identified by VS Code Team member as probable bug

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions