• Jérome Perrin's avatar
    librecipe/execute: fallback to polling when inotify fails · 8b232c01
    Jérome Perrin authored
    When user ran out of inotify watch, starting wrappers using
    wait-for-files is not possible:
    
        AssertionError: Traceback (most recent call last):
          File "/srv/slapgrid/slappart15/tmp/tmpzurwmg4q/wrapper", line 13, in <module>
            sys.exit(slapos.recipe.librecipe.execute.generic_exec(['/bin/echo', 'done'], wait_list=['/srv/slapgrid/slappart15/tmp/tmpzurwmg4q/wait']))
          File "/srv/slapgrid/slappart15/srv/project/slapos-clean/slapos/recipe/librecipe/execute.py", line 100, in generic_exec
            _wait_files_creation(wait_list)
          File "/srv/slapgrid/slappart15/srv/project/slapos-clean/slapos/recipe/librecipe/execute.py", line 30, in _wait_files_creation
            watchdescriptors = {inotify.add_watch(dirname,
          File "/srv/slapgrid/slappart15/srv/project/slapos-clean/slapos/recipe/librecipe/execute.py", line 30, in <dictcomp>
            watchdescriptors = {inotify.add_watch(dirname,
          File "/srv/slapgrid/slappart15/srv/project/venv/lib/python3.9/site-packages/inotify_simple.py", line 110, in add_watch
            return _libc_call(_libc.inotify_add_watch, self.fileno(), fsencode(path), mask)
          File "/srv/slapgrid/slappart15/srv/project/venv/lib/python3.9/site-packages/inotify_simple.py", line 39, in _libc_call
            raise OSError(errno, os.strerror(errno))
        OSError: [Errno 28] No space left on device
    
    This catches inotify errors and fallback to simple polling in that case.
    8b232c01
Name
Last commit
Last update
..
6tunnel Loading commit data...
addresiliency Loading commit data...
apacheperl Loading commit data...
apachephp Loading commit data...
apacheproxy Loading commit data...
certificate_authority Loading commit data...
check_page_content Loading commit data...
check_parameter Loading commit data...
check_url_available Loading commit data...
cloud9 Loading commit data...
davstorage Loading commit data...
erp5_promise Loading commit data...
erp5_test Loading commit data...
erp5scalabilitytestbed Loading commit data...
erp5testnode Loading commit data...
generic_cloudooo Loading commit data...
generic_kumofs Loading commit data...
generic_memcached Loading commit data...
generic_mysql Loading commit data...
librecipe Loading commit data...
nbdserver Loading commit data...
onetimeupload Loading commit data...
proactive Loading commit data...
re6stnet Loading commit data...
redis Loading commit data...
sheepdogtestbed Loading commit data...
simplehttpserver Loading commit data...
squid Loading commit data...
tidstorage Loading commit data...
web_checker Loading commit data...
zabbixagent Loading commit data...
zeo Loading commit data...
README.generic_cloudooo.rst Loading commit data...
README.librecipe.rst Loading commit data...
README.mkdirectory.rst Loading commit data...
README.zero_knowledge.rst Loading commit data...
__init__.py Loading commit data...
_urlparse.py Loading commit data...
_uuid.py Loading commit data...
check_port_listening.py Loading commit data...
copyfilelist.py Loading commit data...
dcron.py Loading commit data...
dropbear.py Loading commit data...
equeue.py Loading commit data...
free_port.py Loading commit data...
gitinit.py Loading commit data...
jsondump.py Loading commit data...
logrotate.py Loading commit data...
mkdirectory.py Loading commit data...
neoppod.py Loading commit data...
notifier.py Loading commit data...
pbs.py Loading commit data...
postgres.py Loading commit data...
promise_plugin.py Loading commit data...
publish.py Loading commit data...
publish_early.py Loading commit data...
publishurl.py Loading commit data...
random.py Loading commit data...
readline.py Loading commit data...
request.py Loading commit data...
shell.py Loading commit data...
signal_wrapper.py Loading commit data...
simplelogger.py Loading commit data...
slapconfiguration.py Loading commit data...
sshkeys_authority.py Loading commit data...
switch_softwaretype.py Loading commit data...
symbolic_link.py Loading commit data...
trac.py Loading commit data...
userinfo.py Loading commit data...
wrapper.py Loading commit data...
zero_knowledge.py Loading commit data...