Watchdog: WinError 58 рдЖрдиреЗ рд╡рд╛рд▓реА рдШрдЯрдирд╛рдУрдВ рдХреЛ рд╡рд┐рдлрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдЧрд░рд╛рдиреАрдХрд░реНрддрд╛ рдмрдирд╛рддрд╛ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 14 рд╕рд┐рддре░ 2015  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: gorakhargosh/watchdog

рдирдорд╕реНрддреЗ,

QNAP рдХреЗ рдЕрдВрджрд░ рдХрд┐рд╕реА рдлрд╝реЛрд▓реНрдбрд░ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рддреЗ рд╕рдордп, рдореИрдВ рдирдИ рдмрдирд╛рдИ рдЧрдИ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдИрд╡реЗрдВрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрджрд┐ рдирдИ рдлрд╝рд╛рдЗрд▓ рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╣реИ, рддреЛ рд╡реЙрдЪрдбреЙрдЧ рд╕рд┐рд╕реНрдЯрдо рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рдХреНрд░реИрд╢ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдлрд╝рд╛рдЗрд▓ рдЕрднреА рднреА рдХреЙрдкреА рдХреА рдЬрд╛ рд░рд╣реА рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╢реНрд░реЛрддрд╛ рдХреЛ рдХреНрд░реИрд╢ рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░рдг рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд┐рдВрдбреЛрдЬ 8.1 рдкреНрд░реЛ рдкрд░ рдЪрд▓ рд░рд╣рд╛ рд╣реИред
QNAP рдлрд░реНрдорд╡реЗрдпрд░ рд╕рдВрд╕реНрдХрд░рдг: 3.7.2 рдмрд┐рд▓реНрдб 20120719
рд╕реНрдЯреИрдХ рдЯреНрд░реЗрд╕:

Exception in thread Thread-3:
Traceback (most recent call last):
  File "C:\Python34\lib\threading.py", line 920, in _bootstrap_inner
    self.run()
  File "C:\Python34\lib\site-packages\watchdog-0.8.3-py3.4.egg\watchdog\observers\api.py", line 146, in run
    self.queue_events(self.timeout)
  File "C:\Python34\lib\site-packages\watchdog-0.8.3-py3.4.egg\watchdog\observers\read_directory_changes.py", line 77, in queue_events
    winapi_events = read_events(self._handle, self.watch.is_recursive)
  File "C:\Python34\lib\site-packages\watchdog-0.8.3-py3.4.egg\watchdog\observers\winapi.py", line 347, in read_events
    buf, nbytes = read_directory_changes(handle, recursive)
  File "C:\Python34\lib\site-packages\watchdog-0.8.3-py3.4.egg\watchdog\observers\winapi.py", line 307, in read_directory_changes
    raise e
  File "C:\Python34\lib\site-packages\watchdog-0.8.3-py3.4.egg\watchdog\observers\winapi.py", line 303, in read_directory_changes
    ctypes.byref(nbytes), None, None)
  File "C:\Python34\lib\site-packages\watchdog-0.8.3-py3.4.egg\watchdog\observers\winapi.py", line 108, in _errcheck_bool
    raise ctypes.WinError()
OSError: [WinError 58] The specified server cannot perform the requested operation.

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдореИрдВ рдЕрдм dirwatcher рдереНрд░реЗрдб рдореЗрдВ рджреЗрд░реА/рдкреБрди: рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдвреВрдВрдв рд░рд╣рд╛ рд╣реВрдВ:
OSError: [WinError 64] рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдиреЗрдЯрд╡рд░реНрдХ рдирд╛рдо рдЕрдм рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИ

рд╕рднреА 4 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

WinError 64 рдФрд░ рд╕рдВрджреЗрд╢ рдХреЗ рд╕рд╛рде рдпрд╣рд╛рдБ рднреА рд╡рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ: рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдиреЗрдЯрд╡рд░реНрдХ рдирд╛рдо рдЕрдм рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИред рдРрд╕рд╛ рддрдм рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдХрд┐рд╕реА рдлрд╝рд╛рдЗрд▓ рд╕рд░реНрд╡рд░ рд╕реЗ рдлрд╝реЛрд▓реНрдбрд░ рдкрд░реЛрд╕рд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдЕрдиреБрдкрд▓рдмреНрдз рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ (рдПрд╕рдПрдордмреА рд╢реЗрдпрд░)ред

рдмрд╛рдж рдореЗрдВ рдПрдХ рдкрд░реНрдпрд╡реЗрдХреНрд╖рдХ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдкреБрдирдГ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдо рдЗрд╕ рддрд░рд╣ рдХреА рддреНрд░реБрдЯрд┐ рдХреИрд╕реЗ рдкрдХрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ?

рдореИрдВ рдЕрдм dirwatcher рдереНрд░реЗрдб рдореЗрдВ рджреЗрд░реА/рдкреБрди: рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдвреВрдВрдв рд░рд╣рд╛ рд╣реВрдВ:
OSError: [WinError 64] рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдиреЗрдЯрд╡рд░реНрдХ рдирд╛рдо рдЕрдм рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИ

рдореБрдЭреЗ рд╡рд╣реА рд╕рдорд╕реНрдпрд╛ рдереА рдЬрд╣рд╛рдВ рд░рд┐рдореЛрдЯ рдлрд╝рд╛рдЗрд▓ рд╢реЗрдпрд░ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рддреЗ рд╕рдордп рдореБрдЭреЗ WinError 64 рд╕рдВрджреЗрд╢ рдорд┐рд▓ рд░рд╣рд╛ рдерд╛ред рдореИрдВрдиреЗ watchdog.utils.BaseThread рдХреНрд▓рд╛рд╕ рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдПрдХ рдЫреЛрдЯрд╛ рд░реИрдкрд░ рдмрдирд╛рдпрд╛ рдЬреЛ рдореБрдЭреЗ рддреНрд░реБрдЯрд┐ рдкрдХрдбрд╝рдиреЗ рдФрд░ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдореИрдВ рдлрд┐рд░ рдСрдмреНрдЬрд░реНрд╡рд░ рдмрдирд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЕрдкрдиреЗ рд░реИрдкрд░ рдХреЗ рд╕рд╛рде рдореВрд▓ рдмреЗрд╕ рдереНрд░реЗрдб рдХреНрд▓рд╛рд╕ рдХреЛ рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реВрдВред рдореЗрд░реЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдорд╛рдорд▓реЗ рдореЗрдВ рдореИрдВ рдХрд┐рд╕реА рднреА рдЕрдкрд╡рд╛рдж рдХреЛ рдкрдХрдбрд╝рддрд╛ рд╣реВрдВ рдЬреЛ рд░рди рд╡рд┐рдзрд┐ рдореЗрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдПрдХ рдЕрд▓рдЧ рдереНрд░реЗрдб рдореЗрдВ рдЙрдкрднреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрддрд╛рд░ рдореЗрдВ рдЬреЛрдбрд╝ рджреЗрддрд╛ рд╣реИред рдпрд╣ рдПрдХ рд╣реИрдХреА рд╕рдорд╛рдзрд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рд╕реНрд░реЛрдд рдХреЛрдб рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдмрд┐рдирд╛ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реИрдВред

import logging
import threading

import watchdog.utils

logger = logging.getLogger(__name__)


class BaseThreadWrapper(watchdog.utils.BaseThread):
    """
    Wrapper around watchdog BaseThread class.

    """
    queue = None

    def __init__(self):
        super(BaseThreadWrapper, self).__init__()
        self._original_run = self.run
        self.run = self.run_wrapper

    def run_wrapper(self):
        try:
            self._original_run()
        except Exception as e:
            logger.exception('%s thread exited with error',
                             threading.current_thread().name)
            self.queue.put(e)


watchdog.utils.BaseThread = BaseThreadWrapper

рдЖрдк рд╡реЙрдЪрдбреЙрдЧ рдореЗрдВ рдХреМрди рд╕рд╛ рд╕рдорд╛рдзрд╛рди (рдХреЛрдб рдкрд░рд┐рд╡рд░реНрддрди) рджреЗрдЦрдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗ?

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

alt3red picture alt3red  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

thomasdot picture thomasdot  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

fx86 picture fx86  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

hgrecco picture hgrecco  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

alciomarhollanda picture alciomarhollanda  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ