This forum has been archived. All content is frozen. Please use KDE Discuss instead.

Cannot build collection (Collection scan was aborted, since too many problems..)

Tags: None
(comma "," separated)
User avatar
markey
KDE Developer
Posts
2286
Karma
3
OS
I don't know.


--
Mark Kretschmann - Amarok Developer
User avatar
Dr.Diesel
Registered Member
Posts
44
Karma
0
Thanks Mark, I have (3) FC6 Final machines.  None will build a collection due to this error!

Building Amarok isn't that easy either!  Any idea what this error means?

Code: Select all
collectiondb.cpp:76:29: error: mysql/mysql.h: No such file or directory
collectiondb.cpp:77:37: error: mysql/mysql_version.h: No such file or directory
collectiondb.cpp:5957:5: warning: "MYSQL_VERSION_ID" is not defined
collectiondb.cpp: In constructor 'MySqlConnection::MySqlConnection(const MySqlConfig*)':
collectiondb.cpp:5942: error: 'mysql_init' was not declared in this scope
collectiondb.cpp:5953: error: 'CLIENT_COMPRESS' was not declared in this scope
collectiondb.cpp:5953: error: 'mysql_real_connect' was not declared in this scope
collectiondb.cpp:5967: error: invalid use of undefined type 'struct st_mysql'
collectiondb.h:150: error: forward declaration of 'struct st_mysql'
collectiondb.cpp:5983: error: 'mysql_query' was not declared in this scope
collectiondb.cpp: In destructor 'virtual MySqlConnection::~MySqlConnection()':
collectiondb.cpp:6000: error: 'mysql_close' was not declared in this scope
collectiondb.cpp: In member function 'virtual QStringList MySqlConnection::query(const QString&)':
collectiondb.cpp:6008: error: 'mysql_query' was not declared in this scope
collectiondb.cpp:6010: error: 'MYSQL_RES' was not declared in this scope
collectiondb.cpp:6010: error: 'result' was not declared in this scope
collectiondb.cpp:6011: error: 'mysql_use_result' was not declared in this scope
collectiondb.cpp:6013: error: 'mysql_field_count' was not declared in this scope
collectiondb.cpp:6014: error: 'MYSQL_ROW' was not declared in this scope
collectiondb.cpp:6014: error: expected `;' before 'row'
collectiondb.cpp:6015: error: 'row' was not declared in this scope
collectiondb.cpp:6015: error: 'mysql_fetch_row' was not declared in this scope
collectiondb.cpp:6025: error: 'mysql_field_count' was not declared in this scope
collectiondb.cpp:6027: error: 'mysql_error' was not declared in this scope
collectiondb.cpp:6031: error: 'mysql_free_result' was not declared in this scope
collectiondb.cpp:6035: error: 'mysql_error' was not declared in this scope
collectiondb.cpp: In member function 'virtual int MySqlConnection::insert(const QString&, const QString&)':
collectiondb.cpp:6045: error: 'mysql_query' was not declared in this scope
collectiondb.cpp:6046: error: 'mysql_errno' was not declared in this scope
collectiondb.cpp:6048: error: 'mysql_error' was not declared in this scope
collectiondb.cpp:6050: error: 'mysql_insert_id' was not declared in this scope
collectiondb.cpp: In member function 'void MySqlConnection::setMysqlError()':
collectiondb.cpp:6057: error: 'mysql_error' was not declared in this scope
make[4]: *** [collectiondb.lo] Error 1
make[4]: Leaving directory `/root/Desktop/amarok-1.4.4/amarok/src'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/root/Desktop/amarok-1.4.4/amarok/src'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/root/Desktop/amarok-1.4.4/amarok'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/root/Desktop/amarok-1.4.4'
make: *** [all] Error 2
User avatar
dangle_wtf
Moderator
Posts
1252
Karma
0
Looks like you are trying to compile amarok with mysql support, but you don't have the mysql-dev package installed.


"There are two theories to arguing with women. Neither one works."
.
If men could get pregnant, we'd learn the true meaning of "screaming nancyboy wuss"
User avatar
Dr.Diesel
Registered Member
Posts
44
Karma
0
dangle_wtf wrote:Looks like you are trying to compile amarok with mysql support, but you don't have the mysql-dev package installed.


Dangit, and I checked for that, somehow missed it!  Thanks.
User avatar
Dr.Diesel
Registered Member
Posts
44
Karma
0
Well, i compiled fresh, still get the collection scan error.  This must be a code problem.
User avatar
Dr.Diesel
Registered Member
Posts
44
Karma
0
apoikos wrote:I think I got somewhere: It seems to me that if the collectionscanner crashes twice (because of two offending files for example), it resumes (MAX_RESTARTS is 20), but then something goes wrong with the database. Could it be a bug related with the Dynamic Collection perhaps?


apoikos, where is this max_restarts variable located at?  I'd like to build with it set at 1000+.

Thanks
FiatTux
Registered Member
Posts
2
Karma
0
Dr.Diesel wrote:
apoikos wrote:I think I got somewhere: It seems to me that if the collectionscanner crashes twice (because of two offending files for example), it resumes (MAX_RESTARTS is 20), but then something goes wrong with the database. Could it be a bug related with the Dynamic Collection perhaps?


apoikos, where is this max_restarts variable located at?  I'd like to build with it set at 1000+.

Thanks


I'm having the same problem, and I have to ask myself: WHY does Amarok absolutely have to abort after 2, 20, or 1000 errors? This makes absolutely no sense to me.

Why not simply ask people whether they want to continue scanning after 20 errors?  Bonus points for including a "don't ask me again" checkbox.

Many people with a collection above a certain size have a lot of MP3's that taglib doesn't like. Telling people to manually delete these files kind of defeats the purpose of having a powerful automated collection manager like Amarok.

An even better solution might be to simply skip the current file when something goes wrong, skip the dir if 3 consecutive files go wrong, and prompt the user if 20 consecutive files go wrong. This would leave the user with a fairly complete collection in most cases and still catch fatal errors like a unmounted filesystem (presumably what the limit is designed to detect, correct me if I'm wrong).
User avatar
Dr.Diesel
Registered Member
Posts
44
Karma
0
FiatTux, follow this link, lets see if your problem is the same as mine!  Providing the backtrace will help the developers.

Your suggestion is a great idea as well.

http://amarok.kde.org/forum/index.php/t ... 558.0.html
FiatTux
Registered Member
Posts
2
Karma
0
I'll do that, thanks. Right now my pc is busy compiling a version with MAX_RESTARTS = 1000 though (you can find this value in ./src/scancontroller.h, in case you want to try that).

Also, I had a quick look at the source to see if my suggestion was trivial to implement. It looks as if the message is printed after the scanning process is completely aborted though, so I'm settling for the MAX_RESTARTS tweak for now. I really should be doing other things right now anyway :)


Bookmarks



Who is online

Registered users: Bing [Bot], Google [Bot], kde-naveen, Sogou [Bot], Yahoo [Bot]