Ruby 2.6.5 和 PostgreSQL pg-gem 分段错误

2024-02-13

从控制台我无法执行任何涉及数据库的操作。我遇到分段错误。

.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/pg-1.1.4/lib/pg.rb:56: [BUG] Segmentation fault at 0x0000000000000110 ruby 2.6.5p114 (2019-10-01 revision 67812) [x86_64-darwin18]

它实际上是可能需要数据库的任何操作,包括 MyModel.new。

-- Control frame information ----------------------------------------------- c:0071 p:---- s:0406 e:000405 CFUNC :initialize c:0070 p:---- s:0403 e:000402 CFUNC :new c:0069 p:0016 s:0398 e:000397 METHOD /Users/xxx/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/pg-1.1.4/lib/pg.rb:56 c:0068 p:0107 s:0393 e:000392 METHOD /Users/xxx/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.1/lib/active_record/connection_adapters/postgres

我已经卸载并重新安装了 pg gem。并重建数据库。并重新启动 PostgreSQL。

我看到其他人报告在 Puma 下运行时出现问题,但我的配置在 Puma 下工作,在控制台下失败!

为了清楚起见编辑:

是的,使用捆绑器。

启动 Rails 控制台rails c or bundle exec rails c具有相同的效果(段错误)和相同的堆栈跟踪。

Gemfile.lock 有pg (1.1.4)

我重新捆绑,指定捆绑路径。堆栈跟踪现在具有该捆绑路径,因此我猜默认捆绑程序正在使用 rbenv 路径。


As per https://github.com/ged/ruby-pg/issues/291 https://github.com/ged/ruby-pg/issues/291,在问题的评论部分链接,添加gssencmode: disable to database.yml停止分段错误。我已将其添加到下面development and test仅环境选项,因为我不在其他环境中使用 OS X:

default: &default
  adapter: postgresql

development:
  <<: *default
  gssencmode: disable
test:
  <<: *default
  gssencmode: disable

Postgresql 12 中添加了 gssencmode:

gssenc模式

此选项确定是否或以什么优先级与服务器协商安全 GSS TCP/IP 连接。

此处跟踪潜在的错误https://www.postgresql.org/message-id/93f7379b-2e2f-db0c-980e-07ebd5de92ff%40crunchydata.com https://www.postgresql.org/message-id/93f7379b-2e2f-db0c-980e-07ebd5de92ff%40crunchydata.com

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ruby 2.6.5 和 PostgreSQL pg-gem 分段错误 的相关文章

随机推荐