Kodi Community Forum
[RELEASE] Library watchdog - Printable Version

+- Kodi Community Forum (https://forum.kodi.tv)
+-- Forum: Support (https://forum.kodi.tv/forumdisplay.php?fid=33)
+--- Forum: Add-on Support (https://forum.kodi.tv/forumdisplay.php?fid=27)
+---- Forum: Service Add-ons (https://forum.kodi.tv/forumdisplay.php?fid=152)
+---- Thread: [RELEASE] Library watchdog (/showthread.php?tid=128896)



RE: [RELEASE] Library watchdog - takoi - 2013-03-13

(2013-03-12, 13:42)jjmucker Wrote: Still doing it buddy. Restarted PC, then went into XBMC, physically deleted a movie, and it was still in there, had to manually force library update to delete it.

Care to post userdata/addon_data/service.watchdog/settings.xml ? There's only 3 reasons it will halt a clean (which is what your previous log showed): xbmc is playing something (which it don't), it's already in the middle of scanning/cleaning (which it is not), or the setting evaluates to false.

(2013-03-13, 19:41)thstorm Wrote:
(2013-03-12, 19:23)shedrock Wrote: Last night I noticed watchdog updated and ever since that, it pops up on xbmc startup and tells me that it is not watching my storage/Movies/TV

How do I resolve this? Any help would be greatly appreciated.

Shedrock
The same with me.

It always tells me that it couldn't watch storage/videos.
On this Path i mounted my NFS-share from my Synology-NAS.

Anybody got any idea how to fix that?

hm. do you mean "/storage/Movies/TV" (why tv inside movies btw) and "/storage/videos", because it won't watch directories that don't exist. (but this part haven't changed in the resent release so that's weird). Otherwise the reason for not watching will be in the log.


RE: [RELEASE] Library watchdog - jjmucker - 2013-03-13

Sure no problem. I actually looked in there myself but I cant make it what would be wrong.
<settings>
<setting id="clean" value="true" />
<setting id="delay" value="1" />
<setting id="method" value="0" />
<setting id="notifications" value="true" />
<setting id="pauseonplayback" value="true" />
<setting id="pollingmethod" value="2" />
<setting id="watchmusic" value="true" />
<setting id="watchvideo" value="true" />
</settings>


RE: [RELEASE] Library watchdog - shedrock - 2013-03-13

My directories do indeed exist. It has always been setup this way and always worked.

Inside that folder called "Movies" reside "Movies1, Movies2 etc, as well as TV1, TV2, TVDocumentaries etc. It is setup this way because I use 1 folder on my main PC called "Shares" for all my HD's.

How to I check the logs.


RE: [RELEASE] Library watchdog - shedrock - 2013-03-13

ok, so I just sat down and spent some time with this. Here is what I have noticed so far.

I can drop a file in TV2 and all my Movie folders and watchdog works. The only folder that it chooses to not scan is the folder called TV.

Update:
Another thing I have noticed (in all skins) once the latest version of watchdog is installed, I can no longer reboot. If I switch back to 0.63 version everything works great.


RE: [RELEASE] Library watchdog - takoi - 2013-03-13

(2013-03-13, 21:31)shedrock Wrote: My directories do indeed exist. It has always been setup this way and always worked.

Inside that folder called "Movies" reside "Movies1, Movies2 etc, as well as TV1, TV2, TVDocumentaries etc. It is setup this way because I use 1 folder on my main PC called "Shares" for all my HD's.

How to I check the logs.

It's explained in the first post


RE: [RELEASE] Library watchdog - shedrock - 2013-03-13

Not sure if htis is enough of the log but all won't fit.

Code:
16:17:19 T:139887990781696   DEBUG: Thread Background Loader 139887990781696 terminating
16:17:19 T:139889110755072   DEBUG: JSONRPC: Incoming request: {"jsonrpc": "2.0", "method": "Files.GetSources", "params": {"media": "video"}, "id": 1}
16:17:19 T:139889110755072   DEBUG: JSONRPC: Calling files.getsources
16:17:19 T:139889110755072   DEBUG: service.watchdog: video sources [u'/storage/videos/', u'/storage/tvshows/', u'/storage/movies/TV/', u'/storage/movies/TV2/', u'/storage/movies/Movies1/', u'/storage/movies/Movies2/', u'/storage/movies/Movies3/', u'/storage/movies/Documentary_Series_1/']
16:17:19 T:139889110755072   DEBUG: service.watchdog: watching </storage/videos/> using <class 'core.polling_local.PollerObserver_Full'>
16:17:19 T:139889110755072   DEBUG: service.watchdog: watching </storage/tvshows/> using <class 'core.polling_local.PollerObserver_Full'>
16:17:20 T:139889110755072   ERROR: Traceback (most recent call last):
16:17:20 T:139889110755072   ERROR:   File "/storage/.xbmc/addons/service.watchdog/core/main.py", line 199, in watch
16:17:20 T:139889110755072   ERROR:     observer.schedule(event_handler, path=path, recursive=RECURSIVE)
16:17:20 T:139889110755072   ERROR:   File "/storage/.xbmc/addons/service.watchdog/lib/watchdog/observers/api.py", line 340, in schedule
16:17:20 T:139889110755072   ERROR:     timeout=self.timeout)
16:17:20 T:139889110755072   ERROR:   File "/storage/.xbmc/addons/service.watchdog/core/polling.py", line 74, in __init__
16:17:20 T:139889110755072   ERROR:     self._snapshot = make_snapshot(self.watch.path)
16:17:20 T:139889110755072   ERROR:   File "/storage/.xbmc/addons/service.watchdog/core/polling.py", line 42, in __init__
16:17:20 T:139889110755072   ERROR:     for dirs, files in walker(root):
16:17:20 T:139889110755072   ERROR:   File "/storage/.xbmc/addons/service.watchdog/core/polling_local.py", line 20, in _walker_recursive
16:17:20 T:139889110755072   ERROR:     for root, dirs, files in os.walk(top):
16:17:20 T:139889110755072   ERROR:   File "./Lib/os.py", line 294, in walk
16:17:20 T:139889110755072   ERROR: Previous line repeats 1 times.
16:17:20 T:139889110755072   ERROR:   File "./Lib/os.py", line 284, in walk
16:17:20 T:139889110755072   ERROR:   File "./Lib/posixpath.py", line 71, in join
16:17:20 T:139889110755072   ERROR: UnicodeDecodeError: 'ascii' codec can't decode byte 0xca in position 31: ordinal not in range(128)
16:17:20 T:139889110755072   DEBUG: service.watchdog: not watching </storage/movies/TV/>
16:17:20 T:139889110755072   DEBUG: service.watchdog: watching </storage/movies/TV2/> using <class 'core.polling_local.PollerObserver_Full'>
16:17:21 T:139889381463872   DEBUG: LIRC: Update - NEW at 78551:ae 0 KEY_EXIT devinput (KEY_EXIT)
16:17:21 T:139889381463872   DEBUG: OnKey: menu (d8) pressed, action is Back
16:17:21 T:139889381463872   DEBUG: CGUIMediaWindow::GetDirectory (addons://outdated/)
16:17:21 T:139889381463872   DEBUG:   ParentPath = []
16:17:21 T:139887876724480  NOTICE: Thread Background Loader start, auto delete: false
16:17:21 T:139887876724480   DEBUG: Thread Background Loader 139887876724480 terminating
16:17:21 T:139889381463872   DEBUG: LIRC: Update - NEW at 79007:ae 0 KEY_EXIT_UP devinput (KEY_EXIT_UP)
16:17:21 T:139889110755072   DEBUG: service.watchdog: watching </storage/movies/Movies1/> using <class 'core.polling_local.PollerObserver_Full'>
16:17:25 T:139889110755072   DEBUG: service.watchdog: watching </storage/movies/Movies2/> using <class 'core.polling_local.PollerObserver_Full'>
16:17:25 T:139889381463872   DEBUG: LIRC: Update - NEW at 82967:ae 0 KEY_EXIT devinput (KEY_EXIT)
16:17:25 T:139889381463872   DEBUG: OnKey: menu (d8) pressed, action is Back
16:17:25 T:139889381463872   DEBUG: CGUIMediaWindow::GetDirectory ()
16:17:25 T:139889381463872   DEBUG:   ParentPath = []



RE: [RELEASE] Library watchdog - jjmucker - 2013-03-13

I just find it very strange that It will update anything that goes in, but won't update when I delete a file.


RE: [RELEASE] Library watchdog - thstorm - 2013-03-14

(2013-03-13, 20:22)takoi Wrote:
(2013-03-12, 13:42)jjmucker Wrote: Still doing it buddy. Restarted PC, then went into XBMC, physically deleted a movie, and it was still in there, had to manually force library update to delete it.

Care to post userdata/addon_data/service.watchdog/settings.xml ? There's only 3 reasons it will halt a clean (which is what your previous log showed): xbmc is playing something (which it don't), it's already in the middle of scanning/cleaning (which it is not), or the setting evaluates to false.

(2013-03-13, 19:41)thstorm Wrote:
(2013-03-12, 19:23)shedrock Wrote: Last night I noticed watchdog updated and ever since that, it pops up on xbmc startup and tells me that it is not watching my storage/Movies/TV

How do I resolve this? Any help would be greatly appreciated.

Shedrock
The same with me.

It always tells me that it couldn't watch storage/videos.
On this Path i mounted my NFS-share from my Synology-NAS.

Anybody got any idea how to fix that?

hm. do you mean "/storage/Movies/TV" (why tv inside movies btw) and "/storage/videos", because it won't watch directories that don't exist. (but this part haven't changed in the resent release so that's weird). Otherwise the reason for not watching will be in the log.


i mean /storage/videos. Thats where i mounted my NFS-Share.

The NFS-Share is from my Synology-NAS an is mounted on startup with the following command:
mount -t nfs 192.168.3.30:/volumeUSB1/usbshare /storage/videos -o nolock

Any Ideas how to fix this?

BTW: I remember that before i updated watchdog to 0.7.3 it worked perfectly. Does anybody have the zip-File of 0.7.2 so that i can downgrade?


RE: [RELEASE] Library watchdog - esprit - 2013-03-14

(2013-03-13, 22:09)shedrock Wrote: Not sure if htis is enough of the log but all won't fit.

Code:
16:17:19 T:139887990781696   DEBUG: Thread Background Loader 139887990781696 terminating
16:17:19 T:139889110755072   DEBUG: JSONRPC: Incoming request: {"jsonrpc": "2.0", "method": "Files.GetSources", "params": {"media": "video"}, "id": 1}
16:17:19 T:139889110755072   DEBUG: JSONRPC: Calling files.getsources
16:17:19 T:139889110755072   DEBUG: service.watchdog: video sources [u'/storage/videos/', u'/storage/tvshows/', u'/storage/movies/TV/', u'/storage/movies/TV2/', u'/storage/movies/Movies1/', u'/storage/movies/Movies2/', u'/storage/movies/Movies3/', u'/storage/movies/Documentary_Series_1/']
16:17:19 T:139889110755072   DEBUG: service.watchdog: watching </storage/videos/> using <class 'core.polling_local.PollerObserver_Full'>
16:17:19 T:139889110755072   DEBUG: service.watchdog: watching </storage/tvshows/> using <class 'core.polling_local.PollerObserver_Full'>
16:17:20 T:139889110755072   ERROR: Traceback (most recent call last):
16:17:20 T:139889110755072   ERROR:   File "/storage/.xbmc/addons/service.watchdog/core/main.py", line 199, in watch
16:17:20 T:139889110755072   ERROR:     observer.schedule(event_handler, path=path, recursive=RECURSIVE)
16:17:20 T:139889110755072   ERROR:   File "/storage/.xbmc/addons/service.watchdog/lib/watchdog/observers/api.py", line 340, in schedule
16:17:20 T:139889110755072   ERROR:     timeout=self.timeout)
16:17:20 T:139889110755072   ERROR:   File "/storage/.xbmc/addons/service.watchdog/core/polling.py", line 74, in __init__
16:17:20 T:139889110755072   ERROR:     self._snapshot = make_snapshot(self.watch.path)
16:17:20 T:139889110755072   ERROR:   File "/storage/.xbmc/addons/service.watchdog/core/polling.py", line 42, in __init__
16:17:20 T:139889110755072   ERROR:     for dirs, files in walker(root):
16:17:20 T:139889110755072   ERROR:   File "/storage/.xbmc/addons/service.watchdog/core/polling_local.py", line 20, in _walker_recursive
16:17:20 T:139889110755072   ERROR:     for root, dirs, files in os.walk(top):
16:17:20 T:139889110755072   ERROR:   File "./Lib/os.py", line 294, in walk
16:17:20 T:139889110755072   ERROR: Previous line repeats 1 times.
16:17:20 T:139889110755072   ERROR:   File "./Lib/os.py", line 284, in walk
16:17:20 T:139889110755072   ERROR:   File "./Lib/posixpath.py", line 71, in join
16:17:20 T:139889110755072   ERROR: UnicodeDecodeError: 'ascii' codec can't decode byte 0xca in position 31: ordinal not in range(128)
16:17:20 T:139889110755072   DEBUG: service.watchdog: not watching </storage/movies/TV/>
16:17:20 T:139889110755072   DEBUG: service.watchdog: watching </storage/movies/TV2/> using <class 'core.polling_local.PollerObserver_Full'>
16:17:21 T:139889381463872   DEBUG: LIRC: Update - NEW at 78551:ae 0 KEY_EXIT devinput (KEY_EXIT)
16:17:21 T:139889381463872   DEBUG: OnKey: menu (d8) pressed, action is Back
16:17:21 T:139889381463872   DEBUG: CGUIMediaWindow::GetDirectory (addons://outdated/)
16:17:21 T:139889381463872   DEBUG:   ParentPath = []
16:17:21 T:139887876724480  NOTICE: Thread Background Loader start, auto delete: false
16:17:21 T:139887876724480   DEBUG: Thread Background Loader 139887876724480 terminating
16:17:21 T:139889381463872   DEBUG: LIRC: Update - NEW at 79007:ae 0 KEY_EXIT_UP devinput (KEY_EXIT_UP)
16:17:21 T:139889110755072   DEBUG: service.watchdog: watching </storage/movies/Movies1/> using <class 'core.polling_local.PollerObserver_Full'>
16:17:25 T:139889110755072   DEBUG: service.watchdog: watching </storage/movies/Movies2/> using <class 'core.polling_local.PollerObserver_Full'>
16:17:25 T:139889381463872   DEBUG: LIRC: Update - NEW at 82967:ae 0 KEY_EXIT devinput (KEY_EXIT)
16:17:25 T:139889381463872   DEBUG: OnKey: menu (d8) pressed, action is Back
16:17:25 T:139889381463872   DEBUG: CGUIMediaWindow::GetDirectory ()
16:17:25 T:139889381463872   DEBUG:   ParentPath = []

I have exactly the same errors in my log since the addon got upgraded tonight (pop-up telling me that it can't watch any of my NFS mounted folders).
I also have a Synology NAS, but all was working fine with watchdog until the last update.
The Python error message "UnicodeDecodeError: 'ascii' codec can't decode byte 0x.." seems to say that the problem is in the encoding of some path/file... but I didn't change anything in my shares recently, and I am pretty sure that everything is in UTF-8.

And I see that everyone has their data in /storage... I guess that all of us seeing the problem are using OpenELEC then...
Perhaps the problem is between the new Library Watchdog version and the OpenELEC Python libs ?


RE: [RELEASE] Library watchdog - esprit - 2013-03-14

Yep, seems to be OpenELEC related : http://openelec.tv/forum/90-miscellaneous/63060-watchdog-and-umlauts-broken-shutdown-prob


RE: [RELEASE] Library watchdog - takoi - 2013-03-15

I see what is going on here. I have the same problem on my OpenElec box. Either we've encountered a python bug or I understand nothing.

The python docs clearly states http://docs.python.org/2/howto/unicode.html
Quote:Functions in the os module such as os.stat() will also accept Unicode filenames.

However:

Code:
>>> for _ in os.listdir(u'/storage/videos/Profeten.2009.720p.Bluray.x264-H@M'):
...   print _
...
Un prophète 2009 720p Bluray x264 H@M_en.srt
Un prophète 2009 720p Bluray x264 [email protected]

Code:
>>> for _ in os.walk('/storage/videos/Profeten.2009.720p.Bluray.x264-H@M'):
...   print _
...
('/storage/videos/Profeten.2009.720p.Bluray.x264-H@M', [], ['Un proph\xc3\xa8te 2009 720p Bluray x264 H@M_en.srt', 'Un proph\xc3\xa8te 2009 720p Bluray x264 [email protected]'])

Code:
>>> for _ in os.walk(u'/storage/videos/Profeten.2009.720p.Bluray.x264-H@M'):
...   print _
...
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "./Lib/os.py", line 284, in walk
  File "./Lib/posixpath.py", line 71, in join
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 9: ordinal not in range(128)

Ways to get around it: rollback to v0.7.2 or get rid of non-ascii character in filenames, or change locale to UTF-8 (OpenElec uses posix. Yes, I know, wtf.)


RE: [RELEASE] Library watchdog - shedrock - 2013-03-15

So why not just put it back the way it way before? Everything worked fine then. Or is this update/changes absolutely required for Frodo?


RE: [RELEASE] Library watchdog - takoi - 2013-03-15

Because it was actually broken before on systems using some of the more obscure encodings. It just happened to work because your filenames were utf-8 encoded. Need to think about what to do. Network shares still works so I can always use the walk function from that instead of python's walk.


RE: [RELEASE] Library watchdog - shedrock - 2013-03-15

No problem. Thanks for all the hard work you're putting into this. It is greatly appreciated.


RE: [RELEASE] Library watchdog - esprit - 2013-03-15

(2013-03-15, 17:21)takoi Wrote: I see what is going on here. I have the same problem on my OpenElec box. Either we've encountered a python bug or I understand nothing.

The python docs clearly states http://docs.python.org/2/howto/unicode.html
Quote:Functions in the os module such as os.stat() will also accept Unicode filenames.

However:

Code:
>>> for _ in os.listdir(u'/storage/videos/Profeten.2009.720p.Bluray.x264-H@M'):
...   print _
...
Un prophète 2009 720p Bluray x264 H@M_en.srt
Un prophète 2009 720p Bluray x264 [email protected]

Code:
>>> for _ in os.walk('/storage/videos/Profeten.2009.720p.Bluray.x264-H@M'):
...   print _
...
('/storage/videos/Profeten.2009.720p.Bluray.x264-H@M', [], ['Un proph\xc3\xa8te 2009 720p Bluray x264 H@M_en.srt', 'Un proph\xc3\xa8te 2009 720p Bluray x264 [email protected]'])

Code:
>>> for _ in os.walk(u'/storage/videos/Profeten.2009.720p.Bluray.x264-H@M'):
...   print _
...
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "./Lib/os.py", line 284, in walk
  File "./Lib/posixpath.py", line 71, in join
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 9: ordinal not in range(128)

Ways to get around it: rollback to v0.7.2 or get rid of non-ascii character in filenames, or change locale to UTF-8 (OpenElec uses posix. Yes, I know, wtf.)
Python (2.X) + unicode has always been a pain in the *hum*... Big Grin
Can I ask you how did you change the locale in OpenELEC ? I googled but did'nt find anything useful...

Thanks !