Summary: | Неправильно разбираются параметры монтирования NFS | ||||||
---|---|---|---|---|---|---|---|
Product: | Sisyphus | Reporter: | Fr. Br. George <george> | ||||
Component: | autofs | Assignee: | Sergey Bolshakov <sbolshakov> | ||||
Status: | REOPENED --- | QA Contact: | qa-sisyphus | ||||
Severity: | normal | ||||||
Priority: | P3 | CC: | boyarsh, evg, ldv, rider, sbolshakov | ||||
Version: | unstable | ||||||
Hardware: | all | ||||||
OS: | Linux | ||||||
Attachments: |
|
Description
Fr. Br. George
2012-01-10 13:01:13 MSK
Created attachment 5286 [details]
Кратко опишите вложение.
(дополнительно) Добавьте комментарий для этого вложения.
собственно, auto.avahi -- моя самодеятельность, никаких устоявшихся практик, а тем более формальных документов насчёт того, как именно должны быть представлены опции монтирования в описании зоны, нет. я предполагал, что vers *не* входит в options, а указывается отдельно, что-то вроде: --- %< --- share._nfs._tcp SRV 0 0 2049 host TXT vers=4 options=ro path=/share --- %< --- впрочем, в общем случае замечание верно. Перестало работать в p6 (или и не работало) :(. Патчик-то можно приложить, аль некошерен? что мешает указать vers= отдельнолежащей опцией ? Отсутствие прав root. Это имеет отношение к проблеме? А что-таки мешает приложить патч? правило, которое гласит, что в options содержатся только флаги (опции без значения). опции со значением указываются отдельно. . (В ответ на комментарий №7) > правило, которое гласит, что в options содержатся только флаги (опции без > значения). опции со значением указываются отдельно. А где содержится это правило? (In reply to comment #4) > что мешает указать vers= отдельнолежащей опцией ? Какие еще из нижеперечисленных опций предлагается указывать отдельно? $ man mount |colcrt |grep =value uid=value and gid=value ownmask=value and othmask=value uid=value and gid=value setuid=value and setgid=value mode=value reserved=value root=value bs=value uid=value and gid=value mode=value ptmxmode=value ptmxmode=value specifies a more useful mode for the ptmx node and is highly recommended when the uid=value and gid=value umask=value dmask=value fmask=value allow utime=value check=value codepage=value iocharset=value uid=value and gid=value umask=value uid=value and gid=value mode=value iocharset=value resize=value uid=value, gid=value and umask=value uid=value and gid=value ufstype=value onerror=value ihashsize=value logbufs=value logbsize=value sunit=value and swidth=value Давайте быстро исправим ошибку вместо того, чтобы искать пути ее объезда. Тем более что правильный патч уже давно готов. указывать отдельно предлагается vers= path= и sec=, поскольку любые другие опции со значением игнорируются, о чём кстати выдаётся предупреждение. это не ошибка, это бай дизайн. (In reply to comment #11) > указывать отдельно предлагается vers= path= и sec=, поскольку любые другие > опции со значением игнорируются, о чём кстати выдаётся предупреждение. Однако vers= в options= не игнорируется, и никаких предупреждений о том, что все плохо, при использовании vers= в options= не выдается. > это не ошибка, это бай дизайн. В таком случае это неправильный бай дизайн, который надо зафиксить. о том, что всё плохо, недвусмысленно намекается: "В результате монтирование не происходит" бай дизайном я вполне удовлетворён, дополнительная диагностика о недопустимости foo=bar в options воспоследует. (In reply to comment #13) > бай дизайном я вполне удовлетворён, дополнительная > диагностика о недопустимости foo=bar в options воспоследует. В чем причина недопустимости foo=bar в options? На соображения безопасности это не похоже. Что же это тогда? в том, что, каламбурчик-с, options are optional, тогда как комбинация vers/path нужна. И собственно, ввиду отсутствия каких-либо документов, регламентирующих размещение в записи TXT параметров монтирования nfs, люди делятся на тех, кто написал скриптъ, и тех, кто уберёт лишние запятые из зоны. (In reply to comment #15) > в том, что, каламбурчик-с, options are optional, тогда как комбинация vers/path > нужна. > И собственно, ввиду отсутствия каких-либо документов, регламентирующих > размещение в записи TXT параметров монтирования nfs, люди делятся на > тех, кто написал скриптъ, и тех, кто уберёт лишние запятые из зоны. Как насчет символа "=" в значении path=? Как насчет других опций со значениями, которые почему-то оказались хуже опций без значений? Будем и дальше отрицать здравый смысл, ссылаясь на отсутствие стандарта? Допустим, я хочу передать одну из нижеперечисленных опций: $ man nfs |colcrt |grep '^[[:space:]]*[^[:space:]=]\+=' timeo=n The time in deciseconds (tenths of a second) the NFS client waits for a response before it retrans=n The number of times the NFS client retries a request before it attempts further recovery rsize=n The maximum number of bytes in each network READ request that the NFS client can receive when wsize=n The maximum number of bytes per network WRITE request that the NFS client can send when writ‐ acregmin=n The minimum time (in seconds) that the NFS client caches attributes of a regular file before acregmax=n The maximum time (in seconds) that the NFS client caches attributes of a regular file before acdirmin=n The minimum time (in seconds) that the NFS client caches attributes of a directory before it acdirmax=n The maximum time (in seconds) that the NFS client caches attributes of a directory before it actimeo=n Using actimeo sets all of acregmin, acregmax, acdirmin, and acdirmax to the same value. If retry=n The number of minutes that the mount(8) command retries an NFS mount operation in the fore‐ sec=mode The RPCGSS security flavor to use for accessing files on this mount point. If the sec option lookupcache=mode proto=netid The transport protocol name and protocol family the NFS client uses to transmit requests to port=n The numeric value of the server's NFS service port. If the server's NFS service is not mountport=n The numeric value of the server's mountd port. If the server's mountd service is not avail‐ mountproto=netid mounthost=name The hostname of the host running mountd. If this option is not specified, the mount(8) com‐ mountvers=n The RPC version number used to contact the server's mountd. If this option is not specified, namlen=n The maximum length of a pathname component on this mount. If this option is not specified, nfsvers=n The NFS protocol version number used to contact the server's NFS service. If the server does vers=n This option is an alternative to the nfsvers option. It is included for compatibility with proto=netid The transport protocol name and protocol family the NFS client uses to transmit requests to port=n The numeric value of the server's NFS service port. If the server's NFS service is not clientaddr=n.n.n.n Мне в этом случае следует переписать скрипт /etc/auto.avahi? (В ответ на комментарий №16) > (In reply to comment #15) > > в том, что, каламбурчик-с, options are optional, тогда как комбинация vers/path > > нужна. > > И собственно, ввиду отсутствия каких-либо документов, регламентирующих > > размещение в записи TXT параметров монтирования nfs, люди делятся на > > тех, кто написал скриптъ, и тех, кто уберёт лишние запятые из зоны. > > Как насчет символа "=" в значении path=? > Как насчет других опций со значениями, которые почему-то оказались хуже опций > без значений? > Будем и дальше отрицать здравый смысл, ссылаясь на отсутствие стандарта? Предложенный патч этих проблем не решает. К тому же, *мой* здравый смысл подсказывает мне избегать решений кажущихся проблем. > Мне в этом случае следует переписать скрипт /etc/auto.avahi? С такими запросами это явно необходимо. милости прошу. Новые nfs-utils актуализировали эту багу в ещё одном месте:
@@ -46,6 +46,7 @@ discover_nfs() {
case "$vers,$path" in
,|4,) printf -- '-fstype=nfs4 %s %s:/' $options $addr ;;
4,*) printf -- '-fstype=nfs4 %s %s:%s' $options $addr $path ;;
+ 3,*) printf -- '%s %s:%s' $options,vers=3 $addr $path ;;
*,*) printf -- '%s %s:%s' $options $addr $path ;;
esac
break
Суть в том, что mount без параметров теперь v4.2 (а не v3), и обработать ни vers=3, ни -onfsversion=3 auto.avahi не может.
> > Мне в этом случае следует переписать скрипт /etc/auto.avahi?
> С такими запросами это явно необходимо. милости прошу.
Давайте, давайте уже ACL кому-нибудь дадим? Тем более, что переписывать-то две строки надо всего.
mount без параметров v4 последние несколько лет, сборка с 4.2 в качестве дефолта опубликована не была. |