Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Terraform 0.12 support (was hcl2 support) #157

Closed
astorath opened this issue Mar 1, 2019 · 259 comments
Closed

feat: Terraform 0.12 support (was hcl2 support) #157

astorath opened this issue Mar 1, 2019 · 259 comments

Comments

@astorath
Copy link

astorath commented Mar 1, 2019

Hi!

Is there any plans to implement hcl2 support?

@CKost
Copy link

CKost commented Mar 13, 2019

+1, this feature would be exceedingly useful

@mauve
Copy link
Contributor

mauve commented Mar 13, 2019

HCL support is currently implemented by taking the HCL Go-library and feeding it through GopherJS to get a (very raw) JavaScript library (refer https://github.com/mauve/vscode-terraform/tree/master/hcl-hil) and then made into something useable in this part of the codebase: build.ts.

I do not have time myself to look into this right now but if somebody wants to give it a try, that is where you need to change stuff.

@captaintino
Copy link

+1 I think this feature would really be helpful.

@d-helios
Copy link

+1

@mauve
Copy link
Contributor

mauve commented Apr 30, 2019

I really would like to add this feature but I cannot do it myself as I do not have time, I can help somebody if they want to do it. I have tried to get Hashicorp to take over the project but they are not interested.

@jnicholls
Copy link

jnicholls commented May 8, 2019

This does seem somewhat of an easy transition to hcl2. The API is different, but overall I think still embeddable in the same way. @mauve I will take a stab at it and let you know if I have questions; it will most likely involve the build & test process initially :) EDIT: Build and test was a snap.

@mauve
Copy link
Contributor

mauve commented May 8, 2019

@jnicholls Thanks for tackling this.

If the hcl2 library is capable of parsing hcl1 then I recommend just replacing it. in the meantime you might also want to replace the syntax-highlighting tmLanguage files with the official files from the hcl2 repo.

The data flow right now is hcl-hil.parseHcl -> build.ts -> FileIndex.ts, the only reason why build.ts was needed was because the output of parseHcl requires a lot of munging to be usuable. However now that you are touching this I can recommend trying to simplify everything at the same time.

The only reason why I added build.ts and did the complicated post-parsing of AST from the hcl-hil was because 1) emitting the all the types from the GoLang library would create a too large JS library, 2) I couldn't figure out how to add new types in Go and emit them to JS (🤣 and didn't want to spend too much time on trying to get it to work).

However I recommend that you might save yourself a lot of time if you make the Go-code emit something much closer to what FileIndex.ts wants it to be, that way you can remove build.ts.

@jnicholls
Copy link

jnicholls commented May 8, 2019

Well, it looks like the AST is 100% different, haha. But, I think it is actually friendlier, and it's much more strongly typed. See https://github.com/hashicorp/hcl2/blob/master/hcl/hclsyntax/spec.md. I think we can walk this AST and provide a good result from parseHcl, but nothing really matches what you're looking for in FileIndex in terms of Sections and References, and thus walking the AST (albeit it will be quite different) is still necessary. I think we can do that walk on the Go side and get rid of build as well as parseHilWithPosition and bring back from parseHcl the desired sections, references and diagnostics if any (diagnostics and ranges are native to the hclsyntax parser, which is great, multiple diagnostics may be returned from a single pass to the parser, though your FileIndex interface only expects to return a single one). The diagnostics also will have did you mean ...? suggestions.

@mauve
Copy link
Contributor

mauve commented May 9, 2019

In the old HCL library a section refers to any top-level entity, for example: locals, terraform, variable, resource or data. This is also what I use Section for in the plugin. However the HCL library uses sections also for nested propertiers (the group in resource a b { group { a = b } }), this is different in the the plugin (where are properties (group or not) are just mapped to Properties).

The references were never part of the AST directly but they are extracted by build.ts after performing a parseHilWithPosition and traversing the AST produced by that call.

Currently FileIndex can have several diagnostics (FileIndex.diagnostics: Diagnostic[] = []), however as the parseHcl function in the HCL1 library fails when it encounters the first error FileIndex.fromString() (which uses build()) only returns a single Diagnostic if parsing fails. However as build() calls parseHilWithPosition() several times we have the chance to collect many HIL errors and add them to FIleIndex.diagnostics if we encounter them.

The current code assumes that FileIndex.fromString() returns either a FileIndex or a Diagnostic and a FileIndex with FileIndex.diagnostics populated if parsing succeeded (but with errors or warnings). If the HCL2 library is now finally able to recover and doesn't give up after encountering the first error I assume that you can just continue and using the code as before (but maybe changing FileIndex.fromString() and build() to return multiple diagnostics in case parsing fails.

@mauve
Copy link
Contributor

mauve commented May 9, 2019

If the HCL2 library is also able to recover from parse-errors and continue parsing we can also start using it more in the auto-completion provider. If you can find a HCL2 go function which (given a position in the text-document, or a position in the AST) gives us a list of possible next-tokens, that would be really awesome.

@jnicholls
Copy link

HCL2 will not continue parsing unfortunately. As evidenced by:

func TestParse(t *testing.T) {
	source := `variable "aws_access_key"
		default     = "xxx"
		description = "Amazon AWS Access Key"
	 }

	 variable "aws_secret_key" {
		 default    = "xxx"
		 description = "Amazon AWS Secret Key"
	 }`
	file, diagnostics := hclsyntax.ParseConfig([]byte(source), "/blah/main.tf", hcl.InitialPos)
	for _, diag := range diagnostics {
		t.Log(diag.Error())
	}
	body := file.Body.(*hclsyntax.Body)
	hclsyntax.VisitAll(body, func(node hclsyntax.Node) hcl.Diagnostics {
		t.Logf("%T", node)
		return nil
	})
	t.FailNow()
}

output:

--- FAIL: TestParse (0.00s)
    /Users/jarred.nicholls/code/vscode-terraform/hcl-hil/main_test.go:22: /blah/main.tf:1,26-2,1: Invalid block definition; A block definition must have block content delimited by "{" and "}", starting on the same line as the block header.
    /Users/jarred.nicholls/code/vscode-terraform/hcl-hil/main_test.go:26: *hclsyntax.Body
    /Users/jarred.nicholls/code/vscode-terraform/hcl-hil/main_test.go:26: hclsyntax.Attributes
    /Users/jarred.nicholls/code/vscode-terraform/hcl-hil/main_test.go:26: *hclsyntax.Attribute
    /Users/jarred.nicholls/code/vscode-terraform/hcl-hil/main_test.go:26: *hclsyntax.TemplateExpr
    /Users/jarred.nicholls/code/vscode-terraform/hcl-hil/main_test.go:26: *hclsyntax.LiteralValueExpr
    /Users/jarred.nicholls/code/vscode-terraform/hcl-hil/main_test.go:26: *hclsyntax.Attribute
    /Users/jarred.nicholls/code/vscode-terraform/hcl-hil/main_test.go:26: *hclsyntax.TemplateExpr
    /Users/jarred.nicholls/code/vscode-terraform/hcl-hil/main_test.go:26: *hclsyntax.LiteralValueExpr
    /Users/jarred.nicholls/code/vscode-terraform/hcl-hil/main_test.go:26: hclsyntax.Blocks
    /Users/jarred.nicholls/code/vscode-terraform/hcl-hil/main_test.go:26: *hclsyntax.Block
    /Users/jarred.nicholls/code/vscode-terraform/hcl-hil/main_test.go:26: *hclsyntax.Body
    /Users/jarred.nicholls/code/vscode-terraform/hcl-hil/main_test.go:26: hclsyntax.Attributes
    /Users/jarred.nicholls/code/vscode-terraform/hcl-hil/main_test.go:26: hclsyntax.Blocks
FAIL

Note that it did not parse the second Block, which would have looked like this:

--- FAIL: TestParse (0.00s)
    /Users/jarred.nicholls/code/vscode-terraform/hcl-hil/main_test.go:26: *hclsyntax.Body
    /Users/jarred.nicholls/code/vscode-terraform/hcl-hil/main_test.go:26: hclsyntax.Attributes
    /Users/jarred.nicholls/code/vscode-terraform/hcl-hil/main_test.go:26: hclsyntax.Blocks
    /Users/jarred.nicholls/code/vscode-terraform/hcl-hil/main_test.go:26: *hclsyntax.Block
    /Users/jarred.nicholls/code/vscode-terraform/hcl-hil/main_test.go:26: *hclsyntax.Body
    /Users/jarred.nicholls/code/vscode-terraform/hcl-hil/main_test.go:26: hclsyntax.Attributes
    /Users/jarred.nicholls/code/vscode-terraform/hcl-hil/main_test.go:26: *hclsyntax.Attribute
    /Users/jarred.nicholls/code/vscode-terraform/hcl-hil/main_test.go:26: *hclsyntax.TemplateExpr
    /Users/jarred.nicholls/code/vscode-terraform/hcl-hil/main_test.go:26: *hclsyntax.LiteralValueExpr
    /Users/jarred.nicholls/code/vscode-terraform/hcl-hil/main_test.go:26: *hclsyntax.Attribute
    /Users/jarred.nicholls/code/vscode-terraform/hcl-hil/main_test.go:26: *hclsyntax.TemplateExpr
    /Users/jarred.nicholls/code/vscode-terraform/hcl-hil/main_test.go:26: *hclsyntax.LiteralValueExpr
    /Users/jarred.nicholls/code/vscode-terraform/hcl-hil/main_test.go:26: hclsyntax.Blocks
    /Users/jarred.nicholls/code/vscode-terraform/hcl-hil/main_test.go:26: *hclsyntax.Block
    /Users/jarred.nicholls/code/vscode-terraform/hcl-hil/main_test.go:26: *hclsyntax.Body
    /Users/jarred.nicholls/code/vscode-terraform/hcl-hil/main_test.go:26: hclsyntax.Attributes
    /Users/jarred.nicholls/code/vscode-terraform/hcl-hil/main_test.go:26: *hclsyntax.Attribute
    /Users/jarred.nicholls/code/vscode-terraform/hcl-hil/main_test.go:26: *hclsyntax.TemplateExpr
    /Users/jarred.nicholls/code/vscode-terraform/hcl-hil/main_test.go:26: *hclsyntax.LiteralValueExpr
    /Users/jarred.nicholls/code/vscode-terraform/hcl-hil/main_test.go:26: *hclsyntax.Attribute
    /Users/jarred.nicholls/code/vscode-terraform/hcl-hil/main_test.go:26: *hclsyntax.TemplateExpr
    /Users/jarred.nicholls/code/vscode-terraform/hcl-hil/main_test.go:26: *hclsyntax.LiteralValueExpr
    /Users/jarred.nicholls/code/vscode-terraform/hcl-hil/main_test.go:26: hclsyntax.Blocks
FAIL

I haven't looked closely at HCL1; are you saying that the ast.File returned from hcl.ParseString would incorporate the entire AST despite a parse error? It sounds like that's what you're saying, and thus how build() is able to go a step further and do parseHilWIthPosition() throughout all Value type 9 nodes...? Or, would it stop short in its AST construction as is seen in HCL2?

@jnicholls
Copy link

Thank you for the explanation on the FileIndex parts, and the expectation of Sections vs Properties! In HCL2, we'll have inner Blocks, which will in your definition become Properties instead of their own Sections.

@mauve
Copy link
Contributor

mauve commented May 9, 2019

Feel free to change FileIndex to suite whatever is best given the HCL2 library. Unless we need to keep both around.

HCL1 is not able to recover from any parse errors (to my knowledge), I was kinda hoping that HCL2 would be better at parsing here, maybe your example is just too hard to recover from. That means, to clarify, that hcl.ParseString does not return the AST when parsing fails.

  1. when parsing fails (because there is a HCL syntax error) then hcl1.ParseString() returns nil, err
  2. when parsing succeeds then hcl1.ParseString() returns ast, nil
  3. when parsing succeeds we visit the AST in build() and send type 9 nodes (value-strings) and heredoc (type 10 I think) to hil.ParseStringWithPosition() (or similar name)
    1. because hcl1.ParseString() has succeeded, we have an AST (which means we can build a FileIndex)
    2. so now errors in FileIndex.diagnostics are parse errors returned by hil.ParseString...()

At least hclsyntax.ParseConfig() (HCL2) returns a list of diagnostics which means that it can recover from some errors, if it returns an AST anyway I do not know. I think one of the big changes in HCL1 to HCL2 was that HCL and HIL were merged so that the HCL2 parser now needs to parse HIL aswell.

Thanks for giving it a try.

@jnicholls
Copy link

jnicholls commented May 9, 2019

Ok, well it does seem that HCL2 is an improvement, and it does return multiple diagnostics (even though sometimes it'll complain about the same root issue multiple times, which means the parser isn't really "undoing" any state internally after encountering a syntax or grammar error in order to continue forward to the next expression/attr/block/etc. as if nothing bad happened). I don't think it could be used for auto-complete. There are functions for identifying a node by position, but not any to suggest next tokens. It does however have functions, given an execution context, to evaluate expressions...which could be useful.

From hclsyntax.ParseConfig:

// ParseConfig parses the given buffer as a whole HCL config file, returning
// a *hcl.File representing its contents. If HasErrors called on the returned
// diagnostics returns true, the returned body is likely to be incomplete
// and should therefore be used with care.

@juliosueiras
Copy link

juliosueiras commented May 9, 2019

@mauve Hi, I created a LSP for terraform and maybe it will help with adding more HCL2 support to the extension? (since I did also do a client extension for vscode but is lacking syntax and indentation and etc)

Edit: I will try to add every possible LSP feature in the plugin, the most difficult one is going to be in-scope completion in for each loop

@jnicholls
Copy link

@juliosueiras That is great, a language server for Terraform is definitely a needed thing in the community. I'd imagine once it matures more that we'd simply plug into that. Short term I see a fairly clear path for integrating HCL2 into this extension that should only take a couple of hours of development time after it's well-understood how to integrate it without breaking too many interfaces on the first-order pass. I'd rather save a lot of refactoring and cleanup for a second pass. But ultimately yes, having LSP integration makes a lot of sense; if not entirely, as an option at least.

@juliosueiras
Copy link

juliosueiras commented May 9, 2019

@jnicholls just want to ask, what do you consider the most require feature for the lsp to have? (since I want to get a general ideal of what to target next)

right now the LSP support:

  • Variables complex completion(infinite nesting type)
  • Provider Config completion
  • Resource(with infinite block) completion
  • Data source completion
  • Dynamic Error Checking(Terraform and HCL checks)
  • Communication using provider binary(so it will support any provider as long as is built with terraform 0.12 sdk)
  • Module nesting(inifinte as well) variable completion

I am expecting to the following implemented within this/next week:

  • Interpolation completion(so function inside of a template wrap, inside of list etc
  • More Dynamic Error Checking for RHS attributes
  • Locals(with expanded check)
  • Remote modules
  • Dynamic Block & For Each loop

after the above implemented, then I will be working on other LSP features(symbols, codelens, codeactions, etc)

Any feedback is greatly appreciated

Edit: also the reason I did the LSP is because I created the vim terraform plugin but is mostly regex solution, and with HCL2 allowing very very very nested variable structure, I decided to do a LSP instead for HCL2

@jnicholls
Copy link

@juliosueiras You are (and within a week or two, even more so) further than I expected! I think your to-do list is 100% aligned with what I’d suggest, prioritizing error checking and completions. Next I’d say symbols and anything else necessary for good hover and goto support. I’ll admit, I am not 100% familiar with the LSP specification and where the line is drawn between it and the features it powers in editors.

@mauve
Copy link
Contributor

mauve commented May 10, 2019

@juliosueiras @jnicholls I am fine with using an external language-server but then I think it needs to be either automatically downloaded and updated or bundled with the plugin, I used to have an external tool a while back and most users didn't figure out that they needed to install the tool which led to many support-requests.

@juliosueiras
Copy link

the lsp is a single binary, so either option work

@juliosueiras
Copy link

@jnicholls added Basic Dynamic Block completion https://asciinema.org/a/XhGFudMZ5mNCb6dndGbgc5iSu , right now will try to implement inferred type completion in for each

@juliosueiras
Copy link

now there is also for each completion https://asciinema.org/a/245663

@mauve
Copy link
Contributor

mauve commented May 17, 2019

@juliosueiras @jnicholls what is the plan? are you guys working on integrating the language-server?

@juliosueiras
Copy link

@mauve I am all for integrating the lsp into this plugin, right now I am mostly focus on making the lsp itself feature complete, so if there is anything that you guys need as high priority then I can do those first instead

@dhdersch
Copy link

dhdersch commented May 22, 2019

@juliosueiras I use this extension every day, and I feel like it would greatly benefit from the LSP and HCL2 support (even if it isn't 100% complete yet). Seems like the official Terraform 0.12 release is imminent. Completely up to you what you prioritize of course.

EDIT: 0.12 was released minutes after commenting.

@JustinGrote
Copy link

FYI 0.12 just came out so this is going to be pressing...
https://www.hashicorp.com/blog/announcing-terraform-0-12

@mauve
Copy link
Contributor

mauve commented May 23, 2019

I agree that this is a required feature and getting more urgent all the time. Sadly due to a new job and role I have no time at all to focus on this project except reviewing PR and doing releases.

It saddens me to say that I have for a few months now unsuccessfully tried to engage Hashicorp in the project which is why these new features are lagging.

I would love if the community could pull together here and help ship a better autocompletion and 0.12 support based on @juliosuerias language server.

I am very proud that we have a rather large user base (around 70k monthly actives, top 40 in downloads 🎉🎉) and it feels bad that I cannot devote more time.

Therefore I would really love to see this (rather big) change being shipped without my involvement as I fear without it the plugin will end up being rather useless.

Thanks everybody for using my plug-in it makes me proud to have you as users. 🎉

@JustinGrote
Copy link

JustinGrote commented May 23, 2019 via email

@loomsen
Copy link

loomsen commented Apr 22, 2020

@musicislife08 @juliosueiras I can confirm this is working in VSCodium. Thank you for the hint!

@madpipeline
Copy link

I've enabled the language server version 0.0.11-beta1 and the language server crashes continuously. I'm adding here just part of the log as the go routines trace is enormous.

Also, I have hundreds of TF projects in my workspace. The Language server should only parse the ones I actively work on. Just like the Git extension does.

time="2020-04-27T11:08:16+03:00" level=info msg="Log Level is Debug: false"
�[36mINFO�[0m Server started                               
2020-04-27T11:08:16.756+0300 [INFO]  plugin: configuring client automatic mTLS
2020-04-27T11:08:16.793+0300 [INFO]  plugin: configuring client automatic mTLS
2020-04-27T11:08:16.818+0300 [DEBUG] plugin: starting plugin: path=/home/ovidiu/.vscode/extensions/mauve.terraform-1.4.0/lspbin/terraform-provider-aws_v2.54.0_x4 args=[/home/ovidiu/.vscode/extensions/mauve.terraform-1.4.0/lspbin/terraform-provider-aws_v2.54.0_x4]
2020-04-27T11:08:16.819+0300 [DEBUG] plugin: plugin started: path=/home/ovidiu/.vscode/extensions/mauve.terraform-1.4.0/lspbin/terraform-provider-aws_v2.54.0_x4 pid=14754
2020-04-27T11:08:16.820+0300 [DEBUG] plugin: waiting for RPC address: path=/home/ovidiu/.vscode/extensions/mauve.terraform-1.4.0/lspbin/terraform-provider-aws_v2.54.0_x4
2020-04-27T11:08:16.846+0300 [DEBUG] plugin: starting plugin: path=/home/ovidiu/.vscode/extensions/mauve.terraform-1.4.0/lspbin/terraform-provider-aws_v2.54.0_x4 args=[/home/ovidiu/.vscode/extensions/mauve.terraform-1.4.0/lspbin/terraform-provider-aws_v2.54.0_x4]
2020-04-27T11:08:16.846+0300 [DEBUG] plugin: plugin started: path=/home/ovidiu/.vscode/extensions/mauve.terraform-1.4.0/lspbin/terraform-provider-aws_v2.54.0_x4 pid=14762
2020-04-27T11:08:16.846+0300 [DEBUG] plugin: waiting for RPC address: path=/home/ovidiu/.vscode/extensions/mauve.terraform-1.4.0/lspbin/terraform-provider-aws_v2.54.0_x4
2020-04-27T11:08:16.859+0300 [INFO]  plugin.terraform-provider-aws_v2.54.0_x4: configuring server automatic mTLS: timestamp=2020-04-27T11:08:16.858+0300
2020-04-27T11:08:16.890+0300 [INFO]  plugin.terraform-provider-aws_v2.54.0_x4: configuring server automatic mTLS: timestamp=2020-04-27T11:08:16.889+0300
2020-04-27T11:08:16.910+0300 [DEBUG] plugin: using plugin: version=5
2020-04-27T11:08:16.912+0300 [DEBUG] plugin.terraform-provider-aws_v2.54.0_x4: plugin address: address=/tmp/plugin182103605 network=unix timestamp=2020-04-27T11:08:16.910+0300
2020-04-27T11:08:16.930+0300 [INFO]  plugin: configuring client automatic mTLS
2020-04-27T11:08:16.938+0300 [INFO]  plugin: configuring client automatic mTLS
2020-04-27T11:08:16.976+0300 [DEBUG] plugin: using plugin: version=5
2020-04-27T11:08:17.005+0300 [DEBUG] plugin.terraform-provider-aws_v2.54.0_x4: plugin address: address=/tmp/plugin166530709 network=unix timestamp=2020-04-27T11:08:16.974+0300
2020-04-27T11:08:17.100+0300 [DEBUG] plugin: starting plugin: path=/home/ovidiu/WORK/sre/artifactory-ecs/Terraform/.terraform/plugins/linux_amd64/terraform-provider-aws_v2.56.0_x4 args=[/home/ovidiu/WORK/sre/artifactory-ecs/Terraform/.terraform/plugins/linux_amd64/terraform-provider-aws_v2.56.0_x4]
2020-04-27T11:08:17.128+0300 [DEBUG] plugin: starting plugin: path=/home/ovidiu/WORK/sre/artifactory-ecs/Terraform/.terraform/plugins/linux_amd64/terraform-provider-aws_v2.56.0_x4 args=[/home/ovidiu/WORK/sre/artifactory-ecs/Terraform/.terraform/plugins/linux_amd64/terraform-provider-aws_v2.56.0_x4]
2020-04-27T11:08:17.130+0300 [DEBUG] plugin: plugin started: path=/home/ovidiu/WORK/sre/artifactory-ecs/Terraform/.terraform/plugins/linux_amd64/terraform-provider-aws_v2.56.0_x4 pid=14783
2020-04-27T11:08:17.130+0300 [DEBUG] plugin: waiting for RPC address: path=/home/ovidiu/WORK/sre/artifactory-ecs/Terraform/.terraform/plugins/linux_amd64/terraform-provider-aws_v2.56.0_x4
2020-04-27T11:08:17.131+0300 [DEBUG] plugin: plugin started: path=/home/ovidiu/WORK/sre/artifactory-ecs/Terraform/.terraform/plugins/linux_amd64/terraform-provider-aws_v2.56.0_x4 pid=14779
2020-04-27T11:08:17.131+0300 [DEBUG] plugin: waiting for RPC address: path=/home/ovidiu/WORK/sre/artifactory-ecs/Terraform/.terraform/plugins/linux_amd64/terraform-provider-aws_v2.56.0_x4
2020-04-27T11:08:17.458+0300 [DEBUG] plugin: plugin process exited: path=/home/ovidiu/.vscode/extensions/mauve.terraform-1.4.0/lspbin/terraform-provider-aws_v2.54.0_x4 pid=14754
2020-04-27T11:08:17.458+0300 [DEBUG] plugin: plugin exited
2020-04-27T11:08:17.459+0300 [WARN]  plugin: error closing client during Kill: err="rpc error: code = Canceled desc = grpc: the client connection is closing"
2020-04-27T11:08:17.459+0300 [WARN]  plugin: plugin failed to exit gracefully
2020-04-27T11:08:17.466+0300 [DEBUG] plugin: plugin process exited: path=/home/ovidiu/.vscode/extensions/mauve.terraform-1.4.0/lspbin/terraform-provider-aws_v2.54.0_x4 pid=14762
2020-04-27T11:08:17.466+0300 [DEBUG] plugin: plugin exited
2020-04-27T11:08:17.470+0300 [INFO]  plugin: configuring client automatic mTLS
2020-04-27T11:08:17.476+0300 [INFO]  plugin: configuring client automatic mTLS
2020-04-27T11:08:17.538+0300 [DEBUG] plugin: starting plugin: path=/home/ovidiu/.vscode/extensions/mauve.terraform-1.4.0/lspbin/terraform-provider-null_v2.1.2_x4 args=[/home/ovidiu/.vscode/extensions/mauve.terraform-1.4.0/lspbin/terraform-provider-null_v2.1.2_x4]
2020-04-27T11:08:17.541+0300 [DEBUG] plugin: plugin started: path=/home/ovidiu/.vscode/extensions/mauve.terraform-1.4.0/lspbin/terraform-provider-null_v2.1.2_x4 pid=14814
2020-04-27T11:08:17.541+0300 [DEBUG] plugin: waiting for RPC address: path=/home/ovidiu/.vscode/extensions/mauve.terraform-1.4.0/lspbin/terraform-provider-null_v2.1.2_x4
2020-04-27T11:08:17.543+0300 [DEBUG] plugin: starting plugin: path=/home/ovidiu/.vscode/extensions/mauve.terraform-1.4.0/lspbin/terraform-provider-external_v1.2.0_x4 args=[/home/ovidiu/.vscode/extensions/mauve.terraform-1.4.0/lspbin/terraform-provider-external_v1.2.0_x4]
2020-04-27T11:08:17.543+0300 [DEBUG] plugin: plugin started: path=/home/ovidiu/.vscode/extensions/mauve.terraform-1.4.0/lspbin/terraform-provider-external_v1.2.0_x4 pid=14816
2020-04-27T11:08:17.543+0300 [DEBUG] plugin: waiting for RPC address: path=/home/ovidiu/.vscode/extensions/mauve.terraform-1.4.0/lspbin/terraform-provider-external_v1.2.0_x4
2020-04-27T11:08:17.554+0300 [INFO]  plugin.terraform-provider-external_v1.2.0_x4: configuring server automatic mTLS: timestamp=2020-04-27T11:08:17.553+0300
2020-04-27T11:08:17.574+0300 [INFO]  plugin.terraform-provider-null_v2.1.2_x4: configuring server automatic mTLS: timestamp=2020-04-27T11:08:17.574+0300
2020-04-27T11:08:17.652+0300 [DEBUG] plugin: using plugin: version=5
2020-04-27T11:08:17.652+0300 [DEBUG] plugin.terraform-provider-external_v1.2.0_x4: plugin address: network=unix address=/tmp/plugin543090273 timestamp=2020-04-27T11:08:17.652+0300
2020-04-27T11:08:17.756+0300 [DEBUG] plugin.terraform-provider-null_v2.1.2_x4: plugin address: address=/tmp/plugin244952070 network=unix timestamp=2020-04-27T11:08:17.756+0300
2020-04-27T11:08:17.756+0300 [DEBUG] plugin: using plugin: version=5
2020-04-27T11:08:17.934+0300 [DEBUG] plugin: plugin process exited: path=/home/ovidiu/.vscode/extensions/mauve.terraform-1.4.0/lspbin/terraform-provider-external_v1.2.0_x4 pid=14816
2020-04-27T11:08:17.934+0300 [DEBUG] plugin: plugin exited
2020-04-27T11:08:18.071+0300 [WARN]  plugin: error closing client during Kill: err="rpc error: code = Canceled desc = grpc: the client connection is closing"
2020-04-27T11:08:18.072+0300 [WARN]  plugin: plugin failed to exit gracefully
2020-04-27T11:08:18.072+0300 [DEBUG] plugin: plugin process exited: path=/home/ovidiu/.vscode/extensions/mauve.terraform-1.4.0/lspbin/terraform-provider-null_v2.1.2_x4 pid=14814
2020-04-27T11:08:18.072+0300 [DEBUG] plugin: plugin exited
2020-04-27T11:08:18.154+0300 [INFO]  plugin: configuring client automatic mTLS
2020-04-27T11:08:18.168+0300 [INFO]  plugin.terraform-provider-aws_v2.56.0_x4: configuring server automatic mTLS: timestamp=2020-04-27T11:08:18.168+0300
2020-04-27T11:08:18.169+0300 [INFO]  plugin.terraform-provider-aws_v2.56.0_x4: configuring server automatic mTLS: timestamp=2020-04-27T11:08:18.168+0300
2020-04-27T11:08:18.216+0300 [INFO]  plugin: configuring client automatic mTLS
2020-04-27T11:08:18.240+0300 [DEBUG] plugin: starting plugin: path=/home/ovidiu/WORK/sre/artifactory-ecs/Terraform/.terraform/plugins/linux_amd64/terraform-provider-aws_v2.56.0_x4 args=[/home/ovidiu/WORK/sre/artifactory-ecs/Terraform/.terraform/plugins/linux_amd64/terraform-provider-aws_v2.56.0_x4]
2020-04-27T11:08:18.255+0300 [DEBUG] plugin: plugin started: path=/home/ovidiu/WORK/sre/artifactory-ecs/Terraform/.terraform/plugins/linux_amd64/terraform-provider-aws_v2.56.0_x4 pid=14861
2020-04-27T11:08:18.255+0300 [DEBUG] plugin: waiting for RPC address: path=/home/ovidiu/WORK/sre/artifactory-ecs/Terraform/.terraform/plugins/linux_amd64/terraform-provider-aws_v2.56.0_x4
2020-04-27T11:08:18.295+0300 [DEBUG] plugin: starting plugin: path=/home/ovidiu/WORK/sre/artifactory-ecs/Terraform/.terraform/plugins/linux_amd64/terraform-provider-aws_v2.56.0_x4 args=[/home/ovidiu/WORK/sre/artifactory-ecs/Terraform/.terraform/plugins/linux_amd64/terraform-provider-aws_v2.56.0_x4]
2020-04-27T11:08:18.299+0300 [DEBUG] plugin: plugin started: path=/home/ovidiu/WORK/sre/artifactory-ecs/Terraform/.terraform/plugins/linux_amd64/terraform-provider-aws_v2.56.0_x4 pid=14866
2020-04-27T11:08:18.299+0300 [DEBUG] plugin: waiting for RPC address: path=/home/ovidiu/WORK/sre/artifactory-ecs/Terraform/.terraform/plugins/linux_amd64/terraform-provider-aws_v2.56.0_x4
2020-04-27T11:08:18.303+0300 [DEBUG] plugin.terraform-provider-aws_v2.56.0_x4: plugin address: address=/tmp/plugin462876773 network=unix timestamp=2020-04-27T11:08:18.303+0300
2020-04-27T11:08:18.303+0300 [DEBUG] plugin: using plugin: version=5
2020-04-27T11:08:18.312+0300 [DEBUG] plugin: using plugin: version=5
2020-04-27T11:08:18.312+0300 [DEBUG] plugin.terraform-provider-aws_v2.56.0_x4: plugin address: address=/tmp/plugin840275351 network=unix timestamp=2020-04-27T11:08:18.311+0300
2020-04-27T11:08:18.489+0300 [INFO]  plugin.terraform-provider-aws_v2.56.0_x4: configuring server automatic mTLS: timestamp=2020-04-27T11:08:18.489+0300
2020-04-27T11:08:18.490+0300 [INFO]  plugin.terraform-provider-aws_v2.56.0_x4: configuring server automatic mTLS: timestamp=2020-04-27T11:08:18.488+0300
2020-04-27T11:08:18.687+0300 [DEBUG] plugin: using plugin: version=5
2020-04-27T11:08:18.689+0300 [DEBUG] plugin.terraform-provider-aws_v2.56.0_x4: plugin address: network=unix address=/tmp/plugin749073860 timestamp=2020-04-27T11:08:18.686+0300
2020-04-27T11:08:18.722+0300 [DEBUG] plugin: using plugin: version=5
2020-04-27T11:08:18.722+0300 [DEBUG] plugin.terraform-provider-aws_v2.56.0_x4: plugin address: address=/tmp/plugin351125672 network=unix timestamp=2020-04-27T11:08:18.717+0300
2020-04-27T11:08:19.247+0300 [DEBUG] plugin: plugin process exited: path=/home/ovidiu/WORK/sre/artifactory-ecs/Terraform/.terraform/plugins/linux_amd64/terraform-provider-aws_v2.56.0_x4 pid=14783
2020-04-27T11:08:19.250+0300 [DEBUG] plugin: plugin exited
2020-04-27T11:08:19.344+0300 [DEBUG] plugin: plugin process exited: path=/home/ovidiu/WORK/sre/artifactory-ecs/Terraform/.terraform/plugins/linux_amd64/terraform-provider-aws_v2.56.0_x4 pid=14861
2020-04-27T11:08:19.344+0300 [DEBUG] plugin: plugin exited
2020-04-27T11:08:19.355+0300 [DEBUG] plugin: plugin process exited: path=/home/ovidiu/WORK/sre/artifactory-ecs/Terraform/.terraform/plugins/linux_amd64/terraform-provider-aws_v2.56.0_x4 pid=14779
2020-04-27T11:08:19.355+0300 [DEBUG] plugin: plugin exited
2020-04-27T11:08:19.369+0300 [WARN]  plugin: error closing client during Kill: err="rpc error: code = Canceled desc = grpc: the client connection is closing"
2020-04-27T11:08:19.369+0300 [WARN]  plugin: plugin failed to exit gracefully
2020-04-27T11:08:19.369+0300 [WARN]  plugin: error closing client during Kill: err="rpc error: code = Canceled desc = grpc: the client connection is closing"
2020-04-27T11:08:19.369+0300 [WARN]  plugin: plugin failed to exit gracefully
2020-04-27T11:08:19.369+0300 [WARN]  plugin: error closing client during Kill: err="rpc error: code = Canceled desc = grpc: the client connection is closing"
2020-04-27T11:08:19.369+0300 [WARN]  plugin: plugin failed to exit gracefully
2020-04-27T11:08:19.373+0300 [DEBUG] plugin: plugin process exited: path=/home/ovidiu/WORK/sre/artifactory-ecs/Terraform/.terraform/plugins/linux_amd64/terraform-provider-aws_v2.56.0_x4 pid=14866
2020-04-27T11:08:19.373+0300 [DEBUG] plugin: plugin exited
2020-04-27T11:08:19.415+0300 [INFO]  plugin: configuring client automatic mTLS
2020-04-27T11:08:19.495+0300 [DEBUG] plugin: starting plugin: path=/home/ovidiu/.vscode/extensions/mauve.terraform-1.4.0/lspbin/terraform-provider-template_v2.1.2_x4 args=[/home/ovidiu/.vscode/extensions/mauve.terraform-1.4.0/lspbin/terraform-provider-template_v2.1.2_x4]
2020-04-27T11:08:19.496+0300 [DEBUG] plugin: plugin started: path=/home/ovidiu/.vscode/extensions/mauve.terraform-1.4.0/lspbin/terraform-provider-template_v2.1.2_x4 pid=14892
2020-04-27T11:08:19.496+0300 [DEBUG] plugin: waiting for RPC address: path=/home/ovidiu/.vscode/extensions/mauve.terraform-1.4.0/lspbin/terraform-provider-template_v2.1.2_x4
2020-04-27T11:08:19.512+0300 [INFO]  plugin.terraform-provider-template_v2.1.2_x4: configuring server automatic mTLS: timestamp=2020-04-27T11:08:19.512+0300
2020-04-27T11:08:19.581+0300 [INFO]  plugin: configuring client automatic mTLS
2020-04-27T11:08:19.649+0300 [DEBUG] plugin: using plugin: version=5
2020-04-27T11:08:19.653+0300 [DEBUG] plugin.terraform-provider-template_v2.1.2_x4: plugin address: address=/tmp/plugin446267221 network=unix timestamp=2020-04-27T11:08:19.648+0300
2020-04-27T11:08:19.682+0300 [DEBUG] plugin: starting plugin: path=/home/ovidiu/.vscode/extensions/mauve.terraform-1.4.0/lspbin/terraform-provider-template_v2.1.2_x4 args=[/home/ovidiu/.vscode/extensions/mauve.terraform-1.4.0/lspbin/terraform-provider-template_v2.1.2_x4]
2020-04-27T11:08:19.683+0300 [DEBUG] plugin: plugin started: path=/home/ovidiu/.vscode/extensions/mauve.terraform-1.4.0/lspbin/terraform-provider-template_v2.1.2_x4 pid=14902
2020-04-27T11:08:19.683+0300 [DEBUG] plugin: waiting for RPC address: path=/home/ovidiu/.vscode/extensions/mauve.terraform-1.4.0/lspbin/terraform-provider-template_v2.1.2_x4
2020-04-27T11:08:19.718+0300 [INFO]  plugin: configuring client automatic mTLS
2020-04-27T11:08:19.727+0300 [INFO]  plugin: configuring client automatic mTLS
2020-04-27T11:08:19.740+0300 [INFO]  plugin.terraform-provider-template_v2.1.2_x4: configuring server automatic mTLS: timestamp=2020-04-27T11:08:19.734+0300
2020-04-27T11:08:19.862+0300 [DEBUG] plugin: starting plugin: path=/home/ovidiu/.vscode/extensions/mauve.terraform-1.4.0/lspbin/terraform-provider-azurerm_v1.44.0_x4 args=[/home/ovidiu/.vscode/extensions/mauve.terraform-1.4.0/lspbin/terraform-provider-azurerm_v1.44.0_x4]
2020-04-27T11:08:19.864+0300 [DEBUG] plugin: plugin started: path=/home/ovidiu/.vscode/extensions/mauve.terraform-1.4.0/lspbin/terraform-provider-azurerm_v1.44.0_x4 pid=14908
2020-04-27T11:08:19.865+0300 [DEBUG] plugin: waiting for RPC address: path=/home/ovidiu/.vscode/extensions/mauve.terraform-1.4.0/lspbin/terraform-provider-azurerm_v1.44.0_x4
2020-04-27T11:08:19.882+0300 [DEBUG] plugin.terraform-provider-template_v2.1.2_x4: plugin address: network=unix address=/tmp/plugin818807771 timestamp=2020-04-27T11:08:19.881+0300
2020-04-27T11:08:19.887+0300 [DEBUG] plugin: using plugin: version=5
2020-04-27T11:08:19.910+0300 [DEBUG] plugin: starting plugin: path=/home/ovidiu/.vscode/extensions/mauve.terraform-1.4.0/lspbin/terraform-provider-azurerm_v1.44.0_x4 args=[/home/ovidiu/.vscode/extensions/mauve.terraform-1.4.0/lspbin/terraform-provider-azurerm_v1.44.0_x4]
2020-04-27T11:08:19.926+0300 [DEBUG] plugin: plugin started: path=/home/ovidiu/.vscode/extensions/mauve.terraform-1.4.0/lspbin/terraform-provider-azurerm_v1.44.0_x4 pid=14919
2020-04-27T11:08:19.926+0300 [DEBUG] plugin: waiting for RPC address: path=/home/ovidiu/.vscode/extensions/mauve.terraform-1.4.0/lspbin/terraform-provider-azurerm_v1.44.0_x4
2020-04-27T11:08:20.016+0300 [DEBUG] plugin: plugin process exited: path=/home/ovidiu/.vscode/extensions/mauve.terraform-1.4.0/lspbin/terraform-provider-template_v2.1.2_x4 pid=14892
2020-04-27T11:08:20.016+0300 [DEBUG] plugin: plugin exited
2020-04-27T11:08:20.054+0300 [INFO]  plugin.terraform-provider-azurerm_v1.44.0_x4: configuring server automatic mTLS: timestamp=2020-04-27T11:08:20.050+0300
2020-04-27T11:08:20.069+0300 [INFO]  plugin.terraform-provider-azurerm_v1.44.0_x4: configuring server automatic mTLS: timestamp=2020-04-27T11:08:20.069+0300
2020-04-27T11:08:20.091+0300 [WARN]  plugin: error closing client during Kill: err="rpc error: code = Canceled desc = grpc: the client connection is closing"
2020-04-27T11:08:20.091+0300 [WARN]  plugin: plugin failed to exit gracefully
2020-04-27T11:08:20.119+0300 [DEBUG] plugin: plugin process exited: path=/home/ovidiu/.vscode/extensions/mauve.terraform-1.4.0/lspbin/terraform-provider-template_v2.1.2_x4 pid=14902 error="signal: killed"
2020-04-27T11:08:20.119+0300 [DEBUG] plugin: plugin exited
2020-04-27T11:08:20.136+0300 [INFO]  plugin: configuring client automatic mTLS
2020-04-27T11:08:20.151+0300 [INFO]  plugin: configuring client automatic mTLS
2020-04-27T11:08:20.168+0300 [DEBUG] plugin: using plugin: version=5
2020-04-27T11:08:20.168+0300 [DEBUG] plugin.terraform-provider-azurerm_v1.44.0_x4: plugin address: network=unix address=/tmp/plugin039498532 timestamp=2020-04-27T11:08:20.165+0300
2020-04-27T11:08:20.195+0300 [DEBUG] plugin.terraform-provider-azurerm_v1.44.0_x4: plugin address: address=/tmp/plugin327001596 network=unix timestamp=2020-04-27T11:08:20.195+0300
2020-04-27T11:08:20.208+0300 [DEBUG] plugin: using plugin: version=5
2020-04-27T11:08:20.239+0300 [DEBUG] plugin: starting plugin: path=/home/ovidiu/.vscode/extensions/mauve.terraform-1.4.0/lspbin/terraform-provider-azurerm_v1.44.0_x4 args=[/home/ovidiu/.vscode/extensions/mauve.terraform-1.4.0/lspbin/terraform-provider-azurerm_v1.44.0_x4]
2020-04-27T11:08:20.240+0300 [DEBUG] plugin: starting plugin: path=/home/ovidiu/.vscode/extensions/mauve.terraform-1.4.0/lspbin/terraform-provider-azurerm_v1.44.0_x4 args=[/home/ovidiu/.vscode/extensions/mauve.terraform-1.4.0/lspbin/terraform-provider-azurerm_v1.44.0_x4]
2020-04-27T11:08:20.240+0300 [DEBUG] plugin: plugin started: path=/home/ovidiu/.vscode/extensions/mauve.terraform-1.4.0/lspbin/terraform-provider-azurerm_v1.44.0_x4 pid=14934
2020-04-27T11:08:20.240+0300 [DEBUG] plugin: waiting for RPC address: path=/home/ovidiu/.vscode/extensions/mauve.terraform-1.4.0/lspbin/terraform-provider-azurerm_v1.44.0_x4
2020-04-27T11:08:20.240+0300 [DEBUG] plugin: plugin started: path=/home/ovidiu/.vscode/extensions/mauve.terraform-1.4.0/lspbin/terraform-provider-azurerm_v1.44.0_x4 pid=14935
2020-04-27T11:08:20.240+0300 [DEBUG] plugin: waiting for RPC address: path=/home/ovidiu/.vscode/extensions/mauve.terraform-1.4.0/lspbin/terraform-provider-azurerm_v1.44.0_x4
2020-04-27T11:08:20.323+0300 [INFO]  plugin.terraform-provider-azurerm_v1.44.0_x4: configuring server automatic mTLS: timestamp=2020-04-27T11:08:20.322+0300
2020-04-27T11:08:20.354+0300 [INFO]  plugin.terraform-provider-azurerm_v1.44.0_x4: configuring server automatic mTLS: timestamp=2020-04-27T11:08:20.352+0300
2020-04-27T11:08:20.435+0300 [DEBUG] plugin: using plugin: version=5
2020-04-27T11:08:20.435+0300 [DEBUG] plugin.terraform-provider-azurerm_v1.44.0_x4: plugin address: address=/tmp/plugin766451674 network=unix timestamp=2020-04-27T11:08:20.434+0300
2020-04-27T11:08:20.452+0300 [DEBUG] plugin: using plugin: version=5
2020-04-27T11:08:20.452+0300 [DEBUG] plugin.terraform-provider-azurerm_v1.44.0_x4: plugin address: address=/tmp/plugin342331796 network=unix timestamp=2020-04-27T11:08:20.452+0300
2020-04-27T11:08:20.476+0300 [DEBUG] plugin: plugin process exited: path=/home/ovidiu/.vscode/extensions/mauve.terraform-1.4.0/lspbin/terraform-provider-azurerm_v1.44.0_x4 pid=14908
2020-04-27T11:08:20.476+0300 [DEBUG] plugin: plugin exited
2020-04-27T11:08:20.503+0300 [DEBUG] plugin: plugin process exited: path=/home/ovidiu/.vscode/extensions/mauve.terraform-1.4.0/lspbin/terraform-provider-azurerm_v1.44.0_x4 pid=14919
2020-04-27T11:08:20.503+0300 [DEBUG] plugin: plugin exited
2020-04-27T11:08:20.603+0300 [DEBUG] plugin: plugin process exited: path=/home/ovidiu/.vscode/extensions/mauve.terraform-1.4.0/lspbin/terraform-provider-azurerm_v1.44.0_x4 pid=14934
2020-04-27T11:08:20.604+0300 [DEBUG] plugin: plugin exited
2020-04-27T11:08:20.605+0300 [WARN]  plugin: error closing client during Kill: err="rpc error: code = Canceled desc = grpc: the client connection is closing"
2020-04-27T11:08:20.605+0300 [WARN]  plugin: plugin failed to exit gracefully
2020-04-27T11:08:20.605+0300 [WARN]  plugin: error closing client during Kill: err="rpc error: code = Canceled desc = grpc: the client connection is closing"
2020-04-27T11:08:20.605+0300 [WARN]  plugin: plugin failed to exit gracefully
2020-04-27T11:08:20.605+0300 [WARN]  plugin: error closing client during Kill: err="rpc error: code = Canceled desc = grpc: the client connection is closing"
2020-04-27T11:08:20.605+0300 [WARN]  plugin: plugin failed to exit gracefully
2020-04-27T11:08:20.608+0300 [DEBUG] plugin: plugin process exited: path=/home/ovidiu/.vscode/extensions/mauve.terraform-1.4.0/lspbin/terraform-provider-azurerm_v1.44.0_x4 pid=14935
2020-04-27T11:08:20.608+0300 [DEBUG] plugin: plugin exited
2020-04-27T11:08:20.919+0300 [INFO]  plugin: configuring client automatic mTLS
2020-04-27T11:08:21.035+0300 [DEBUG] plugin: starting plugin: path=/home/ovidiu/.vscode/extensions/mauve.terraform-1.4.0/lspbin/terraform-provider-random_v2.2.1_x4 args=[/home/ovidiu/.vscode/extensions/mauve.terraform-1.4.0/lspbin/terraform-provider-random_v2.2.1_x4]
2020-04-27T11:08:21.045+0300 [DEBUG] plugin: plugin started: path=/home/ovidiu/.vscode/extensions/mauve.terraform-1.4.0/lspbin/terraform-provider-random_v2.2.1_x4 pid=14961
2020-04-27T11:08:21.045+0300 [DEBUG] plugin: waiting for RPC address: path=/home/ovidiu/.vscode/extensions/mauve.terraform-1.4.0/lspbin/terraform-provider-random_v2.2.1_x4
2020-04-27T11:08:21.086+0300 [INFO]  plugin.terraform-provider-random_v2.2.1_x4: configuring server automatic mTLS: timestamp=2020-04-27T11:08:21.084+0300
2020-04-27T11:08:21.206+0300 [INFO]  plugin: configuring client automatic mTLS
2020-04-27T11:08:21.226+0300 [DEBUG] plugin.terraform-provider-random_v2.2.1_x4: plugin address: network=unix address=/tmp/plugin627121863 timestamp=2020-04-27T11:08:21.224+0300
2020-04-27T11:08:21.236+0300 [DEBUG] plugin: using plugin: version=5
2020-04-27T11:08:21.336+0300 [DEBUG] plugin: starting plugin: path=/home/ovidiu/.vscode/extensions/mauve.terraform-1.4.0/lspbin/terraform-provider-random_v2.2.1_x4 args=[/home/ovidiu/.vscode/extensions/mauve.terraform-1.4.0/lspbin/terraform-provider-random_v2.2.1_x4]
2020-04-27T11:08:21.337+0300 [DEBUG] plugin: plugin started: path=/home/ovidiu/.vscode/extensions/mauve.terraform-1.4.0/lspbin/terraform-provider-random_v2.2.1_x4 pid=14973
2020-04-27T11:08:21.337+0300 [DEBUG] plugin: waiting for RPC address: path=/home/ovidiu/.vscode/extensions/mauve.terraform-1.4.0/lspbin/terraform-provider-random_v2.2.1_x4
2020-04-27T11:08:21.354+0300 [INFO]  plugin.terraform-provider-random_v2.2.1_x4: configuring server automatic mTLS: timestamp=2020-04-27T11:08:21.353+0300
2020-04-27T11:08:21.444+0300 [DEBUG] plugin.terraform-provider-random_v2.2.1_x4: plugin address: address=/tmp/plugin241545169 network=unix timestamp=2020-04-27T11:08:21.444+0300
2020-04-27T11:08:21.444+0300 [DEBUG] plugin: using plugin: version=5
2020-04-27T11:08:21.481+0300 [DEBUG] plugin: plugin process exited: path=/home/ovidiu/.vscode/extensions/mauve.terraform-1.4.0/lspbin/terraform-provider-random_v2.2.1_x4 pid=14961
2020-04-27T11:08:21.481+0300 [DEBUG] plugin: plugin exited
2020-04-27T11:08:21.699+0300 [DEBUG] plugin: plugin process exited: path=/home/ovidiu/.vscode/extensions/mauve.terraform-1.4.0/lspbin/terraform-provider-random_v2.2.1_x4 pid=14973
2020-04-27T11:08:21.699+0300 [DEBUG] plugin: plugin exited
2020-04-27T11:08:21.699+0300 [WARN]  plugin: error closing client during Kill: err="rpc error: code = Canceled desc = grpc: the client connection is closing"
2020-04-27T11:08:21.699+0300 [WARN]  plugin: plugin failed to exit gracefully
2020-04-27T11:08:22.221+0300 [INFO]  plugin: configuring client automatic mTLS
2020-04-27T11:08:22.359+0300 [DEBUG] plugin: starting plugin: path=/home/ovidiu/.terraform.d/plugins/linux_amd64/terraform-provider-pingdom_v1.1.1 args=[/home/ovidiu/.terraform.d/plugins/linux_amd64/terraform-provider-pingdom_v1.1.1]
2020-04-27T11:08:22.396+0300 [DEBUG] plugin: plugin started: path=/home/ovidiu/.terraform.d/plugins/linux_amd64/terraform-provider-pingdom_v1.1.1 pid=14986
2020-04-27T11:08:22.396+0300 [DEBUG] plugin: waiting for RPC address: path=/home/ovidiu/.terraform.d/plugins/linux_amd64/terraform-provider-pingdom_v1.1.1
2020-04-27T11:08:22.478+0300 [INFO]  plugin: configuring client automatic mTLS
2020-04-27T11:08:22.485+0300 [INFO]  plugin: configuring client automatic mTLS
2020-04-27T11:08:22.492+0300 [INFO]  plugin: configuring client automatic mTLS
2020-04-27T11:08:22.531+0300 [DEBUG] plugin: starting plugin: path=/home/ovidiu/WORK/devops-terraforms/artifactory-production/us-east-1/network/.terraform/plugins/linux_amd64/terraform-provider-aws_v2.58.0_x4 args=[/home/ovidiu/WORK/devops-terraforms/artifactory-production/us-east-1/network/.terraform/plugins/linux_amd64/terraform-provider-aws_v2.58.0_x4]
2020-04-27T11:08:22.532+0300 [DEBUG] plugin: starting plugin: path=/home/ovidiu/WORK/devops-terraforms/artifactory-production/us-east-1/network/.terraform/plugins/linux_amd64/terraform-provider-aws_v2.58.0_x4 args=[/home/ovidiu/WORK/devops-terraforms/artifactory-production/us-east-1/network/.terraform/plugins/linux_amd64/terraform-provider-aws_v2.58.0_x4]
2020-04-27T11:08:22.536+0300 [DEBUG] plugin: plugin started: path=/home/ovidiu/WORK/devops-terraforms/artifactory-production/us-east-1/network/.terraform/plugins/linux_amd64/terraform-provider-aws_v2.58.0_x4 pid=14992
2020-04-27T11:08:22.536+0300 [DEBUG] plugin: waiting for RPC address: path=/home/ovidiu/WORK/devops-terraforms/artifactory-production/us-east-1/network/.terraform/plugins/linux_amd64/terraform-provider-aws_v2.58.0_x4
2020-04-27T11:08:22.536+0300 [DEBUG] plugin: plugin started: path=/home/ovidiu/WORK/devops-terraforms/artifactory-production/us-east-1/network/.terraform/plugins/linux_amd64/terraform-provider-aws_v2.58.0_x4 pid=14993
2020-04-27T11:08:22.536+0300 [DEBUG] plugin: waiting for RPC address: path=/home/ovidiu/WORK/devops-terraforms/artifactory-production/us-east-1/network/.terraform/plugins/linux_amd64/terraform-provider-aws_v2.58.0_x4
2020-04-27T11:08:22.555+0300 [DEBUG] plugin: starting plugin: path=/home/ovidiu/WORK/devops-terraforms/artifactory-production/us-east-1/ebs/.terraform/plugins/linux_amd64/terraform-provider-aws_v2.58.0_x4 args=[/home/ovidiu/WORK/devops-terraforms/artifactory-production/us-east-1/ebs/.terraform/plugins/linux_amd64/terraform-provider-aws_v2.58.0_x4]
2020-04-27T11:08:22.558+0300 [DEBUG] plugin: plugin started: path=/home/ovidiu/WORK/devops-terraforms/artifactory-production/us-east-1/ebs/.terraform/plugins/linux_amd64/terraform-provider-aws_v2.58.0_x4 pid=14995
2020-04-27T11:08:22.558+0300 [DEBUG] plugin: waiting for RPC address: path=/home/ovidiu/WORK/devops-terraforms/artifactory-production/us-east-1/ebs/.terraform/plugins/linux_amd64/terraform-provider-aws_v2.58.0_x4
2020-04-27T11:08:22.586+0300 [INFO]  plugin.terraform-provider-pingdom_v1.1.1: configuring server automatic mTLS: timestamp=2020-04-27T11:08:22.585+0300
2020-04-27T11:08:22.646+0300 [DEBUG] plugin.terraform-provider-pingdom_v1.1.1: plugin address: address=/tmp/plugin258524422 network=unix timestamp=2020-04-27T11:08:22.645+0300
2020-04-27T11:08:22.646+0300 [DEBUG] plugin: using plugin: version=5
2020-04-27T11:08:22.782+0300 [DEBUG] plugin: plugin process exited: path=/home/ovidiu/.terraform.d/plugins/linux_amd64/terraform-provider-pingdom_v1.1.1 pid=14986
2020-04-27T11:08:22.782+0300 [DEBUG] plugin: plugin exited
2020-04-27T11:08:22.790+0300 [INFO]  plugin: configuring client automatic mTLS
2020-04-27T11:08:22.831+0300 [DEBUG] plugin: starting plugin: path=/home/ovidiu/WORK/devops-terraforms/artifactory-production/us-east-1/ebs/.terraform/plugins/linux_amd64/terraform-provider-aws_v2.58.0_x4 args=[/home/ovidiu/WORK/devops-terraforms/artifactory-production/us-east-1/ebs/.terraform/plugins/linux_amd64/terraform-provider-aws_v2.58.0_x4]
2020-04-27T11:08:22.832+0300 [DEBUG] plugin: plugin started: path=/home/ovidiu/WORK/devops-terraforms/artifactory-production/us-east-1/ebs/.terraform/plugins/linux_amd64/terraform-provider-aws_v2.58.0_x4 pid=15014
2020-04-27T11:08:22.832+0300 [DEBUG] plugin: waiting for RPC address: path=/home/ovidiu/WORK/devops-terraforms/artifactory-production/us-east-1/ebs/.terraform/plugins/linux_amd64/terraform-provider-aws_v2.58.0_x4
2020-04-27T11:08:23.445+0300 [INFO]  plugin.terraform-provider-aws_v2.58.0_x4: configuring server automatic mTLS: timestamp=2020-04-27T11:08:23.443+0300
2020-04-27T11:08:23.451+0300 [INFO]  plugin.terraform-provider-aws_v2.58.0_x4: configuring server automatic mTLS: timestamp=2020-04-27T11:08:23.450+0300
2020-04-27T11:08:23.461+0300 [INFO]  plugin.terraform-provider-aws_v2.58.0_x4: configuring server automatic mTLS: timestamp=2020-04-27T11:08:23.460+0300
2020-04-27T11:08:23.496+0300 [INFO]  plugin.terraform-provider-aws_v2.58.0_x4: configuring server automatic mTLS: timestamp=2020-04-27T11:08:23.496+0300
2020-04-27T11:08:23.589+0300 [DEBUG] plugin.terraform-provider-aws_v2.58.0_x4: plugin address: address=/tmp/plugin968675694 network=unix timestamp=2020-04-27T11:08:23.588+0300
2020-04-27T11:08:23.589+0300 [DEBUG] plugin: using plugin: version=5
2020-04-27T11:08:23.661+0300 [DEBUG] plugin: using plugin: version=5
2020-04-27T11:08:23.662+0300 [DEBUG] plugin.terraform-provider-aws_v2.58.0_x4: plugin address: address=/tmp/plugin331084662 network=unix timestamp=2020-04-27T11:08:23.660+0300
2020-04-27T11:08:23.690+0300 [DEBUG] plugin.terraform-provider-aws_v2.58.0_x4: plugin address: address=/tmp/plugin016920637 network=unix timestamp=2020-04-27T11:08:23.690+0300
2020-04-27T11:08:23.690+0300 [DEBUG] plugin: using plugin: version=5
2020-04-27T11:08:23.708+0300 [DEBUG] plugin.terraform-provider-aws_v2.58.0_x4: plugin address: address=/tmp/plugin945026686 network=unix timestamp=2020-04-27T11:08:23.707+0300
2020-04-27T11:08:23.708+0300 [DEBUG] plugin: using plugin: version=5
2020-04-27T11:08:24.232+0300 [DEBUG] plugin: plugin process exited: path=/home/ovidiu/WORK/devops-terraforms/artifactory-production/us-east-1/network/.terraform/plugins/linux_amd64/terraform-provider-aws_v2.58.0_x4 pid=14992
2020-04-27T11:08:24.232+0300 [DEBUG] plugin: plugin exited
2020-04-27T11:08:24.266+0300 [DEBUG] plugin: plugin process exited: path=/home/ovidiu/WORK/devops-terraforms/artifactory-production/us-east-1/network/.terraform/plugins/linux_amd64/terraform-provider-aws_v2.58.0_x4 pid=14993
2020-04-27T11:08:24.266+0300 [DEBUG] plugin: plugin exited
2020-04-27T11:08:24.269+0300 [DEBUG] plugin: plugin process exited: path=/home/ovidiu/WORK/devops-terraforms/artifactory-production/us-east-1/ebs/.terraform/plugins/linux_amd64/terraform-provider-aws_v2.58.0_x4 pid=15014
2020-04-27T11:08:24.269+0300 [DEBUG] plugin: plugin exited
2020-04-27T11:08:24.269+0300 [DEBUG] plugin: plugin process exited: path=/home/ovidiu/WORK/devops-terraforms/artifactory-production/us-east-1/ebs/.terraform/plugins/linux_amd64/terraform-provider-aws_v2.58.0_x4 pid=14995
2020-04-27T11:08:24.270+0300 [DEBUG] plugin: plugin exited
2020-04-27T11:08:24.588+0300 [INFO]  plugin: configuring client automatic mTLS
2020-04-27T11:08:24.760+0300 [DEBUG] plugin: starting plugin: path=/home/ovidiu/.vscode/extensions/mauve.terraform-1.4.0/lspbin/terraform-provider-archive_v1.3.0_x4 args=[/home/ovidiu/.vscode/extensions/mauve.terraform-1.4.0/lspbin/terraform-provider-archive_v1.3.0_x4]
2020-04-27T11:08:24.783+0300 [DEBUG] plugin: plugin started: path=/home/ovidiu/.vscode/extensions/mauve.terraform-1.4.0/lspbin/terraform-provider-archive_v1.3.0_x4 pid=15055
2020-04-27T11:08:24.783+0300 [DEBUG] plugin: waiting for RPC address: path=/home/ovidiu/.vscode/extensions/mauve.terraform-1.4.0/lspbin/terraform-provider-archive_v1.3.0_x4
2020-04-27T11:08:25.071+0300 [INFO]  plugin.terraform-provider-archive_v1.3.0_x4: configuring server automatic mTLS: timestamp=2020-04-27T11:08:25.068+0300
2020-04-27T11:08:25.136+0300 [DEBUG] plugin.terraform-provider-archive_v1.3.0_x4: plugin address: address=/tmp/plugin935325526 network=unix timestamp=2020-04-27T11:08:25.136+0300
2020-04-27T11:08:25.136+0300 [DEBUG] plugin: using plugin: version=5
2020-04-27T11:08:25.472+0300 [DEBUG] plugin: plugin process exited: path=/home/ovidiu/.vscode/extensions/mauve.terraform-1.4.0/lspbin/terraform-provider-archive_v1.3.0_x4 pid=15055
2020-04-27T11:08:25.472+0300 [DEBUG] plugin: plugin exited
fatal error: concurrent map writes

goroutine 1741 [running]:
runtime.throw(0x133bdaf, 0x15)
	/usr/local/go/src/runtime/panic.go:774 +0x72 fp=0xc00068b8d0 sp=0xc00068b8a0 pc=0x42f972
runtime.mapassign_faststr(0x1171840, 0xc000492f30, 0xc00201f117, 0x5c, 0x1eca7e0)
	/usr/local/go/src/runtime/map_faststr.go:211 +0x417 fp=0xc00068b938 sp=0xc00068b8d0 pc=0x414c27
github.com/juliosueiras/terraform-lsp/langserver.TextDocumentDidOpen(0x1630d60, 0xc0005ea660, 0xc00201f0a0, 0x63, 0xc000558bb0, 0x9, 0x1, 0xc002154210, 0x2e, 0x0, ...)
	/go/src/github.com/juliosueiras/terraform-lsp/langserver/did_open.go:16 +0x118 fp=0xc00068b9e0 sp=0xc00068b938 pc=0xf92658
runtime.call128(0xc000149080, 0x137b048, 0xc001b44fc0, 0x4800000058)
	/usr/local/go/src/runtime/asm_amd64.s:541 +0x52 fp=0xc00068ba70 sp=0xc00068b9e0 pc=0x45b702
reflect.Value.call(0x11629c0, 0x137b048, 0x13, 0x13295c6, 0x4, 0xc00184b2c0, 0x2, 0x2, 0x18, 0xc00030bbc0, ...)
	/usr/local/go/src/reflect/value.go:460 +0x5f6 fp=0xc00068bc90 sp=0xc00068ba70 pc=0x48e9b6
reflect.Value.Call(0x11629c0, 0x137b048, 0x13, 0xc00184b2c0, 0x2, 0x2, 0x2, 0xc00184b2c0, 0x1)
	/usr/local/go/src/reflect/value.go:321 +0xb4 fp=0xc00068bd10 sp=0xc00068bc90 pc=0x48e174
reflect.Value.Call-fm(0xc00184b2c0, 0x2, 0x2, 0x1, 0xc00030bba0, 0x1)
	/usr/local/go/src/reflect/value.go:318 +0x5a fp=0xc00068bd68 sp=0xc00068bd10 pc=0xf8c4fa
github.com/creachadair/jrpc2/handler.newHandler.func7(0x1630d60, 0xc0005ea660, 0xc000790e00, 0x0, 0x42e71a, 0x0, 0x0)
	/go/src/github.com/juliosueiras/terraform-lsp/vendor/github.com/creachadair/jrpc2/handler/handler.go:222 +0x20a fp=0xc00068be20 sp=0xc00068bd68 pc=0xf8c1da
github.com/creachadair/jrpc2/handler.Func.Handle(0xc00030b640, 0x1630d60, 0xc0005ea660, 0xc000790e00, 0x0, 0x0, 0x1630d60, 0xc0005ea660)
	/go/src/github.com/juliosueiras/terraform-lsp/vendor/github.com/creachadair/jrpc2/handler/handler.go:23 +0x44 fp=0xc00068be68 sp=0xc00068be20 pc=0xf8ae94
github.com/creachadair/jrpc2.(*Server).invoke(0xc0000fc300, 0x1630d60, 0xc000c28660, 0x16128a0, 0xc00030b640, 0xc000790e00, 0x0, 0x0, 0x0, 0x0, ...)
	/go/src/github.com/juliosueiras/terraform-lsp/vendor/github.com/creachadair/jrpc2/server.go:288 +0x177 fp=0xc00068bf28 sp=0xc00068be68 pc=0xf841a7
github.com/creachadair/jrpc2.(*Server).dispatch.func1(0xc00003f720, 0xc0000fc300, 0xc0009e6840)
	/go/src/github.com/juliosueiras/terraform-lsp/vendor/github.com/creachadair/jrpc2/server.go:185 +0xae fp=0xc00068bfc8 sp=0xc00068bf28 pc=0xf86cae
runtime.goexit()
	/usr/local/go/src/runtime/asm_amd64.s:1357 +0x1 fp=0xc00068bfd0 sp=0xc00068bfc8 pc=0x45d301
created by github.com/creachadair/jrpc2.(*Server).dispatch
	/go/src/github.com/juliosueiras/terraform-lsp/vendor/github.com/creachadair/jrpc2/server.go:183 +0x137

@OneSpecialPeg
Copy link

Was able to upgrade locally but on a Remote-SSH session I get:
Command 'Terraform: Install/Update Language Server' resulted in an error (command 'terraform.installLanguageServer' not found)
I have tried closing all sessions and reinstalling the extension on the remote host.

Has anyone faced this and come up with a workaround?

@juliosueiras
Copy link

@madpipeline i will take a look

@juliosueiras
Copy link

@madpipeline are you able to join the gitter channel so I can have more details about the issue?

@madpipeline
Copy link

Sure, if someone gives me the gitter link.

@juliosueiras
Copy link

@slmg
Copy link

slmg commented Apr 29, 2020

When trying to update the language server, I'm getting:

Command 'Terraform: Install/Update Language Server' resulted in an error (ETXTBSY: text file is busy, open '/home/user/.vscode/extensions/mauve.terraform-1.4.0/lspbin/terraform-lsp')

I had the same problem. I managed to upgrade/downgrade by following these steps:

  1. Disable lsp in settings
    "terraform.languageServer": {
        "enabled": false,
        "args": []
    },
  2. Restart vscode
  3. Ctrl+Shift+P, Terraform: Install/Update Language Server
  4. Re-enable lsp in settings
    "terraform.languageServer": {
        "enabled": true,
        "args": []
    },
  5. Restart vscode

@juliosueiras If I close my terraform workspace and open a new window, I get Command 'Terraform: Install/Update Language Server' resulted in an error (command 'terraform.installLanguageServer' not found)

It's also worth mentioning that I needed to be in a directory containing some .tf files in order for the extension to be activated.

Thank you for supporting this extension.

@06kellyjac
Copy link

Is it the terraform extension or terraform-lsp that writes provider files next to the binary?
I'm on nixos so the bin dir for terraform-lsp is read-only. I've symlinked it to $XDG_DATA_HOME/terraform-lsp/terraform-lsp so the providers get dumped out there instead but I'd rather it did that (or similar) by default.

@juliosueiras
Copy link

@06kellyjac this extension put the providers binary, since lsp pick up any provider after ‘terraform init’, this extension predownload a set of common providers binary first to allow lsp work without doing ‘terraform init’

@cyrus-mc
Copy link

cyrus-mc commented May 6, 2020

I am unable to get most of the features that are documented as supported working.

#313

Opened above issue. My settings are as shown above and I am running latest beta release of the lsp.

Certain code completion works. For example most resources. But anything outside that doesn’t.

@paultyng paultyng unpinned this issue May 7, 2020
@LiangChen0323
Copy link

I got this message after I upgraded to the latest language server:
Starting Experimental Language Server: Installing/Downloading common providers

The extension just stopped working.

@paultyng
Copy link
Contributor

paultyng commented May 7, 2020

👋 Hey everyone, we just posted an update about the extension on our blog: https://www.hashicorp.com/blog/supporting-the-hashicorp-terraform-extension-for-visual-studio-code

We are working internally on a new version that will have 0.12 support and handle installing and using our new language server by default. For now I'm going to start cleaning up the issues / PRs on the repo in preparation for the new version.

@paultyng paultyng closed this as completed May 7, 2020
@dhdersch
Copy link

dhdersch commented May 7, 2020

The end of an era!

@madwolfa
Copy link

madwolfa commented May 8, 2020

Exciting!

@yourbuddyconner
Copy link

Wow I am going to miss getting updates on this issue 💯

@j0nathontayl0r
Copy link

@mauve has submitted a claim to the BountySource funds. Let's give him a 👍

https://www.bountysource.com/issues/70767330-feat-terraform-0-12-support-was-hcl2-support?show_profile_modal=1

@paultyng
Copy link
Contributor

paultyng commented Jun 4, 2020

We just released v2.0.0-rc.1 of the extension. The main features include:

  • Added syntax support for 0.12
  • Added terraform-ls usage by default (currently on 0.3.0, which offers basic provider code completion)

You can find additional information and specifics in the release notes and CHANGELOG.

With this release we expect that many of the prior issues and PRs are no longer relevant or have been addressed, and are therefore being closed. If you feel the action taken on an issue or PR is in error, please comment as such and we can figure out the appropriate way to address it.

We plan to add the final 2.0.0 release to the marketplace soon, but are actively seeking your feedback now on the release candidates. You can download the .vsix from the releases page and manually install it in VS Code to try it out.

@paultyng paultyng reopened this Jun 4, 2020
@paultyng paultyng closed this as completed Jun 4, 2020
@nthienan
Copy link

nthienan commented Jun 8, 2020

.tfvars is not recognized by the extension. There is no highlight, no format...
image

@06kellyjac
Copy link

.tfvars is not recognized by the extension. There is no highlight, no format...
image

Probably best to put that in a separate issue 🙂

@hungdhm-0574
Copy link

My VScode no longer auto-format for .tf file ? How i bring my features back ??
I tried alot of guide but it seem not work !

@Chupaka
Copy link

Chupaka commented Jun 24, 2020

@hungdhm-0574 simply download mauve.terraform-v1.4.0.vsix file from https://github.com/hashicorp/vscode-terraform/releases/tag/v1.4.0, then in VSCode go to View -> Command Palette... -> type "VSIX" (there will be Extensions: Install from VSIX - click it) and select the file you downloaded.

I also disabled 2.0.1 version of extension in "Show Installed Extension" for my workspace, but for me it started to work again even with both versions active.

@ghost
Copy link

ghost commented Jul 4, 2020

I'm going to lock this issue because it has been closed for 30 days ⏳. This helps our maintainers find and focus on the active issues.
If you have found a problem that seems similar to this, please open a new issue and complete the issue template so we can capture all the context necessary to investigate further.

@ghost ghost locked and limited conversation to collaborators Jul 4, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests