@@ -187,13 +187,8 @@ func (conn *WslConn) OpenDomainSocketListener() error {
187
187
}
188
188
189
189
func (conn * WslConn ) StartConnServer () error {
190
- ctx , cancelFn := context .WithCancel (context .Background ())
191
- conn .WithLock (func () {
192
- if conn .cancelFn != nil {
193
- conn .cancelFn ()
194
- }
195
- conn .cancelFn = cancelFn
196
- })
190
+ utilCtx , cancelFn := context .WithTimeout (context .Background (), 2 * time .Second )
191
+ defer cancelFn ()
197
192
var allowed bool
198
193
conn .WithLock (func () {
199
194
if conn .Status != Status_Connecting {
@@ -206,7 +201,7 @@ func (conn *WslConn) StartConnServer() error {
206
201
return fmt .Errorf ("cannot start conn server for %q when status is %q" , conn .GetName (), conn .GetStatus ())
207
202
}
208
203
client := conn .GetClient ()
209
- wshPath := GetWshPath (ctx , client )
204
+ wshPath := GetWshPath (utilCtx , client )
210
205
rpcCtx := wshrpc.RpcContext {
211
206
ClientType : wshrpc .ClientType_ConnServer ,
212
207
Conn : conn .GetName (),
@@ -216,7 +211,7 @@ func (conn *WslConn) StartConnServer() error {
216
211
if err != nil {
217
212
return fmt .Errorf ("unable to create jwt token for conn controller: %w" , err )
218
213
}
219
- shellPath , err := DetectShell (ctx , client )
214
+ shellPath , err := DetectShell (utilCtx , client )
220
215
if err != nil {
221
216
return err
222
217
}
@@ -227,7 +222,14 @@ func (conn *WslConn) StartConnServer() error {
227
222
cmdStr = fmt .Sprintf ("%s=\" %s\" %s connserver --router" , wshutil .WaveJwtTokenVarName , jwtToken , wshPath )
228
223
}
229
224
log .Printf ("starting conn controller: %s\n " , cmdStr )
230
- cmd := client .WslCommand (ctx , cmdStr )
225
+ connServerCtx , cancelFn := context .WithCancel (context .Background ())
226
+ conn .WithLock (func () {
227
+ if conn .cancelFn != nil {
228
+ conn .cancelFn ()
229
+ }
230
+ conn .cancelFn = cancelFn
231
+ })
232
+ cmd := client .WslCommand (connServerCtx , cmdStr )
231
233
pipeRead , pipeWrite := io .Pipe ()
232
234
inputPipeRead , inputPipeWrite := io .Pipe ()
233
235
cmd .SetStdout (pipeWrite )
0 commit comments