Merge pull request #31354 from anusha-ragunathan/dial_socket
Net dial to the plugin socket during enable.
This commit is contained in:
commit
e77c2001aa
2 changed files with 26 additions and 3 deletions
|
@ -60,8 +60,8 @@ func (cli *Client) PluginInstall(ctx context.Context, name string, options types
|
|||
return
|
||||
}
|
||||
|
||||
err = cli.PluginEnable(ctx, name, types.PluginEnableOptions{Timeout: 0})
|
||||
pw.CloseWithError(err)
|
||||
enableErr := cli.PluginEnable(ctx, name, types.PluginEnableOptions{Timeout: 0})
|
||||
pw.CloseWithError(enableErr)
|
||||
}()
|
||||
return pr, nil
|
||||
}
|
||||
|
|
|
@ -5,6 +5,7 @@ package plugin
|
|||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"net"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"syscall"
|
||||
|
@ -77,7 +78,8 @@ func (pm *Manager) enable(p *v2.Plugin, c *controller, force bool) error {
|
|||
}
|
||||
|
||||
func (pm *Manager) pluginPostStart(p *v2.Plugin, c *controller) error {
|
||||
client, err := plugins.NewClientWithTimeout("unix://"+filepath.Join(pm.config.ExecRoot, p.GetID(), p.GetSocket()), nil, c.timeoutInSecs)
|
||||
sockAddr := filepath.Join(pm.config.ExecRoot, p.GetID(), p.GetSocket())
|
||||
client, err := plugins.NewClientWithTimeout("unix://"+sockAddr, nil, c.timeoutInSecs)
|
||||
if err != nil {
|
||||
c.restart = false
|
||||
shutdownPlugin(p, c, pm.containerdClient)
|
||||
|
@ -85,6 +87,27 @@ func (pm *Manager) pluginPostStart(p *v2.Plugin, c *controller) error {
|
|||
}
|
||||
|
||||
p.SetPClient(client)
|
||||
|
||||
maxRetries := 3
|
||||
var retries int
|
||||
for {
|
||||
time.Sleep(3 * time.Second)
|
||||
retries++
|
||||
|
||||
if retries > maxRetries {
|
||||
logrus.Debugf("error net dialing plugin: %v", err)
|
||||
c.restart = false
|
||||
shutdownPlugin(p, c, pm.containerdClient)
|
||||
return err
|
||||
}
|
||||
|
||||
// net dial into the unix socket to see if someone's listening.
|
||||
conn, err := net.Dial("unix", sockAddr)
|
||||
if err == nil {
|
||||
conn.Close()
|
||||
break
|
||||
}
|
||||
}
|
||||
pm.config.Store.SetState(p, true)
|
||||
pm.config.Store.CallHandler(p)
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue