Summary: | Поломался wget | ||||||
---|---|---|---|---|---|---|---|
Product: | Sisyphus | Reporter: | Aleksandr Shamaraev <delphicoder> | ||||
Component: | wget | Assignee: | 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 | ||||||
See Also: | https://bugzilla.altlinux.org/show_bug.cgi?id=51563 | ||||||
Attachments: |
|
Description
Aleksandr Shamaraev
2023-04-10 12:08:27 MSK
Спасибо за багрепорт. У вас используется http proxy, tsocks, fakeroot? Покажите, пожалуйста, чему равна переменная LD_PRELOAD перед запуском этой команды: echo $LD_PRELOAD ps. Временный объезд проблемы пока мы её не решим: export SECCOMP_DEFAULT_ACTION=allow > ps. Временный объезд проблемы пока мы её не решим:
Возможный, так как прочны пока не ясны, напишите заодно помог ли он, пожалуйста.
Я протестировал с 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 Сделал тестовое задание с фиксом, его можно установить (через apt-repo) так: # apt-repo test 318311 После этого надо удалить переменные которые мы использовали для тестирования: unset SECCOMP_DEFAULT_ACTION unset SECCOMP_SYSCALL_ALLOW и протестировать заново. Сообщите, пожалуйста, помог ли фикс. (Ответ для Vitaly Chikunov на комментарий #4) > Сделал тестовое задание с фиксом, его можно установить (через apt-repo) так: > > # apt-repo test 318311 > Здравствуйте! Завтра на работе проверю, потом Вам отпишусь. Сейчас у меня почти 23:00 (Ответ для 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 Сделал это.. unset SECCOMP_DEFAULT_ACTION unset SECCOMP_SYSCALL_ALLOW export SECCOMP_SYSCALL_ALLOW=getsockopt Не работает Если не ошибаюсь у нас http proxy Спасибо. Попробую воспроизвести ситуацию с http proxy. (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=". --- 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 +++ Неверный системный вызов (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 плс. Но я уже догадываюсь что оно пытается запустить процесс для ввода пароля. Сделал unset SECCOMP_DEFAULT_ACTION unset SECCOMP_SYSCALL_ALLOW export SECCOMP_SYSCALL_ALLOW=pipe2 попробовал wget http://eepm.ru не работает Неверный системный вызов Я имел ввиду сделать вот так $ SECCOMP_DEFAULT_ACTION=trap SECCOMP_SYSCALL_ALLOW=pipe2 strace -f -e t=none -e s=sys -- wget http://eepm.ru Но может понадобиться ещё несколько запусков с изменением параметров. Если хотите можно попробовать - пишите что какая ошибка будет выпадать я я как менять команду запуска. 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 +++ Неверный системный вызов ну давайте добьем этот вопрос ) > ну давайте добьем этот вопрос ) SECCOMP_DEFAULT_ACTION=trap SECCOMP_SYSCALL_ALLOW=pipe2:getresuid strace -f -e t=none -e s=sys -- wget http://eepm.ru В общем я понял что Вы делали, ниже строчка как все работает SECCOMP_DEFAULT_ACTION=trap SECCOMP_SYSCALL_ALLOW=pipe2:getresuid:getresgid:geteuid strace -f -e t=none -e s=sys -- wget http://eepm.ru (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 Если конечно там ничего секретного. > grep askpass /etc/wgetrc пусто > grep askpass ~/.wgetrc grep: /home/xxx/.wgetrc нет такого файла или каталога > echo $WGET_ASKPASS пусто > echo $SSH_ASKPASS /usr/lib/openssh/ssh-askpass Не знаю Важно нет... машина в windows домене > grep askpass /etc/wgetrc
вот тут даже не то что пусто, тут просто ничего не происходит )
Спасибо за помощь. Пока я не до конца понял причины, но, по крайней мере, есть над чем подумать. (In reply to Vitaly Chikunov from comment #4) > Сделал тестовое задание с фиксом, его можно установить (через apt-repo) так: > > # apt-repo test 318311 Обновил задание 318311 с изменениями которые мы выяснили. Если хотите можете протестировать. А что у вас выводит /usr/bin/proxy http://eepm.ru если не секрет. Я думаю может это из-за libproxy. (Ответ для Vitaly Chikunov на комментарий #22) > (In reply to Vitaly Chikunov from comment #4) > > Сделал тестовое задание с фиксом, его можно установить (через apt-repo) так: > > > > # apt-repo test 318311 > > Обновил задание 318311 с изменениями которые мы выяснили. Если хотите можете > протестировать. Здравствуйте, обновился, сейчас все нормально работает! Спасибо ) (Ответ для Vitaly Chikunov на комментарий #23) > А что у вас выводит > > /usr/bin/proxy http://eepm.ru > > если не секрет. Я думаю может это из-за libproxy. bash: /usr/bin/proxy Нет такого файла или каталога Спасибо за проверку.
> > А что у вас выводит
> >
> > /usr/bin/proxy http://eepm.ru
> >
> > если не секрет. Я думаю может это из-за libproxy.
>
> bash: /usr/bin/proxy Нет такого файла или каталога
Нужно установить пакет libproxy-tools
$ /usr/bin/proxy http://eepm.ru direct:// (In reply to gttn from comment #27) > $ /usr/bin/proxy http://eepm.ru > direct:// Спасибо. wget-1.21.3-alt4 -> sisyphus: Mon Apr 10 2023 Vitaly Chikunov <vt@altlinux> 1.21.3-alt4 - Update seccomp filtering rules (ALT#45799). *** Bug 45840 has been marked as a duplicate of this bug. *** У меня в Plasma починилось с wget-1.21.3-alt4 и libproxy-kde. (Ответ для 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 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 Спасибо. Воспроизвелось. Это из-за опции `--timeout 15`. Добавлю rt_sigaction и setitimer в разрешенный список. (К сожалению с seccomp всегда так.) Тестовое задание 318425. Я его уже проверил, что оно решает проблему с --timeout, но если хотите, то тоже можете протестировать, вдруг что-то ещё вылезет. (Ответ для Vitaly Chikunov на комментарий #35) > Тестовое задание 318425. Я его уже проверил, что оно решает проблему с > --timeout, но если хотите, то тоже можете протестировать, вдруг что-то ещё > вылезет. Все работает, спасибо! > Все работает, спасибо!
Спасибо за тест!
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). Добра.. Походу опять поломался 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 - Методом тыка добрался до такой строчки
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
Откат libproxy до 0.4.18-alt1 лечит wget. (Ответ для Yuri N. Sedunov на комментарий #41) > Откат libproxy до 0.4.18-alt1 лечит wget. Работает после отката. Скажите, а баг на libproxy надо вешать? или данного обсуждения достаточно? интересно *** Bug 46752 has been marked as a duplicate of this bug. *** (Ответ для gttn на комментарий #42) > Скажите, а баг на libproxy надо вешать? Не. Правила seccomp у wget обновить надо. Можно ли в будущем не переоткрывать один и тот же баг, а заводить новые? Заранее спасибо. Я удалю поддержку libproxy из opensuse, это была ошибка, что я ее добавил. Апстримный баг заведен https://github.com/libproxy/libproxy/issues/250 wget-1.21.4-alt2 -> sisyphus: Tue Jul 04 2023 Vitaly Chikunov <vt@altlinux> 1.21.4-alt2 - Remove libproxy support (ALT#45799). |