graphql: add query timeout (#26116)

This PR adds a 60 second timeout to graphql queries.
This commit is contained in:
Ahmet Avci 2022-11-08 15:14:14 +03:00 committed by GitHub
parent 913973436b
commit ee9ff06469
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -17,8 +17,10 @@
package graphql
import (
"context"
"encoding/json"
"net/http"
"time"
"github.com/ethereum/go-ethereum/eth/filters"
"github.com/ethereum/go-ethereum/internal/ethapi"
@ -41,7 +43,10 @@ func (h handler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
return
}
response := h.Schema.Exec(r.Context(), params.Query, params.OperationName, params.Variables)
ctx, cancel := context.WithTimeout(r.Context(), 60*time.Second)
defer cancel()
response := h.Schema.Exec(ctx, params.Query, params.OperationName, params.Variables)
responseJSON, err := json.Marshal(response)
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)