Zsh 在特定制表符补全时崩溃(workon)

Zsh 在特定制表符补全时崩溃(workon)

这是一个与 ZSH 和 python virtualenvwrapper 相关的烦人错误。我在网上找不到任何线索,所以我打算在 SU 上发一篇新帖子!

症状

  1. 使用 ZSH,并安装 python virtualenvwrapper(以便该workon命令有效)
  2. 在 shell 中输入,% workon <TAB>以触发可用虚拟环境的制表符补全。
  3. 然后,ZSH 崩溃并且当前 shell 意外关闭。

为什么会发生这种情况?罪魁祸首是谁?zsh 还是 virtualenvwrapper?

诊断

据我所知,zsh 是可疑的,因为我们可以找到分段错误日志消息。

Segfault happend at: 0x452005 <popheap+85>: mov 0x18(%r12),%rdi PC(0x00452005) ok

有时(但很少)效果很好,但几乎总是可以在多台机器上重现。我现在要针对各种环境、zsh 版本或其他配置进行检查。

我经历过的环境:

  • Linux Ubuntu 12.04.02 LTS(内核:Linux 3.2.0-54-generic x86_64)
  • ZSH:zsh 4.3.17-1ubuntu1

  • UPD1:在最新的 ZSH 5.0.2 中也可重现(从源代码配置和编译)

参考

谢谢。

答案1

问题似乎出在具有特定虚拟环境的系统上的 ZSH 插件“virtualenvwrapper”。例如,我手动安装,而不是使用“pip install virtualenvwrapper”。

从我的 .zshrc 中删除“virtualenvwrapper”似乎可以解决这个问题。我敢打赌,在许多情况下,使用 pip 重新安装 virtualenvwrapper 可以解决此问题。

相关内容