1

I’m having what seems to be a timeout issue with the go client. Essentially I have a service running in AWS, an endpoint for a heartbeat (that does not connect to edgedb), and an endpoint to list all of a particular object in the DB (“select Foo { ... };“).

When the service is started both of these endpoints function as expected, but over the course of the day the list endpoint will start to hang forever (I’m assuming because the client is timing out connecting to the DB?) The heartbeat route continues to function normally so AWS doesn’t mark the service as unhealthy. Is there maybe a connection option I’m missing?

Here’s how I create the client:

log.Println("Connecting to EdgeDB...")
        ctx := context.Background()
        var opts edgedb.Options
                opts = edgedb.Options{
                        Database:    os.Getenv("DB_DBNAME"),
                        User:        os.Getenv("DB_USER"),
                        Password:    edgedb.NewOptionalStr(os.Getenv("DB_PASSWORD")),
                        Host:        os.Getenv("DB_HOST"),
                        Port:        5656,
                        Concurrency: uint(4),
                        TLSOptions: edgedb.TLSOptions{
                                SecurityMode: "insecure",
                        },
                }
        db, dbErr := edgedb.CreateClient(ctx, opts)

        return projectDb{DB: db}, db, dbErr

This timeout behavior seems to happen with a local edgedb eventually as well, but no logged errors

bmuk
  • 121
  • 5
  • If you restart your server after the list endpoint starts to hang does it immediately hang once it starts back up? Or is it fast for a while and then start to hang again? – fmoor Oct 17 '22 at 22:32
  • Also how fast does your list of objects grow? And is there any filtering or ordering in the query? – fmoor Oct 17 '22 at 22:33

0 Answers0