随机EOFError - OSX Yosemite上的黄瓜,水豚和webkit / chrome / firefox

时间:2015-01-20 21:20:26

标签: ruby selenium cucumber capybara capybara-webkit

此时,在所有其他途径都失败之后,我已经在绝望中尝试过很多很多事情。

到目前为止:

  • 重新安装OSX
  • 重新安装Brew
  • 重新安装RVM
  • 删除/重新生成网络plist文件

我对上面的内容进行了全面安装,但它们似乎没有影响随机EOFError。我有80%的时间得到错误,有20%的时间得到错误。我旁边的另一位开发人员拥有相同的OSX Yosemite版本,相同的设置,并且从未遇到过EOFError(因此我尝试了上述激烈的步骤来治愈环境)。

堆栈:

EOFError: end of file reached
/Users/kross/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/net/protocol.rb:153:in `read_nonblock'
/Users/kross/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/net/protocol.rb:153:in `rbuf_fill'
/Users/kross/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/net/protocol.rb:134:in `readuntil'
/Users/kross/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/net/protocol.rb:144:in `readline'
/Users/kross/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/net/http/response.rb:39:in `read_status_line'
/Users/kross/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/net/http/response.rb:28:in `read_new'
/Users/kross/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/net/http.rb:1408:in `block in transport_request'
/Users/kross/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/net/http.rb:1405:in `catch'
/Users/kross/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/net/http.rb:1405:in `transport_request'
/Users/kross/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/net/http.rb:1378:in `request'
/Users/kross/.rvm/gems/ruby-2.1.2@af_core/gems/webmock-1.19.0/lib/webmock/http_lib_adapters/net_http.rb:97:in `block in request'
/Users/kross/.rvm/gems/ruby-2.1.2@af_core/gems/webmock-1.19.0/lib/webmock/http_lib_adapters/net_http.rb:105:in `call'
/Users/kross/.rvm/gems/ruby-2.1.2@af_core/gems/webmock-1.19.0/lib/webmock/http_lib_adapters/net_http.rb:105:in `block in request'
/Users/kross/.rvm/gems/ruby-2.1.2@af_core/gems/webmock-1.19.0/lib/webmock/http_lib_adapters/net_http.rb:137:in `start_with_connect_without_finish'
/Users/kross/.rvm/gems/ruby-2.1.2@af_core/gems/webmock-1.19.0/lib/webmock/http_lib_adapters/net_http.rb:104:in `request'
/Users/kross/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/net/http.rb:1128:in `get'
/Users/kross/.rvm/gems/ruby-2.1.2@af_core/gems/capybara-2.4.3/lib/capybara/server.rb:56:in `block in responsive?'
/Users/kross/.rvm/gems/ruby-2.1.2@af_core/gems/webmock-1.19.0/lib/webmock/http_lib_adapters/net_http.rb:123:in `start_without_connect'
/Users/kross/.rvm/gems/ruby-2.1.2@af_core/gems/webmock-1.19.0/lib/webmock/http_lib_adapters/net_http.rb:150:in `start'
/Users/kross/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/net/http.rb:583:in `start'
/Users/kross/.rvm/gems/ruby-2.1.2@af_core/gems/capybara-2.4.3/lib/capybara/server.rb:56:in `responsive?'
/Users/kross/.rvm/gems/ruby-2.1.2@af_core/gems/capybara-2.4.3/lib/capybara/server.rb:66:in `boot'
/Users/kross/.rvm/gems/ruby-2.1.2@af_core/gems/capybara-2.4.3/lib/capybara/session.rb:66:in `initialize'
/Users/kross/.rvm/gems/ruby-2.1.2@af_core/gems/capybara-2.4.3/lib/capybara.rb:248:in `new'
/Users/kross/.rvm/gems/ruby-2.1.2@af_core/gems/capybara-2.4.3/lib/capybara.rb:248:in `current_session'
/Users/kross/.rvm/gems/ruby-2.1.2@af_core/gems/capybara-2.4.3/lib/capybara/dsl.rb:46:in `page'
/Users/kross/.rvm/gems/ruby-2.1.2@af_core/gems/capybara-2.4.3/lib/capybara/dsl.rb:51:in `block (2 levels) in <module:DSL>'

如果我使用:selenium(firefox / chrome)或:webkit(或:webkit_debug

,则无关紧要

鉴于相同的代码库适用于其他开发人员的机器(相同的OSX版本,相同的ruby版本,相同的购买日期,相同的升级路径),我不确定环境中的哪些因素影响了结果。堆栈的起始行是visit '/',它是visit的第一个scenario。即使visit示例中的后续Scenario Outline次尝试也会开始工作(通常在第3个示例中)。

:webkit下运行时,我会在控制台中看到这些:

1/20/15 3:49:57.000 PM kernel[0]: Google Chrome He (map: 0xffffff805f09b0f0) triggered DYLD shared region unnest for map: 0xffffff805f09b0f0, region 0x7fff93a00000->0x7fff93c00000. While not abnormal for debuggers, this increases system memory footprint until the target exits.
1/20/15 3:49:58.000 PM kernel[0]: Google Chrome He (map: 0xffffff805b3d90f0) triggered DYLD shared region unnest for map: 0xffffff805b3d90f0, region 0x7fff93a00000->0x7fff93c00000. While not abnormal for debuggers, this increases system memory footprint until the target exits.
1/20/15 3:49:58.000 PM kernel[0]: Data/Stack execution not permitted: Google Chrome He[pid 60983] at virtual address 0x105c4c000, protections were read-write
1/20/15 3:50:23.000 PM kernel[0]: Google Chrome He (map: 0xffffff80677c4d20) triggered DYLD shared region unnest for map: 0xffffff80677c4d20, region 0x7fff93a00000->0x7fff93c00000. While not abnormal for debuggers, this increases system memory footprint until the target exits.
1/20/15 3:50:26.000 PM kernel[0]: Google Chrome He (map: 0xffffff805b3d90f0) triggered DYLD shared region unnest for map: 0xffffff805b3d90f0, region 0x7fff93a00000->0x7fff93c00000. While not abnormal for debuggers, this increases system memory footprint until the target exits.
1/20/15 3:50:26.000 PM kernel[0]: Google Chrome He (map: 0xffffff805f09b0f0) triggered DYLD shared region unnest for map: 0xffffff805f09b0f0, region 0x7fff93a00000->0x7fff93c00000. While not abnormal for debuggers, this increases system memory footprint until the target exits.
1/20/15 3:50:26.000 PM kernel[0]: Data/Stack execution not permitted: Google Chrome He[pid 60987] at virtual address 0x109215000, protections were read-write
1/20/15 3:50:28.220 PM webkit_server[60988]: Error loading /Library/Internet Plug-Ins/QuickTime Plugin.plugin/Contents/MacOS/QuickTime Plugin:  dlopen(/Library/Internet Plug-Ins/QuickTime Plugin.plugin/Contents/MacOS/QuickTime Plugin, 265): no suitable image found.  Did find:
    /Library/Internet Plug-Ins/QuickTime Plugin.plugin/Contents/MacOS/QuickTime Plugin: mach-o, but wrong architecture
1/20/15 3:50:28.237 PM webkit_server[60988]: objc[60988]: Class MacCocoaSocketServerHelperRtc is implemented in both /Library/Internet Plug-Ins/o1dbrowserplugin.plugin/Contents/MacOS/o1dbrowserplugin and /Library/Internet Plug-Ins/googletalkbrowserplugin.plugin/Contents/MacOS/googletalkbrowserplugin. One of the two will be used. Which one is undefined.

注意:我试图清理插件目录,然后他们不断回来。我确实想要解决这个烦恼,但在这一点上,它只是那个而不是一个表演的终结者。

在使用Google Chrome He驱动程序时,我很惊讶地看到控制台中对:webkit的引用,因为它应该通过QT安装brew 5.4.0。即使Chrome没有运行,这些也发生了

成功运行后,我在控制台中看到:

1/20/15 3:59:33.285 PM WindowServer[131]: Surface testing disallowed updates for 10 sequential attempts...
1/20/15 3:59:33.290 PM WindowServer[131]: Surface test allowed updates after 10 attempts
1/20/15 3:59:40.286 PM webkit_server[61089]: Error loading /Library/Internet Plug-Ins/QuickTime Plugin.plugin/Contents/MacOS/QuickTime Plugin:  dlopen(/Library/Internet Plug-Ins/QuickTime Plugin.plugin/Contents/MacOS/QuickTime Plugin, 265): no suitable image found.  Did find:
    /Library/Internet Plug-Ins/QuickTime Plugin.plugin/Contents/MacOS/QuickTime Plugin: mach-o, but wrong architecture
1/20/15 3:59:40.303 PM webkit_server[61089]: objc[61089]: Class MacCocoaSocketServerHelperRtc is implemented in both /Library/Internet Plug-Ins/o1dbrowserplugin.plugin/Contents/MacOS/o1dbrowserplugin and /Library/Internet Plug-Ins/googletalkbrowserplugin.plugin/Contents/MacOS/googletalkbrowserplugin. One of the two will be used. Which one is undefined.

欢迎提出任何建议,与EOFError避难所相关的所有其他途径对我来说都是无关紧要的。


最新尝试次数

  1. 确保设置主机名

    sudo scutil --set ComputerName "kross" sudo scutil --set LocalHostName "kross" sudo scutil --set HostName "kross"

  2. 无变化

    1. 关于Data/Stack execution not permitted,找到this reference

      sudo update_dyld_shared_cache -force

    2. 并重新启动。 无变化

      1. 删除Google Chrome,删除有问题的插件,然后重新启动
      2. 作品(据我所知)

        1. 重新安装Google Chrome 测试启动延迟和EOFError失败
        2. 控制台:

          1/20/15 4:33:02.000 PM kernel[0]: Google Chrome He (map: 0xffffff802b8e9000) triggered DYLD shared region unnest for map: 0xffffff802b8e9000, region 0x7fff94c00000->0x7fff94e00000. While not abnormal for debuggers, this increases system memory footprint until the target exits.
          1/20/15 4:33:02.000 PM kernel[0]: Google Chrome He (map: 0xffffff803bd173c0) triggered DYLD shared region unnest for map: 0xffffff803bd173c0, region 0x7fff94c00000->0x7fff94e00000. While not abnormal for debuggers, this increases system memory footprint until the target exits.
          1/20/15 4:33:02.000 PM kernel[0]: Data/Stack execution not permitted: Google Chrome He[pid 1509] at virtual address 0x105b5f000, protections were read-write
          1/20/15 4:33:32.000 PM kernel[0]: Google Chrome He (map: 0xffffff803bd174b0) triggered DYLD shared region unnest for map: 0xffffff803bd174b0, region 0x7fff94c00000->0x7fff94e00000. While not abnormal for debuggers, this increases system memory footprint until the target exits.
          1/20/15 4:33:33.000 PM kernel[0]: Google Chrome He (map: 0xffffff803bd172d0) triggered DYLD shared region unnest for map: 0xffffff803bd172d0, region 0x7fff94c00000->0x7fff94e00000. While not abnormal for debuggers, this increases system memory footprint until the target exits.
          1/20/15 4:33:33.000 PM kernel[0]: Google Chrome He (map: 0xffffff803bd171e0) triggered DYLD shared region unnest for map: 0xffffff803bd171e0, region 0x7fff94c00000->0x7fff94e00000. While not abnormal for debuggers, this increases system memory footprint until the target exits.
          1/20/15 4:33:34.000 PM kernel[0]: Google Chrome He (map: 0xffffff802b8e9000) triggered DYLD shared region unnest for map: 0xffffff802b8e9000, region 0x7fff94c00000->0x7fff94e00000. While not abnormal for debuggers, this increases system memory footprint until the target exits.
          1/20/15 4:33:34.000 PM kernel[0]: Google Chrome He (map: 0xffffff8029eaa3c0) triggered DYLD shared region unnest for map: 0xffffff8029eaa3c0, region 0x7fff94c00000->0x7fff94e00000. While not abnormal for debuggers, this increases system memory footprint until the target exits.
          1/20/15 4:33:34.000 PM kernel[0]: Data/Stack execution not permitted: Google Chrome He[pid 1516] at virtual address 0x105b4d000, protections were read-write
          1/20/15 4:34:04.000 PM kernel[0]: Google Chrome He (map: 0xffffff803bd173c0) triggered DYLD shared region unnest for map: 0xffffff803bd173c0, region 0x7fff94c00000->0x7fff94e00000. While not abnormal for debuggers, this increases system memory footprint until the target exits.
          1/20/15 4:34:04.000 PM kernel[0]: Google Chrome He (map: 0xffffff803bd170f0) triggered DYLD shared region unnest for map: 0xffffff803bd170f0, region 0x7fff94c00000->0x7fff94e00000. While not abnormal for debuggers, this increases system memory footprint until the target exits.
          1/20/15 4:34:04.000 PM kernel[0]: Data/Stack execution not permitted: Google Chrome He[pid 1519] at virtual address 0x105c56000, protections were read-write
          1/20/15 4:34:33.000 PM kernel[0]: Google Chrome He (map: 0xffffff803bd170f0) triggered DYLD shared region unnest for map: 0xffffff803bd170f0, region 0x7fff94c00000->0x7fff94e00000. While not abnormal for debuggers, this increases system memory footprint until the target exits.
          1/20/15 4:34:34.000 PM kernel[0]: Google Chrome He (map: 0xffffff803bd171e0) triggered DYLD shared region unnest for map: 0xffffff803bd171e0, region 0x7fff94c00000->0x7fff94e00000. While not abnormal for debuggers, this increases system memory footprint until the target exits.
          1/20/15 4:34:34.000 PM kernel[0]: Data/Stack execution not permitted: Google Chrome He[pid 1521] at virtual address 0x105d50000, protections were read-write
          

          我对谷歌浏览器的相互作用感到困惑,当我希望:webkit驱动程序使用brew安装的qt时,我很困惑。我错过了什么?


          ChromeDriver吗 大约在2014年1月1日使用ChromeDriver (v2.9.248307),似乎只要我从路径中拉出来,一切都会好起来的。请注意,由于这个问题有点随机,我无法确定结果。我正在更新到ChromeDriver 2.13.307650以查看它是否更好。请再次注意我没有使用selenium / chrome,而是使用webkit驱动程序,因此我仍然不知道为什么这会影响测试。即便如此,我还不确定chrome与问题有什么关系(尽管到目前为止测试会暗示其他情况)。


          / Library / Internet Plug-Ins !!!!! 这必须是缺失的环节。 :webkit没有任何理由可以与谷歌浏览器进行任何相互作用,但仍会看到与谷歌浏览器相关的偶尔的EOFError和OSX控制台消息。部分原因是,即使我删除了冒犯QT的文件,例如/Library/Internet Plug-Ins/o1dbrowserplugin.plugin/Contents/MacOS/o1dbrowserplugin,但当您重新启动Chrome时,会继续。我在chrome://plugins禁用了它们并不重要。所以,我真的需要一种让QT忽略它们或所有插件的方法。 Related QT issue here


          当前解决方法

          1. 打开Chrome(为普通用户浏览器打开)
          2. 删除有问题的插件

            sudo rm '/Library/Internet Plug-Ins/o1dbrowserplugin.plugin/Contents/MacOS/o1dbrowserplugin' sudo rm '/Library/Internet Plug-Ins/googletalkbrowserplugin.plugin/Contents/MacOS/googletalkbrowserplugin'

          3. 运行测试。

          4. 如果您重新启动CHROME ,插件将再次出现。冲洗并重复。

            显然,如果你不重新启动Chrome,他们仍然可以回来,只需看你的日志并冲洗并重复。

            对此related QT issue的解析将允许我们忽略插件。

0 个答案:

没有答案