LINUX.ORG.RU
ФорумAdmin

Что даёт umount --force --lazy ? Чем ls отличается от strace ls ?

 , ,


0

1

Столкнулся с проблемой, что время от времени программы начинают подвисать при попытке прочитать домашнюю директорию. ls, mc, автодополнение в bash… Лечится перезагрузкой, но через несколько суток аптайма возвращается. (Что удивительно, strace ls ~ отрабатывает без проблем и завершается успешно.) Всё же смог установить виновника, перебирая маски — ~/nfs/ при отвалившемся VPN. umount отказался её отмонтировать — «device is busy». Помогло umount --force --lazy

В связи с этим вопросы:

  1. Что где осталось висеть после отмонтирования из-за --lazy, и чему оно может мешать в дальнейшем?

  2. Почему ls не подвисает при запуске под strace? ls чувствует, что работает в пайпе и не выполняет операцию, приводившую к бесконечному ожиданию? Может ли strace запускать программы так, чтобы её присутствие не чувствовали?

Ответ на вторую группу вопросов: в данном случае «ls» оказалось переопределено в баше как alias ls='ls --color=auto', а проблемы вызывали операции, выяснявшие, как окрашивать директорию nfs.

★★★★★

Последнее исправление: question4 (всего исправлений: 1)
Ответ на: комментарий от mord0d

NFSv3?

Как это определить?

Когда отмонтирую, сигнал об ошибке исходит от umount.nfs4. На машине, где она расшарена — Ubuntu 20.04 или 22.04 с nfs-kernel-server 1:1.3.4 или 1:2.6.1 соответственно. Как я понимаю, NFSv4 поддерживают оба. Что они включают по умолчанию?

Опция монтирования intr

man mount говорит, что она игнорируется на ядрах выше 2.6.25. У меня 5.15.32.

question4 ★★★★★
() автор топика

Странно. Обычно проблемы возникают при чтении содержимого NFS, ″ls ~″ не должен читать содержимое ″~/nfs″. Может у вас ls — это алиас, тогда strace вызывает ls с другими ключами. Вывод ls с strace и без отличаются? Вывод самого strace можно отправить в /dev/null опцией ″-o″.

Почему делали umount, а не переподключили VPN?

Если хотите безумный вариант, то можете назначить на свой комп ip-адрес NFS-сервера, удалить на него маршрут в таблице local и прописать маршрут с большой метрикой, после маршута через VPN, чтобы при упавшем VPN пакеты заворачивались обратно. Раньше всегда срабатывало и NFS сразу понимал, что шара отвалилась.

mky ★★★★★
()
Ответ на: комментарий от question4

Как это определить?

В линуксе должен быть аналог nfsstat(1), который кажет все опции монтирования, а не только указанные явно, как это делает mount(8) без аргументов.

Что они включают по умолчанию?

Если сервер не сервит V4 явно, клиент фоллбэкнется на v3, даже если по умолчанию ожидает V4.

mord0d ★★★★★
()
Ответ на: комментарий от router

Нужна опция монтирования soft, можно вместе с softreval

Да, точно. @question4, ↑

А что не так с nfs3?

Да вот то, что случилось у топикстартера: зависания намертво при попытке листинга маунтпоинта с шарой.

mord0d ★★★★★
()
Ответ на: комментарий от mky

Почему делали umount, а не переподключили VPN?

Потому что сервер отключили на выходные.

Вывод ls с strace и без отличаются?

Да.

Может у вас ls — это алиас, тогда strace вызывает ls с другими ключами.

Точно!

alias ls='ls --color=auto'

Прописано в общесистемном /etc/bash/bashrc не помню с каких времён. Я туда последний раз заглядывал лет 15 назад.

question4 ★★★★★
() автор топика
Ответ на: комментарий от mord0d

В линуксе должен быть аналог nfsstat(1), который кажет все опции монтирования, а не только указанные явно, как это делает mount(8) без аргументов.

nfsstat у меня показывает только какую-то статистику. Но видно, что статистика ненулевая только для v4. А для и v2 и v3 — только нули.

question4 ★★★★★
() автор топика