Bug 20001

Summary: Устройство сидирома удерживается в открытом состоянии
Product: Sisyphus Reporter: Michael A. Kangin <prividen>
Component: soundkonverterAssignee: rom_as <rom_as>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: normal    
Priority: P3    
Version: unstable   
Hardware: all   
OS: Linux   
Attachments:
Description Flags
Закрытие устройства сидирома после прочтения списка треков с него. none

Description Michael A. Kangin 2009-05-11 16:54:02 MSD
Программа по каким-то причинам не закрывает дивайс сидирома после диалога добавления в задание аудиотреков. Что обламывает как повторное открытие этого самого диалога ("диск не найден"), так и запуск cdparanoia на грабление, с диагнозом, что та не может открыть это устройство эксклюзивно. fuser показывает удержание устройства pid'ом soundkonverter'a.

Есть воркэраунд:
1. стартуем soundkonverter, добавляем в задание аудиотреки.
2. закрываем soundkonverter и запускаем его заново - при этом задание сохраняется, но открытия устройство не происходит.
3. Можно грабить.
Comment 1 Michael A. Kangin 2009-05-11 16:58:29 MSD
Created attachment 3526 [details]
Закрытие устройства сидирома после прочтения списка треков с него.

Я человек, сиплюсплюсу неученый, что такое конструктор деструктора и его гарбадж коллектор, не разумею, и должна ли такая конструкция в paranoia.cpp вызываться автоматически, и почему не вызывается, не знаю:

Paranoia::~Paranoia()
{
        if ( p!=0 ) paranoia_free( p );
        if (d!=0 ) cdda_close( d );
}


Мне помог простенький прилагаемый патчик. Насколько он корректный, не знаю.
Comment 2 Michael Shigorin 2009-06-07 01:09:06 MSD
Спасибо, вроде бы приложил к 0.3.9-alt5 (и автору заслал).
Comment 3 Michael A. Kangin 2009-06-07 12:54:07 MSD
great! :)