diff --git a/cmd/db-server/main.go b/cmd/db-server/main.go
index 83986af6cfa7d8e4707676fd1ddc9246b5322284..0c25e9370053427a3ce1f50bd3c01a83dfd0d3cb 100644
--- a/cmd/db-server/main.go
+++ b/cmd/db-server/main.go
@@ -70,6 +70,8 @@ const (
WaitCubeStartExit = 11
StartMOExit = 12
CreateTpeExit = 13
+ RunRPCExit = 14
+ ShutdownExit = 15
)
var (
@@ -97,8 +99,8 @@ func runMOServer() error {
return mo.Start()
}
-func serverShutdown(isgraceful bool) {
- mo.Stop()
+func serverShutdown(isgraceful bool) error {
+ return mo.Stop()
}
func waitSignal() {
@@ -320,7 +322,12 @@ func main() {
os.Exit(WaitCubeStartExit)
}
- go srv.Run()
+ go func() {
+ if err := srv.Run(); err != nil {
+ logutil.Infof("Start rpcserver failed, %v", err)
+ os.Exit(RunRPCExit)
+ }
+ }()
//test storage aoe_storage
config.StorageEngine = eng
@@ -341,7 +348,10 @@ func main() {
waitSignal()
//srv.Stop()
- serverShutdown(true)
+ if err := serverShutdown(true); err != nil {
+ logutil.Infof("Server shutdown failed, %v", err)
+ os.Exit(ShutdownExit)
+ }
cleanup()
}
diff --git a/pkg/container/batch/batch.go b/pkg/container/batch/batch.go
index 4e5df73a8dc6d5e9e84de1dc6704daeb905378bf..ed573168bb5dd93e3d55b36bad4c6a3a7614f7aa 100644
--- a/pkg/container/batch/batch.go
+++ b/pkg/container/batch/batch.go
@@ -80,7 +80,9 @@ func Shuffle(bat *Batch, m *mheap.Mheap) error {
}
}
for _, r := range bat.Rs {
- r.Shuffle(bat.Sels, m)
+ if err := r.Shuffle(bat.Sels, m); err != nil {
+ return err
+ }
}
data, err := mheap.Alloc(m, int64(len(bat.Zs))*8)
if err != nil {
diff --git a/pkg/frontend/mysql_cmd_executor.go b/pkg/frontend/mysql_cmd_executor.go
index 4752ccebc6fc97305cf1fb82da47fb5ff3f2a269..6a521147c2d76c722d36a990bc12954c74b57117 100644
--- a/pkg/frontend/mysql_cmd_executor.go
+++ b/pkg/frontend/mysql_cmd_executor.go
@@ -235,7 +235,9 @@ func getDataFromPipeline(obj interface{}, bat *batch.Batch) error {
n := vector.Length(bat.Vecs[0])
if enableProfile {
- pprof.StartCPUProfile(cpuf)
+ if err := pprof.StartCPUProfile(cpuf); err != nil {
+ return err
+ }
}
for j := 0; j < n; j++ { //row index
if oq.ep.Outfile {
diff --git a/pkg/rpcserver/codec.go b/pkg/rpcserver/codec.go
index 48ca77a3ff0314b4f36676208f3fe9574aece44c..14ed44bdce716c5623870db3f2e83327b9feaabe 100644
--- a/pkg/rpcserver/codec.go
+++ b/pkg/rpcserver/codec.go
@@ -53,6 +53,8 @@ func (c *rpcCodec) Encode(data interface{}, out *buf.ByteBuf) error {
index := out.GetWriteIndex()
out.Expansion(size)
protoc.MustMarshalTo(v, out.RawBuf()[index:index+size])
- out.SetWriterIndex(index + size)
+ if err := out.SetWriterIndex(index + size); err != nil {
+ return err
+ }
return nil
}
diff --git a/pkg/rpcserver/server.go b/pkg/rpcserver/server.go
index afb0dc6d05f79917d1c0982bdbc180b885a651c4..290fdc813219640917545ff123ac7abc0d3ff8c6 100644
--- a/pkg/rpcserver/server.go
+++ b/pkg/rpcserver/server.go
@@ -16,6 +16,7 @@ package rpcserver
import (
"fmt"
+
"github.com/matrixorigin/matrixone/pkg/rpcserver/message"
"go.uber.org/zap"
diff --git a/pkg/sql/colexec/connector/connector.go b/pkg/sql/colexec/connector/connector.go
index c90c731e78836d3911cea6a89cae0ddc8542dc21..2b84eb68f87a209e03f166d84a50592e417a8072 100644
--- a/pkg/sql/colexec/connector/connector.go
+++ b/pkg/sql/colexec/connector/connector.go
@@ -70,7 +70,9 @@ func Call(proc *process.Process, arg interface{}) (bool, error) {
process.FreeRegisters(proc)
return true, nil
case reg.Ch <- bat:
- n.Mmu.Alloc(size)
+ if err := n.Mmu.Alloc(size); err != nil {
+ return false, err
+ }
proc.Mp.Gm.Free(size)
return false, nil
}
diff --git a/pkg/sql/colexec/order/order.go b/pkg/sql/colexec/order/order.go
index 006c44bdd29861130d86d1847a29a4c8e1d16750..2d519ae15691d9ac383abf9f41a0578a33d7863a 100644
--- a/pkg/sql/colexec/order/order.go
+++ b/pkg/sql/colexec/order/order.go
@@ -17,6 +17,7 @@ package order
import (
"bytes"
"fmt"
+
"github.com/matrixorigin/matrixone/pkg/container/batch"
"github.com/matrixorigin/matrixone/pkg/encoding"
"github.com/matrixorigin/matrixone/pkg/partition"
@@ -79,7 +80,9 @@ func (ctr *Container) process(bat *batch.Batch, proc *process.Process) (bool, er
if len(ctr.attrs) == 1 {
bat.Sels = sels
bat.SelsData = data
- batch.Shuffle(bat, proc.Mp)
+ if err := batch.Shuffle(bat, proc.Mp); err != nil {
+ panic(err)
+ }
return false, nil
}
ps := make([]int64, 0, 16)
@@ -99,6 +102,8 @@ func (ctr *Container) process(bat *batch.Batch, proc *process.Process) (bool, er
}
bat.Sels = sels
bat.SelsData = data
- batch.Shuffle(bat, proc.Mp)
+ if err := batch.Shuffle(bat, proc.Mp); err != nil {
+ panic(err)
+ }
return false, nil
}
diff --git a/pkg/sql/colexec2/order/order.go b/pkg/sql/colexec2/order/order.go
index ccd613517a74d260ccc755c562fcedb0f1a9dbb6..80f916d842d57df8aa42e13366f2b144c8ea9d07 100644
--- a/pkg/sql/colexec2/order/order.go
+++ b/pkg/sql/colexec2/order/order.go
@@ -68,7 +68,9 @@ func (ctr *Container) process(bat *batch.Batch, proc *process.Process) (bool, er
}
sort.Sort(ctr.ds[0], sels, ovec)
if len(ctr.poses) == 1 {
- batch.Shuffle(bat, sels, proc.Mp)
+ if err := batch.Shuffle(bat, sels, proc.Mp); err != nil {
+ panic(err)
+ }
return false, nil
}
ps := make([]int64, 0, 16)
@@ -86,6 +88,8 @@ func (ctr *Container) process(bat *batch.Batch, proc *process.Process) (bool, er
}
ovec = vec
}
- batch.Shuffle(bat, sels, proc.Mp)
+ if err := batch.Shuffle(bat, sels, proc.Mp); err != nil {
+ panic(err)
+ }
return false, nil
}