Golang: [PANIC RECOVER] runtime error: invalid memory address or nil pointer dereference

  Kiến thức lập trình

Was trying to do a GET route for testing
But not sure what makes it error.

{"time":"2024-05-01T11:23:54.461154-07:00","level":"-","prefix":"echo","file":"recover.go","line":"119","message":"[PANIC RECOVER] runtime error: invalid memory address or nil pointer dereference goroutine 9 [running]:ngithub.com/labstack/echo/v4/middleware.Recover.RecoverWithConfig.func1.1.1()nt/Users/louischuang/go/pkg/mod/github.com/labstack/echo/[email protected]/middleware/recover.go:99 +0x13cnpanic({0x1013dc0a0?, 0x10183bb00?})nt/usr/local/go/src/runtime/panic.go:770 +0x124nmodel-game-api-server/internal/middleware.GameManagerMiddleWare.func1({0x1014a9e70, 0x140002a92c0})nt/Users/louischuang/Documents/code/golang/model-game-api-server/internal/middleware/game_manager.go:31 +0x194nmodel-game-api-server/internal/middleware.AuthMiddleware.func1.1({0x1014a9e70, 0x140002a92c0})nt/Users/louischuang/Documents/code/golang/model-game-api-server/internal/middleware/auth.go:42 +0xecnmodel-game-api-server/internal/middleware.Logger.func1({0x1014a9e70, 0x140002a92c0})nt/Users/louischuang/Documents/code/golang/model-game-api-server/internal/middleware/log.go:44 +0x134nmodel-game-api-server/internal/middleware.TelemetryMMiddleWare.func1({0x1014a9e70, 0x140002a92c0})nt/Users/louischuang/Documents/code/golang/model-game-api-server/internal/middleware/telemetry.go:27 +0x144ngithub.com/labstack/echo/v4/middleware.CORSWithConfig.func1.1({0x1014a9e70, 0x140002a92c0})nt/Users/louischuang/go/pkg/mod/github.com/labstack/echo/[email protected]/middleware/cors.go:203 +0x3c0ngithub.com/labstack/echo/v4/middleware.Recover.RecoverWithConfig.func1.1({0x1014a9e70, 0x140002a92c0})nt/Users/louischuang/go/pkg/mod/github.com/labstack/echo/[email protected]/middleware/recover.go:130 +0xe8ngithub.com/labstack/echo/v4.(*Echo).ServeHTTP(0x14000032248, {0x1014a0348, 0x140005b68c0}, 0x140000006c0)nt/Users/louischuang/go/pkg/mod/github.com/labstack/echo/[email protected]/echo.go:674 +0x304nnet/http.serverHandler.ServeHTTP({0x140002a6f00?}, {0x1014a0348?, 0x140005b68c0?}, 0x6?)nt/usr/local/go/src/net/http/server.go:3137 +0xbcnnet/http.(*conn).serve(0x140002227e0, {0x1014a0f80, 0x140002a6b40})nt/usr/local/go/src/net/http/server.go:2039 +0x508ncreated by net/http.(*Server).Serve in goroutine 22nt/usr/local/go/src/net/http/server.go:3285 +0x3f0nngoroutine 1 [chan receive]:nmodel-game-api-server/internal/server.(*App).Start(0x1400018f800)nt/Users/louischuang/Documents/code/golang/model-game-api-server/internal/server/server.go:68 +0x1b8nmain.__main()nt/Users/louischuang/Documents/code/golang/model-game-api-server/main.go:54 +0x310nmain.runMain.func1()nt/Users/louischuang/Documents/code/golang/model-game-api-server/main.go:34 +0x1cnsync.(*Once).doSlow(0x1400059bf38?, 0x100d91480?)nt/usr/local/go/src/sync/once.go:74 +0x100nsync.(*Once).Do(...)nt/usr/local/go/src/sync/once.go:65nmain.runMain()nt/Users/louischuang/Documents/code/golang/model-game-api-server/main.go:33 +0x40nmain.main()nt/Users/louischuang/Documents/code/golang/model-game-api-server/main.go:27 +0x1cnngoroutine 7 [select]:ndatabase/sql.(*DB).connectionOpener(0x140005c55f0, {0x1014a0fb8, 0x14000501c20})nt/usr/local/go/src/database/sql/sql.go:1246 +0x80ncreated by database/sql.OpenDB in goroutine 1nt/usr/local/go/src/database/sql/sql.go:824 +0x140nngoroutine 8 [select]:ngithub.com/go-sql-driver/mysql.(*mysqlConn).startWatcher.func1()nt/Users/louischuang/go/pkg/mod/github.com/go-sql-driver/[email protected]/connection.go:628 +0x7cncreated by github.com/go-sql-driver/mysql.(*mysqlConn).startWatcher in goroutine 1nt/Users/louischuang/go/pkg/mod/github.com/go-sql-driver/[email protected]/connection.go:625 +0xf8nngoroutine 22 [IO wait]:ninternal/poll.runtime_pollWait(0x1086e86c8, 0x72)nt/usr/local/go/src/runtime/netpoll.go:345 +0xa0ninternal/poll.(*pollDesc).wait(0x1400069b580?, 0x8?, 0x0)nt/usr/local/go/src/internal/poll/fd_poll_runtime.go:84 +0x28ninternal/poll.(*pollDesc).waitRead(...)nt/usr/local/go/src/internal/poll/fd_poll_runtime.go:89ninternal/poll.(*FD).Accept(0x1400069b580)nt/usr/local/go/src/internal/poll/fd_unix.go:611 +0x250nnet.(*netFD).accept(0x1400069b580)nt/usr/local/go/src/net/fd_unix.go:172 +0x28nnet.(*TCPListener).accept(0x140006a3360)nt/usr/local/go/src/net/tcpsock_posix.go:159 +0x28nnet.(*TCPListener).Accept(0x140006a3360)nt/usr/local/go/src/net/tcpsock.go:327 +0x2cnnet/http.(*Server).Serve(0x140005d83c0, {0x1014a0n"}
2024-05-01 11:23:54.463 ERROR   eutil/error.go:31   http error handler  {"error": "runtime error: invalid memory address or nil pointer dereference"}

And here’s the route setting

func favorite() module {
    return func(eng *echo.Echo) {
        group := eng.Group("/favorite")
        {
            group.GET("/hello1", hello)
        }
    }
}

// Handler
func hello(c echo.Context) error {
    return c.String(http.StatusOK, "Hello, World!")
}

Shown
{
“reqId”: “”,
“code”: 500,
“message”: “runtime error: invalid memory address or nil pointer dereference”,
“result”: null
}
when visiting
http://127.0.0.1:3002/favorite/hello1

I’ve checked the access and make sure this route no need for auth.

LEAVE A COMMENT