从控制台我不能做任何涉及数据库的操作。我得到一个分割错误。.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 c
或bundle exec rails c
启动rails控制台具有相同的效果(segfault),具有相同的堆栈跟踪。
Gemfile.lock有pg (1.1.4)
我重新捆绑,指定一个捆绑路径。堆栈跟踪现在有了这个bundle路径,所以我猜在默认情况下,Replayer使用的是rbenv路径。
2条答案
按热度按时间ma8fv8wu1#
根据https://github.com/ged/ruby-pg/issues/291,在问题的评论部分中链接,将
gssencmode: disable
添加到database.yml
可以停止分段错误。我只在development
和test
环境选项下添加了它,因为我不在其他环境中使用OS X:gssencmode是在PostgreSQL 12中添加的:
Gssencmode
此选项确定是否与服务器协商安全的GSS TCP/IP连接,或以何种优先级进行协商。
在此跟踪底层错误https://www.postgresql.org/message-id/93f7379b-2e2f-db0c-980e-07ebd5de92ff%40crunchydata.com
whhtz7ly2#
帮助我