У меня Ubuntu 14.04 на ноутбуке Dell Latitude 13. Когда я запускаю Chromium и открываю несколько страниц из stackexchange в разных вкладках, любой текст, который я набираю, часто содержит символы, отображаемые в другом порядке, чем они были набраны. Например, этот абзац на самом деле отображается как:
У меня Ubuntu 14.04 запущена на ноутбуке Dell Latitude 13. Когда я открываю Chromium, несколько страниц открываются на разных вкладках. Любой текст, который я набираю, часто будет иметь символы, отображаемые в другой форме, в которой они были введены. Например, этот абзац фактически отображается как
Как вы можете себе представить, необходимость вручную исправлять это каждый раз, когда это происходит, может быть очень раздражающей. Поведение выглядит так, как будто какой-то слой в программном стеке вставляет нажатия клавиш в стек, а не в очередь, и если они не потребляются так же быстро, как и поступают, они появляются в неправильном порядке.
Это происходит только спорадически и, кажется, чаще всего, когда Chromium много свопит. Я не смог определить, какой слой программного стека вызывает проблему. Есть ли какие-либо дополнительные отладки/логи, которые я мог бы включить, чтобы увидеть, в каком порядке символы появляются на разных слоях программного стека?
Что я уже пробовал
Отправляя чередующиеся сигналы STOP
и CONT
в xterm, мне удалось замедлить xterm ровно настолько, чтобы воспроизвести симптом. Поскольку переупорядочивание ввода с клавиатуры не должно происходить, даже если xterm на некоторое время заморожен, я думаю, можно с уверенностью заключить, что ошибка не в Chromium или stackexchange, а скорее в каком-то программном обеспечении, задействованном в обоих случаях.
Чтобы исключить вероятность неисправности аппаратной части клавиатуры, я провел тестирование с использованием синтетических нажатий клавиш.
sleep 10 ; for K in {a..z} ; do xdotool type "$K" ; sleep 0.2 ; done
С помощью этой команды мне удалось воспроизвести проблему. В одном случае клавиши отображались в порядке abcdefghlmkjpnioqrstuvwxyz
. Поэтому, когда это также происходит с нажатиями клавиш, сгенерированными xdotool
, это не может быть дефектом клавиатуры или контроллера клавиатуры.
Если я еще больше ускорю ввод, производимый с помощью xdotool, это приведет к зависанию xterm.
Я видел, как xterm зависает, когда ввод с клавиатуры поступает быстро, даже без искусственного замедления с помощью сигналов STOP. Когда я вижу, как xterm зависает таким образом, это обычно происходит и после того, как я завершаю xterm и запускаю новый. Эта проблема сохраняется, пока я не запускаю compiz --replace
. После запуска этой команды все работает быстрее, и xterm больше не зависает, по крайней мере, в течение первых нескольких дней.
Итак, есть некоторые доказательства, указывающие на то, что эти две проблемы связаны и как-то связаны с compiz
, но у меня нет никаких веских доказательств, подтверждающих это подозрение.