Merge pull request #2078 from sipsma/fix-client-deadlock
This commit is contained in:
commit
def93a2942
@ -189,12 +189,6 @@ func (c *Client) buildfn(ctx context.Context, pctx *plancontext.Context, fn DoFu
|
|||||||
wg.Done()
|
wg.Done()
|
||||||
}
|
}
|
||||||
|
|
||||||
// Catch solver's events
|
|
||||||
// Closed manually
|
|
||||||
eventsCh := make(chan *bk.SolveStatus)
|
|
||||||
wg.Add(1)
|
|
||||||
go catchOutput(eventsCh)
|
|
||||||
|
|
||||||
// Catch build events
|
// Catch build events
|
||||||
// Closed by buildkit
|
// Closed by buildkit
|
||||||
buildCh := make(chan *bk.SolveStatus)
|
buildCh := make(chan *bk.SolveStatus)
|
||||||
@ -202,6 +196,12 @@ func (c *Client) buildfn(ctx context.Context, pctx *plancontext.Context, fn DoFu
|
|||||||
go catchOutput(buildCh)
|
go catchOutput(buildCh)
|
||||||
|
|
||||||
resp, err := c.c.Build(ctx, opts, "", func(ctx context.Context, gw bkgw.Client) (*bkgw.Result, error) {
|
resp, err := c.c.Build(ctx, opts, "", func(ctx context.Context, gw bkgw.Client) (*bkgw.Result, error) {
|
||||||
|
// Catch solver's events
|
||||||
|
// Closed by solver.Stop
|
||||||
|
eventsCh := make(chan *bk.SolveStatus)
|
||||||
|
wg.Add(1)
|
||||||
|
go catchOutput(eventsCh)
|
||||||
|
|
||||||
s := solver.New(solver.Opts{
|
s := solver.New(solver.Opts{
|
||||||
Control: c.c,
|
Control: c.c,
|
||||||
Gateway: gw,
|
Gateway: gw,
|
||||||
|
@ -248,3 +248,13 @@ setup() {
|
|||||||
assert_failure
|
assert_failure
|
||||||
assert_output --partial "no match for platform in manifest"
|
assert_output --partial "no match for platform in manifest"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@test "plan/do: invalid BUILDKIT_HOST results in error" {
|
||||||
|
cd "$TESTDIR"
|
||||||
|
|
||||||
|
# ip address is in a reserved range that should be unroutable
|
||||||
|
export BUILDKIT_HOST=tcp://192.0.2.1:1234
|
||||||
|
run timeout 30 "$DAGGER" "do" -p ./plan/do/actions.cue test
|
||||||
|
assert_failure
|
||||||
|
assert_output --partial "Unavailable: connection error"
|
||||||
|
}
|
||||||
|
Reference in New Issue
Block a user