Bug 189527 - Collection scanner ignores paths with special characters
Summary: Collection scanner ignores paths with special characters
Status: RESOLVED FIXED
Alias: None
Product: amarok
Classification: Applications
Component: general (show other bugs)
Version: 2.1-SVN
Platform: unspecified Linux
: NOR normal
Target Milestone: ---
Assignee: Amarok Developers
URL:
Keywords:
: 189209 189580 191727 191871 197205 198351 (view as bug list)
Depends on:
Blocks:
 
Reported: 2009-04-13 14:29 UTC by David Heidelberg
Modified: 2010-01-10 23:18 UTC (History)
11 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description David Heidelberg 2009-04-13 14:29:19 UTC
Version:           2.1-SVN (using 4.2.69 (KDE 4.2.69 (KDE 4.3 >= 20090406)), Gentoo)
Compiler:          x86_64-pc-linux-gnu-gcc
OS:                Linux (x86_64) release 2.6.29

Example: rename some song and add to it name: charakter "á" (it can be found for example on cz keyboard) and rescan collection. Song disappear from collection.

amarok: BEGIN: void CollectionManager::checkCollectionChanges() 
amarok: BEGIN: void ScanManager::startIncrementalScan()                                                         
amarok: BEGIN: QStringList ScanManager::getDirsToScan()                                                         
amarok: END__: QStringList ScanManager::getDirsToScan() - Took 0.027s                                           
amarok:      GOING TO SCAN:                                                                                     
amarok:           "/home/okias/documents/music/portable/other/"                                                 
amarok: BEGIN: XmlParseJob::XmlParseJob(ScanManager*, SqlCollection*)                                           
amarok: BEGIN: void ProgressBar::setDescription(const QString&)                                                 
amarok: END__: void ProgressBar::setDescription(const QString&) - Took 3.9e-05s                                 
amarok: BEGIN: void CompoundProgressBar::addProgressBar(ProgressBar*, QObject*)                                 
amarok:          p before:  QPoint(2,-65)                                                                       
amarok:          p after:  QPoint(4,882)                                                                        
amarok: BEGIN: void ProgressBar::setDescription(const QString&)                                                 
amarok: END__: void ProgressBar::setDescription(const QString&) - Took 3.4e-05s                                 
amarok: END__: void CompoundProgressBar::addProgressBar(ProgressBar*, QObject*) - Took 0.00033s                 
amarok: BEGIN: ProgressBar* ProgressBar::setAbortSlot(QObject*, const char*)                                    
amarok:          Setting abort slot for  "Scanning music"                                                       
amarok:          connecting to  1deleteLater()                                                                  
amarok: END__: ProgressBar* ProgressBar::setAbortSlot(QObject*, const char*) - Took 7.1e-05s                    
amarok: END__: XmlParseJob::XmlParseJob(ScanManager*, SqlCollection*) - Took 0.00088s                           
amarok: BEGIN: SqlCollectionDBusHandler::SqlCollectionDBusHandler(SqlCollection*)                               
amarok: BEGIN: virtual void XmlParseJob::run()                                                                  
amarok: END__: SqlCollectionDBusHandler::SqlCollectionDBusHandler(SqlCollection*) - Took 0.00012s               
amarok: BEGIN: ScanResultProcessor::ScanResultProcessor(SqlCollection*)                                         
amarok: END__: ScanResultProcessor::ScanResultProcessor(SqlCollection*) - Took 8.9e-05s                         
amarok: END__: void ScanManager::startIncrementalScan() - Took 0.04s                                            
amarok: END__: void CollectionManager::checkCollectionChanges() - Took 0.041s                                   
amarok: BEGIN: void DatabaseUpdater::createTemporaryTables()                                                    
amarok:      Initialized thread, count== 4                                                                      
amarok:      [ERROR!] GREPME MySQLe query failed! Specified key was too long; max key length is 1000 bytes  on  "CREATE UNIQUE INDEX urls_id_rpath_temp ON urls_temp(deviceid, rpath);" 
amarok: END__: void DatabaseUpdater::createTemporaryTables() - Took 0.0051s                                                                                                             
amarok: BEGIN: void DatabaseUpdater::prepareTemporaryTables()                                                                                                                           
amarok: END__: void DatabaseUpdater::prepareTemporaryTables() - Took 0.013s                                                                                                             
amarok: BEGIN: void ScanManager::slotFinished()                                                                                                                                         
amarok:      Success. Committing result to database.                                                                                                                                    
amarok: BEGIN: void ScanResultProcessor::processDirectory(const QList<QMap<QString, QVariant> >&)                                                                                       
amarok: BEGIN: void ScanManager::writeBatchIncrementalInfoFile()                                                                                                                        
amarok: END__: void ScanManager::writeBatchIncrementalInfoFile() - Took 0.018s                                                                                                          
amarok: END__: void ScanManager::slotFinished() - Took 0.021s                                                                                                                           
amarok: END__: void ScanResultProcessor::processDirectory(const QList<QMap<QString, QVariant> >&) - Took 2.4s                                                                           
amarok: BEGIN: void DatabaseUpdater::copyToPermanentTables()                                                                                                                            
amarok: BEGIN: void CollectionTreeView::slotExpand(const QModelIndex&)                                                                                                                  
amarok:        modelindex =  QModelIndex(0,0,0x301c1e0,CollectionTreeItemModel(0x30131d0) )                                                                                             
amarok:        m_filterModel ?  true                                                                                                                                                    
amarok: END__: void CollectionTreeView::slotExpand(const QModelIndex&) - Took 0.00014s                                                                                                  
amarok: END__: void DatabaseUpdater::copyToPermanentTables() - Took 0.052s                                                                                                              
amarok: BEGIN: void DatabaseUpdater::removeTemporaryTables()                                                                                                                            
amarok: END__: void DatabaseUpdater::removeTemporaryTables() - Took 0.023s                                                                                                              
amarok:    Sending changed signal                                                                                                                                                       
amarok: BEGIN: virtual ScanResultProcessor::~ScanResultProcessor()                                                                                                                      
amarok: END__: virtual ScanResultProcessor::~ScanResultProcessor() - Took 3.3e-05s                                                                                                      
amarok: END__: virtual void XmlParseJob::run() - Took 2.9s                                                                                                                              
amarok: BEGIN: void CollectionTreeView::slotExpand(const QModelIndex&)                                                                                                                  
amarok:    modelindex =  QModelIndex(0,0,0x301c1e0,CollectionTreeItemModel(0x30131d0) )                                                                                                 
amarok:    m_filterModel ?  true                                                                                                                                                        
amarok: END__: void CollectionTreeView::slotExpand(const QModelIndex&) - Took 0.00011s                                                                                                  
amarok: BEGIN: void SqlCollection::updateTrackUrls(TrackUrls)                                                                                                                           
amarok: END__: void SqlCollection::updateTrackUrls(TrackUrls) - Took 0.0021s                                                                                                            
amarok:  Initialized thread, count== 5                                                                                                                                                  
amarok: BEGIN: virtual XmlParseJob::~XmlParseJob()                                                                                                                                      
amarok: BEGIN: void CompoundProgressBar::childBarComplete(ProgressBar*)                                                                                                                 
amarok:      p before:  QPoint(2,-9)                                                                                                                                                    
amarok:      p after:  QPoint(4,938)                                                                                                                                                    
amarok: BEGIN: void ProgressBar::setDescription(const QString&)                                                                                                                         
amarok: END__: void ProgressBar::setDescription(const QString&) - Took 4.1e-05s                                                                                                         
amarok: BEGIN: void StatusBar::hideProgress()                                                                                                                                           
amarok: END__: void StatusBar::hideProgress() - Took 0.00014s                                                                                                                           
amarok: END__: void CompoundProgressBar::childBarComplete(ProgressBar*) - Took 0.0005s                                                                                                  
amarok: END__: virtual XmlParseJob::~XmlParseJob() - Took 0.00058s                                                                                                                      
amarok: BEGIN: void ScanManager::startIncrementalScan()                                                                                                                                 
amarok: BEGIN: QStringList ScanManager::getDirsToScan()                                                                                                                                 
amarok: END__: QStringList ScanManager::getDirsToScan() - Took 0.002s                                                                                                                   
amarok:    GOING TO SCAN:                                                                                                                                                               
amarok:    Scanning nothing, return.                                                                                                                                                    
amarok: BEGIN: void ScanManager::writeBatchIncrementalInfoFile()                                                                                                                        
amarok: END__: void ScanManager::writeBatchIncrementalInfoFile() - Took 0.00062s                                                                                                        
amarok: END__: void ScanManager::startIncrementalScan() - Took 0.0031s
Comment 1 Mark Kretschmann 2009-04-14 09:43:14 UTC
*** Bug 189580 has been marked as a duplicate of this bug. ***
Comment 2 Baltasar Sanchez 2009-04-14 14:19:26 UTC
Version:           4.1-svn built 4/12/09 (using Devel)
OS:                Linux
Installed from:    Compiled sources

Amarok won't add to the collection files which include special characters in
their path
As soon as the special character is removed from the file name, amarok's
collection indexes the file.

How to reproduce: Add a file with a special character to a folder in your
collection, and amarok won't index this file.
Comment 3 Mark Kretschmann 2009-04-16 10:47:38 UTC
*** Bug 189209 has been marked as a duplicate of this bug. ***
Comment 4 Mark Kretschmann 2009-04-16 11:00:23 UTC
Can you please give me an example of a path that does not work? I'm trying to reproduce the problem.

For testing purposes, I have renamed the following file in my collection:

"The_Gathering_-_Strange_Machines.mp3"  --> 
"The_Gathering_-_Strange_Machines_á.mp3"


It was still scanned fine after the renaming.
Comment 5 Baltasar Sanchez 2009-04-16 15:28:39 UTC
I think the issue may not really be an amarok bug. As I solved the issue by setting the locale to iso8859-1 which is the same locale I mount my ntfs HDs in (the ones with the music).

If I set the locale to, say utf-8, then the console(shell) won't display the characters correctly, which is probably the why the scanner fails to index them.
Comment 6 David Heidelberg 2009-04-16 15:47:06 UTC
locales are default for ext4, and ěščřžáíé are displaying fine under, Konsole or in Dolphin
Comment 7 Marcos David 2009-04-30 19:13:48 UTC
I have a similar issue.
Indexing works,  but I just can't play the files with "special characters" in the filename.
Comment 8 Myriam Schweingruber 2009-05-02 18:30:39 UTC
I can confirm that.
Comment 9 smultronsaft 2009-05-04 16:14:53 UTC
Same here, I can't play the song if the folder or filename contains ä or ö for example. But it's inside my collection and shows up perfect with tags.

If I change the filename to a or o, I can play it.
Comment 10 Myriam Schweingruber 2009-05-17 22:52:57 UTC
Might be also related to #191727
Comment 11 Mark Kretschmann 2009-05-18 20:47:02 UTC
*** Bug 191727 has been marked as a duplicate of this bug. ***
Comment 12 Mark Kretschmann 2009-05-18 20:50:36 UTC
We have now identified the root of this problem (MySQL is set to wrong encoding). See this mail for more information:

http://lists.kde.org/?l=amarok&m=124225723816478&w=2

We're working on a fix for this.


PS: Please note that problems with playback may be unrelated to this problem. Phonon itself has had a few encoding bugs too, which are mostly fixed in newer versions though.
Comment 13 Alexey Shildyakov 2009-06-23 00:49:45 UTC
*** Bug 197384 has been marked as a duplicate of this bug. ***
Comment 14 Alexey Shildyakov 2009-06-23 01:15:03 UTC
*** Bug 191871 has been marked as a duplicate of this bug. ***
Comment 15 Alexey Shildyakov 2009-06-23 01:15:56 UTC
*** Bug 192448 has been marked as a duplicate of this bug. ***
Comment 16 Alexey Shildyakov 2009-06-23 01:26:27 UTC
*** Bug 197031 has been marked as a duplicate of this bug. ***
Comment 17 Myriam Schweingruber 2009-06-23 14:52:36 UTC
*** Bug 197205 has been marked as a duplicate of this bug. ***
Comment 18 Myriam Schweingruber 2009-06-30 19:39:07 UTC
*** Bug 198351 has been marked as a duplicate of this bug. ***
Comment 19 Myriam Schweingruber 2009-07-30 18:50:28 UTC
This should be solved with current 2.2-git. Can somebody confirm this?
Comment 20 David Heidelberg 2009-07-30 19:04:28 UTC
Confirmed!
Comment 21 Michael 2009-10-09 03:53:33 UTC
This also happens in amarok 2.2 for folders containing symbols like ^&*($# in my case ###foldername can someone check this against the 2.2-git
Comment 22 The_Akki 2010-01-10 21:37:25 UTC
I think this Ticket should be reopened.
I have following Path:

Culcha Candela - Sch\303\266ne neue Welt/
|-- 01 Culcha Candela -  Sch\303\266ne Neue Welt.mp3
|-- 02 Culcha Candela -  Somma im Kiez.mp3
|-- 03 Culcha Candela -  Monsta.mp3
|-- 04 Culcha Candela -  Siento.mp3
|-- 05 Culcha Candela -  Gimme Some.mp3
|-- 06 Culcha Candela -  Manchmal.mp3
|-- 07 Culcha Candela -  No Hay Mal.mp3
|-- 08 Culcha Candela -  The Greatest.mp3
|-- 09 Culcha Candela -  I Like It.mp3
|-- 10 Culcha Candela -  Eiskalt.mp3
|-- 11 Culcha Candela -  Relax.mp3
|-- 12 Culcha Candela -  Nobody.mp3
`-- 13 Culcha Candela -  Steh Auf.mp3

Only the first Song is inserted in the archive of amarok.
I have checked it with convmv. This is utf-8. The File are located on an ext4 filesystem.

I use amarok 2 in version 2.2.0 (Kompilierdatum: Oct 8 2009) via kubuntu-package.
Comment 23 Myriam Schweingruber 2010-01-10 23:18:45 UTC
(In reply to comment #22)
...
> 
> Only the first Song is inserted in the archive of amarok.
> I have checked it with convmv. This is utf-8. The File are located on an ext4
> filesystem.
> 
> I use amarok 2 in version 2.2.0 (Kompilierdatum: Oct 8 2009) via
> kubuntu-package.


I think your problem is completely different, you should upgrade to Amarok 2.2.1 or Amarok 2.2.2 final, to be released later this week.