我一直在使用 LightBDD 在 .NET 5 应用程序中运行组件测试。在每个测试中,我们都会启动一个通过 grpc 连接到的 ASP .NET core“应用程序”实例。在每次测试结束时,我们关闭“应用程序”。
这个“应用程序”启动与 Postgres 实例的连接(在测试中,它在 Docker 本地持续运行,并且在测试之间不会重新启动),然后在关闭时将其关闭。
在连续运行 30 次测试中,我两次收到以下错误(中间有大约 5 次成功的测试):
Postgres异常:42501:必须是进程被终止的角色的成员或pg_signal_backend的成员
从那以后我就无法重现它了。有谁知道可能导致此间歇性问题的原因是什么?
最佳答案
如果您尝试取消不同数据库 session 的事务或终止此类 session ,但该其他 session 与不同的数据库用户相关,则会出现该错误。
错误消息会告诉您需要什么权限才能执行此操作:您必须是同一用户(或其成员),或者是 pg_signal_backend
的成员或 super 用户。
关于asp.net - 可能会导致 Postgres 异常 : 42501: must be a member of the role whose process is being terminated or member of pg_signal_backend?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71269024/