spacewander commented on pull request #42:
URL:
https://github.com/apache/apisix-go-plugin-runner/pull/42#issuecomment-938495725
Interesting. We don't call `util.PutBuilder` in server/server.go:122 after
applying this change.
Here is the old stack:
```
2021/10/8 上午11:03:14
github.com/apache/apisix-go-plugin-runner/internal/util.PutBuilder
2021/10/8 上午11:03:14
/var/lib/jenkins/workspace/build-dev-apple-fuller-apisix-go-plugin-runner/apisix-go-plugin-runner/internal/util/pool.go:37
2021/10/8 上午11:03:14
github.com/apache/apisix-go-plugin-runner/internal/server.handleConn
2021/10/8 上午11:03:14
/var/lib/jenkins/workspace/build-dev-apple-fuller-apisix-go-plugin-runner/apisix-go-plugin-runner/internal/server/server.go:122
```
Here is the new stack:
```
github.com/apache/apisix-go-plugin-runner/internal/util.PutBuilder
/var/lib/jenkins/workspace/build-dev-apple-fuller-apisix-go-plugin-runner/apisix-go-plugin-runner/internal/util/pool.go:37
github.com/apache/apisix-go-plugin-runner/internal/server.handleConn
/var/lib/jenkins/workspace/build-dev-apple-fuller-apisix-go-plugin-runner/apisix-go-plugin-runner/internal/server/server.go:122
```
Could you check if the code has the given patch? I already removed the
`util.PutBuilder` in line 122.
```
diff --git a/internal/server/server.go b/internal/server/server.go
index 48d6da0..6193a11 100644
--- a/internal/server/server.go
+++ b/internal/server/server.go
@@ -70,12 +70,22 @@ func recoverPanic() {
}
}
-func dispatchRPC(ty byte, in []byte, conn net.Conn) (*flatbuffers.Builder,
error) {
+func dispatchRPC(ty byte, in []byte, conn net.Conn) *flatbuffers.Builder {
+ var err error
+ var bd *flatbuffers.Builder
hl, ok := typeHandlerMap[ty]
if !ok {
- return nil, UnknownType{ty}
+ err = UnknownType{ty}
+ } else {
+ bd, err = hl(in, conn)
+ }
+
+ if err != nil {
+ bd = generateErrorReport(err)
+ } else {
+ bd = checkIfDataTooLarge(bd)
}
- return hl(in, conn)
+ return bd
}
func checkIfDataTooLarge(bd *flatbuffers.Builder) *flatbuffers.Builder {
@@ -116,15 +126,7 @@ func handleConn(c net.Conn) {
break
}
- bd, err := dispatchRPC(ty, buf, c)
-
- if err != nil {
- util.PutBuilder(bd)
- bd = generateErrorReport(err)
- } else {
- bd = checkIfDataTooLarge(bd)
- }
-
+ bd := dispatchRPC(ty, buf, c)
out := bd.FinishedBytes()
size := len(out)
binary.BigEndian.PutUint32(header, uint32(size))
```
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]