Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
N
nebula
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
exchain
nebula
Commits
0e83a2f8
Unverified
Commit
0e83a2f8
authored
Mar 06, 2023
by
mergify[bot]
Committed by
GitHub
Mar 06, 2023
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #5057 from ethereum-optimism/aj/http-timeouts
op-node: Set timeouts on http servers
parents
c21476c1
25177fb2
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
30 additions
and
9 deletions
+30
-9
main.go
op-node/cmd/stateviz/main.go
+3
-1
http.go
op-node/http/http.go
+20
-0
metrics.go
op-node/metrics/metrics.go
+5
-7
server.go
op-node/node/server.go
+2
-1
No files found.
op-node/cmd/stateviz/main.go
View file @
0e83a2f8
...
@@ -19,6 +19,7 @@ import (
...
@@ -19,6 +19,7 @@ import (
"time"
"time"
"github.com/ethereum-optimism/optimism/op-node/eth"
"github.com/ethereum-optimism/optimism/op-node/eth"
ophttp
"github.com/ethereum-optimism/optimism/op-node/http"
"github.com/ethereum/go-ethereum/log"
"github.com/ethereum/go-ethereum/log"
)
)
...
@@ -161,7 +162,8 @@ func runServer() {
...
@@ -161,7 +162,8 @@ func runServer() {
mux
.
HandleFunc
(
"/logs"
,
makeGzipHandler
(
logsHandler
))
mux
.
HandleFunc
(
"/logs"
,
makeGzipHandler
(
logsHandler
))
log
.
Info
(
"running webserver..."
)
log
.
Info
(
"running webserver..."
)
if
err
:=
http
.
Serve
(
l
,
mux
);
err
!=
nil
&&
!
errors
.
Is
(
err
,
http
.
ErrServerClosed
)
{
httpServer
:=
ophttp
.
NewHttpServer
(
mux
)
if
err
:=
httpServer
.
Serve
(
l
);
err
!=
nil
&&
!
errors
.
Is
(
err
,
http
.
ErrServerClosed
)
{
log
.
Crit
(
"http server failed"
,
"message"
,
err
)
log
.
Crit
(
"http server failed"
,
"message"
,
err
)
}
}
}
}
...
...
op-node/http/http.go
0 → 100644
View file @
0e83a2f8
package
http
import
(
"net/http"
"github.com/ethereum/go-ethereum/rpc"
)
// Use default timeouts from Geth as battle tested default values
var
timeouts
=
rpc
.
DefaultHTTPTimeouts
func
NewHttpServer
(
handler
http
.
Handler
)
*
http
.
Server
{
return
&
http
.
Server
{
Handler
:
handler
,
ReadTimeout
:
timeouts
.
ReadTimeout
,
ReadHeaderTimeout
:
timeouts
.
ReadHeaderTimeout
,
WriteTimeout
:
timeouts
.
WriteTimeout
,
IdleTimeout
:
timeouts
.
IdleTimeout
,
}
}
op-node/metrics/metrics.go
View file @
0e83a2f8
...
@@ -7,10 +7,10 @@ import (
...
@@ -7,10 +7,10 @@ import (
"errors"
"errors"
"fmt"
"fmt"
"net"
"net"
"net/http"
"strconv"
"strconv"
"time"
"time"
ophttp
"github.com/ethereum-optimism/optimism/op-node/http"
"github.com/ethereum-optimism/optimism/op-service/metrics"
"github.com/ethereum-optimism/optimism/op-service/metrics"
pb
"github.com/libp2p/go-libp2p-pubsub/pb"
pb
"github.com/libp2p/go-libp2p-pubsub/pb"
...
@@ -528,12 +528,10 @@ func (m *Metrics) RecordSequencerSealingTime(duration time.Duration) {
...
@@ -528,12 +528,10 @@ func (m *Metrics) RecordSequencerSealingTime(duration time.Duration) {
// The server will be closed when the passed-in context is cancelled.
// The server will be closed when the passed-in context is cancelled.
func
(
m
*
Metrics
)
Serve
(
ctx
context
.
Context
,
hostname
string
,
port
int
)
error
{
func
(
m
*
Metrics
)
Serve
(
ctx
context
.
Context
,
hostname
string
,
port
int
)
error
{
addr
:=
net
.
JoinHostPort
(
hostname
,
strconv
.
Itoa
(
port
))
addr
:=
net
.
JoinHostPort
(
hostname
,
strconv
.
Itoa
(
port
))
server
:=
&
http
.
Server
{
server
:=
ophttp
.
NewHttpServer
(
promhttp
.
InstrumentMetricHandler
(
Addr
:
addr
,
m
.
registry
,
promhttp
.
HandlerFor
(
m
.
registry
,
promhttp
.
HandlerOpts
{}),
Handler
:
promhttp
.
InstrumentMetricHandler
(
))
m
.
registry
,
promhttp
.
HandlerFor
(
m
.
registry
,
promhttp
.
HandlerOpts
{}),
server
.
Addr
=
addr
),
}
go
func
()
{
go
func
()
{
<-
ctx
.
Done
()
<-
ctx
.
Done
()
server
.
Close
()
server
.
Close
()
...
...
op-node/node/server.go
View file @
0e83a2f8
...
@@ -7,6 +7,7 @@ import (
...
@@ -7,6 +7,7 @@ import (
"net/http"
"net/http"
"strconv"
"strconv"
ophttp
"github.com/ethereum-optimism/optimism/op-node/http"
"github.com/ethereum/go-ethereum/log"
"github.com/ethereum/go-ethereum/log"
"github.com/ethereum/go-ethereum/node"
"github.com/ethereum/go-ethereum/node"
"github.com/ethereum/go-ethereum/rpc"
"github.com/ethereum/go-ethereum/rpc"
...
@@ -87,7 +88,7 @@ func (s *rpcServer) Start() error {
...
@@ -87,7 +88,7 @@ func (s *rpcServer) Start() error {
}
}
s
.
listenAddr
=
listener
.
Addr
()
s
.
listenAddr
=
listener
.
Addr
()
s
.
httpServer
=
&
http
.
Server
{
Handler
:
mux
}
s
.
httpServer
=
ophttp
.
NewHttpServer
(
mux
)
go
func
()
{
go
func
()
{
if
err
:=
s
.
httpServer
.
Serve
(
listener
);
err
!=
nil
&&
!
errors
.
Is
(
err
,
http
.
ErrServerClosed
)
{
// todo improve error handling
if
err
:=
s
.
httpServer
.
Serve
(
listener
);
err
!=
nil
&&
!
errors
.
Is
(
err
,
http
.
ErrServerClosed
)
{
// todo improve error handling
s
.
log
.
Error
(
"http server failed"
,
"err"
,
err
)
s
.
log
.
Error
(
"http server failed"
,
"err"
,
err
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment