[sisyphus] firefox or how to be red-eyed

Alexey Gladkov legion на altlinux.ru
Пн Ноя 4 00:47:49 MSK 2019


Приветствую!

Недавно я убил несколько дней на расследование почему у меня новый firefox
перешёл полурабочее состояние. Чтобы вы поняли масштаб развала симптомы
были: firefox грузился, страницы нормально, но в urlbar не работает
autocompletion, автоматическая подстановка http(s)?:// к домену, поиск из 
urlbar тоже не работает ... возможно что-то ещё.

Расследование завело довольно глубоко.

Поиск не работал из-за того, что firefox не мог определить локаль системы.
В about:support было:

Application Settings
Requested Locales       ["ru-RU"]
Available Locales       ["en-US"]
App Locales             ["und","en-US"]
Regional Preferences    ["und","en-US"]
Default Locale          "und"

Operating System
System Locales          ["ru-RU"]
Regional Preferences    ["ru-RU"]

Это приводило к тому, что firefox не видел ни одного поискового движка и
не мог ничего искать.

Ключевым моментом стали редкие сообщения в логе firefox:

Unix error 0 during operation makeDir on file /path/to/something (No 
error information)

Правда они бывают не только про makeDir, но и про другие файловые
операции. Об этом нужно иногда догадываться т.к. операция может быть
DirectoryIterator или move. В этом сообщении 0 это errno.

А теперь собственно причина:

В модуле, который является мостом между JavaScript и libc сделано
следующее[1]:

// Open libc
var libc = new SharedAll.Library(
  "libc",
  "libc.so",
  "libSystem.B.dylib",
  "a.out"
);

На машине:

$ l /lib*/libc.so*
lrwxrwxrwx 1 root root 12 окт 10 17:46 /lib64/libc.so.6 -> libc-2.27.so
lrwxrwxrwx 1 root root 18 апр 28  2015 /lib64/libc.so.1 -> libc-musl-1.1.3.so

Если удалить пакет musl, то firefox "волшебным" образом начинает работать.

На эту особенность наступают периодически в разное время в разных
дистрибутивах. Симптомы, которые я наблюдал, упоминаются в разных
багзиллах и разных багах[2] мозиллы.

[1] https://hg.mozilla.org/releases/mozilla-release/file/tip/toolkit/components/osfile/modules/osfile_unix_allthreads.jsm#l48
[2] https://bugzilla.mozilla.org/show_bug.cgi?id=1042134#c31

-- 
Rgrds, legion



Подробная информация о списке рассылки Sisyphus