20425: Fix response status for mixed-status backend errors.
[arvados.git] / services / ws / service.go
index c38dcf59e68aac5a975f3362e7b258310341aef5..d6501e0771d59dab816d2d31fdf000770bad18fe 100644 (file)
@@ -7,6 +7,7 @@ package ws
 import (
        "context"
        "fmt"
+       "time"
 
        "git.arvados.org/arvados.git/lib/cmd"
        "git.arvados.org/arvados.git/lib/service"
@@ -24,11 +25,13 @@ func newHandler(ctx context.Context, cluster *arvados.Cluster, token string, reg
        if err != nil {
                return service.ErrorHandler(ctx, cluster, fmt.Errorf("error initializing client from cluster config: %s", err))
        }
+       client.Timeout = time.Minute
        eventSource := &pgEventSource{
                DataSource:   cluster.PostgreSQL.Connection.String(),
                MaxOpenConns: cluster.PostgreSQL.ConnectionPool,
                QueueSize:    cluster.API.WebsocketServerEventQueue,
                Logger:       ctxlog.FromContext(ctx),
+               Reg:          reg,
        }
        done := make(chan struct{})
        go func() {
@@ -46,6 +49,7 @@ func newHandler(ctx context.Context, cluster *arvados.Cluster, token string, reg
                eventSource:    eventSource,
                newPermChecker: func() permChecker { return newPermChecker(*client) },
                done:           done,
+               reg:            reg,
        }
        return rtr
 }