#@Erik Sipsma @vito ๐ again ...
1 messages ยท Page 1 of 1 (latest)
this could be 100 different things, but @bitter sinew and I are running out of ideas
also it's a very weird hang where we don't even the all the logs -- sometimes after killing the process we get the rest of them
so it's been a PITA to debug
same with Host().Tunnel()?
Yeah that seems like it should work, principally anyway 
i'd expect the later ones to just be a no-op right?
not even sure if this is the right way to use this but the logic is pretty much as:
svc, err := serviceState.AsService(...).Start(startCtx)
tunnel, err := dag.Host().Tunnel(svc, dagger.HostTunnelOpts{Ports: hostForwards}).Start(ctx)
for _, forward := range hostForwards {
externalEndpoint, err := tunnel.Endpoint(ctx, dagger.ServiceEndpointOpts{
Port: forward.Frontend,
})
}
for port, endpoint := range endpoints {
internalEndpoint, err := svc.Endpoint(ctx, dagger.ServiceEndpointOpts{
Port: port,
})
}
-ish
basically start a service, start a tunnel, grab the internal/external endpoint for each port
the later ones are different services
same session though
ah i see
then i have even less of an idea 
does it unwedge if you remove the tunnels?
also it's a very weird hang where we don't even the all the logs -- sometimes after killing the process we get the rest of them
killing the child process for the service inside the engine container?
my generic process would be to trigger it in the most minimal way possible and then get a stack trace of everything happening in the engine. Most brute-force way is to just tail engine logs and send SIGQUIT, but that kills the engine of course. Then sift through and see what it's stuck on
but that assumes it is indeed an engine-side problem and not something in the client (which is plausible since it involves client-side tunnels)
so i commented out all service related code and it doesn't seem to hang anymore ... but might be coincidence