flipped-aurora / gin-vue-admin

🚀Vite+Vue3+Gin拥有AI辅助的基础开发平台,支持TS和JS混用。它集成了JWT鉴权、权限管理、动态路由、显隐可控组件、分页封装、多点登录拦截、资源权限、上传下载、代码生成器、表单生成器和可配置的导入导出等开发必备功能。
http://demo.gin-vue-admin.com/
Apache License 2.0
21.48k stars 6.35k forks source link

[Bug]: casbin panic #1440

Closed richardZhengGR closed 1 year ago

richardZhengGR commented 1 year ago

gin-vue-admin 版本

2.5.5

Node 版本

v8.1.2

Golang 版本

go 1.18

是否依旧存在

可以

bug描述

数据库 阿里云polardb-x2.0 数据库引擎为 innoDB。 1、首先点击角色管理表。 2、弹出500报错。 3、后端报错内容为: 2023/05/23 17:53:32 [Recovery] 2023/05/23 - 17:53:32 panic recovered: runtime error: invalid memory address or nil pointer dereference /usr/local/go/src/runtime/panic.go:220 (0xac9f95) panicmem: panic(memoryError) /usr/local/go/src/runtime/signal_unix.go:818 (0xac9f65) sigpanic: panicmem() /var/www/go/src/gva_kkk_backend/service/system/sys_casbin.go:73 (0x16d9296) (*CasbinService).GetPolicyPathByAuthorityId: list := e.GetFilteredPolicy(0, authorityId) /var/www/go/src/gva_kkk_backend/api/v1/system/sys_casbin.go:66 (0x1b68a58) (*CasbinApi).GetPolicyPathByAuthorityId: paths := casbinService.GetPolicyPathByAuthorityId(casbin.AuthorityId) /var/www/go/pkg/mod/github.com/gin-gonic/gin@v1.7.0/context.go:165 (0x1a73aaf) (*Context).Next: c.handlers[c.index](c) /var/www/go/src/gva_kkk_backend/middleware/casbin_rbac.go:33 (0x1a73a9b) CasbinHandler.func1: c.Next() /var/www/go/pkg/mod/github.com/gin-gonic/gin@v1.7.0/context.go:165 (0x1a74302) (*Context).Next: c.handlers[c.index](c) /var/www/go/src/gva_kkk_backend/middleware/jwt.go:75 (0x1a7415d) JWTAuth.func1: c.Next() /var/www/go/pkg/mod/github.com/gin-gonic/gin@v1.7.0/context.go:165 (0x163eca1) (*Context).Next: c.handlers[c.index](c) /var/www/go/pkg/mod/github.com/gin-gonic/gin@v1.7.0/recovery.go:99 (0x163ec8c) CustomRecoveryWithWriter.func1: c.Next() /var/www/go/pkg/mod/github.com/gin-gonic/gin@v1.7.0/context.go:165 (0x163ddc6) (*Context).Next: c.handlers[c.index](c) /var/www/go/pkg/mod/github.com/gin-gonic/gin@v1.7.0/logger.go:241 (0x163dda9) LoggerWithConfig.func1: c.Next() /var/www/go/pkg/mod/github.com/gin-gonic/gin@v1.7.0/context.go:165 (0x163cc9d) (*Context).Next: c.handlers[c.index](c) /var/www/go/pkg/mod/github.com/gin-gonic/gin@v1.7.0/gin.go:489 (0x163c925) (*Engine).handleHTTPRequest: c.Next() /var/www/go/pkg/mod/github.com/gin-gonic/gin@v1.7.0/gin.go:445 (0x163c484) (*Engine).ServeHTTP: engine.handleHTTPRequest(c) /usr/local/go/src/net/http/server.go:2916 (0xdc891a) serverHandler.ServeHTTP: handler.ServeHTTP(rw, re

修改建议

无好建议。是否是数据库兼容问题?测试过阿里云RDS没有问题。

richardZhengGR commented 1 year ago

找到原因了,是casbin adapter 的问题,每次检查数据库的索引并创建。由于用的分布式数据库,索引冲突。 问题2