Bug 45799

Summary: Поломался wget
Product: Sisyphus Reporter: Aleksandr Shamaraev <alexander.shad>
Component: wgetAssignee: Vitaly Chikunov <vt>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: major    
Priority: P1 CC: aris, mike, shaba, vt, week, zerg
Version: unstable   
Hardware: x86_64   
OS: Linux   
Attachments:
Description Flags
лог epm none

Description Aleksandr Shamaraev 2023-04-10 12:08:27 MSK
Created attachment 12918 [details]
лог epm

Добра!

При работе с командами epm начали выходить начали выходить ошибки системного вызова.
при запуске $ bash -x /usr/share/eepm/tools_eget http://eepm.ru
судя по логу поломался wget 
попытка его переустановить не помогла 
epm reinstall wget - не дает результатов.
При попытке удалить apt-get remove wget тянется много пакетов для удаления, к примеру тот же hplip

Данная ошибка возникает только на машине которая была установлена K workstation с kde и потом подключен репозиторий с Сизиф и переход на него

На машине где изначально была установлена сборка Сизиф с kde таких проблем нет, все нормально работает.
Comment 1 Vitaly Chikunov 2023-04-10 13:34:51 MSK
Спасибо за багрепорт. У вас используется http proxy, tsocks, fakeroot?

Покажите, пожалуйста, чему равна переменная LD_PRELOAD перед запуском этой команды:

  echo $LD_PRELOAD 

ps. Временный объезд проблемы пока мы её не решим:

  export SECCOMP_DEFAULT_ACTION=allow
Comment 2 Vitaly Chikunov 2023-04-10 13:36:07 MSK
> ps. Временный объезд проблемы пока мы её не решим:

Возможный, так как прочны пока не ясны, напишите заодно помог ли он, пожалуйста.
Comment 3 Vitaly Chikunov 2023-04-10 13:47:29 MSK
Я протестировал с tsocks и да вылетает на getsockopt:

  Connecting to eepm.ru (eepm.ru)|91.232.225.9|:80... --- SIGSYS {si_signo=SIGSYS, si_code=SYS_SECCOMP, si_call_addr=0x7f61d7315fca, si_syscall=__NR_getsockopt, si_arch=AUDIT_ARCH_X86_64} ---

Это легко решим когда выясним, что у вас то же самое. Проверить можно так:

  unset SECCOMP_DEFAULT_ACTION
  export SECCOMP_SYSCALL_ALLOW=getsockopt
  ...повтор команды с запуском wget
Comment 4 Vitaly Chikunov 2023-04-10 14:09:58 MSK
Сделал тестовое задание с фиксом, его можно установить (через apt-repo) так:

  # apt-repo test 318311

После этого надо удалить переменные которые мы использовали для тестирования:

  unset SECCOMP_DEFAULT_ACTION
  unset SECCOMP_SYSCALL_ALLOW

и протестировать заново. Сообщите, пожалуйста, помог ли фикс.
Comment 5 Aleksandr Shamaraev 2023-04-10 14:16:21 MSK
(Ответ для Vitaly Chikunov на комментарий #4)
> Сделал тестовое задание с фиксом, его можно установить (через apt-repo) так:
> 
>   # apt-repo test 318311
> 
Здравствуйте!

Завтра на работе проверю, потом Вам отпишусь. Сейчас у меня почти 23:00
Comment 6 Aleksandr Shamaraev 2023-04-11 01:15:34 MSK
(Ответ для Vitaly Chikunov на комментарий #4)
> Сделал тестовое задание с фиксом, его можно установить (через apt-repo) так:
> 
>   # apt-repo test 318311
>
> и протестировать заново. Сообщите, пожалуйста, помог ли фикс.

wget 1.21.3-alt4

Ошибка не ушла

wget http://eepm.ru
Неверный системный вызов

Машина использует прокси, ideco, авторизация в интернет идет после отрытия браузера и загрузки страцины, на ideco прописан пропуск по конкретному ip

Значение echo $LD_PRELOAD пустое
Через этот объезд 
export SECCOMP_DEFAULT_ACTION=allow
wget http://eepm.ru
работает
дальше (где вы писали про tsocks) не делал
однако, если к примеру выпустить wget, либо epm через sudo то также падает.
ну то есть если так 
sudo epm full-upgrade
либо 
sudo wget http://eepm.ru

То получаем «Неверный системный вызов»

Если так
epm full-upgrade
либо 
wget http://eepm.ru

то работает, но это с учетом 
export SECCOMP_DEFAULT_ACTION=allow
Comment 7 Aleksandr Shamaraev 2023-04-11 01:33:43 MSK
Сделал это.. 
unset SECCOMP_DEFAULT_ACTION
unset SECCOMP_SYSCALL_ALLOW
export SECCOMP_SYSCALL_ALLOW=getsockopt

Не работает
Comment 8 Aleksandr Shamaraev 2023-04-11 01:34:36 MSK
Если не ошибаюсь у нас http proxy
Comment 9 Vitaly Chikunov 2023-04-11 02:18:06 MSK
Спасибо. Попробую воспроизвести ситуацию с http proxy.
Comment 10 Vitaly Chikunov 2023-04-11 03:11:19 MSK
(In reply to Vitaly Chikunov from comment #9)
> Спасибо. Попробую воспроизвести ситуацию с http proxy.

Я попробовал разные варианты прокси и у меня не воспроизводится проблема.

Тогда остается только чтоб вы выяснили на каком сисколле срабатывает фильтр, для этого можете попробовать так:

  $ SECCOMP_DEFAULT_ACTION=trap SECCOMP_SYSCALL_ALLOW= strace -f -e t=none -e s=sys -- wget http://eepm.ru

Оно напишет строку похожую на
 
  --- SIGSYS {si_signo=SIGSYS, si_code=SYS_SECCOMP, si_call_addr=0x7f61d7315fca, si_syscall=__NR_getsockopt, si_arch=AUDIT_ARCH_X86_64} ---

Интересно что там будет после "si_syscall=".
Comment 11 Aleksandr Shamaraev 2023-04-11 03:16:01 MSK
--- SIGSYS {si_signo=SIGSYS, si_code=SYS_SECCOMP,
si_call_addr=0x7fdfb509f6d7, si_syscall=__NR_pipe2,
si_arch=AUDIT_ARCH_X86_64} --- +++ killed by SIGSYS +++ Неверный
системный вызов
Comment 12 Vitaly Chikunov 2023-04-11 03:19:10 MSK
(In reply to gttn from comment #11)
> --- SIGSYS {si_signo=SIGSYS, si_code=SYS_SECCOMP,
> si_call_addr=0x7fdfb509f6d7, si_syscall=__NR_pipe2,
> si_arch=AUDIT_ARCH_X86_64} --- +++ killed by SIGSYS +++ Неверный
> системный вызов

Спасибо. Теперь ещё раз, но SECCOMP_SYSCALL_ALLOW=pipe2 плс. Но я уже догадываюсь что оно пытается запустить процесс для ввода пароля.
Comment 13 Aleksandr Shamaraev 2023-04-11 03:24:20 MSK
Сделал 
unset SECCOMP_DEFAULT_ACTION
unset SECCOMP_SYSCALL_ALLOW
export SECCOMP_SYSCALL_ALLOW=pipe2

попробовал wget http://eepm.ru 
не работает
Неверный системный вызов
Comment 14 Vitaly Chikunov 2023-04-11 03:28:31 MSK
Я имел ввиду сделать вот так

  $ SECCOMP_DEFAULT_ACTION=trap SECCOMP_SYSCALL_ALLOW=pipe2 strace -f -e t=none -e s=sys -- wget http://eepm.ru

Но может понадобиться ещё несколько запусков с изменением параметров. Если хотите можно попробовать - пишите что какая ошибка будет выпадать я я как менять команду запуска.
Comment 15 Aleksandr Shamaraev 2023-04-11 03:31:30 MSK
SECCOMP_DEFAULT_ACTION=trap SECCOMP_SYSCALL_ALLOW=pipe2 strace -f -e
t=none -e s=sys -- wget http://eepm.ru 

--- SIGSYS {si_signo=SIGSYS,
si_code=SYS_SECCOMP, si_call_addr=0x7f5285a6bc47,
si_syscall=__NR_getresuid, si_arch=AUDIT_ARCH_X86_64} --- +++ killed by
SIGSYS +++ Неверный системный вызов

ну давайте добьем этот вопрос )
Comment 16 Vitaly Chikunov 2023-04-11 03:34:20 MSK
> ну давайте добьем этот вопрос )


SECCOMP_DEFAULT_ACTION=trap SECCOMP_SYSCALL_ALLOW=pipe2:getresuid strace -f -e t=none -e s=sys -- wget http://eepm.ru
Comment 17 Aleksandr Shamaraev 2023-04-11 03:37:38 MSK
В общем я понял что Вы делали, ниже строчка как все работает

SECCOMP_DEFAULT_ACTION=trap
SECCOMP_SYSCALL_ALLOW=pipe2:getresuid:getresgid:geteuid strace -f -e
t=none -e s=sys -- wget http://eepm.ru
Comment 18 Vitaly Chikunov 2023-04-11 03:45:09 MSK
(In reply to gttn from comment #17)
> В общем я понял что Вы делали, ниже строчка как все работает
> 
> SECCOMP_DEFAULT_ACTION=trap
> SECCOMP_SYSCALL_ALLOW=pipe2:getresuid:getresgid:geteuid strace -f -e
> t=none -e s=sys -- wget http://eepm.ru

Спасибо. А можете показывать вывод:

  grep askpass /etc/wgetrc
  grep askpass ~/.wgetrc
  echo $WGET_ASKPASS
  echo $SSH_ASKPASS

Если конечно там ничего секретного.
Comment 19 Aleksandr Shamaraev 2023-04-11 03:55:05 MSK
>   grep askpass /etc/wgetrc
пусто
>   grep askpass ~/.wgetrc
grep: /home/xxx/.wgetrc нет такого файла или каталога
>   echo $WGET_ASKPASS
пусто
>   echo $SSH_ASKPASS
/usr/lib/openssh/ssh-askpass


Не знаю Важно нет... машина в windows домене
Comment 20 Aleksandr Shamaraev 2023-04-11 03:55:55 MSK
>   grep askpass /etc/wgetrc

вот тут даже не то что пусто, тут просто ничего не происходит )
Comment 21 Vitaly Chikunov 2023-04-11 03:59:05 MSK
Спасибо за помощь. Пока я не до конца понял причины, но, по крайней мере, есть над чем подумать.
Comment 22 Vitaly Chikunov 2023-04-11 17:17:49 MSK
(In reply to Vitaly Chikunov from comment #4)
> Сделал тестовое задание с фиксом, его можно установить (через apt-repo) так:
> 
>   # apt-repo test 318311

Обновил задание 318311 с изменениями которые мы выяснили. Если хотите можете протестировать.
Comment 23 Vitaly Chikunov 2023-04-11 18:34:35 MSK
А что у вас выводит 

  /usr/bin/proxy http://eepm.ru

если не секрет. Я думаю может это из-за libproxy.
Comment 24 Aleksandr Shamaraev 2023-04-12 00:43:22 MSK
(Ответ для Vitaly Chikunov на комментарий #22)
> (In reply to Vitaly Chikunov from comment #4)
> > Сделал тестовое задание с фиксом, его можно установить (через apt-repo) так:
> > 
> >   # apt-repo test 318311
> 
> Обновил задание 318311 с изменениями которые мы выяснили. Если хотите можете
> протестировать.


Здравствуйте, обновился, сейчас все нормально работает! Спасибо )
Comment 25 Aleksandr Shamaraev 2023-04-12 00:46:18 MSK
(Ответ для Vitaly Chikunov на комментарий #23)
> А что у вас выводит 
> 
>   /usr/bin/proxy http://eepm.ru
> 
> если не секрет. Я думаю может это из-за libproxy.

bash: /usr/bin/proxy Нет такого файла или каталога
Comment 26 Vitaly Chikunov 2023-04-12 00:52:03 MSK
Спасибо за проверку.

> > А что у вас выводит 
> > 
> >   /usr/bin/proxy http://eepm.ru
> > 
> > если не секрет. Я думаю может это из-за libproxy.
> 
> bash: /usr/bin/proxy Нет такого файла или каталога

Нужно установить пакет libproxy-tools
Comment 27 Aleksandr Shamaraev 2023-04-12 00:55:36 MSK
$ /usr/bin/proxy http://eepm.ru
direct://
Comment 28 Vitaly Chikunov 2023-04-12 01:00:57 MSK
(In reply to gttn from comment #27)
> $ /usr/bin/proxy http://eepm.ru
> direct://

Спасибо.
Comment 29 Repository Robot 2023-04-12 08:44:55 MSK
wget-1.21.3-alt4 -> sisyphus:

 Mon Apr 10 2023 Vitaly Chikunov <vt@altlinux> 1.21.3-alt4
 - Update seccomp filtering rules (ALT#45799).
Comment 30 Vitaly Chikunov 2023-04-12 15:25:31 MSK
*** Bug 45840 has been marked as a duplicate of this bug. ***
Comment 31 Sergey V Turchin 2023-04-12 15:32:48 MSK
У меня в Plasma починилось с wget-1.21.3-alt4 и libproxy-kde.
Comment 32 Aleksandr Shamaraev 2023-04-12 22:50:18 MSK
(Ответ для Vitaly Chikunov на комментарий #22)
> (In reply to Vitaly Chikunov from comment #4)
> > Сделал тестовое задание с фиксом, его можно установить (через apt-repo) так:
> > 
> >   # apt-repo test 318311
> 
> Обновил задание 318311 с изменениями которые мы выяснили. Если хотите можете
> протестировать.

Добра! 
А Вы тестовое задание убрали? 
Просто у меня тут опять выпало в ошибку wget, только уже на другой машине где нет прокси.
wget http://eepm.ru
работает, а вот другое нет.. хотел проверить

/home/aleksandr/PortWINE/PortProton/data/scripts/functions_helper: строка 105: 44209 Неверный системный вызов                      wget -O "$2" --read-timeout 300 --retry-connrefused --timeout 15 --tries 2 --user-agent="Mozilla/5.0 (compatible; Konqueror/2.1.1; X11)" "${1}" 2>&1
     44210 Завершён        | tr '\r' '\n'
     44211 Завершён        | sed -u 's/.* \([0-9]\+%\)\ \+\([0-9,.]\+.\) \(.*\)/\1\n#Downloading at \1\/, \2\/s, ETA \3/; s/^20[0-9][0-9].*/#Done./'
     44212 Завершён        | zenity --progress --percentage=0 --title="Download ${PW_DOWNLOAD_FILE_NAME}" --text=Starting... --auto-close --width=500 --height=90
ERROR: Failed to download PROTON_LG_7-54.tar.xz from GitHub.
INFO: Try download PROTON_LG_7-54.tar.xz from FTP
Comment 33 Aleksandr Shamaraev 2023-04-12 22:56:21 MSK
105 строка это функция загрузки.. в ней

wget -O "$2" --read-timeout 300 --retry-connrefused --timeout 15 --tries 2 \
    --user-agent="Mozilla/5.0 (compatible; Konqueror/2.1.1; X11)" "${1}" 2>&1 | \
    tr '\r' '\n' | sed -u 's/.* \([0-9]\+%\)\ \+\([0-9,.]\+.\) \(.*\)/\1\n#Downloading at \1\/, \2\/s, ETA \3/; s/^20[0-9][0-9].*/#Done./' | \
    zenity --progress --percentage=0 --title="Download ${PW_DOWNLOAD_FILE_NAME}" --text=Starting... --auto-close --width=500 --height=90
Comment 34 Vitaly Chikunov 2023-04-12 23:00:40 MSK
Спасибо. Воспроизвелось. Это из-за опции `--timeout 15`. Добавлю rt_sigaction и setitimer в разрешенный список. (К сожалению с seccomp всегда так.)
Comment 35 Vitaly Chikunov 2023-04-12 23:17:28 MSK
Тестовое задание 318425. Я его уже проверил, что оно решает проблему с --timeout, но если хотите, то тоже можете протестировать, вдруг что-то ещё вылезет.
Comment 36 Aleksandr Shamaraev 2023-04-12 23:19:11 MSK
(Ответ для Vitaly Chikunov на комментарий #35)
> Тестовое задание 318425. Я его уже проверил, что оно решает проблему с
> --timeout, но если хотите, то тоже можете протестировать, вдруг что-то ещё
> вылезет.

Все работает, спасибо!
Comment 37 Vitaly Chikunov 2023-04-12 23:20:21 MSK
> Все работает, спасибо!

Спасибо за тест!
Comment 38 Repository Robot 2023-04-12 23:32:28 MSK
wget-1.21.3-alt5 -> sisyphus:

 Wed Apr 12 2023 Vitaly Chikunov <vt@altlinux> 1.21.3-alt5
 - Update seccomp filtering for '--timeout' (ALT#45799).
Comment 39 Aleksandr Shamaraev 2023-07-04 09:29:54 MSK
Добра.. 
Походу опять поломался wget
ниже все что я проделал на основе данного поста... но чета как не получилось... 
wget http://eepm.ru                                                                                                   
[1]    65542 invalid system call  wget http://eepm.ru
↑159 ~ → SECCOMP_DEFAULT_ACTION=trap SECCOMP_SYSCALL_ALLOW= strace -f -e t=none -e s=sys -- wget http://eepm.ru 
--- SIGSYS {si_signo=SIGSYS, si_code=SYS_SECCOMP, si_call_addr=0x7f9693914127, si_syscall=__NR_access, si_arch=AUDIT_ARCH_X86_64} ---
+++ killed by SIGSYS +++
[1]    65608 invalid system call  SECCOMP_DEFAULT_ACTION=trap SECCOMP_SYSCALL_ALLOW= strace -f -e t=none -e  --
↑159 ~ → SECCOMP_DEFAULT_ACTION=trap SECCOMP_SYSCALL_ALLOW=access strace -f -e t=none -e s=sys -- wget http://jey13.ru 
--- SIGSYS {si_signo=SIGSYS, si_code=SYS_SECCOMP, si_call_addr=0x7faa231254f7, si_syscall=__NR_eventfd2, si_arch=AUDIT_ARCH_X86_64} ---
+++ killed by SIGSYS +++
[1]    65701 invalid system call  SECCOMP_DEFAULT_ACTION=trap SECCOMP_SYSCALL_ALLOW=access strace -f -e t=none 
↑159 ~ → SECCOMP_DEFAULT_ACTION=trap SECCOMP_SYSCALL_ALLOW=access:eventfd2 strace -f -e t=none -e s=sys -- wget http://jey13.ru

(process:65721): GLib-ERROR **: 17:10:50.451: creating thread 'pool-spawner': Error creating thread: Ресурс временно недоступен
[1]    65718 trace trap  SECCOMP_DEFAULT_ACTION=trap SECCOMP_SYSCALL_ALLOW=access:eventfd2 strace -f -
Comment 40 Aleksandr Shamaraev 2023-07-04 09:38:41 MSK
Методом тыка добрался до такой строчки

aleksandr@test-rolling ~                                                                                                          [17:37:41]
> $ SECCOMP_DEFAULT_ACTION=trap SECCOMP_SYSCALL_ALLOW=access:gettimeofday:eventfd2 strace -f -e t=none -e s=sys -- wget http://eepm.ru      

(process:5373): GLib-ERROR **: 17:37:53.917: creating thread 'pool-spawner': Error creating thread: Ресурс временно недоступен
[1]    5370 trace trap  SECCOMP_DEFAULT_ACTION=trap SECCOMP_SYSCALL_ALLOW=access:gettimeofday:eventfd
Comment 41 Yuri N. Sedunov 2023-07-04 12:09:35 MSK
Откат libproxy до 0.4.18-alt1 лечит wget.
Comment 42 Aleksandr Shamaraev 2023-07-04 13:18:25 MSK
(Ответ для Yuri N. Sedunov на комментарий #41)
> Откат libproxy до 0.4.18-alt1 лечит wget.

Работает после отката.
Скажите, а баг на libproxy надо вешать? или данного обсуждения достаточно? интересно
Comment 43 Yuri N. Sedunov 2023-07-04 13:22:42 MSK
*** Bug 46752 has been marked as a duplicate of this bug. ***
Comment 44 Sergey V Turchin 2023-07-04 13:28:13 MSK
(Ответ для gttn на комментарий #42)
> Скажите, а баг на libproxy надо вешать?
Не. Правила seccomp у wget обновить надо.
Comment 45 Vitaly Chikunov 2023-07-04 18:48:42 MSK
Можно ли в будущем не переоткрывать один и тот же баг, а заводить новые? Заранее спасибо.

Я удалю поддержку libproxy из opensuse, это была ошибка, что я ее добавил.

Апстримный баг заведен https://github.com/libproxy/libproxy/issues/250
Comment 46 Repository Robot 2023-07-04 19:22:53 MSK
wget-1.21.4-alt2 -> sisyphus:

 Tue Jul 04 2023 Vitaly Chikunov <vt@altlinux> 1.21.4-alt2
 - Remove libproxy support (ALT#45799).