Skip to content

LSIF tool has uncaught exception when Uri is relative path #59692

@noellelc

Description

@noellelc

Version Used: 4.0.0-3.21372.2

Steps to Reproduce:

  1. Run LSIF tool on certain projects
  2. Tool succeeds across several documents within a project
  3. Tool throws an unhandled exception:
Unhandled exception: System.AggregateException: One or more errors occurred. ---> System.InvalidOperationException: This operation is not supported for a relative URI.
  at System.Uri.get_AbsoluteUri()
  at Microsoft.CodeAnalysis.LanguageServerIndexFormat.Generator.Writing.LsifConverter.WriteJson(JsonWriter writer, Object value, JsonSerializer serializer) in /_/src/Features/Lsif/Generator/Writing/LsifConverter.cs:line 33
  at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeConvertable(JsonWriter writer, JsonConverter converter, Object value, JsonContract contract, JsonContainerContract collectionContract, JsonProperty containerProperty)
  at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeObject(JsonWriter writer, Object value, JsonObjectContract contract, JsonProperty member, JsonContainerContract collectionContract, JsonProperty containerProperty)
  at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.Serialize(JsonWriter jsonWriter, Object value, Type objectType)
  at Newtonsoft.Json.JsonSerializer.SerializeInternal(JsonWriter jsonWriter, Object value, Type objectType)
  at Newtonsoft.Json.JsonConvert.SerializeObjectInternal(Object value, Type type, JsonSerializer jsonSerializer)
  at Microsoft.CodeAnalysis.LanguageServerIndexFormat.Generator.Writing.LineModeLsifJsonWriter.WriteAll(List`1 elements) in /_/src/Features/Lsif/Generator/Writing/LineModeLsifJsonWriter.cs:line 49
  at Microsoft.CodeAnalysis.LanguageServerIndexFormat.Generator.Writing.BatchingLsifJsonWriter.FlushToUnderlyingAndEmpty() in /_/src/Features/Lsif/Generator/Writing/BatchingLsifJsonWriter.cs:line 80
  at Microsoft.CodeAnalysis.LanguageServerIndexFormat.Generator.Generator.<>c__DisplayClass12_0.<GenerateForCompilation>b__0(SyntaxTree syntaxTree) in /_/src/Features/Lsif/Generator/Generator.cs:line 89
  at System.Threading.Tasks.Parallel.<>c__DisplayClass17_0`1.<ForWorker>b__1()
  at System.Threading.Tasks.Task.InnerInvokeWithArg(Task childTask)
  at System.Threading.Tasks.Task.<>c__DisplayClass176_0.<ExecuteSelfReplicating>b__0(Object )

Expected Behavior:
Tool still runs sucessfully if document uris are relative paths.

Actual Behavior:
I'm not sure if this is the root cause, but it appears at this point in the Generator tool, a relative or absolute uri is expected for document, but here, an absolute uri is expected but uncaught if the uri is not absolute.

Metadata

Metadata

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions