Last active
March 25, 2022 09:26
-
-
Save alexvanin/f856d22de55e9e0f1b683bfbfb33e46b to your computer and use it in GitHub Desktop.
gRPC run out of quota
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package main | |
import ( | |
"bufio" | |
"context" | |
"fmt" | |
"log" | |
"os" | |
object "github.com/nspcc-dev/neofs-api-go/v2/object/grpc" | |
"google.golang.org/grpc" | |
) | |
func die(err error) { | |
if err != nil { | |
log.Fatal(err) | |
} | |
} | |
func main() { | |
ctx := context.Background() | |
conn, err := grpc.DialContext(ctx, "127.0.0.1:33322", grpc.WithInsecure()) | |
die(err) | |
cli := object.NewObjectServiceClient(conn) | |
_, err = cli.Get(ctx, new(object.GetRequest)) | |
die(err) | |
reader := bufio.NewReader(os.Stdin) | |
fmt.Print("Waiting for input to stop application> ") | |
reader.ReadString('\n') | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
goroutine profile: total 8 | |
1 @ 0x439956 0x432313 0x463ec9 0x4dced2 0x4de23a 0x4de228 0x52dcc9 0x53e285 0x4a74d4 0x4943fa 0x79e4ee 0x79e4a8 0x79ed35 0x7cb9f2 0x8362a2 0x835b66 0x4693c1 | |
# 0x463ec8 internal/poll.runtime_pollWait+0x88 /snap/go/current/src/runtime/netpoll.go:234 | |
# 0x4dced1 internal/poll.(*pollDesc).wait+0x31 /snap/go/current/src/internal/poll/fd_poll_runtime.go:84 | |
# 0x4de239 internal/poll.(*pollDesc).waitRead+0x259 /snap/go/current/src/internal/poll/fd_poll_runtime.go:89 | |
# 0x4de227 internal/poll.(*FD).Read+0x247 /snap/go/current/src/internal/poll/fd_unix.go:167 | |
# 0x52dcc8 net.(*netFD).Read+0x28 /snap/go/current/src/net/fd_posix.go:56 | |
# 0x53e284 net.(*conn).Read+0x44 /snap/go/current/src/net/net.go:183 | |
# 0x4a74d3 bufio.(*Reader).Read+0x1b3 /snap/go/current/src/bufio/bufio.go:227 | |
# 0x4943f9 io.ReadAtLeast+0x99 /snap/go/current/src/io/io.go:328 | |
# 0x79e4ed io.ReadFull+0x6d /snap/go/current/src/io/io.go:347 | |
# 0x79e4a7 golang.org/x/net/http2.readFrameHeader+0x27 /home/alexvanin/go/pkg/mod/golang.org/x/net@v0.0.0-20211112202133-69e39bad7dc2/http2/frame.go:237 | |
# 0x79ed34 golang.org/x/net/http2.(*Framer).ReadFrame+0x94 /home/alexvanin/go/pkg/mod/golang.org/x/net@v0.0.0-20211112202133-69e39bad7dc2/http2/frame.go:498 | |
# 0x7cb9f1 google.golang.org/grpc/internal/transport.(*http2Server).HandleStreams+0xb1 /home/alexvanin/go/pkg/mod/google.golang.org/grpc@v1.41.0/internal/transport/http2_server.go:558 | |
# 0x8362a1 google.golang.org/grpc.(*Server).serveStreams+0x141 /home/alexvanin/go/pkg/mod/google.golang.org/grpc@v1.41.0/server.go:907 | |
# 0x835b65 google.golang.org/grpc.(*Server).handleRawConn.func1+0x45 /home/alexvanin/go/pkg/mod/google.golang.org/grpc@v1.41.0/server.go:847 | |
1 @ 0x439956 0x432313 0x463ec9 0x4dced2 0x4de23a 0x4de228 0x52dcc9 0x53e285 0x65e8bf 0x4693c1 | |
# 0x463ec8 internal/poll.runtime_pollWait+0x88 /snap/go/current/src/runtime/netpoll.go:234 | |
# 0x4dced1 internal/poll.(*pollDesc).wait+0x31 /snap/go/current/src/internal/poll/fd_poll_runtime.go:84 | |
# 0x4de239 internal/poll.(*pollDesc).waitRead+0x259 /snap/go/current/src/internal/poll/fd_poll_runtime.go:89 | |
# 0x4de227 internal/poll.(*FD).Read+0x247 /snap/go/current/src/internal/poll/fd_unix.go:167 | |
# 0x52dcc8 net.(*netFD).Read+0x28 /snap/go/current/src/net/fd_posix.go:56 | |
# 0x53e284 net.(*conn).Read+0x44 /snap/go/current/src/net/net.go:183 | |
# 0x65e8be net/http.(*connReader).backgroundRead+0x3e /snap/go/current/src/net/http/server.go:672 | |
1 @ 0x439956 0x432313 0x463ec9 0x4dced2 0x4e022c 0x4e0219 0x52f475 0x5473a8 0x54657d 0x669174 0x668d9d 0x869d65 0x869d35 0x4693c1 | |
# 0x463ec8 internal/poll.runtime_pollWait+0x88 /snap/go/current/src/runtime/netpoll.go:234 | |
# 0x4dced1 internal/poll.(*pollDesc).wait+0x31 /snap/go/current/src/internal/poll/fd_poll_runtime.go:84 | |
# 0x4e022b internal/poll.(*pollDesc).waitRead+0x22b /snap/go/current/src/internal/poll/fd_poll_runtime.go:89 | |
# 0x4e0218 internal/poll.(*FD).Accept+0x218 /snap/go/current/src/internal/poll/fd_unix.go:402 | |
# 0x52f474 net.(*netFD).accept+0x34 /snap/go/current/src/net/fd_unix.go:173 | |
# 0x5473a7 net.(*TCPListener).accept+0x27 /snap/go/current/src/net/tcpsock_posix.go:140 | |
# 0x54657c net.(*TCPListener).Accept+0x3c /snap/go/current/src/net/tcpsock.go:262 | |
# 0x669173 net/http.(*Server).Serve+0x393 /snap/go/current/src/net/http/server.go:3002 | |
# 0x668d9c net/http.(*Server).ListenAndServe+0x7c /snap/go/current/src/net/http/server.go:2931 | |
# 0x869d64 net/http.ListenAndServe+0x44 /snap/go/current/src/net/http/server.go:3185 | |
# 0x869d34 main.main.func1+0x14 /home/alexvanin/Project/NeoFS/neofs-node/cmd/example/server/main.go:42 | |
1 @ 0x439956 0x432313 0x463ec9 0x4dced2 0x4e022c 0x4e0219 0x52f475 0x5473a8 0x54657d 0x835142 0x86989d 0x439587 0x4693c1 | |
# 0x463ec8 internal/poll.runtime_pollWait+0x88 /snap/go/current/src/runtime/netpoll.go:234 | |
# 0x4dced1 internal/poll.(*pollDesc).wait+0x31 /snap/go/current/src/internal/poll/fd_poll_runtime.go:84 | |
# 0x4e022b internal/poll.(*pollDesc).waitRead+0x22b /snap/go/current/src/internal/poll/fd_poll_runtime.go:89 | |
# 0x4e0218 internal/poll.(*FD).Accept+0x218 /snap/go/current/src/internal/poll/fd_unix.go:402 | |
# 0x52f474 net.(*netFD).accept+0x34 /snap/go/current/src/net/fd_unix.go:173 | |
# 0x5473a7 net.(*TCPListener).accept+0x27 /snap/go/current/src/net/tcpsock_posix.go:140 | |
# 0x54657c net.(*TCPListener).Accept+0x3c /snap/go/current/src/net/tcpsock.go:262 | |
# 0x835141 google.golang.org/grpc.(*Server).Serve+0x361 /home/alexvanin/go/pkg/mod/google.golang.org/grpc@v1.41.0/server.go:779 | |
# 0x86989c main.main+0xdc /home/alexvanin/Project/NeoFS/neofs-node/cmd/example/server/main.go:52 | |
# 0x439586 runtime.main+0x226 /snap/go/current/src/runtime/proc.go:255 | |
1 @ 0x439956 0x4494d2 0x7b305b 0x7b3745 0x7c9666 0x4693c1 | |
# 0x7b305a google.golang.org/grpc/internal/transport.(*controlBuffer).get+0x11a /home/alexvanin/go/pkg/mod/google.golang.org/grpc@v1.41.0/internal/transport/controlbuf.go:406 | |
# 0x7b3744 google.golang.org/grpc/internal/transport.(*loopyWriter).run+0x84 /home/alexvanin/go/pkg/mod/google.golang.org/grpc@v1.41.0/internal/transport/controlbuf.go:533 | |
# 0x7c9665 google.golang.org/grpc/internal/transport.NewServerTransport.func2+0xc5 /home/alexvanin/go/pkg/mod/google.golang.org/grpc@v1.41.0/internal/transport/http2_server.go:321 | |
1 @ 0x439956 0x4494d2 0x7b5e54 0x7cf45b 0x846d8c 0x86284b 0x869a76 0x8627d0 0x83b47a 0x83c965 0x836678 0x4693c1 | |
# 0x7b5e53 google.golang.org/grpc/internal/transport.(*writeQuota).get+0x73 /home/alexvanin/go/pkg/mod/google.golang.org/grpc@v1.41.0/internal/transport/flowcontrol.go:59 | |
# 0x7cf45a google.golang.org/grpc/internal/transport.(*http2Server).Write+0x23a /home/alexvanin/go/pkg/mod/google.golang.org/grpc@v1.41.0/internal/transport/http2_server.go:1037 | |
# 0x846d8b google.golang.org/grpc.(*serverStream).SendMsg+0x1cb /home/alexvanin/go/pkg/mod/google.golang.org/grpc@v1.41.0/stream.go:1510 | |
# 0x86284a github.com/nspcc-dev/neofs-api-go/v2/object/grpc.(*objectServiceGetServer).Send+0x2a /home/alexvanin/go/pkg/mod/github.com/nspcc-dev/neofs-api-go/v2@v2.12.1/object/grpc/service_grpc.pb.go:527 | |
# 0x869a75 main.objectService.Get+0x1b5 /home/alexvanin/Project/NeoFS/neofs-node/cmd/example/server/main.go:68 | |
# 0x8627cf github.com/nspcc-dev/neofs-api-go/v2/object/grpc._ObjectService_Get_Handler+0xcf /home/alexvanin/go/pkg/mod/github.com/nspcc-dev/neofs-api-go/v2@v2.12.1/object/grpc/service_grpc.pb.go:514 | |
# 0x83b479 google.golang.org/grpc.(*Server).processStreamingRPC+0xeb9 /home/alexvanin/go/pkg/mod/google.golang.org/grpc@v1.41.0/server.go:1532 | |
# 0x83c964 google.golang.org/grpc.(*Server).handleStream+0x9e4 /home/alexvanin/go/pkg/mod/google.golang.org/grpc@v1.41.0/server.go:1612 | |
# 0x836677 google.golang.org/grpc.(*Server).serveStreams.func1.2+0x97 /home/alexvanin/go/pkg/mod/google.golang.org/grpc@v1.41.0/server.go:923 | |
1 @ 0x439956 0x4494d2 0x7cf7a5 0x4693c1 | |
# 0x7cf7a4 google.golang.org/grpc/internal/transport.(*http2Server).keepalive+0x244 /home/alexvanin/go/pkg/mod/google.golang.org/grpc@v1.41.0/internal/transport/http2_server.go:1078 | |
1 @ 0x463a65 0x6b8575 0x6b838d 0x6b550b 0x6c411a 0x6c4cce 0x66568f 0x666f89 0x668bfb 0x664768 0x4693c1 | |
# 0x463a64 runtime/pprof.runtime_goroutineProfileWithLabels+0x24 /snap/go/current/src/runtime/mprof.go:746 | |
# 0x6b8574 runtime/pprof.writeRuntimeProfile+0xb4 /snap/go/current/src/runtime/pprof/pprof.go:724 | |
# 0x6b838c runtime/pprof.writeGoroutine+0x4c /snap/go/current/src/runtime/pprof/pprof.go:684 | |
# 0x6b550a runtime/pprof.(*Profile).WriteTo+0x14a /snap/go/current/src/runtime/pprof/pprof.go:331 | |
# 0x6c4119 net/http/pprof.handler.ServeHTTP+0x499 /snap/go/current/src/net/http/pprof/pprof.go:253 | |
# 0x6c4ccd net/http/pprof.Index+0x12d /snap/go/current/src/net/http/pprof/pprof.go:371 | |
# 0x66568e net/http.HandlerFunc.ServeHTTP+0x2e /snap/go/current/src/net/http/server.go:2047 | |
# 0x666f88 net/http.(*ServeMux).ServeHTTP+0x148 /snap/go/current/src/net/http/server.go:2425 | |
# 0x668bfa net/http.serverHandler.ServeHTTP+0x43a /snap/go/current/src/net/http/server.go:2879 | |
# 0x664767 net/http.(*conn).serve+0xb07 /snap/go/current/src/net/http/server.go:1930 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package main | |
import ( | |
"context" | |
"fmt" | |
"log" | |
"math/rand" | |
"net" | |
"net/http" | |
_ "net/http/pprof" | |
object "github.com/nspcc-dev/neofs-api-go/v2/object/grpc" | |
"google.golang.org/grpc" | |
) | |
type objectService struct{} | |
func die(err error) { | |
if err != nil { | |
log.Fatal(err) | |
} | |
} | |
func main() { | |
go func() { | |
log.Println(http.ListenAndServe("localhost:6060", nil)) | |
}() | |
lis, err := net.Listen("tcp", "127.0.0.1:33322") | |
die(err) | |
srv := grpc.NewServer() | |
object.RegisterObjectServiceServer(srv, objectService{}) | |
srv.Serve(lis) | |
} | |
func (o objectService) Get(request *object.GetRequest, server object.ObjectService_GetServer) error { | |
buf := make([]byte, 1024*1024*10) // 10MiB | |
for i := 0; i < 1000; i++ { | |
fmt.Println("sending msg", i) | |
rand.Read(buf) | |
chunk := new(object.GetResponse_Body_Chunk) | |
chunk.SetChunk(buf) | |
body := new(object.GetResponse_Body) | |
body.SetChunk(chunk) | |
resp := new(object.GetResponse) | |
resp.SetBody(body) | |
err := server.Send(resp) | |
die(err) | |
} | |
fmt.Println("done") | |
return nil | |
} | |
func (o objectService) Put(server object.ObjectService_PutServer) error { | |
panic("implement me") | |
} | |
func (o objectService) Delete(ctx context.Context, request *object.DeleteRequest) (*object.DeleteResponse, error) { | |
panic("implement me") | |
} | |
func (o objectService) Head(ctx context.Context, request *object.HeadRequest) (*object.HeadResponse, error) { | |
panic("implement me") | |
} | |
func (o objectService) Search(request *object.SearchRequest, server object.ObjectService_SearchServer) error { | |
panic("implement me") | |
} | |
func (o objectService) GetRange(request *object.GetRangeRequest, server object.ObjectService_GetRangeServer) error { | |
panic("implement me") | |
} | |
func (o objectService) GetRangeHash(ctx context.Context, request *object.GetRangeHashRequest) (*object.GetRangeHashResponse, error) { | |
panic("implement me") | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment