(2015-01-16, 21:40)therealsega Wrote: This is the log with debuggin enabled. Took 32 minutes this time with a CPU usage close to idle.
My database consists of ~ 150 movies and ~ 50 series.
Code:
20:05:05 T:2795500608 DEBUG: webserver: request received for /jsonrpc
20:27:51 T:3038511104 DEBUG: Previous line repeats 36 times.
You should post complete log and use a paste site (e.g. pastebin).
Did you clean using a http (e.g. phone) remote app?
Is it any different when selecting "clean library" from settings/video/library?
I've just tried cleaning a big library (1500 movies, 30000 TV episodes) and it does take a while, although for me it's about 5 minutes.
CPU usage is not that high because most of the time is spent doing existence checks on file system:
Code:
#0 0xb61cca70 in poll () from /opt/bcm-rootfs/lib/arm-linux-gnueabihf/libc.so.6
#1 0xad03cd04 in wait_for_nfs_reply () from /opt/xbmc-bcm/xbmc-dbg/arm-linux-gnueabihf/arm-linux-gnueabihf/lib/libnfs.so.4.3.0
#2 0xad03cffc in nfs_stat () from /opt/xbmc-bcm/xbmc-dbg/arm-linux-gnueabihf/arm-linux-gnueabihf/lib/libnfs.so.4.3.0
#3 0x007a8fe8 in XFILE::CNFSFile::Stat (this=<optimised out>, url=..., buffer=0x0) at NFSFile.cpp:603
#4 0x007a5cb8 in XFILE::CNFSFile::Exists (this=<optimised out>, url=...) at NFSFile.cpp:582
#5 0x007102e0 in XFILE::CFile::Exists (file=..., bUseCache=bUseCache@entry=false) at File.cpp:379
#6 0x00710640 in XFILE::CFile::Exists (strFileName=..., bUseCache=<optimised out>) at File.cpp:357
#7 0x00484b28 in CVideoDatabase::CleanDatabase (this=this@entry=0x2fb3428, handle=0x20c6ee8, handle@entry=0x0, paths=paths@entry=0x0, showProgress=showProgress@entry=true) at VideoDatabase.cpp:7883
#8 0x004c3e88 in VIDEO::CVideoInfoScanner::CleanDatabase (this=0x2fb3240, handle=0x0, paths=0x0, showProgress=<optimised out>) at VideoInfoScanner.cpp:251
#9 0x0044cac0 in CMediaSettings::OnSettingAction (this=<optimised out>, setting=<optimised out>) at MediaSettings.cpp:336
#10 0x008d69cc in CSettingsManager::OnSettingAction (this=<optimised out>, setting=0x304f308) at SettingsManager.cpp:797
#11 0x008e19bc in CGUIControlButtonSetting::OnClick (this=0xa8617078) at GUIControlSettings.cpp:551
#12 0x008b433c in CGUIDialogSettingsBase::OnClick (this=0x327b038, pSettingControl=...) at GUIDialogSettingsBase.cpp:762
#13 0x008b6d58 in CGUIDialogSettingsBase::OnMessage (this=this@entry=0x327b038, message=...) at GUIDialogSettingsBase.cpp:208
#14 0x015845d4 in CGUIWindowSettingsCategory::OnMessage (this=0x327b038, message=...) at GUIWindowSettingsCategory.cpp:125
#15 0x00597120 in CGUIButtonControl::OnClick (this=0xa885d5b0) at GUIButtonControl.cpp:320
#16 0x00595b58 in CGUIButtonControl::OnAction (this=0xffffffff, action=...) at GUIButtonControl.cpp:152
#17 0x005040d8 in CGUIWindow::OnAction (this=0x327b038, action=...) at GUIWindow.cpp:419
#18 0x01584730 in CGUIWindowSettingsCategory::OnAction (this=<optimised out>, action=...) at GUIWindowSettingsCategory.cpp:172
#19 0x00508fac in CGUIWindowManager::OnAction (this=0x2fb5e78, action=...) at GUIWindowManager.cpp:489
#20 0x0090ccbc in CApplication::OnAction (this=0x2fb2c50, action=...) at Application.cpp:2591
#21 0x0090e3b4 in CApplication::OnKey (this=this@entry=0x2fb2c50, key=...) at Application.cpp:2506
#22 0x0090ec60 in CApplication::OnEvent (newEvent=...) at Application.cpp:475
#23 0x015a6130 in CWinEventsLinux::MessagePump (this=<optimised out>) at WinEventsLinux.cpp:66
#24 0x015a5f7c in CWinEvents::MessagePump () at WinEvents.cpp:83
#25 0x0090fc64 in CApplication::FrameMove (this=0x2fb2c50, processEvents=<optimised out>, processGUI=<optimised out>) at Application.cpp:2943
#26 0x00991338 in CXBApplicationEx::Run (this=0x2fb2c50) at XBApplicationEx.cpp:140
#27 0x00997280 in XBMC_Run (renderGUI=<optimised out>) at xbmc.cpp:69
#28 0x003d73e0 in main (argc=3, argv=0xbefff6d4) at main.cpp:76
So I think the slowness is at least partly in the speed of the network and the server. I assume you are using NFS? What are you using as the server?
I'm a little surprised that libnfs is not hitting entries in a directory cache for the exists tests. I wonder if this behaviour could have changed from an earlier xbmc version.