Bug 42423

Summary: Для работы прокси требуется перезагрузка системы
Product: Sisyphus Reporter: Mikhail Chernonog <snowmix>
Component: alterator-sysconfigAssignee: Антон Мидюков <antohami>
Status: REOPENED --- QA Contact: qa-sisyphus
Severity: normal    
Priority: P5 CC: boyarsh, cas, iklish, mike, ptrnine, rider, snejok, tatyana, urozhaevaoo, varaksaaa
Version: unstable   
Hardware: x86_64   
OS: Linux   
See Also: https://bugzilla.altlinux.org/show_bug.cgi?id=44987

Description Mikhail Chernonog 2022-04-13 14:34:09 MSK
Системы клиента workstation k и workstation обновленные до текущего репозитория p10, после закрыт выход в сеть минуя proxy.

Система сервера server p10.
Шаги:
1. После установки сервера выполнил настройку squid-сервера, разрешить http и https.
2. На клиентах через acc модуль Настройки proxy выполнил настройку proxy и нажать применить.
3. Открыть браузер и попытаться перейти на любой сайт.

Ожидаемый результат: 
Успешное открытие сайтов.

Реальный результат:
Страницы не грузятся, прокси на клиенте до конца не настроен. Для полной настройки прокси требуется перезагрузить систему.

Дополнительно: в redhat, в mate есть модуль настройки прокси, в этом модуле после ввода ip и port, автоматически применяются настройки и успешно открываются страницы.

Так же замечу что после перезагрузки нашей системы proxy начинает работать, однако невозможно обновить систему. Скорее всего это связано с тем что в файл /etc/sysconfig/network прописываются переменные в верхнем регистре, а в apt требуется экспортировать аналогичные переменные в нижнем регистре.
Comment 1 Sergey V Turchin 2022-04-20 10:34:39 MSK
(Ответ для Mikhail Chernonog на комментарий #0)
> Так же замечу что после перезагрузки нашей системы proxy начинает работать,
> однако невозможно обновить систему. Скорее всего это связано с тем что в
> файл /etc/sysconfig/network прописываются переменные в верхнем регистре, а в
> apt требуется экспортировать аналогичные переменные в нижнем регистре.

Вообще, /etc/profile.d/proxy.sh
Убедитесь, какие переменные окружения экспортированы на клиенте при запуске apt. Можно прям в /proc/PID/environ заглянуть для верности.
Comment 2 Sergey V Turchin 2022-04-20 14:25:23 MSK
так же сборка#298756 по поводу libproxy
Comment 3 Sergey V Turchin 2022-04-20 14:49:04 MSK
(Ответ для Sergey V Turchin на комментарий #2)
> так же сборка#298756 по поводу libproxy
Не. Она неактуальна вообще.
Comment 4 Slava Aseev 2022-04-21 12:54:46 MSK
(Ответ для Mikhail Chernonog на комментарий #0)
> Так же замечу что после перезагрузки нашей системы proxy начинает работать,
> однако невозможно обновить систему. Скорее всего это связано с тем что в
> файл /etc/sysconfig/network прописываются переменные в верхнем регистре, а в
> apt требуется экспортировать аналогичные переменные в нижнем регистре.

Не воспроизводится этот момент, у меня обновление работает после перезагрузки. Более того - для apt можно и не перезагружаться, достаточно просто перезайти (su -). Для юзера тоже можно (su - username), но толку мало, разве что потом из этой же консоли запускать приложения.

Посмотрел в redhat - там действительно на изменения proxy браузер реагирует мгновенно. Насчет остального софта не уверен. Также еще один момент - при любом открытии терминала/шела там происходит выполнение /etc/profile.d/* скриптов (хотя никакого аналога /etc/profile.d/proxy.sh я там не нашел). У нас это происходит только при логине, похоже.
Comment 5 Sergey V Turchin 2022-04-21 14:19:15 MSK
(Ответ для Slava Aseev на комментарий #4)
> Посмотрел в redhat - там действительно на изменения proxy браузер реагирует
> мгновенно.
Для веб-браузера? Так, может и нам так сделать?
Comment 6 Slava Aseev 2022-04-21 14:23:21 MSK
(Ответ для Sergey V Turchin на комментарий #5)
> (Ответ для Slava Aseev на комментарий #4)
> > Посмотрел в redhat - там действительно на изменения proxy браузер реагирует
> > мгновенно.
> Для веб-браузера? Так, может и нам так сделать?

Ну да, firefox в данном случае. Настройки proxy там пишутся в dconf (/system/proxy/*), возможно firefox на это реагирует.
Comment 7 Anton Farygin 2022-04-21 14:27:17 MSK
а попробуй записать, пожалуйста. посмотри, наши браузеры подхватят сразу ?
Comment 8 Sergey V Turchin 2022-04-21 14:49:10 MSK
Конкретно у меня в K -- chromium-gost. Он и KDE-шный конфиг может отследить запросто.
Comment 9 Sergey V Turchin 2022-04-21 14:55:12 MSK
(Ответ для Sergey V Turchin на комментарий #8)
> Он и KDE-шный конфиг может отследить запросто.
Это предположение, в смысле.
Comment 10 Slava Aseev 2022-04-21 15:26:56 MSK
(Ответ для Anton Farygin на комментарий #7)
> а попробуй записать, пожалуйста. посмотри, наши браузеры подхватят сразу ?
С dconf не работает, но есть способ с kde'шным конфигом.


(Ответ для Sergey V Turchin на комментарий #8)
> Конкретно у меня в K -- chromium-gost. Он и KDE-шный конфиг может отследить
> запросто.
Если поставить режим "использовать заданные параметры" в настройках прокси, то firefox и chromium-gost начинают мгновенно подхватывать изменения оттуда (~/.config/kioslaverc судя по всему).

Любопытно, что в подсказке в настройках KDE сказано обратное (что firefox/chromium не используют эти параметры):
> Указанные параметры прокси-сервера не будут использованы всеми приложениями.
> В частности, Firefox, Chromium, а также основанные на них приложения,
> а также любые другие приложения, основанные на QtWebEngine, в том числе
> Konqueror, использующий модуль WebEnginePart, Akregator и Falkon не используют
> эти параметры. Некоторые приложения позволяют настраивать параметры
> прокси-сервера самостоятельно.
Comment 11 Slava Aseev 2022-04-21 15:30:12 MSK
(Ответ для Slava Aseev на комментарий #10)
> Если поставить режим "использовать заданные параметры" в настройках прокси,
> то firefox и chromium-gost начинают мгновенно подхватывать изменения оттуда
> (~/.config/kioslaverc судя по всему).

При этом настройки оттуда не влияют на переменные окружения (HTTP_PROXY), судя по-всему. Т.е. нужно сделать ручку, которая бы меняла и этот конфиг и переменные окружения.
Comment 12 Sergey V Turchin 2022-04-21 15:37:58 MSK
Chromium-gost в KDE открывает KDE-шные настройки прокси.
> Если поставить режим "использовать заданные параметры" в настройках прокси,
В KDE-шных(chromium KDE-шные запускает в качестве своих(после установки расширения из Интернет(надо, чтоб и без этого работало)))? Надо в alterator.

> то firefox и chromium-gost начинают мгновенно подхватывать изменения оттуда
> (~/.config/kioslaverc судя по всему).
Это да, но надо системные отслеживать.
Comment 13 Sergey V Turchin 2022-04-21 15:40:11 MSK
(Ответ для Slava Aseev на комментарий #11)
> Т.е. нужно сделать ручку, которая бы меняла и этот конфиг
Именно этот нельзя, но /etc/kf5/xfg/kioslaverc можно до кучи править из alterator.

> и переменные окружения.
Comment 14 Sergey V Turchin 2022-04-21 15:42:55 MSK
(Ответ для Sergey V Turchin на комментарий #13)
> /etc/kf5/xfg/kioslaverc
/etc/kf5/xdg/kioslaverc
или
/etc/xdg/kioslaverc
Comment 15 Slava Aseev 2022-04-21 17:46:57 MSK
(Ответ для Sergey V Turchin на комментарий #12)
> Chromium-gost в KDE открывает KDE-шные настройки прокси.
> > Если поставить режим "использовать заданные параметры" в настройках прокси,
> В KDE-шных(chromium KDE-шные запускает в качестве своих(после установки
> расширения из Интернет(надо, чтоб и без этого работало)))? Надо в alterator.
Да, имелись в виду KDE-шные настройки.

(Ответ для Sergey V Turchin на комментарий #14)
> (Ответ для Sergey V Turchin на комментарий #13)
> > /etc/kf5/xfg/kioslaverc
> /etc/kf5/xdg/kioslaverc
> или
> /etc/xdg/kioslaverc
Не работает ни в chromium-gost ни в firefox почему-то.

Вообще есть ли смысл настройки прокси делать общесистемными? В федорах, как я понял, даже переменные окружения HTTP_PROXY задаются под конкретного пользователя (исходя из значений из dconf, он первичен, получается).
Comment 16 Sergey V Turchin 2022-04-21 17:48:59 MSK
(Ответ для Slava Aseev на комментарий #15)
> Вообще есть ли смысл настройки прокси делать общесистемными?
Сисадмин каждому бегать настраивать не будет.
Comment 17 Andrey Cherepanov 2022-04-22 11:06:06 MSK
(Ответ для Slava Aseev на комментарий #15)
> (Ответ для Sergey V Turchin на комментарий #12)
> > Chromium-gost в KDE открывает KDE-шные настройки прокси.
> > > Если поставить режим "использовать заданные параметры" в настройках прокси,
> > В KDE-шных(chromium KDE-шные запускает в качестве своих(после установки
> > расширения из Интернет(надо, чтоб и без этого работало)))? Надо в alterator.
> Да, имелись в виду KDE-шные настройки.
> 
> (Ответ для Sergey V Turchin на комментарий #14)
> > (Ответ для Sergey V Turchin на комментарий #13)
> > > /etc/kf5/xfg/kioslaverc
> > /etc/kf5/xdg/kioslaverc
> > или
> > /etc/xdg/kioslaverc
> Не работает ни в chromium-gost ни в firefox почему-то.
> 
> Вообще есть ли смысл настройки прокси делать общесистемными? В федорах, как
> я понял, даже переменные окружения HTTP_PROXY задаются под конкретного
> пользователя (исходя из значений из dconf, он первичен, получается).

А как dnf там будет работать через прокси-сервер? А freshclam?
Comment 18 Slava Aseev 2022-04-22 12:55:45 MSK
(Ответ для Andrey Cherepanov на комментарий #17)
> (Ответ для Slava Aseev на комментарий #15)
> > (Ответ для Sergey V Turchin на комментарий #12)
> > > Chromium-gost в KDE открывает KDE-шные настройки прокси.
> > > > Если поставить режим "использовать заданные параметры" в настройках прокси,
> > > В KDE-шных(chromium KDE-шные запускает в качестве своих(после установки
> > > расширения из Интернет(надо, чтоб и без этого работало)))? Надо в alterator.
> > Да, имелись в виду KDE-шные настройки.
> > 
> > (Ответ для Sergey V Turchin на комментарий #14)
> > > (Ответ для Sergey V Turchin на комментарий #13)
> > > > /etc/kf5/xfg/kioslaverc
> > > /etc/kf5/xdg/kioslaverc
> > > или
> > > /etc/xdg/kioslaverc
> > Не работает ни в chromium-gost ни в firefox почему-то.
> > 
> > Вообще есть ли смысл настройки прокси делать общесистемными? В федорах, как
> > я понял, даже переменные окружения HTTP_PROXY задаются под конкретного
> > пользователя (исходя из значений из dconf, он первичен, получается).
> 
> А как dnf там будет работать через прокси-сервер? А freshclam?

Видимо, для этого надо вручную вписывать переменные окружения http_proxy/https_proxy в профайл.
Comment 19 Slava Aseev 2022-04-22 13:47:30 MSK
(Ответ для Slava Aseev на комментарий #15)
> Не работает ни в chromium-gost ни в firefox почему-то.

Посмотрел strace'ом, оказывается на конфиге стояли права 600 и его не могли прочитать. Так что проверил еще раз - /etc/kf5/xdg/kioslaverc работает в firefox (там вообще через execve выполяется kreadconfig5). В хромиуме не работает, там свой велосипед, но можно пропатчить.
Comment 20 Slava Aseev 2022-05-06 16:05:54 MSK
(Ответ для Slava Aseev на комментарий #19)
> Посмотрел strace'ом, оказывается на конфиге стояли права 600 и его не могли
> прочитать. Так что проверил еще раз - /etc/kf5/xdg/kioslaverc работает в
> firefox (там вообще через execve выполяется kreadconfig5). В хромиуме не
> работает, там свой велосипед, но можно пропатчить.

Починил чтение конфига в хромиуме, отправил в апстрим на ревью: https://chromium-review.googlesource.com/c/chromium/src/+/3632300
Не знаю, что из этого выйдет.

В alterator-sysconfig приделал запись конфига, так что его можно уже отправлять.
Comment 21 Slava Aseev 2022-05-06 16:17:51 MSK
sisyphus: https://git.altlinux.org/tasks/299137/
Comment 22 Sergey V Turchin 2022-05-06 16:43:23 MSK
В p10 тоже отправляй. Chromium-ы отдельно пусть едут.
Comment 23 Slava Aseev 2022-05-25 13:54:45 MSK
Изменение прошло в хромиум: https://chromium.googlesource.com/chromium/src.git/+/9ffd8a689e129c24feec8973beff50db54262365

Можно патчем приложить у нас в sisyphus/p10.
Comment 24 Sergey V Turchin 2022-05-25 14:10:35 MSK
(Ответ для Slava Aseev на комментарий #23)
> Можно патчем приложить у нас в sisyphus/p10.
Если в Сизифе мантейнеры chromium/chromium-gost не против.
Comment 25 Slava Aseev 2022-06-03 06:51:29 MSK
chromium с патчем уже в сизифе:
https://git.altlinux.org/tasks/301018
Comment 26 Tatyana Gagina 2022-06-22 14:22:22 MSK
Не воспроизводится только на KDE. Изменения системных настроек прокси применяются корректно в браузере chromium-gost без перезапуска самого браузера и перезагрузки системы KDE.

На xfce и mate ошибки.

Версии: chromium-gost-102.0.5005.61-alt1
alterator-sysconfig-1.3.7-alt1
squid-4.15-alt1

На xfce ошибка не исправлена.
Требуется перезагрузка системы после применения настроек.
Система: ALT education x86_64

Шаги по настройке аналогичные:
1) Настроить на сервере  squid-сервер, разрешить http и https;
2) На клиентe (ALT education x86_64) через acc выполнил настройку proxy: модуль Настройки proxy ввести адрес сервера и порт 3128 > Применить;
3) Открыть браузер и попытаться перейти на любой сайт.

Результат: страницы грузятся только после перезагрузки системы.

Ожидаемый результат: изменения системных настроек прокси применяются корректно в браузере chromium-gost без перезапуска самого браузера и перезагрузки системы.

Дополнительные шаги: изменить адрес прокси на клиенте в acc на неправильный и применить. Обновить страницу в браузере.
Результат: страница загружена.
Ожидаемый результат: ошибка загрузки страницы при неправильном адресе прокси.

Не закрывая браузер изменить адрес прокси сервера на правильный и сохранить.
Срабатывает применение настроек прокси только после перезагрузки системы.

На системе mate ошибка:
невозможно запустить chromium-gost после настроек прокси (шаги те же). После запуска браузера ошибка в терминале:
$ chromium-gost
[0622/124927.941338:FATAL:v8_initializer.cc(535)] Error mapping V8 startup snapshot file
[0622/124927.954374:FATAL:v8_initializer.cc(535)] Error mapping V8 startup snapshot file
[0622/124927.988729:ERROR:file_io_posix.cc(144)] open /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq: No such file or directory (2)
[0622/124927.988945:ERROR:file_io_posix.cc(144)] open /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq: No such file or directory (2)
Ловушка трассировки/останова

После перезагрузки системы аналогичная ошибка: Ловушка трассировки/останова
Comment 27 Slava Aseev 2022-06-22 16:16:14 MSK
(Ответ для Tatyana Gagina на комментарий #26)
> Не воспроизводится только на KDE. Изменения системных настроек прокси
> применяются корректно в браузере chromium-gost без перезапуска самого
> браузера и перезагрузки системы KDE.
> 
> На xfce и mate ошибки.

Там и не должно работать, в chromium'e не было такой возможности изначально. Должно работать только в KDE.

> На системе mate ошибка:
> невозможно запустить chromium-gost после настроек прокси (шаги те же). После
> запуска браузера ошибка в терминале:
> $ chromium-gost
> [0622/124927.941338:FATAL:v8_initializer.cc(535)] Error mapping V8 startup
> snapshot file
> [0622/124927.954374:FATAL:v8_initializer.cc(535)] Error mapping V8 startup
> snapshot file
> [0622/124927.988729:ERROR:file_io_posix.cc(144)] open
> /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq: No such file or
> directory (2)
> [0622/124927.988945:ERROR:file_io_posix.cc(144)] open
> /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq: No such file or
> directory (2)
> Ловушка трассировки/останова
> 
> После перезагрузки системы аналогичная ошибка: Ловушка трассировки/останова

С патчем это точно не связано. Если проблема только на виртуалке, то это из-за того что там не грузится какой-нибудь acpi-cpufreq модуль.
Comment 28 Tatyana Gagina 2022-06-22 18:18:50 MSK
> (Ответ для Tatyana Gagina на комментарий #26)
> > На системе mate ошибка:
> > После перезагрузки системы аналогичная ошибка: Ловушка трассировки/останова
> 
> С патчем это точно не связано. Если проблема только на виртуалке, то это
> из-за того что там не грузится какой-нибудь acpi-cpufreq модуль.

Ошибка действительно была в виртуалке. Результат на mate: успешное открытие сайтов.
Однако при вводе неверного адреса прокси и перезагрузки страница не должна открываться, но открывается. 
Система обновляется после перезагрузки.

Опять же, на xfce и mate не должно работать, в chromium'e не было такой возможности изначально.
Comment 29 Slava Aseev 2022-07-04 13:23:54 MSK
В общем, баг исправлен в kworkstation: в alterator-sysconfig добавлена запись настроек в /etc/kf5/xdg/kioslaverc, добавлена поддержка перезагрузки этих настроек без рестарта в chromium/chromium-gost (сам механизм перезагрузки настроек уже был реализован, добавился только XDG_CONFIG_DIRS). В firefox также все работает (причем работало изначально, просто не хватало ручки в alterator-sysconfig).

В workstation пока ничего из этого не работает. Я посмотрю, возможно, там есть подобный простой способ добиться похожего поведения в chromium. Есть подозрение, что про MATE там просто забыли, и если просто добавить MATE в список возможных XDG_CURRENT_DESKTOP, то все будет работать через GSettings.
Comment 30 Artem Varaksa 2023-11-08 18:53:42 MSK
(Ответ для Slava Aseev на комментарий #29)
> В общем, баг исправлен в kworkstation: в alterator-sysconfig добавлена
> запись настроек в /etc/kf5/xdg/kioslaverc, добавлена поддержка перезагрузки
> этих настроек без рестарта в chromium/chromium-gost (сам механизм
> перезагрузки настроек уже был реализован, добавился только XDG_CONFIG_DIRS).
> В firefox также все работает (причем работало изначально, просто не хватало
> ручки в alterator-sysconfig).

Ошибка с chromium{,-gost} воспроизводится в p10: настройки не применяются сразу и даже после перезапуска браузера. В sisyphus - не воспроизводится: настройки применяются сразу, без перезапуска браузера. В обоих случаях chrome://linux-proxy-config/ отображает одинаковый текст, говорящий об отсутствии поддержки системных настроек прокси.

Возможно, что проблема в wrapper-скрипте chromium{,-gost}, т. к. не применяются и настройки "не использовать прокси для" - похоже, wrapper-скрипт принудительно использует настройки из переменных окружения, а NO_PROXY он не поддерживает (https://git.altlinux.org/gears/c/chromium.git?p=chromium.git;a=blobdiff;f=.rpm/chromium.sh;h=1eceae59c7daf507c514853d44c34681bda3e37b;hp=69ebf282ffb870f83c935a50c029404a188bf839;hb=7f30da05e7e9d4f916a78b5378dbee9fa121d75c;hpb=8435a1d42c1e415fcf70c345142ce0cd076f1d0a).

Firefox при этом в p10 сразу применяет настройки, а в sisyphus не применяет даже после перезапуска браузера.

Проверялось на:

[p10] kworkstation-10.2-x86-64
alterator-sysconfig-1.3.12-alt1.noarch
chromium-117.0.5938.132-alt0.p10.1.x86_64  
chromium-gost-110.0.5481.177-alt1.p10.1.x86_64  
firefox-esr-115.3.1-alt4.x86_64

[sisyphus] kworkstation-10.2-x86-64
alterator-sysconfig-1.3.13-alt1.noarch
chromium-119.0.6045.105-alt1.x86_64  
chromium-gost-117.0.5938.62-alt1.x86_64  
firefox-esr-115.4.0-alt1.x86_64
Comment 31 Olga 2024-11-18 17:36:12 MSK
Ошибка актуальна для версии: chromium-126.0.6478.182-alt1