| 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 Bugs <amarok-bugs-null> |
| Status: | RESOLVED FIXED | ||
| Severity: | normal | CC: | aikawarazuni, aumuell, matej |
| Priority: | NOR | ||
| Version First Reported In: | 2.3-GIT | ||
| Target Milestone: | --- | ||
| Platform: | Ubuntu | ||
| OS: | Linux | ||
| Latest Commit: | Version Fixed/Implemented 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" ); |