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