Ubuntu

當 RStudio 執行時,複製和粘貼在 KVM 虛擬機(Ubuntu)中不可用

  • October 23, 2019

設置:

帶有執行 Ubuntu 18.04.1 的 KVM/qemu 虛擬機的 Fedora 30。

(這個設置是因為我想在我的 Fedora 30 上執行 RStudio,它只是在 nouveau 圖形子系統的某個地方立即停止執行——但在 Ubuntu VM 中執行良好)。

問題:

當 RStudio 執行時,在 VM 中複製和粘貼是正確的 PITA。

虛擬機啟動後,主機和虛擬機之間的複制粘貼效果很好,虛擬機內部的複制粘貼效果也很好(例如KWrite to KWrite)

在 VM 中啟動 RStudio 後,複製和粘貼最初會繼續工作(幾次),但很快就會開始“鎖定”。這適用於 RStudio 和 KWrite,並且適用於虛擬機內和主機到虛擬機的複制和粘貼。虛擬機中的接收程序凍結並且顯然在等待某些東西。但是,虛擬機繼續正常執行(例如,您可以使用 shell、執行topiotop

接收過程會在 10-30 秒後再次喚醒,此時粘貼的文本可能已被接收……或沒有。在第一次打嗝之後,粘貼通常會失敗,這包括從 VM 複製粘貼到主機。在 KWrite 中粘貼始終需要 10 秒,直到游標返回而沒有剪貼板內容。RStudio 的行為更具災難性,有時殺死程序是唯一的解決方案。

如果一個人離開虛擬機一段時間,另一個人有機會成功執行一些複製粘貼操作,然後再次發生鎖定。

在客戶機上重新啟動spice-vdagent( systemctl start spice-vdagentd)(而不是在它顯然什麼都不做的主機上)會中斷鎖定,並可能有機會再次執行一些複製粘貼。但是這個動作充滿了一些風險,因為我在某個時候凍結了整個 GUI。

怎麼解決?

我應該尋找什麼?

我已經xclipboard在主機上使用過查看剪貼板中的內容。沒有什麼意外的看到。

附言

VM 已獲得大量 RAM (10GiB),這似乎是必要的,因為即使是涉及強度圖的不太大的 knit 文件也會導致pandoc記憶體不足。

當我在其中工作時,RStudio 有時會自行凍結幾秒鐘,而不會鎖定整個系統。感覺好像交換或垃圾收集開始了,但在 I/O 或 CPU 方面沒有任何進展。煩人但可以生存。

在 RStudio 社區 BB 上,提供了以下想法:

設置環境變數RSTUDIO_NO_CLIPBOARD_MONITORING=1

例如:

RSTUDIO_NO_CLIPBOARD_MONITORING=1 /usr/bin/rstudio

其基礎是 GitHub 上的這個錯誤修復:

允許使用者禁用X11剪貼板監控

基於這個問題:

RStudio 1.1.419 定期掛起

我們發現:

看起來罪魁禍首可能是 RStudio 過度積極地監聽剪貼板的變化。看:

#9 0x00000000005a2745 in rstudio::desktop::GwtCallback::onClipboardChanged(QClipboard::Mode) ()

我們這樣做是為了支持全域滑鼠選擇,但也許這樣做過於激進,或者我們正在處理我們應該忽略的剪貼板通知。

執行上述操作可以改善響應時間,但不會改善可靠的複制粘貼。

引用自:https://unix.stackexchange.com/questions/547035