Import stats from 1.4 into 2.0
Rich
budman85 at eastlink.ca
Mon Mar 16 05:39:19 UTC 2009
Hi
I guess the first attempt at the svn compile was beginners luck. :)
I was trying to recompile it now, which it does complete with no errors.
However, when I try to run it, it constantly dies after the splash screen.
So I was thought I may have overlooked a step in compiling it.
I added options to add debugging to see if that showed anything useful.
The failure doesn't produce any back trace.
Starting program: /usr/local/bin/amarok --debug
[Thread debugging using libthread_db enabled]
[New Thread 0xb34416f0 (LWP 6107)]
amarok: BEGIN: App::App()
amarok: BEGIN: void App::continueInit()
amarok: BEGIN: EngineController::EngineController()
amarok: BEGIN: void EngineController::initializePhonon()
amarok: [EngineController] Tick Interval (actual): 100
amarok: END__: void EngineController::initializePhonon() - Took 7.5s
amarok: END__: EngineController::EngineController() - Took 7.5s
amarok: BEGIN: MainWindow::MainWindow()
<unknown program name>(6107)/: Communication problem with "amarok" , it
probably crashed.
Error message was: "org.freedesktop.DBus.Error.NoReply" : " "Message
did not receive a reply (timeout by message bus)" "
Program exited with code 0377.
(gdb) KCrash: Application 'amarok' crashing...
sock_file=/home/budman/.kde/socket-mars/kdeinit4_0_0
kdeinit4: preparing to launch /usr/lib/kde4/libexec/drkonqi
amarok: Fatal IO error: client killed
I then ran a stack strace on the 'running' version from a latest distro pkg.
I then compared it to the bad failing run.
Its odd they pretty much run in sync, except when it tries to load the
fonts.
Failing run:
19450 open("/usr/lib/mysql/libexpat.so.1", O_RDONLY) = -1 ENOENT (No
such file or directory)
19450 open("/usr/lib/libexpat.so.1", O_RDONLY) = 3
19450 read(3,
"\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\200\37"..., 512) = 512
19450 fstat64(3, {st_mode=S_IFREG|0755, st_size=126996, ...}) = 0
19450 mmap2(NULL, 129724, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb6101000
19450 mmap2(0xb611f000, 8192, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1d) = 0xb611f000
19450 close(3) = 0
19450 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS,
-1, 0) = 0xb6100000
19450 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS,
-1, 0) = 0xb60ff000
19450 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS,
-1, 0) = 0xb60fe000
19450 set_thread_area({entry_number:-1 -> 6, base_addr:0xb60fe6d0,
limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_i
n_pages:1, seg_not_present:0, useable:1}) = 0
19450 mprotect(0xb6268000, 4096, PROT_READ) = 0
19450 mprotect(0xb6280000, 4096, PROT_READ) = 0
19450 mprotect(0xb635c000, 4096, PROT_READ) = 0
19450 mprotect(0xb6706000, 77824, PROT_READ|PROT_WRITE) = 0
19450 mprotect(0xb6706000, 77824, PROT_READ|PROT_EXEC) = 0
19450 mprotect(0xb6874000, 8192, PROT_READ) = 0
19450 mprotect(0xb68ac000, 4096, PROT_READ) = 0
19442 stat64("/usr/share/fonts/TTF/DejaVuSans-Bold.ttf",
{st_mode=S_IFREG|0644, st_size=569432, ...}) = 0
19442 open("/usr/share/fonts/TTF/DejaVuSans-Bold.ttf", O_RDONLY) = 3
19442 fcntl64(3, F_SETFD, FD_CLOEXEC) = 0
19442 fstat64(3, {st_mode=S_IFREG|0644, st_size=569432, ...}) = 0
19442 mmap2(NULL, 569432, PROT_READ, MAP_PRIVATE, 3, 0) = 0xae7b4000
19442 close(3) = 0
19442 brk(0x85a5000) = 0x85a5000
19442 brk(0x85c6000) = 0x85c6000
19442 brk(0x85e7000) = 0x85e7000
19442 clock_gettime(CLOCK_MONOTONIC, {425986, 258420178}) = 0
19442 clock_gettime(CLOCK_MONOTONIC, {425986, 258488039}) = 0
19442 clock_gettime(CLOCK_MONOTONIC, {425986, 258709591}) = 0
19442 clock_gettime(CLOCK_MONOTONIC, {425986, 258750991}) = 0
19442 select(9, [8], [8], NULL, NULL) = -1 EBADF (Bad file descriptor)
19442 write(2, "amarok: Fatal IO error: client k"..., 38) = 38
19450 mprotect(0xb698b000, 16384, PROT_READ) = 0
19442 writev(5, [{"l\1\1\1D\0\0\0
\0\0\0\177\0\0\0\1\1o\0\25\0\0\0/org/fr"..., 144},
{"?\0\0\0type=\'signal\',interface=\'org"..., 68}], 2) = -1
EBADF (Bad file descriptor)
19442 close(5) = -1 EBADF (Bad file descriptor)
19442 gettimeofday({1237150391, 171217}, NULL) = 0
19442 clock_gettime(CLOCK_REALTIME, {1237150391, 171297797}) = 0
19442 futex(0xbf943df8, 0x80 /* FUTEX_??? */, 1 <unfinished ...>
19447 <... poll resumed> [{fd=13, events=POLLIN|POLLERR|POLLNVAL,
revents=POLLNVAL}], 1, 333) = 1
19447 read(13, 0xb003f210, 72) = -1 EBADF (Bad file descriptor)
19447 poll([{fd=13, events=POLLIN|POLLERR|POLLNVAL, revents=POLLNVAL}],
1, 333) = 1
=== thousands of the above line ====
19450 open("/usr/share/locale/locale.alias", O_RDONLY) = 3
19450 fstat64(3, {st_mode=S_IFREG|0644, st_size=2570, ...}) = 0
19450 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS,
-1, 0) = 0xb7505000
19450 read(3, "# Locale name alias data base.\n#"..., 4096) = 2570
19450 read(3, "", 4096) = 0
19450 close(3) = 0
19450 munmap(0xb7505000, 4096) = 0
Output from gdb:
Starting program: /usr/local/bin/amarok --debug
[Thread debugging using libthread_db enabled]
[New Thread 0xb34416f0 (LWP 6107)]
amarok: BEGIN: App::App()
amarok: BEGIN: void App::continueInit()
amarok: BEGIN: EngineController::EngineController()
amarok: BEGIN: void EngineController::initializePhonon()
amarok: [EngineController] Tick Interval (actual): 100
amarok: END__: void EngineController::initializePhonon() - Took 7.5s
amarok: END__: EngineController::EngineController() - Took 7.5s
amarok: BEGIN: MainWindow::MainWindow()
<unknown program name>(6107)/: Communication problem with "amarok" , it
probably crashed.
Error message was: "org.freedesktop.DBus.Error.NoReply" : " "Message
did not receive a reply (timeout by message bus)" "
Program exited with code 0377.
(gdb) KCrash: Application 'amarok' crashing...
sock_file=/home/budman/.kde/socket-mars/kdeinit4_0_0
kdeinit4: preparing to launch /usr/lib/kde4/libexec/drkonqi
amarok: Fatal IO error: client killed
That line "select(9, [8], [8], NULL, NULL) = -1 EBADF (Bad file
descriptor)"
19442 write(2, "amarok: Fatal IO error: client k"..., 38) = 38
In the good run, its
19642 select(9, [8], [8], NULL, NULL) = 2 (in [8], out [8])
and then continues to load the next font.
Good run:
19642 stat64("/etc/localtime", {st_mode=S_IFREG|0644, st_size=3424,
...}) = 0
19642 stat64("/usr/share/fonts/TTF/DejaVuSans-Bold.ttf",
{st_mode=S_IFREG|0644, st_size=569432, ...}) = 0
19642 open("/usr/share/fonts/TTF/DejaVuSans-Bold.ttf", O_RDONLY) = 14
19642 fcntl64(14, F_SETFD, FD_CLOEXEC) = 0
19642 fstat64(14, {st_mode=S_IFREG|0644, st_size=569432, ...}) = 0
19642 mmap2(NULL, 569432, PROT_READ, MAP_PRIVATE, 14, 0) = 0xaef13000
19642 close(14) = 0
19642 brk(0x846e000) = 0x846e000
19642 brk(0x8490000) = 0x8490000
19642 brk(0x84b1000) = 0x84b1000
19642 clock_gettime(CLOCK_MONOTONIC, {426387, 295547393}) = 0
19642 clock_gettime(CLOCK_MONOTONIC, {426387, 295612875}) = 0
19642 clock_gettime(CLOCK_MONOTONIC, {426387, 295857156}) = 0
19642 clock_gettime(CLOCK_MONOTONIC, {426387, 295899380}) = 0
19642 select(9, [8], [8], NULL, NULL) = 2 (in [8], out [8])
19642 read(8,
"\34T\37\3\213\0@\1,\1\0\0R\27j\31\0\220S\t,\1\0\0\230K"..., 4096) = 32
19642 writev(8,
[{"5\30\4\0\245\0@\1\210\1\0\0@\0@\0\236\4\5\0\246\0@\1\245"..., 624}],
1) = 624
19642 read(8,
"\34K8\3\213\0@\1#\0\0\0`\'j\31\0\230\37\10\240K\311\277"..., 4096) = 128
I compiled as:
export KDEDIR=/usr
export XDG_CONFIG_DIRS=/etc/xdg:/etc/kde/xdg
export NUMJOBS="-j7"
export SLKCFLAGS="-O0 -g"
cd ~/svn/amarok
mkdir -p build
cd build
cmake \
-DCMAKE_BUILD_TYPE=debugfull \
-DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \
-DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \
-DCMAKE_BUILD_TYPE=None \
-DCMAKE_INSTALL_PREFIX=/usr \
-DMAN_INSTALL_DIR=/usr/man \
-DSYSCONF_INSTALL_DIR=/etc/kde \
..
make $NUMJOBS || make || exit 1
I was hoping to add a debug line before the if track compare in
FastForwardWorker.cpp
to see what url is being generated. I can change the table back to its
original state (I have backups)
with the deviceid=-1 and last mount NULL.
Thanks
Rich
Rich wrote:
> Hi
>
> I tried the SQLite import, that worked fine.
> I originally had some old entries in there before I enabled MySql in 1.4.
>
> Thanks, I found the table after looking a bit deeper. :)
>
> So I ran the sql in the mysql db to see why it wasnt being detected.
> I found the deviceid in the stats table had 99% of the rows as -1
> which matched NULL on the join. So I issued an update to set
> the deviceid to match a valid id in device table.
>
> I tried the import again it failed with no tracks to import.
>
> When I run the query in mysql, I get 2600+ rows back.
>
> I did notice many of my paths in the url column were never updated.
> So I ran a script on the column to correct the path of the files.
>
> I thought maybe it was a path issue.
> So now I tried again, still not recognizing the tracks.
>
> Since the songs were collected when I ran 2.02 for the first time,
> this would generate a new unique id. Would this be causing the
> tracks not be picked up?
>
> What determines a valid track in the import?
>
>
>
> Thanks
> Rich
>
>
> Seb Ruiz wrote:
>> 2009/3/15 Rich <budman85 at eastlink.ca>:
>>
>>> Hi
>>>
>>> I tried importing old stats from mysql in amarok 1.4, but turns up with
>>> no tracks found.
>>>
>>> I checked the source sql, the lastmountpoint column doesn't exist so the
>>> import fails.
>>> Is there another table missing or is this column not needed?
>>>
>>
>> The importer does a join on the device table, which contains this column.
>>
>> Are you getting any errors when running Amarok from the command line
>> with the --debug option enabled?
>>
>>
>>> SELECT lastmountpoint, S.url, createdate, accessdate, percentage,
>>> rating, playcounter, lyrics from statistics ORDER BY lastmountpoint, url;
>>> ERROR 1054 (42S22): Unknown column 'lastmountpoint' in 'field list'
>>> mysql> describe statistics;
>>> +-------------+--------------+------+-----+---------+-------+
>>> | Field | Type | Null | Key | Default | Extra |
>>> +-------------+--------------+------+-----+---------+-------+
>>> | url | varchar(255) | NO | PRI | | |
>>> | deviceid | int(11) | NO | PRI | 0 | |
>>> | createdate | int(11) | YES | | NULL | |
>>> | accessdate | int(11) | YES | | NULL | |
>>> | percentage | float | YES | MUL | NULL | |
>>> | rating | int(11) | YES | MUL | 0 | |
>>> | playcounter | int(11) | YES | MUL | NULL | |
>>> | uniqueid | varchar(32) | YES | UNI | NULL | |
>>> | deleted | tinyint(1) | YES | | 0 | |
>>> +-------------+--------------+------+-----+---------+-------+
>>>
>>>
>>> Thanks
>>> Rich
>>> _______________________________________________
>>> Amarok mailing list
>>> Amarok at kde.org
>>> https://mail.kde.org/mailman/listinfo/amarok
>>>
>>>
>>
>>
>>
>>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Amarok mailing list
> Amarok at kde.org
> https://mail.kde.org/mailman/listinfo/amarok
>
More information about the Amarok
mailing list