Sal*_*ati 6 ruby testing ruby-on-rails segmentation-fault apple-m1
我正在 MacBook M1 Big Sur 操作系统上的 Rails 应用程序中运行系统测试,它给了我一个分段错误错误。
\n我正在使用通过安装的 Ruby 2.7.1rbenv
\xe2\x9e\x9c which ruby\n/Users/sc/.rbenv/shims/ruby\n\xe2\x9e\x9c ruby -v\nruby 2.7.1p83 (2020-03-31 revision a0c7c23c9c) [-darwin20]\nRun Code Online (Sandbox Code Playgroud)\n现在,每当我运行Rails系统测试时就会出现问题。\n我们的系统测试配置了 headless_chrome Capybara 驱动程序,该驱动程序可能(不确定)与分段错误错误有关。
\n这是我运行测试时得到的结果:
\n [BUG] Segmentation fault at 0x000000001b543e20\nruby 2.7.1p83 (2020-03-31 revision a0c7c23c9c) [-darwin20]\n\n-- Crash Report log information --------------------------------------------\n See Crash Report log file under the one of following: \n * ~/Library/Logs/DiagnosticReports \n * /Library/Logs/DiagnosticReports \n for more details. \nDon't forget to include the above Crash Report log file in bug reports. \n\n-- Control frame information -----------------------------------------------\nc:0001 p:---- s:0003 e:000002 (none) [FINISH]\n\n\n-- Other runtime information -----------------------------------------------\n\n* Loaded script: rails_test\n\n* Loaded features:\n\n 0 enumerator.so\n 1 thread.rb\n 2 rational.so\n 3 complex.so\n 4 ruby2_keywords.rb\n 5 /Users/sc/.rbenv/versions/2.7.1/lib/ruby/2.7.0/-darwin20/enc/encdb.bundle\n 6 /Users/sc/.rbenv/versions/2.7.1/lib/ruby/2.7.0/-darwin20/enc/trans/transdb.bundle\n 7 /Users/sc/.rbenv/versions/2.7.1/lib/ruby/2.7.0/-darwin20/rbconfig.rb\n 8 /Users/sc/.rbenv/versions/2.7.1/lib/ruby/2.7.0/rubygems/compatibility.rb\n 9 /Users/sc/.rbenv/versions/2.7.1/lib/ruby/2.7.0/rubygems/defaults.rb\n 10 /Users/sc/.rbenv/versions/2.7.1/lib/ruby/2.7.0/rubygems/deprecate.rb\n And many more lines...\nRun Code Online (Sandbox Code Playgroud)\n关于导致此错误的原因有什么想法吗?
\nTim*_*lev 10
发生这种情况是由于Apple M1 上的 ruby 2.7.1 中发生的错误Enumerator#next。Capybara 在Capybara::Result类中使用它。
确保这是您的情况的 simpleset irb 片段是[1,2,3].to_enum.next:
irb(main):003:0> [1,2,3].to_enum.next
[BUG] Segmentation fault at 0x0000000004809020
ruby 2.7.1p83 (2020-03-31 revision a0c7c23c9c) [-darwin20]
Run Code Online (Sandbox Code Playgroud)
最好的解决方案是将ruby版本升级到2.7.3,它没有这个bug。
(如果你需要快速运行测试并稍后解决核心问题,你可以在本地编辑水豚的result.rb,作为一个愚蠢的临时解决方法。但我强烈建议尽快升级ruby版本)
UPD:我已经在 ruby 错误跟踪器中发布了错误报告。
| 归档时间: |
|
| 查看次数: |
2581 次 |
| 最近记录: |