Bug 15340

Summary: hal не может размонтировать дважды смонтированное устройство
Product: Sisyphus Reporter: Michael A. Kangin <mak>
Component: halAssignee: Nobody's working on this, feel free to take it <nobody>
Status: CLOSED WORKSFORME QA Contact: qa-sisyphus
Severity: normal    
Priority: P2 CC: dottedmag, evg, ldv, led, mike, thresh, wrar
Version: unstable   
Hardware: all   
OS: Linux   
Attachments:
Description Flags
hls.sh none

Description Michael A. Kangin 2008-04-13 15:01:09 MSD
Если устройство смонтированно дважды (например, при монтировании через subfs: 
/dev/sdc1 /media/usbdisk-vfat subfs rw 0 0
/dev/sdc1 /media/usbdisk-vfat vfat
rw,fmask=0022,dmask=0022,codepage=cp866,iocharset=koi8-r 0 0
) hal не в состоянии размонтировать его.

Steps to Reproduce:
1. Монтируем устройство через subfs:
# dbus-send --system --print-reply --dest=org.freedesktop.Hal
"/org/freedesktop/Hal/devices/volume_uuid_4787_A18D"
org.freedesktop.Hal.Device.Volume.Mount string:usbdisk-vfat string:subfs
array:string:

2. Смотрим, оно смонтированно один раз:
# grep sdc1 /proc/mounts
/dev/sdc1 /media/usbdisk-vfat subfs rw,nosuid,nodev 0 0

3. Делаем обращение к смонтированному ресурсу, смотрим, сколько раз
смонтированно и пытаемся отмонтировать его:
# ls usbdisk-vfat/blablabla; grep sdc1 /proc/mounts; dbus-send --system
--print-reply --dest=org.freedesktop.Hal
"/org/freedesktop/Hal/devices/volume_uuid_4787_A18D"
org.freedesktop.Hal.Device.Volume.Unmount array:string:
ls: usbdisk-vfat/blablabla: No such file or directory
/dev/sdc1 /media/usbdisk-vfat subfs rw,nosuid,nodev 0 0
/dev/sdc1 /media/usbdisk-vfat vfat
rw,nosuid,nodev,fmask=0022,dmask=0022,codepage=cp866,iocharset=koi8-r 0 0
Error org.freedesktop.Hal.Device.Volume.UnknownFailure: Cannot remove directory

4. hal считает, что устройство размонтировано, но это не так:
# grep sdc1 /proc/mounts; dbus-send --system --print-reply
--dest=org.freedesktop.Hal "/org/freedesktop/Hal/devices/volume_uuid_4787_A18D"
org.freedesktop.Hal.Device.Volume.Unmount array:string:
/dev/sdc1 /media/usbdisk-vfat subfs rw,nosuid,nodev 0 0
Error org.freedesktop.Hal.Device.Volume.UnknownFailure: umount: /dev/sdc1: not
mounted
# cat .hal-mtab
/dev/sdc1       0       0       subfs   nosuid,nodev    /media/usbdisk-vfat

5. umount от рута размонтирует устройство без проблем:
# umount usbdisk-vfat/
# cat .hal-mtab
#



Expected Results:  
Попытка размонтирования без обращения к устройству, когда оно смонтировано
только один раз, проходит нормально. Так должно быть и для двойного монтирования:
# dbus-send --system --print-reply --dest=org.freedesktop.Hal
"/org/freedesktop/Hal/devices/volume_uuid_4787_A18D"
org.freedesktop.Hal.Device.Volume.Mount string:usbdisk-vfat string:subfs
array:string:
method return sender=:1.187 -> dest=:1.386
   int32 0
# grep sdc1 /proc/mounts; dbus-send --system --print-reply
--dest=org.freedesktop.Hal "/org/freedesktop/Hal/devices/volume_uuid_4787_A18D"
org.freedesktop.Hal.Device.Volume.Unmount array:string:
/dev/sdc1 /media/usbdisk-vfat subfs rw,nosuid,nodev 0 0
method return sender=:1.187 -> dest=:1.388
   int32 0
# cat .hal-mtab
#
Comment 1 Valery Inozemtsev 2008-04-13 18:23:51 MSD
даже коментировать не буду
Comment 2 Michael A. Kangin 2008-04-13 18:29:32 MSD
(In reply to comment #1)
> даже коментировать не буду

Зря.
Например, KDE будет обламываться "безопасно извлечь" такое устройство.
Или это не проблема HAL'а?
Comment 3 Valery Inozemtsev 2008-04-13 18:33:20 MSD
1. это все проблемы костыля под названием "subfs"
2. subfs должна быть смонтирована один раз (например при загрузке системы), 
размонтировать subfs не нужно
Comment 4 Michael A. Kangin 2008-04-13 18:40:00 MSD
(In reply to comment #3)

> 2. subfs должна быть смонтирована один раз (например при загрузке системы), 
> размонтировать subfs не нужно

Это не так в случае сменных носителей типа флешек.
Comment 5 Valery Inozemtsev 2008-04-13 18:43:29 MSD
(In reply to comment #4)
> Это не так в случае сменных носителей типа флешек.

это ваше личное заблуждение. ничем помочь не могу
Comment 6 Valery Inozemtsev 2008-04-14 17:23:45 MSD
хотя нет. я добавлю в hal
Conflicts: /sbin/submountd
тем самым раз и навсегда прекращу ваши издевательства над этим разложившемся 
трупом
Comment 7 Michael A. Kangin 2008-04-14 18:46:25 MSD
(In reply to comment #6)
> хотя нет. я добавлю в hal
> Conflicts: /sbin/submountd
> тем самым раз и навсегда прекращу ваши издевательства над этим разложившемся 
> трупом

Валерий, прошу вас, не портите по пустякам жизнь мне и другим пользователям
submount. Если я в чем-то ошибся, публикую этот баг - прошу меня простить и
забыть, больше не буду.

Функциональность возможности извлечения из компьютера сменных носителей (дискет,
флешек, USB-HDD, фотоаппаратов, плееров, компакт-дисков) без всякого
предварительного явного размонтирования (в консоли ли, мышью ли) необходима (в
частности, на тощих клиентах). Если вы подскажете иное решение для этой
функциональности, кроме submount - буду признателен.
Comment 8 Michael Shigorin 2008-04-21 16:28:39 MSD
* Sun Apr 20 2008 Valery Inozemtsev <shrek@altlinux> 0.5.11-alt3
- added conflicts: submount, rest in peace (close #15340)

Эта, а можно без гильотины при лечении головной боли?!

За такое канделябром вообще-то положено :-/
Comment 9 Michael Shigorin 2008-04-21 16:30:59 MSD
P.S.

(In reply to comment #6)
> хотя нет. я добавлю в hal
> Conflicts: /sbin/submountd
> тем самым раз и навсегда прекращу ваши издевательства над этим разложившемся 
> трупом

В смысле hal?  Так это недорожанное поделие кучки гопников около fd.o надо
выкидывать тогда на уровне дистрибутива.
Comment 10 Valery Inozemtsev 2008-04-21 16:34:26 MSD
(In reply to comment #9)
> P.S.
> 
> (In reply to comment #6)
> > хотя нет. я добавлю в hal
> > Conflicts: /sbin/submountd
> > тем самым раз и навсегда прекращу ваши издевательства над этим 
разложившемся 
> > трупом
> 
> В смысле hal?  Так это недорожанное поделие кучки гопников около fd.o надо
> выкидывать тогда на уровне дистрибутива.

в смысле submount
Comment 11 Valery Inozemtsev 2008-04-21 16:39:04 MSD
(In reply to comment #8)
> * Sun Apr 20 2008 Valery Inozemtsev <shrek@altlinux> 0.5.11-alt3
> - added conflicts: submount, rest in peace (close #15340)
> 
> Эта, а можно без гильотины при лечении головной боли?!

головную боль вы сами себе создаете. submount сам себе mount и не надо 
скрещивать его с hal. в противном случае это конфликт mount'ов. т.ч. 
выбирайте - пинать дальше разложившийся труп submount, либо пользоваться 
нормальным монтированием/размонтироваение

> 
> За такое канделябром вообще-то положено :-/
канделябром положено за извлечение не размонтированного девайса
Comment 12 led 2008-04-21 16:46:18 MSD
Я понимаю, что "любовь зла - полюбишь и коз^Whal". Только, пожалуйста, не надо 
навязывать свою любовь к "козлу" другим ТАКИМ способом.
Comment 13 Valery Inozemtsev 2008-04-21 16:52:59 MSD
удалите "козла", если он вам так мешает
Comment 14 Michael Shigorin 2008-04-21 17:03:09 MSD
(In reply to comment #11)
> головную боль вы сами себе создаете. submount сам себе mount и не надо 
> скрещивать его с hal. в противном случае это конфликт mount'ов.
Ну так бы и сказал -- "не буду фиксить конфликт mount'ов", зачем ради мелочи его
_прописывать_?

Я дома использую wmaker, родители -- kde.  Только собрался перебраться наконец
со статических subfs'ов на hal+subfs -- привет, приехали :-(

Оторви pls конфликт.
Comment 15 Valery Inozemtsev 2008-04-21 17:10:58 MSD
(In reply to comment #14)
> (In reply to comment #11)
> > головную боль вы сами себе создаете. submount сам себе mount и не надо 
> > скрещивать его с hal. в противном случае это конфликт mount'ов.
> Ну так бы и сказал -- "не буду фиксить конфликт mount'ов", зачем ради мелочи 
его
> _прописывать_?

конфликт то есть, что я и обозначил

> 
> Я дома использую wmaker, родители -- kde.  Только собрался перебраться 
наконец
> со статических subfs'ов на hal+subfs -- привет, приехали :-(

а без subfs не судьба?

> 
> Оторви pls конфликт.

Comment 16 led 2008-04-21 17:14:20 MSD
(In reply to comment #15)

Можно "поиграть в салочки" - завтра в Sisyphus уйдёт submount2
Comment 17 Mikhail Gusarov 2008-04-21 17:39:39 MSD
2ldv: FYI, см. #8
Comment 18 Valery Inozemtsev 2008-04-21 18:11:40 MSD
Объясните мне зачем нужна
> Функциональность возможности извлечения из компьютера сменных носителей 
(дискет,
> флешек, USB-HDD, фотоаппаратов, плееров, компакт-дисков) без всякого
> предварительного явного размонтирования (в консоли ли, мышью ли) необходима > частности, на тощих клиентах)
и зачем потом будет нужен этот носитель с несохраненными данными?
Comment 19 Michael Shigorin 2008-04-21 22:40:48 MSD
(In reply to comment #15)
> > Ну так бы и сказал -- "не буду фиксить конфликт mount'ов", зачем ради
> > мелочи его _прописывать_?
> конфликт то есть, что я и обозначил
Пока я вижу больший конфликт мнений, чем пакетов.  Это не та ситуация, когда
стоит принимать такие резкие решения -- на таком "консенсусе" далеко не уедешь.

> > Я дома использую wmaker, родители -- kde.  Только собрался перебраться 
> > наконец со статических subfs'ов на hal+subfs -- привет, приехали :-(
> а без subfs не судьба?
Предложи что-нить столь же юзабельное из консоли?  wmvolman даже бета-тестил --
не оно, мышом тыкать надо.

(In reply to comment #18)
> и зачем потом будет нужен этот носитель с несохраненными данными?
JFYI: subfs пытается отмонтировать носитель каждые несколько секунд.  А флэшку
под записью выдрать можно вне зависимости от того, hal там или ещё какое
тамагочи, увы.

(In reply to comment #16)
> Можно "поиграть в салочки" - завтра в Sisyphus уйдёт submount2
Лучше уж тогда submount26? :)

(кроме шуток -- в Daedalus улучшенная версия)
Comment 20 Valery Inozemtsev 2008-04-21 22:54:33 MSD
(In reply to comment #19)
> Предложи что-нить столь же юзабельное из консоли?

mount

  wmvolman даже бета-тестил --
> не оно, мышом тыкать надо.

нам провославным евреям свинину есть коран не позволяет?

> (In reply to comment #16)
> > Можно "поиграть в салочки" - завтра в Sisyphus уйдёт submount2
> Лучше уж тогда submount26? :)

если вы мне внятно объясните как это выглядит глазами тупого пользователя и 
зачем это нужно, то возможно решение появится
Comment 21 Michael Shigorin 2008-04-21 23:03:34 MSD
(In reply to comment #20)
> > Предложи что-нить столь же юзабельное из консоли?
> mount
Вместо сразу ls/cd?  Ай спасибо тебе, дружище.  Я-то думал, на дворе 2008, а не
1998.  От mount руками я как-то к 1999, что ли, отвык уже.

> > wmvolman даже бета-тестил -- не оно, мышом тыкать надо.
> нам провославным евреям свинину есть коран не позволяет?
У меня руки отвалятся столько мышом тыкать.  И так с экземой кожа как вспотеет,
так вилы начинаются...

> если вы мне внятно объясните как это выглядит глазами тупого пользователя
> и зачем это нужно, то возможно решение появится
Ещё (как упоминал) не добрался посмотреть на hal-mount-subfs имени mak@, но его
многие за этот пакет уже благодарили.

Мне бы хотелось иметь возможность, воткнув сидюшку в читалку или флэшку в
кардридер, сделать ls /media/cdrom или там /media/sd_mmc и понять, что там есть.

С сидюшкой особых проблем нет, а вот переименовывать записи для usbflash и
кардридера по мере добавления дисков уже подзаколебало, собирался сам копать в
сторону hal+subfs.  Чтоб первое справлялось с приходованием блокдевайсов, а
второе -- с их прозрачным в первую очередь для консольных программ монтированием.

Ко взаимодействию с KDE некритичен пока никак :)
Comment 22 Valery Inozemtsev 2008-04-21 23:11:39 MSD
> Мне бы хотелось иметь возможность, воткнув сидюшку в читалку или флэшку в
> кардридер, сделать ls /media/cdrom или там /media/sd_mmc и понять, что там 
есть.

пока (я бы даже сказал совсем) не понятно каким боком здесь hal. строку для 
fstab нарисовать?
Comment 23 Sir Raorn 2008-04-21 23:26:40 MSD
(In reply to comment #19)
> Предложи что-нить столь же юзабельное из консоли?  wmvolman даже бета-тестил --
> не оно, мышом тыкать надо.

ivman.  Или скрипт в аттаче.
Comment 24 Sir Raorn 2008-04-21 23:27:20 MSD
Created attachment 2584 [details]
hls.sh
Comment 25 Michael Shigorin 2008-04-21 23:32:14 MSD
(In reply to comment #22)
> пока (я бы даже сказал совсем) не понятно каким боком здесь hal. строку для 
> fstab нарисовать?
Угу -- для того, у кого блокдевайс может ездить.

(In reply to comment #23)
> > не оно, мышом тыкать надо.
> ivman.  Или скрипт в аттаче.
(жалобно) Лёш, мне б работать с ними, а не микроменеджментом носителей
заниматься :-)

Вот это стоило бороть autofs, потом быстро привыкать к supermount/subfs, чтоб на
старости лет опять руками? :-)

Это ж как с zsh на bash возвращаться.  И стукаться об его деревянность на каждом
шагу.
Comment 26 Valery Inozemtsev 2008-04-22 00:19:21 MSD
Мишь, кончай флудить и почитай о чем бага.

касательно баги.
решение есть, hal может красиво монтировать/размонтировать subfs, но озвучу я 
его только после того как получу внятное объяснение зачем монтировать vfat 
таким извращенным способом
Comment 27 led 2008-04-22 00:48:44 MSD
(In reply to comment #26)
> решение есть, hal может красиво монтировать/размонтировать subfs

hal давным-давно всё отлично умеет делать, и даже без subfs. Все это знаю, 
только не знают как его попросить это делать. Гуру отверждают, что это могут 
делать только избранные, знающие "наизусть" XML, телепатию и другие колдоские 
науки:)

Comment 28 Valery Inozemtsev 2008-04-22 21:30:41 MSD
(In reply to comment #27)
> hal давным-давно всё отлично умеет делать, и даже без subfs. Все это знаю, 
> только не знают как его попросить это делать. Гуру отверждают, что это могут 
> делать только избранные, знающие "наизусть" XML, телепатию и другие 
колдоские 
> науки:)

колдовские науки знать не обязательно, как и xml и пр.
в hal-0.5.11-alt4 конфликт на submount убран, более того, для subfs появилась 
возможность указать uid
для того что бы hal не монтировал девайс дважды, нужно заменить volume.fstype 
для девайса на subfs
Comment 29 Michael Shigorin 2008-04-23 14:14:38 MSD
(In reply to comment #28)
> в hal-0.5.11-alt4 конфликт на submount убран, более того,
> для subfs появилась 
Спасибо!

> * Tue Apr 22 2008 Valery Inozemtsev <shrek@altlinux> 0.5.11-alt4
> - removed "Conflicts: submount", "Sometimes They Come Back"