Summary: | Master2.4b2: subfs слетает с CD | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Product: | Sisyphus | Reporter: | Roman Savochenko <rom_as> | ||||||||||
Component: | apt | Assignee: | Sergey V Turchin <zerg> | ||||||||||
Status: | CLOSED FIXED | QA Contact: | qa-sisyphus | ||||||||||
Severity: | blocker | ||||||||||||
Priority: | P5 | CC: | boyarsh, george, glebfm, imz, ldv, mouse, placeholder, rider, svd, voins | ||||||||||
Version: | unstable | ||||||||||||
Hardware: | all | ||||||||||||
OS: | Linux | ||||||||||||
Bug Depends on: | |||||||||||||
Bug Blocks: | 3459 | ||||||||||||
Attachments: |
|
Description
Roman Savochenko
2004-07-15 22:23:56 MSD
Эта ошибка имеет отношение к submount. Нужно, чтобы процесс, размонтирующий диски, делал исключение для файловых систем subfs и supermount. supermount - потому, что специально делать ничего не нужно, а кому-то может пригодиться. В eject, например, так. В качестве workaround могу предложить сейчас установить в конфиге: APT::CDROM::NoMount "true"; (сам не проверял - не на чем, поэтому отзыв будет интересен) Проявляется ли это при использовании apt-cdrom? Есть подозрение, что лучше лечить все-таки apt (apt-pkg/contrib/cdromutl.cc: bool UnmountCdrom(string Path)). 2mouse: что скажешь ? Возможные варианты исправления: 1. [будет не совсем корректно] Сделать (изменить, если уже есть) lua-скрипт "Scripts::Cdrom::Mount" таким образом, чтоб он проверял тип фс 2. [workaround] Прописать чего-нить в конфиге для "Acquire::cdrom::"+Path+"::Mount" "Acquire::cdrom::"+Path+"::UMount" Вроде как при непустом значении монтирование/размонтирование не будет выполняться. 3. таки сделать патч... (In reply to comment #3) > Есть подозрение, что лучше лечить все-таки apt (apt-pkg/contrib/cdromutl.cc: Я тоже так думаю. Created attachment 498 [details]
apt-dont-umount-supersubmount.patch
Проверьте только правильный ли код возврата я делаю в _exit()
Перевешиваем на apt?
Раз никто не против :-) Created attachment 499 [details]
apt-eject.patch
А вот еще вариант :-)
Для ALM2.4 бетта от 28072004 это всё ещё актуально! увеличил приоритет, жизненно необходимо для M2.4 Который из патчей является актуальным? (In reply to comment #12) > Который из патчей является актуальным? apt-eject.patch - это более простой, но менее правильный. apt-dont-umount-supersubmount.patch - правильный, только не уверен насчет кода возврата _exit() Нужна ли какая-нить дополнительная обработка при монтировании? Может в некоторых случаях надо и монтирование пропускать? (In reply to comment #14) > Нужна ли какая-нить дополнительная обработка при монтировании? Нет, максимум - сделать вид, что успешно размонтировали, если subfs или supermount. > Может в некоторых случаях надо и монтирование пропускать? subfs и supermount к этоим случаям не имеют отношения Нужно проверить как cdrecord и иже с ними работает с subfs! Дело в том что на 2.3 была проблема при попытке записать DVD из k3b при активном subfs! Проблема заключалась в ругательствах типа немогу отмонтировать /dev/scd0. Ага.. эта ошибка уже известна. Ругается dvd+rw-tools. Так что слышно про сборку с исправлением? Ничего не слышно. Я просто не могу понять, в чём проблема. (In reply to comment #19) > Ничего не слышно. Я просто не могу понять, в чём проблема. Файловые системы subfs и supermount не надо размонтировать, а apt об этом не знает. Меня не вдохновляет идея добавлять код поддержки каждой новой файловой системы в каждую программу, которая с ними работает. Господа, добавленные в Cc, прошу вас высказать свою точку зрения. (In reply to comment #21) > Меня не вдохновляет идея добавлять код поддержки каждой новой файловой системы в > каждую программу, которая с ними работает. > > Господа, добавленные в Cc, прошу вас высказать свою точку зрения. А нужно ли вообще когда-нибудь делать umount для subfs? Если нет -- то проще subfs модифицировать, чтобы на umount не реагировала. Если да -- то в каких случаях? Если umount subfs нужен только для ручной работы, тогда опять-таки модифицировать subfs, чтобы на _обычный_ umount не реагировала Если же в каких-то случаях нужно _автоматически_ размонтировать subfs -- то ой. Только программы знают, когда этот случай наступил. Безусловно, не всякая идея может служить источником вдохновения. Если же отвлечься от высоких материй, то совершенно ясно, что в данном конкретном случае придется таки попатчить apt. PS И собственно, откуда взялся supermount ? разве он у нас поддерживается ? (In reply to comment #23) > PS И собственно, откуда взялся supermount ? разве он у нас поддерживается ? Я предлагаю патчить и для него тоже, потому что: 1. Патчащему это ничего не стоит. Совсем. 2. Пользователю, хочущему supermount, попытка его использовать будет стоить столько же, сколько нам subfs. Но он не осилит в одиночку все патчи, включая eject, apt, dvd+rw-tools, kde, остальное не помню. Master 2.4 beta до сих пор воспроизводится. Дмитрий, что мне следует предпринять, чтобы наконец было найдено какое-то решение ? Текущее состояние пакета неприемлемо. Please check apt-0.5.15cnc6-alt6, completetly untested patch just uploaded to current. В сообщении от Среда 08 Сентябрь 2004 16:46 Alexander Kuprin
написал(a):
> Добрый день.
>
> Наблюдается странная особенность при установке пакетов с дисков
> -- APT иногда не дожидается, когда сменят CD и сообщает об ошибке
> "...123 No medium..." При этом 100% повторения этой ошибки
> получить не могу -- то есть, то нет. Кто-то сталкивался с таким?
> Есть способ побороть?
>
> Аutofs отключён. Строка из /etc/fstab:
> /dev/cdrom /mnt/cdrom subfs fs=cdfss,kudzu,noexec,nodev,nosuid,ro
> 0 0
В релизе Master 2.4 ошибка продолжает стабильно воспроизводиться: после apt-get и apt-cdrom диск, подключенный через subfs, остаётся неотмонтированным Насколько я понимаю, именно этого и хотели добиться (чтобы subfs не слетал). (In reply to comment #30) > Насколько я понимаю, именно этого и хотели добиться (чтобы subfs не слетал). Да, именно так (In reply to comment #31) > (In reply to comment #30) > > Насколько я понимаю, именно этого и хотели добиться (чтобы subfs не слетал). > Да, именно так Только не работает, CD все-равно размонтируется. apt-0.5.15cnc6-alt6 Забыл переоткрыть Блин. В Installer 2.9.9.5 слетает. Created attachment 879 [details]
apt-0.5.15cnc6-alt-umount.patch
fixed version of patch
Created attachment 884 [details]
apt-0.5.15cnc6-alt-umount.patch
fixed and verified
Zerg, я не понял, зачем ты запостил патч, который я приложил ещё в августе прошлого года? (In reply to comment #37) > Zerg, я не понял, зачем ты запостил патч, который я приложил ещё в августе > прошлого года? Почему ты так подумал? Просто имя файла совпадает. Содержимое файлов тоже совпадает. (In reply to comment #39) > Содержимое файлов тоже совпадает. Если ты про https://bugzilla.altlinux.org/attachment.cgi?id=884 , то наверное у тебя из кэша. Zerg, либо ты глючишь, либо глючит софт, которым ты пользуешься. (In reply to comment #41) > Zerg, либо ты глючишь, либо глючит софт, которым ты пользуешься. Тогда в Master 2.2 apt отлично работает с subfs и ничего исправлять не надо было :-) (In reply to comment #42) > в Master 2.2 точнее, в Master 2.4 Zerg, тогда разбирайся сам. (In reply to comment #44) > Zerg, тогда разбирайся сам. С твоими глюками? Или ты все же объяснишь конкретно, в чем у тебя проблема? Содержимое файлов не совпадает. Вот то, что приложено (старый патч): @@ -34,6 +34,7 @@ #include <sys/stat.h> #include <unistd.h> #include <stdio.h> +#include <mntent.h> /*}}}*/ // IsMounted - Returns true if the mount point is mounted /*{{{*/ @@ -100,6 +102,17 @@ bool UnmountCdrom(string Path) } else { + FILE *f; + if ((f = setmntent (MOUNTED, "r")) != NULL) + { + struct mntent *mnt; + while ((mnt = getmntent (f)) != NULL) + if (strcmp (Path.c_str(), mnt->mnt_fsname) == 0) + if ((strcmp ("subfs", mnt->mnt_type) == 0) || (strcmp ("supermount", mnt->mnt_type) != 0)) + _exit(0); + endmntent (f); + } + В новой версии Zerg'а читается /proc/mounts, у тебя же - /etc/mtab Далее - посмотри на условие - в subfs проверка идет на равенство нулю, а в supermount - на неравенство. Явно где-то ошибка. В общем новый патч проверен, гарантированно работает, прикладывать можно смело. Ну значит я сравнивал патч Zerg'а с ним же. Достоверно известно, что в -alt11 патч правильный. В 2.9.9.6 не слетает. (In reply to comment #48) > В 2.9.9.6 не слетает. Да, там патч уже приложен. |