Summary: | Amarok detect my ipod even if not mounted and think it's | ||
---|---|---|---|
Product: | [Applications] amarok | Reporter: | Bruno Bigras <bigras.bruno> |
Component: | Collections/iPod iPhone | Assignee: | Amarok Developers <amarok-bugs-dist> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | aikawarazuni, aumuell, matej |
Priority: | NOR | ||
Version: | 2.3-GIT | ||
Target Milestone: | --- | ||
Platform: | Ubuntu | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: | |||
Attachments: | initialize dialog |
Description
Bruno Bigras
2010-02-07 23:53:28 UTC
Created attachment 40598 [details]
initialize dialog
here's the "do you want to initialize your ipod" dialog. also note the I18N_ARGUMENT_MISSING thing.
Sorry, but why did you not ask it to be initialized? That's the whole point of this dialog, no? (In reply to comment #2) > Sorry, but why did you not ask it to be initialized? That's the whole point of > this dialog, no? Because I was afraid it was going to wipe my ipod's memory. And it worked perfectly once I mounted it. I don't remember seeing Amarok detect my ipod when it's not mounted. Well, it is a new feature brought in by this commit yesterday: commit 7caac83e14c837e947231be208f1805d9879fddb that's what you get when using the git version :) I still fail to see where there is a bug... (In reply to comment #4) > Well, it is a new feature brought in by this commit yesterday: > commit 7caac83e14c837e947231be208f1805d9879fddb > > that's what you get when using the git version :) I still fail to see where > there is a bug... I think the problem only occurs after I delete amarok's configs files. Maybe it's a bug if Amarok thinks my ipod is not initialized even if it already is. Or if when I agree to initialize my already initialized ipod, Amarok show an ipod with 0 songs but see all of my 457 songs as soon as I manually mount it. Or if even after I did initialize it, Amarok still tells me it's not the next time I run it (after deleting the configs). about the I18N_ARGUMENT_MISSING thing, should I open a bug report or something? there's also one when I mouse over the progress bar that show the space left on the device. BTW, Seb is also seeing this problem: "I recently saw this warning when starting amarok with my ipod plugged in: http://imagebin.ca/view/ZwagUkAt.html Now obviously that is wrong :). Everything seems okay when plugging in the ipod after amarok has already started." So, the problem happens if you have your iPod plugged in but did not mount it before starting Amarok? (In reply to comment #6) > BTW, Seb is also seeing this problem: > "I recently saw this warning when starting amarok with my ipod plugged in: > > http://imagebin.ca/view/ZwagUkAt.html > > Now obviously that is wrong :). Everything seems okay when plugging in > the ipod after amarok has already started." > > So, the problem happens if you have your iPod plugged in but did not mount it > before starting Amarok? Yes, it also happened while Amarok was already running and I plugged my ipod. I don't have automatic mounting on at the moment. not sure if it could help but this is what happens before the "do you want to initialize the ipod" dialog shows. bruno@t61p:~/.kde/share/config$ amarok --debug amarok: BEGIN: App::App() amarok: BEGIN: void App::continueInit() amarok: BEGIN: EngineController::EngineController() amarok: BEGIN: void EngineController::initializePhonon() amarok(22607)/kdecore (KSycoca) KSycocaPrivate::openDatabase: Trying to open ksycoca from "/var/tmp/kdecache-bruno/ksycoca4" amarok(22607) Phonon::KdePlatformPlugin::createBackend: using backend: "Xine" amarok: [EngineController] Tick Interval (actual): 100 amarok: END__: void EngineController::initializePhonon() - Took 0.43s amarok: END__: EngineController::EngineController() - Took 0.43s amarok: BEGIN: MainWindow::MainWindow() amarok: BEGIN: Playlist::Model::Model(QObject*) amarok: BrowserCategoryList named "internet" starting... amarok: BEGIN: BrowserCategoryListDelegate::BrowserCategoryListDelegate(QTreeView*) amarok: END__: BrowserCategoryListDelegate::BrowserCategoryListDelegate(QTreeView*) - Took 0.0001s amarok: We are sorting!! amarok: ServiceBrowser starting... amarok: BEGIN: void ServicePluginManager::collect() amarok: [PluginManager] Plugin trader constraint: "[X-KDE-Amarok-framework-version] == 52 and [X-KDE-Amarok-plugintype] == 'service' and [X-KDE-Amarok-rank] > 0" amarok: Received [ "6" ] collection plugin offers amarok: BEGIN: static Amarok::Plugin* PluginManager::createFromService(KSharedPtr<KService>) amarok: [PluginManager] Trying to load: "amarok_service_ampache" amarok: BEGIN: void CollectionManager::init() amarok: BEGIN: TimecodeTrackProvider::TimecodeTrackProvider() amarok: END__: TimecodeTrackProvider::TimecodeTrackProvider() - Took 5.7e-05s amarok: [PluginManager] Plugin trader constraint: "[X-KDE-Amarok-framework-version] == 52 and [X-KDE-Amarok-plugintype] == 'collection' and [X-KDE-Amarok-rank] > 0" amarok: [CollectionManager] Received [ "7" ] collection plugin offers amarok: [CollectionManager] Initialising sqlcollection amarok: Connected to MySQL server 5.1.37-1ubuntu5-embedded amarok: Connected to MySQL server 5.1.37-1ubuntu5-embedded amarok: Initialized thread, count== 1 amarok: BEGIN: void MountPointManager::init() amarok: [PluginManager] Plugin trader constraint: "[X-KDE-Amarok-framework-version] == 52 and [X-KDE-Amarok-plugintype] == 'device' and [X-KDE-Amarok-rank] > 0" amarok: [MountPointManager] Received [ "1" ] device plugin offers amarok: BEGIN: static Amarok::Plugin* PluginManager::createFromService(KSharedPtr<KService>) amarok: [PluginManager] Trying to load: "amarok_massstorage-device" amarok: [PluginManager] " " PluginManager Service Info: " " --------------------------- " " name : "Mass Storage Device" " " library : "amarok_massstorage-device" " " desktopEntryPath : "amarok_massstorage-device.desktop" " " X-KDE-Amarok-plugintype : "device" " " X-KDE-Amarok-name : "massstorage-device" " " X-KDE-Amarok-authors : ("Maximilian Kossick") " " X-KDE-Amarok-rank : "100" " " X-KDE-Amarok-version : "1" " " X-KDE-Amarok-framework-version: "52" amarok: END__: static Amarok::Plugin* PluginManager::createFromService(KSharedPtr<KService>) - Took 0.0013s amarok: [MountPointManager] Device added and mounted, checking handlers amarok: [MountPointManager] found handler for "/org/freedesktop/Hal/devices/volume_uuid_E1C4_1E0C" amarok: BEGIN: virtual DeviceHandler* MassStorageDeviceHandlerFactory::createHandler(const Solid::Device&, const QString&) const amarok: END__: virtual DeviceHandler* MassStorageDeviceHandlerFactory::createHandler(const Solid::Device&, const QString&) const - Took 0.00019s amarok: [MountPointManager] Factory "uuid" could not create device handler amarok: [MountPointManager] Device added and mounted, checking handlers amarok: [MountPointManager] found handler for "/org/freedesktop/Hal/devices/volume_uuid_1da31f15_01d7_40d4_858f_07bfa66a34a7" amarok: BEGIN: virtual DeviceHandler* MassStorageDeviceHandlerFactory::createHandler(const Solid::Device&, const QString&) const amarok: [MassStorageDeviceHandler] Volume isn't valid, can't create a handler amarok: END__: virtual DeviceHandler* MassStorageDeviceHandlerFactory::createHandler(const Solid::Device&, const QString&) const - Took 9.6e-05s amarok: [MountPointManager] Factory "uuid" could not create device handler amarok: [MountPointManager] Device added and mounted, checking handlers amarok: [MountPointManager] Device added and mounted, checking handlers amarok: END__: void MountPointManager::init() - Took 0.024s amarok: BEGIN: ScanManager::ScanManager(QObject*) amarok: BEGIN: SqlCollectionDBusHandler::SqlCollectionDBusHandler(QObject*) amarok: Register object: true amarok: END__: SqlCollectionDBusHandler::SqlCollectionDBusHandler(QObject*) - Took 0.00016s amarok: END__: ScanManager::ScanManager(QObject*) - Took 0.00029s amarok: BEGIN: void CollectionManager::slotNewCollection(Amarok::Collection*) amarok: END__: void CollectionManager::slotNewCollection(Amarok::Collection*) - Took 0.00016s amarok: BEGIN: MediaDeviceMonitor::MediaDeviceMonitor() amarok: BEGIN: void MediaDeviceMonitor::init() amarok: BEGIN: MediaDeviceCache::MediaDeviceCache() amarok: END__: MediaDeviceCache::MediaDeviceCache() - Took 7.6e-05s amarok: END__: void MediaDeviceMonitor::init() - Took 0.00021s amarok: END__: MediaDeviceMonitor::MediaDeviceMonitor() - Took 0.00032s amarok: BEGIN: void MediaDeviceMonitor::registerDeviceType(ConnectionAssistant*) amarok: BEGIN: void MediaDeviceMonitor::checkDevicesFor(ConnectionAssistant*) amarok: BEGIN: QStringList MediaDeviceMonitor::getDevices() amarok: BEGIN: void MediaDeviceCache::refreshCache() amarok: [MediaDeviceCache] Found Solid PMP that is also a StorageDrive, skipping amarok: [MediaDeviceCache] Found Solid::DeviceInterface::StorageAccess with udi = "/org/freedesktop/Hal/devices/volume_uuid_E1C4_1E0C" amarok: [MediaDeviceCache] Device name is = "IPOD" and was made by "" amarok: [MediaDeviceCache] Solid device is not accessible, will wait until it is to consider it added. amarok: [MediaDeviceCache] Found Solid::DeviceInterface::StorageAccess with udi = "/org/freedesktop/Hal/devices/volume_part2_size_1024" amarok: [MediaDeviceCache] Device name is = "Volume" and was made by "" amarok: [MediaDeviceCache] Found Solid::DeviceInterface::StorageAccess with udi = "/org/freedesktop/Hal/devices/volume_uuid_1da31f15_01d7_40d4_858f_07bfa66a34a7" amarok: [MediaDeviceCache] Device name is = "Volume (swap)" and was made by "" amarok: [MediaDeviceCache] Found Solid::DeviceInterface::StorageAccess with udi = "/org/freedesktop/Hal/devices/volume_uuid_4d2f4ccc_b9a4_4950_a9a3_912ebe415115" amarok: [MediaDeviceCache] Device name is = "Volume (ext4)" and was made by "" amarok: [MediaDeviceCache] Found Solid::DeviceInterface::StorageDrive with udi = "/org/freedesktop/Hal/devices/storage_serial_Apple_iPod_000A27001B061614_0_0" amarok: [MediaDeviceCache] Device name is = "iPod" and was made by "Apple" amarok: [MediaDeviceCache] Found Solid::DeviceInterface::StorageDrive with udi = "/org/freedesktop/Hal/devices/storage_model_DVDRAM_GSA_U10N" amarok: [MediaDeviceCache] Device name is = "DVDRAM GSA-U10N" and was made by "HL-DT-ST" amarok: [MediaDeviceCache] Found Solid::DeviceInterface::StorageDrive with udi = "/org/freedesktop/Hal/devices/storage_serial_HITACHI_HTS722016K9SA00_071027DP1D10DFG5335P" amarok: [MediaDeviceCache] Device name is = "HITACHI HTS72201" and was made by "ATA" amarok: END__: void MediaDeviceCache::refreshCache() - Took 0.0079s amarok: END__: QStringList MediaDeviceMonitor::getDevices() - Took 0.008s amarok: BEGIN: virtual bool MtpConnectionAssistant::identify(const QString&) amarok: Not a PMP amarok: END__: virtual bool MtpConnectionAssistant::identify(const QString&) - Took 0.01s amarok: BEGIN: virtual bool MtpConnectionAssistant::identify(const QString&) amarok: Supported Protocols: ("storage", "ipod") amarok: END__: virtual bool MtpConnectionAssistant::identify(const QString&) - Took 0.006s amarok: BEGIN: virtual bool MtpConnectionAssistant::identify(const QString&) amarok: Not a PMP amarok: END__: virtual bool MtpConnectionAssistant::identify(const QString&) - Took 0.00049s amarok: BEGIN: virtual bool MtpConnectionAssistant::identify(const QString&) amarok: Not a PMP amarok: END__: virtual bool MtpConnectionAssistant::identify(const QString&) - Took 0.00036s amarok: END__: void MediaDeviceMonitor::checkDevicesFor(ConnectionAssistant*) - Took 0.026s amarok: END__: void MediaDeviceMonitor::registerDeviceType(ConnectionAssistant*) - Took 0.026s amarok: BEGIN: void MediaDeviceMonitor::registerDeviceType(ConnectionAssistant*) amarok: END__: void MediaDeviceMonitor::registerDeviceType(ConnectionAssistant*) - Took 8.2e-05s amarok: BEGIN: void MediaDeviceMonitor::registerDeviceType(ConnectionAssistant*) amarok: BEGIN: void MediaDeviceMonitor::checkDevicesFor(ConnectionAssistant*) amarok: BEGIN: QStringList MediaDeviceMonitor::getDevices() amarok: BEGIN: void MediaDeviceCache::refreshCache() amarok: [MediaDeviceCache] Found Solid PMP that is also a StorageDrive, skipping amarok: [MediaDeviceCache] Found Solid::DeviceInterface::StorageAccess with udi = "/org/freedesktop/Hal/devices/volume_uuid_E1C4_1E0C" amarok: [MediaDeviceCache] Device name is = "IPOD" and was made by "" amarok: [MediaDeviceCache] Solid device is not accessible, will wait until it is to consider it added. amarok: [MediaDeviceCache] Found Solid::DeviceInterface::StorageAccess with udi = "/org/freedesktop/Hal/devices/volume_part2_size_1024" amarok: [MediaDeviceCache] Device name is = "Volume" and was made by "" amarok: [MediaDeviceCache] Found Solid::DeviceInterface::StorageAccess with udi = "/org/freedesktop/Hal/devices/volume_uuid_1da31f15_01d7_40d4_858f_07bfa66a34a7" amarok: [MediaDeviceCache] Device name is = "Volume (swap)" and was made by "" amarok: [MediaDeviceCache] Found Solid::DeviceInterface::StorageAccess with udi = "/org/freedesktop/Hal/devices/volume_uuid_4d2f4ccc_b9a4_4950_a9a3_912ebe415115" amarok: [MediaDeviceCache] Device name is = "Volume (ext4)" and was made by "" amarok: [MediaDeviceCache] Found Solid::DeviceInterface::StorageDrive with udi = "/org/freedesktop/Hal/devices/storage_serial_Apple_iPod_000A27001B061614_0_0" amarok: [MediaDeviceCache] Device name is = "iPod" and was made by "Apple" amarok: [MediaDeviceCache] Found Solid::DeviceInterface::StorageDrive with udi = "/org/freedesktop/Hal/devices/storage_model_DVDRAM_GSA_U10N" amarok: [MediaDeviceCache] Device name is = "DVDRAM GSA-U10N" and was made by "HL-DT-ST" amarok: [MediaDeviceCache] Found Solid::DeviceInterface::StorageDrive with udi = "/org/freedesktop/Hal/devices/storage_serial_HITACHI_HTS722016K9SA00_071027DP1D10DFG5335P" amarok: [MediaDeviceCache] Device name is = "HITACHI HTS72201" and was made by "ATA" amarok: END__: void MediaDeviceCache::refreshCache() - Took 0.0023s amarok: END__: QStringList MediaDeviceMonitor::getDevices() - Took 0.0024s amarok: BEGIN: virtual bool AudioCdConnectionAssistant::identify(const QString&) amarok: END__: virtual bool AudioCdConnectionAssistant::identify(const QString&) - Took 0.00038s amarok: BEGIN: virtual bool AudioCdConnectionAssistant::identify(const QString&) amarok: END__: virtual bool AudioCdConnectionAssistant::identify(const QString&) - Took 0.00032s amarok: BEGIN: virtual bool AudioCdConnectionAssistant::identify(const QString&) amarok: END__: virtual bool AudioCdConnectionAssistant::identify(const QString&) - Took 0.00032s amarok: BEGIN: virtual bool AudioCdConnectionAssistant::identify(const QString&) amarok: END__: virtual bool AudioCdConnectionAssistant::identify(const QString&) - Took 6.1e-05s amarok: END__: void MediaDeviceMonitor::checkDevicesFor(ConnectionAssistant*) - Took 0.0038s amarok: END__: void MediaDeviceMonitor::registerDeviceType(ConnectionAssistant*) - Took 0.0039s amarok: BEGIN: virtual void DaapCollectionFactory::init() amarok: END__: virtual void DaapCollectionFactory::init() - Took 0.0032s amarok: BEGIN: void MediaDeviceMonitor::registerDeviceType(ConnectionAssistant*) amarok: BEGIN: void MediaDeviceMonitor::checkDevicesFor(ConnectionAssistant*) amarok: BEGIN: QStringList MediaDeviceMonitor::getDevices() amarok: BEGIN: void MediaDeviceCache::refreshCache() amarok: [MediaDeviceCache] Found Solid PMP that is also a StorageDrive, skipping amarok: [MediaDeviceCache] Found Solid::DeviceInterface::StorageAccess with udi = "/org/freedesktop/Hal/devices/volume_uuid_E1C4_1E0C" amarok: [MediaDeviceCache] Device name is = "IPOD" and was made by "" amarok: [MediaDeviceCache] Solid device is not accessible, will wait until it is to consider it added. amarok: [MediaDeviceCache] Found Solid::DeviceInterface::StorageAccess with udi = "/org/freedesktop/Hal/devices/volume_part2_size_1024" amarok: [MediaDeviceCache] Device name is = "Volume" and was made by "" amarok: [MediaDeviceCache] Found Solid::DeviceInterface::StorageAccess with udi = "/org/freedesktop/Hal/devices/volume_uuid_1da31f15_01d7_40d4_858f_07bfa66a34a7" amarok: [MediaDeviceCache] Device name is = "Volume (swap)" and was made by "" amarok: [MediaDeviceCache] Found Solid::DeviceInterface::StorageAccess with udi = "/org/freedesktop/Hal/devices/volume_uuid_4d2f4ccc_b9a4_4950_a9a3_912ebe415115" amarok: [MediaDeviceCache] Device name is = "Volume (ext4)" and was made by "" amarok: [MediaDeviceCache] Found Solid::DeviceInterface::StorageDrive with udi = "/org/freedesktop/Hal/devices/storage_serial_Apple_iPod_000A27001B061614_0_0" amarok: [MediaDeviceCache] Device name is = "iPod" and was made by "Apple" amarok: [MediaDeviceCache] Found Solid::DeviceInterface::StorageDrive with udi = "/org/freedesktop/Hal/devices/storage_model_DVDRAM_GSA_U10N" amarok: [MediaDeviceCache] Device name is = "DVDRAM GSA-U10N" and was made by "HL-DT-ST" amarok: [MediaDeviceCache] Found Solid::DeviceInterface::StorageDrive with udi = "/org/freedesktop/Hal/devices/storage_serial_HITACHI_HTS722016K9SA00_071027DP1D10DFG5335P" amarok: [MediaDeviceCache] Device name is = "HITACHI HTS72201" and was made by "ATA" amarok: END__: void MediaDeviceCache::refreshCache() - Took 0.0026s amarok: END__: QStringList MediaDeviceMonitor::getDevices() - Took 0.0027s amarok: BEGIN: virtual bool IpodConnectionAssistant::identify(const QString&) amarok: Device udi: "/org/freedesktop/Hal/devices/storage_model_DVDRAM_GSA_U10N" amarok: Device name: "HL-DT-ST - DVDRAM GSA-U10N" amarok: BEGIN: const QString MediaDeviceCache::volumeMountPoint(const QString&) const amarok: [MediaDeviceCache] Not able to convert to StorageAccess or not accessible, returning empty amarok: END__: const QString MediaDeviceCache::volumeMountPoint(const QString&) const - Took 0.00011s amarok: Mount point: "" amarok: vendor: "HL-DT-ST" , product: "DVDRAM GSA-U10N" amarok: END__: virtual bool IpodConnectionAssistant::identify(const QString&) - Took 0.00042s amarok: BEGIN: virtual bool IpodConnectionAssistant::identify(const QString&) amarok: Device udi: "/org/freedesktop/Hal/devices/storage_serial_Apple_iPod_000A27001B061614_0_0" amarok: Device name: "Apple - iPod" amarok: BEGIN: const QString MediaDeviceCache::volumeMountPoint(const QString&) const amarok: [MediaDeviceCache] Not able to convert to StorageAccess or not accessible, returning empty amarok: END__: const QString MediaDeviceCache::volumeMountPoint(const QString&) const - Took 9.5e-05s amarok: Mount point: "" amarok: vendor: "Apple" , product: "iPod" amarok: Supported protocols: ("storage", "ipod") amarok: Supported drivers: () amarok: END__: virtual bool IpodConnectionAssistant::identify(const QString&) - Took 0.00043s amarok: [MediaDeviceMonitor] Device identified with udi: "/org/freedesktop/Hal/devices/storage_serial_Apple_iPod_000A27001B061614_0_0" amarok: BEGIN: virtual void ConnectionAssistant::tellIdentified(const QString&) amarok: BEGIN: const QString MediaDeviceCache::volumeMountPoint(const QString&) const amarok: [MediaDeviceCache] Not able to convert to StorageAccess or not accessible, returning empty amarok: END__: const QString MediaDeviceCache::volumeMountPoint(const QString&) const - Took 9.5e-05s amarok: BEGIN: IpodCollection::IpodCollection(MediaDeviceInfo*) amarok: [IpodCollection] Mounted at: "" amarok: [IpodCollection] set mountpoint to "/home/bruno/.kde/share/apps/amarok/tmp/imobiledevice" amarok: BEGIN: Meta::MediaDeviceHandler::MediaDeviceHandler(QObject*) amarok: END__: Meta::MediaDeviceHandler::MediaDeviceHandler(QObject*) - Took 8.7e-05s amarok(22607)/kdecore (kdelibs) KTempDir::create: KTempDir: Temporary directory created : "/tmp/kde-bruno/amarok9VimOK/" amarok: BEGIN: Meta::IpodHandler::IpodHandler(IpodCollection*, const IpodDeviceInfo*) amarok: END__: Meta::IpodHandler::IpodHandler(IpodCollection*, const IpodDeviceInfo*) - Took 0.00033s amarok: END__: IpodCollection::IpodCollection(MediaDeviceInfo*) - Took 0.0048s amarok: [IpodHandler] Successfully mounted imobiledevice using ifuse on "/home/bruno/.kde/share/apps/amarok/tmp/imobiledevice" amarok: [IpodHandler] Calling the db parser amarok: [IpodHandler] There was an error, attempting to free db: iTunes directory not found: '/home/bruno/.kde/share/apps/amarok/tmp/imobiledevice/iPod_Control/iTunes' (or similar). amarok: [MountPointManager] [WARNING!] NOT-IMPLEMENTED: void MountPointManager::startStatisticsUpdateJob() amarok: BEGIN: XesamCollectionBuilder::XesamCollectionBuilder(SqlCollection*) amarok: END__: XesamCollectionBuilder::XesamCollectionBuilder(SqlCollection*) - Took 0.0037s amarok: BEGIN: void ScanManager::startFullScan() amarok: BEGIN: void ScanManager::checkTables(bool) amarok: BEGIN: void DatabaseUpdater::checkTables(bool) amarok: END__: void DatabaseUpdater::checkTables(bool) - Took 0.0057s amarok: END__: void ScanManager::checkTables(bool) - Took 0.0059s amarok: BEGIN: void ScanManager::cleanTables() amarok: END__: void ScanManager::cleanTables() - Took 0.0005s amarok: BEGIN: XmlParseJob::XmlParseJob(ScanManager*, SqlCollection*) amarok: BEGIN: void ProgressBar::setDescription(const QString&) amarok: END__: void ProgressBar::setDescription(const QString&) - Took 0.00011s amarok: BEGIN: void CompoundProgressBar::addProgressBar(ProgressBar*, QObject*) amarok: BEGIN: void ProgressBar::setDescription(const QString&) amarok: END__: void ProgressBar::setDescription(const QString&) - Took 0.00012s amarok: END__: void CompoundProgressBar::addProgressBar(ProgressBar*, QObject*) - Took 0.0017s amarok: BEGIN: ProgressBar* ProgressBar::setAbortSlot(QObject*, const char*) amarok: Setting abort slot for "Scanning music" amarok: connecting to 1abort() amarok: END__: ProgressBar* ProgressBar::setAbortSlot(QObject*, const char*) - Took 0.0002s amarok: END__: XmlParseJob::XmlParseJob(ScanManager*, SqlCollection*) - Took 0.0031s amarok: Checking for batch file in "/home/bruno/.kde/share/apps/amarok/amarokcollectionscanner_batchfullscan.xml" amarok: BEGIN: QStringList MountPointManager::collectionFolders() amarok: END__: QStringList MountPointManager::collectionFolders() - Took 0.00011s amarok: BEGIN: virtual void XmlParseJob::run() amarok: END__: void ScanManager::startFullScan() - Took 0.014s amarok: BEGIN: virtual int App::newInstance() amarok: BEGIN: static void App::handleCliArgs() amarok: END__: static void App::handleCliArgs() - Took 0.00015s amarok: END__: virtual int App::newInstance() - Took 0.0003s amarok: Success. Committing result to database. amarok: Database temporary table setup did not complete due to no directories needing to be processed. amarok: END__: virtual void XmlParseJob::run() - Took 0.13s amarok: BEGIN: virtual XmlParseJob::~XmlParseJob() amarok: BEGIN: void CompoundProgressBar::childBarComplete(ProgressBar*) amarok: BEGIN: void StatusBar::hideProgress() amarok: END__: void StatusBar::hideProgress() - Took 8.9e-05s amarok: END__: void CompoundProgressBar::childBarComplete(ProgressBar*) - Took 0.00053s amarok: END__: virtual XmlParseJob::~XmlParseJob() - Took 0.00065s amarok: BEGIN: void ScanManager::slotFinished() amarok: END__: void ScanManager::slotFinished() - Took 9.1e-05s bruno@t61p:~/.kde/share/config$ amarok: BEGIN: void MediaDeviceMonitor::checkDevicesFor(ConnectionAssistant*) amarok: BEGIN: QStringList MediaDeviceMonitor::getDevices() amarok: BEGIN: void MediaDeviceCache::refreshCache() amarok: [MediaDeviceCache] Found Solid PMP that is also a StorageDrive, skipping amarok: [MediaDeviceCache] Found Solid::DeviceInterface::StorageAccess with udi = "/org/freedesktop/Hal/devices/volume_uuid_E1C4_1E0C" amarok: [MediaDeviceCache] Device name is = "IPOD" and was made by "" amarok: [MediaDeviceCache] Solid device is not accessible, will wait until it is to consider it added. amarok: [MediaDeviceCache] Found Solid::DeviceInterface::StorageAccess with udi = "/org/freedesktop/Hal/devices/volume_part2_size_1024" amarok: [MediaDeviceCache] Device name is = "Volume" and was made by "" amarok: [MediaDeviceCache] Found Solid::DeviceInterface::StorageAccess with udi = "/org/freedesktop/Hal/devices/volume_uuid_1da31f15_01d7_40d4_858f_07bfa66a34a7" amarok: [MediaDeviceCache] Device name is = "Volume (swap)" and was made by "" amarok: [MediaDeviceCache] Found Solid::DeviceInterface::StorageAccess with udi = "/org/freedesktop/Hal/devices/volume_uuid_4d2f4ccc_b9a4_4950_a9a3_912ebe415115" amarok: [MediaDeviceCache] Device name is = "Volume (ext4)" and was made by "" amarok: [MediaDeviceCache] Found Solid::DeviceInterface::StorageDrive with udi = "/org/freedesktop/Hal/devices/storage_serial_Apple_iPod_000A27001B061614_0_0" amarok: [MediaDeviceCache] Device name is = "iPod" and was made by "Apple" amarok: [MediaDeviceCache] Found Solid::DeviceInterface::StorageDrive with udi = "/org/freedesktop/Hal/devices/storage_model_DVDRAM_GSA_U10N" amarok: [MediaDeviceCache] Device name is = "DVDRAM GSA-U10N" and was made by "HL-DT-ST" amarok: [MediaDeviceCache] Found Solid::DeviceInterface::StorageDrive with udi = "/org/freedesktop/Hal/devices/storage_serial_HITACHI_HTS722016K9SA00_071027DP1D10DFG5335P" amarok: [MediaDeviceCache] Device name is = "HITACHI HTS72201" and was made by "ATA" amarok: END__: void MediaDeviceCache::refreshCache() - Took 0.0057s amarok: END__: QStringList MediaDeviceMonitor::getDevices() - Took 0.006s amarok: BEGIN: virtual bool UmsConnectionAssistant::identify(const QString&) amarok: Device udi: "/org/freedesktop/Hal/devices/storage_model_DVDRAM_GSA_U10N" amarok: Device name: "HL-DT-ST - DVDRAM GSA-U10N" amarok: BEGIN: const QString MediaDeviceCache::volumeMountPoint(const QString&) const amarok: [MediaDeviceCache] Not able to convert to StorageAccess or not accessible, returning empty amarok: END__: const QString MediaDeviceCache::volumeMountPoint(const QString&) const - Took 0.00033s amarok: Mount point: "" amarok: vendor: "HL-DT-ST" , product: "DVDRAM GSA-U10N" amarok: BEGIN: const QString MediaDeviceCache::volumeMountPoint(const QString&) const amarok: [MediaDeviceCache] Not able to convert to StorageAccess or not accessible, returning empty amarok: END__: const QString MediaDeviceCache::volumeMountPoint(const QString&) const - Took 0.00031s amarok: END__: virtual bool UmsConnectionAssistant::identify(const QString&) - Took 0.0071s amarok: [MediaDeviceMonitor] Device already identified with udi: "/org/freedesktop/Hal/devices/storage_serial_Apple_iPod_000A27001B061614_0_0" amarok: BEGIN: virtual bool UmsConnectionAssistant::identify(const QString&) amarok: Device udi: "/org/freedesktop/Hal/devices/storage_serial_HITACHI_HTS722016K9SA00_071027DP1D10DFG5335P" amarok: Device name: "ATA - HITACHI HTS72201" amarok: BEGIN: const QString MediaDeviceCache::volumeMountPoint(const QString&) const amarok: [MediaDeviceCache] Not able to convert to StorageAccess or not accessible, returning empty amarok: END__: const QString MediaDeviceCache::volumeMountPoint(const QString&) const - Took 0.00034s amarok: Mount point: "" amarok: vendor: "ATA" , product: "HITACHI HTS72201" amarok: BEGIN: const QString MediaDeviceCache::volumeMountPoint(const QString&) const amarok: [MediaDeviceCache] Not able to convert to StorageAccess or not accessible, returning empty amarok: END__: const QString MediaDeviceCache::volumeMountPoint(const QString&) const - Took 0.00031s amarok: END__: virtual bool UmsConnectionAssistant::identify(const QString&) - Took 0.0054s amarok: BEGIN: virtual bool UmsConnectionAssistant::identify(const QString&) amarok: Device udi: "/org/freedesktop/Hal/devices/volume_uuid_4d2f4ccc_b9a4_4950_a9a3_912ebe415115" amarok: Device name: "/" amarok: BEGIN: const QString MediaDeviceCache::volumeMountPoint(const QString&) const amarok: END__: const QString MediaDeviceCache::volumeMountPoint(const QString&) const - Took 0.00024s amarok: Mount point: "/" amarok: vendor: "" , product: "Volume (ext4)" amarok: BEGIN: const QString MediaDeviceCache::volumeMountPoint(const QString&) const amarok: END__: const QString MediaDeviceCache::volumeMountPoint(const QString&) const - Took 0.00022s amarok: END__: virtual bool UmsConnectionAssistant::identify(const QString&) - Took 0.0015s amarok: END__: void MediaDeviceMonitor::checkDevicesFor(ConnectionAssistant*) - Took 0.021s amarok: BEGIN: void DaapCollectionFactory::connectToManualServers() amarok: END__: void DaapCollectionFactory::connectToManualServers() - Took 0.00019s It seems you have 'ifuse' installed on your system. This is what probably happens: ifuse returns a 0 (= successful) exit code even if there is no iphone/ipod touch. And this tricks Amarok into thinking that an ipod was successfully mounted. In fact it's just seeing an empty directory, which it asks to initialize as an ipod. (In reply to comment #9) > It seems you have 'ifuse' installed on your system. This is what probably > happens: ifuse returns a 0 (= successful) exit code even if there is no > iphone/ipod touch. And this tricks Amarok into thinking that an ipod was > successfully mounted. In fact it's just seeing an empty directory, which it > asks to initialize as an ipod. I don't have the ifuse package also 'locate ifuse' and 'which ifuse' return nothing. I have those packages : fuse-utils libfuse-dev libfuse2 libntfs-3g54 ntfs-3g commit 23c047726df82db1b78faa95d85cabd4410b6c19 Author: Martin Aumüller <aumuell@reserv.at> Date: Mon Feb 8 03:24:43 2010 +0100 better error handling during ifuse/fusermount calls CCBUG: 225868 diff --git a/src/collection/ipodcollection/handler/IpodHandler.cpp b/src/collection/ipodcollection/handler/IpodHandler.cpp index 01d72f4..ffb4d84 100644 --- a/src/collection/ipodcollection/handler/IpodHandler.cpp +++ b/src/collection/ipodcollection/handler/IpodHandler.cpp @@ -118,17 +118,43 @@ IpodHandler::~IpodHandler() if ( m_itdb ) itdb_free( m_itdb ); - if( !m_deviceInfo->wasMounted() && !m_deviceInfo->mountPoint().isEmpty()) + if( m_autoConnect ) { - int result = QProcess::execute("fusermount -u " + mountPoint()); - if( result ) + QProcess unmount; + QStringList args; + args << "-u" << mountPoint(); + unmount.start("fusermount", args); + bool ok = unmount.waitForStarted(); + if( !ok ) { - debug() << "Unmounting imobiledevice using ifuse from" << mountPoint() << "failed"; + debug() << "fusermount for unmounting" << mountPoint() << "failed to start"; } else { + ok = unmount.waitForFinished(); + if( !ok ) + debug() << "fusermount did not terminate correctly"; + } + if( ok ) + { + ok = unmount.exitStatus() == QProcess::NormalExit; + if( !ok ) + debug() << "fusermount did not exit normally"; + } + if( ok ) + { + ok = unmount.exitCode() == 0; + if( !ok ) + debug() << "fusermount did not exit successfully"; + } + if( ok ) + { debug() << "Unmounted imobiledevice using ifuse from" << mountPoint(); } + else + { + debug() << "Unmounting imobiledevice using ifuse from" << mountPoint() << "failed"; + } } } @@ -138,23 +164,47 @@ IpodHandler::init() bool isMounted = m_deviceInfo->wasMounted(); if ( !isMounted ) { - int result = -1; - if( m_deviceInfo->deviceUid().isEmpty() ) + QStringList args; + if( !m_deviceInfo->deviceUid().isEmpty() ) + { + args << "--uuid"; + args << m_deviceInfo->deviceUid(); + } + args << mountPoint(); + QProcess ifuse; + ifuse.start("ifuse", args); + bool ok = ifuse.waitForStarted(); + if( !ok ) { - result = QProcess::execute(QString("ifuse " + mountPoint())); + debug() << "Failed to start ifuse"; } else { - result = QProcess::execute(QString("ifuse --uuid" + m_deviceInfo->deviceUid() + " " + mountPoint())); + ok = ifuse.waitForFinished(); + if( !ok ) + debug() << "ifuse did not yet terminate"; } - if (result) + if( ok ) { - debug() << "Mounting imobiledevice using ifuse on" << mountPoint() << "failed"; + ok = ifuse.exitStatus() == QProcess::NormalExit; + if( !ok ) + debug() << "ifuse crashed"; } - else + if( ok ) + { + ok = ifuse.exitCode() == 0; + if( !ok ) + debug() << "ifuse exited with non-zero exit code"; + } + + if( ok ) { - debug() << "Successfully mounted imobiledevice using ifuse on" << mountPoint(); isMounted = true; + debug() << "Successfully mounted imobiledevice using ifuse on" << mountPoint(); + } + else + { + debug() << "Mounting imobiledevice using ifuse on" << mountPoint() << "failed"; } } @@ -165,6 +215,8 @@ IpodHandler::init() return; } + m_autoConnect = !m_deviceInfo->wasMounted(); + GError *err = 0; QString initError = i18n( "iPod was not initialized:" ); QString initErrorCaption = i18n( "iPod Initialization Failed" ); Thank you for helping in debugging this! The new code was not detecting correctly that ifuse was not executed at all and instead assumed that it ran with success. This should now be fixed and you should not see any difference to the former state. The problem seems to be gone now, thanks Martin and Myriam! Keep up the good work. commit 23c047726df82db1b78faa95d85cabd4410b6c19 Author: Martin Aumüller <aumuell@reserv.at> Date: Mon Feb 8 03:24:43 2010 +0100 better error handling during ifuse/fusermount calls CCBUG: 225868 diff --git a/src/collection/ipodcollection/handler/IpodHandler.cpp b/src/collection/ipodcollection/handler/IpodHandler.cpp index 01d72f4..ffb4d84 100644 --- a/src/collection/ipodcollection/handler/IpodHandler.cpp +++ b/src/collection/ipodcollection/handler/IpodHandler.cpp @@ -118,17 +118,43 @@ IpodHandler::~IpodHandler() if ( m_itdb ) itdb_free( m_itdb ); - if( !m_deviceInfo->wasMounted() && !m_deviceInfo->mountPoint().isEmpty()) + if( m_autoConnect ) { - int result = QProcess::execute("fusermount -u " + mountPoint()); - if( result ) + QProcess unmount; + QStringList args; + args << "-u" << mountPoint(); + unmount.start("fusermount", args); + bool ok = unmount.waitForStarted(); + if( !ok ) { - debug() << "Unmounting imobiledevice using ifuse from" << mountPoint() << "failed"; + debug() << "fusermount for unmounting" << mountPoint() << "failed to start"; } else { + ok = unmount.waitForFinished(); + if( !ok ) + debug() << "fusermount did not terminate correctly"; + } + if( ok ) + { + ok = unmount.exitStatus() == QProcess::NormalExit; + if( !ok ) + debug() << "fusermount did not exit normally"; + } + if( ok ) + { + ok = unmount.exitCode() == 0; + if( !ok ) + debug() << "fusermount did not exit successfully"; + } + if( ok ) + { debug() << "Unmounted imobiledevice using ifuse from" << mountPoint(); } + else + { + debug() << "Unmounting imobiledevice using ifuse from" << mountPoint() << "failed"; + } } } @@ -138,23 +164,47 @@ IpodHandler::init() bool isMounted = m_deviceInfo->wasMounted(); if ( !isMounted ) { - int result = -1; - if( m_deviceInfo->deviceUid().isEmpty() ) + QStringList args; + if( !m_deviceInfo->deviceUid().isEmpty() ) + { + args << "--uuid"; + args << m_deviceInfo->deviceUid(); + } + args << mountPoint(); + QProcess ifuse; + ifuse.start("ifuse", args); + bool ok = ifuse.waitForStarted(); + if( !ok ) { - result = QProcess::execute(QString("ifuse " + mountPoint())); + debug() << "Failed to start ifuse"; } else { - result = QProcess::execute(QString("ifuse --uuid" + m_deviceInfo->deviceUid() + " " + mountPoint())); + ok = ifuse.waitForFinished(); + if( !ok ) + debug() << "ifuse did not yet terminate"; } - if (result) + if( ok ) { - debug() << "Mounting imobiledevice using ifuse on" << mountPoint() << "failed"; + ok = ifuse.exitStatus() == QProcess::NormalExit; + if( !ok ) + debug() << "ifuse crashed"; } - else + if( ok ) + { + ok = ifuse.exitCode() == 0; + if( !ok ) + debug() << "ifuse exited with non-zero exit code"; + } + + if( ok ) { - debug() << "Successfully mounted imobiledevice using ifuse on" << mountPoint(); isMounted = true; + debug() << "Successfully mounted imobiledevice using ifuse on" << mountPoint(); + } + else + { + debug() << "Mounting imobiledevice using ifuse on" << mountPoint() << "failed"; } } @@ -165,6 +215,8 @@ IpodHandler::init() return; } + m_autoConnect = !m_deviceInfo->wasMounted(); + GError *err = 0; QString initError = i18n( "iPod was not initialized:" ); QString initErrorCaption = i18n( "iPod Initialization Failed" ); |