code: func (p *GRPCProvider) Close() error {
  	log.Printf("[TRACE] GRPCProvider: Close")
  
  	// Make sure to stop the server if we're not running within go-plugin.
  	if p.TestServer != nil {
  		p.TestServer.Stop()
  	}
  
  	// Check this since it's not automatically inserted during plugin creation.
  	// It's currently only inserted by the command package, because that is
  	// where the factory is built and is the only point with access to the
  	// plugin.Client.
  	if p.PluginClient == nil {
  		log.Println("[DEBUG] provider has no plugin.Client")
  		return nil
  	}
  
  	p.PluginClient.Kill()
  	return nil
  }
docs: // closing the grpc connection is final, and terraform will call it at the end of every phase.