That fixed it up for me, I ran into the same issue as well.
Posts by Spy Alelo
-
-
Seems like we have bigger issues, deleting the file for me didn't fix it and now I get a lot of errors if I attempt to modify anything for notifications:
Code
Display More2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: Executing background process failed: Failed to execute command 'export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin; export LC_ALL=C.UTF-8; export LANGUAGE=; omv-salt deploy run --no-color apt 2>&1' with exit code '1': megadrive.thepoorgeek.com: 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: Data failed to compile: 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: ---------- 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: Rendering SLS 'base:omv.deploy.apt.10default' failed: Jinja error: expected string or bytes-like object, got 'NoneType' 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: Traceback (most recent call last): 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: File "/usr/lib/python3/dist-packages/salt/utils/templates.py", line 477, in render_jinja_tmpl 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: output = template.render(**decoded_context) 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: File "/usr/lib/python3/dist-packages/jinja2/environment.py", line 1301, in render 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: self.environment.handle_exception() 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: File "/usr/lib/python3/dist-packages/jinja2/environment.py", line 936, in handle_exception 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: raise rewrite_traceback_stack(source=source) 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: File "<template>", line 32, in top-level template code 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: File "/usr/lib/python3/dist-packages/jinja2/async_utils.py", line 45, in wrapper 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: return normal_func(*args, **kwargs) 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: File "/usr/lib/python3/dist-packages/jinja2/filters.py", line 1343, in sync_do_list 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: return list(value) 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: ^^^^^^^^^^^ 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: File "/usr/lib/python3/dist-packages/jinja2/filters.py", line 1784, in select_or_reject 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: if func(item): 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: ^^^^^^^^^^ 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: File "/usr/lib/python3/dist-packages/jinja2/filters.py", line 1769, in <lambda> 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: return lambda item: modfunc(func(transfunc(item))) 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: ^^^^^^^^^^^^^^^^^^^^^ 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: File "/usr/lib/python3/dist-packages/jinja2/filters.py", line 1764, in func 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: return context.environment.call_test(name, item, args, kwargs) 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: File "/usr/lib/python3/dist-packages/jinja2/environment.py", line 589, in call_test 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: return self._filter_test_common( 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: ^^^^^^^^^^^^^^^^^^^^^^^^^ 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: File "/usr/lib/python3/dist-packages/jinja2/environment.py", line 545, in _filter_test_common 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: return func(*args, **kwargs) 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: ^^^^^^^^^^^^^^^^^^^^^ 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: File "/usr/lib/python3/dist-packages/salt/utils/jinja.py", line 278, in test_match 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: return True if compiled_rgx.match(txt) else False 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: ^^^^^^^^^^^^^^^^^^^^^^^ 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: TypeError: expected string or bytes-like object, got 'NoneType' 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: ; line 32 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: --- 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: [...] 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: {% set pkg_repos = [] %} 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: {% for value in salt['pkg.list_repos']().values() %} 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: {% set _ = pkg_repos.extend(value) %} 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: {% endfor %} 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: {% set security_pkg_repos = pkg_repos | rejectattr('disabled') | selectattr('uri', 'match', '^https?://((deb|security).debian.org|security.ubuntu.com)/.*-security$') | list %} <====================== 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: # Workaround for https://github.com/mvo5/unattended-upgrades/issues/366 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: remove_apt_default_unattended_upgrades_conf: 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: file.absent: 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: - name: "/etc/apt/apt.conf.d/50unattended-upgrades" 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: [...] 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: --- 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: [ERROR ] Rendering exception occurred 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: Traceback (most recent call last): 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: File "/usr/lib/python3/dist-packages/salt/utils/templates.py", line 477, in render_jinja_tmpl 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: output = template.render(**decoded_context) 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: File "/usr/lib/python3/dist-packages/jinja2/environment.py", line 1301, in render 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: self.environment.handle_exception() 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: File "/usr/lib/python3/dist-packages/jinja2/environment.py", line 936, in handle_exception 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: raise rewrite_traceback_stack(source=source) 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: File "<template>", line 32, in top-level template code 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: File "/usr/lib/python3/dist-packages/jinja2/async_utils.py", line 45, in wrapper 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: return normal_func(*args, **kwargs) 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: File "/usr/lib/python3/dist-packages/jinja2/filters.py", line 1343, in sync_do_list 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: return list(value) 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: ^^^^^^^^^^^ 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: File "/usr/lib/python3/dist-packages/jinja2/filters.py", line 1784, in select_or_reject 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: if func(item): 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: ^^^^^^^^^^ 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: File "/usr/lib/python3/dist-packages/jinja2/filters.py", line 1769, in <lambda> 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: return lambda item: modfunc(func(transfunc(item))) 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: ^^^^^^^^^^^^^^^^^^^^^ 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: File "/usr/lib/python3/dist-packages/jinja2/filters.py", line 1764, in func 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: return context.environment.call_test(name, item, args, kwargs) 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: File "/usr/lib/python3/dist-packages/jinja2/environment.py", line 589, in call_test 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: return self._filter_test_common( 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: ^^^^^^^^^^^^^^^^^^^^^^^^^ 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: File "/usr/lib/python3/dist-packages/jinja2/environment.py", line 545, in _filter_test_common 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: return func(*args, **kwargs) 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: ^^^^^^^^^^^^^^^^^^^^^ 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: File "/usr/lib/python3/dist-packages/salt/utils/jinja.py", line 278, in test_match 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: return True if compiled_rgx.match(txt) else False 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: ^^^^^^^^^^^^^^^^^^^^^^^ 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: TypeError: expected string or bytes-like object, got 'NoneType' 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: During handling of the above exception, another exception occurred: 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: Traceback (most recent call last): 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: File "/usr/lib/python3/dist-packages/salt/utils/templates.py", line 219, in render_tmpl 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: output = render_str(tmplstr, context, tmplpath) 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: File "/usr/lib/python3/dist-packages/salt/utils/templates.py", line 523, in render_jinja_tmpl 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: raise SaltRenderError( 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: salt.exceptions.SaltRenderError: Jinja error: expected string or bytes-like object, got 'NoneType' 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: Traceback (most recent call last): 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: File "/usr/lib/python3/dist-packages/salt/utils/templates.py", line 477, in render_jinja_tmpl 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: output = template.render(**decoded_context) 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: File "/usr/lib/python3/dist-packages/jinja2/environment.py", line 1301, in render 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: self.environment.handle_exception() 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: File "/usr/lib/python3/dist-packages/jinja2/environment.py", line 936, in handle_exception 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: raise rewrite_traceback_stack(source=source) 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: File "<template>", line 32, in top-level template code 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: File "/usr/lib/python3/dist-packages/jinja2/async_utils.py", line 45, in wrapper 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: return normal_func(*args, **kwargs) 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: File "/usr/lib/python3/dist-packages/jinja2/filters.py", line 1343, in sync_do_list 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: return list(value) 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: ^^^^^^^^^^^ 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: File "/usr/lib/python3/dist-packages/jinja2/filters.py", line 1784, in select_or_reject 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: if func(item): 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: ^^^^^^^^^^ 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: File "/usr/lib/python3/dist-packages/jinja2/filters.py", line 1769, in <lambda> 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: return lambda item: modfunc(func(transfunc(item))) 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: ^^^^^^^^^^^^^^^^^^^^^ 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: File "/usr/lib/python3/dist-packages/jinja2/filters.py", line 1764, in func 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: return context.environment.call_test(name, item, args, kwargs) 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: File "/usr/lib/python3/dist-packages/jinja2/environment.py", line 589, in call_test 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: return self._filter_test_common( 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: ^^^^^^^^^^^^^^^^^^^^^^^^^ 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: File "/usr/lib/python3/dist-packages/jinja2/environment.py", line 545, in _filter_test_common 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: return func(*args, **kwargs) 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: ^^^^^^^^^^^^^^^^^^^^^ 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: File "/usr/lib/python3/dist-packages/salt/utils/jinja.py", line 278, in test_match 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: return True if compiled_rgx.match(txt) else False 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: ^^^^^^^^^^^^^^^^^^^^^^^ 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: TypeError: expected string or bytes-like object, got 'NoneType' 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: ; line 32 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: --- 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: [...] 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: {% set pkg_repos = [] %} 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: {% for value in salt['pkg.list_repos']().values() %} 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: {% set _ = pkg_repos.extend(value) %} 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: {% endfor %} 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: {% set security_pkg_repos = pkg_repos | rejectattr('disabled') | selectattr('uri', 'match', '^https?://((deb|security).debian.org|security.ubuntu.com)/.*-security$') | list %} <====================== 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: # Workaround for https://github.com/mvo5/unattended-upgrades/issues/366 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: remove_apt_default_unattended_upgrades_conf: 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: file.absent: 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: - name: "/etc/apt/apt.conf.d/50unattended-upgrades" 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: [...] 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: --- 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: [CRITICAL] Rendering SLS 'base:omv.deploy.apt.10default' failed: Jinja error: expected string or bytes-like object, got 'NoneType' 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: Traceback (most recent call last): 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: File "/usr/lib/python3/dist-packages/salt/utils/templates.py", line 477, in render_jinja_tmpl 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: output = template.render(**decoded_context) 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: File "/usr/lib/python3/dist-packages/jinja2/environment.py", line 1301, in render 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: self.environment.handle_exception() 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: File "/usr/lib/python3/dist-packages/jinja2/environment.py", line 936, in handle_exception 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: raise rewrite_traceback_stack(source=source) 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: File "<template>", line 32, in top-level template code 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: File "/usr/lib/python3/dist-packages/jinja2/async_utils.py", line 45, in wrapper 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: return normal_func(*args, **kwargs) 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: File "/usr/lib/python3/dist-packages/jinja2/filters.py", line 1343, in sync_do_list 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: return list(value) 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: ^^^^^^^^^^^ 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: File "/usr/lib/python3/dist-packages/jinja2/filters.py", line 1784, in select_or_reject 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: if func(item): 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: ^^^^^^^^^^ 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: File "/usr/lib/python3/dist-packages/jinja2/filters.py", line 1769, in <lambda> 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: return lambda item: modfunc(func(transfunc(item))) 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: ^^^^^^^^^^^^^^^^^^^^^ 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: File "/usr/lib/python3/dist-packages/jinja2/filters.py", line 1764, in func 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: return context.environment.call_test(name, item, args, kwargs) 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: File "/usr/lib/python3/dist-packages/jinja2/environment.py", line 589, in call_test 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: return self._filter_test_common( 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: ^^^^^^^^^^^^^^^^^^^^^^^^^ 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: File "/usr/lib/python3/dist-packages/jinja2/environment.py", line 545, in _filter_test_common 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: return func(*args, **kwargs) 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: ^^^^^^^^^^^^^^^^^^^^^ 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: File "/usr/lib/python3/dist-packages/salt/utils/jinja.py", line 278, in test_match 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: return True if compiled_rgx.match(txt) else False 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: ^^^^^^^^^^^^^^^^^^^^^^^ 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: TypeError: expected string or bytes-like object, got 'NoneType' 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: ; line 32 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: --- 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: [...] 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: {% set pkg_repos = [] %} 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: {% for value in salt['pkg.list_repos']().values() %} 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: {% set _ = pkg_repos.extend(value) %} 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: {% endfor %} 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: {% set security_pkg_repos = pkg_repos | rejectattr('disabled') | selectattr('uri', 'match', '^https?://((deb|security).debian.org|security.ubuntu.com)/.*-security$') | list %} <====================== 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: # Workaround for https://github.com/mvo5/unattended-upgrades/issues/366 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: remove_apt_default_unattended_upgrades_conf: 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: file.absent: 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: - name: "/etc/apt/apt.conf.d/50unattended-upgrades" 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: [...] 2025-08-29T09:22:10-0500 megadrive omv-engined[350809]: --- (file=/usr/share/php/openmediavault/system/process.inc, line=247) -
I saw the same issue. Are you using fail2ban?
-
Thanks for sharing all of this.
I think I have no choice but to throw in the towel on SMB and use NFS.
Did you see if catia:mappings can help with your issue?
If you can map the period at the end of the directory name to something valid, say my_folder. to my_folder- then this may work for you.
-
Can you try moving a sub-directory and recover from the snapshots?
As long as my original data is intact, I can browse/read every sub-directory. The issue is when the sub-directory is missing from the original path.
-
Confirmed, the Previous Versions prompt is definitely serving the files off the SMB share when going through sub-directories, not the .snapshots directory:
Files at the top level can be recovered. I can't figure out the why, the parameters seem correct for smb.conf and I've tried all types of combinations here. I can't really tell if this is a bug or a misconfiguration.
-
And before anyone asks, browsing this data from a mapped share or URI yields the same result. Here it is doing it from the URI itself, same issue:
I also thought this was a permission issue, but that's not the case. Whenever the snapshots are created, something's wrong with how the path is presented when trying to copy from them. I'm pulling my hair out trying to figure this out.
-
So I got an interesting issue, and I couldn't find anyone else with the same problem after some searching.
Long story short, I am trying to recover from a previous snapshot on a share. The volume is using btrfs, and the snapshot date is there. But when I try to recover it using Windows Previous Versions, I get "Item Not Found". It seems like is trying to recover from the original path, well since it was deleted of course it can't find it. It doesn't seem to be using the snapshots path to recover from, even though I can browse the data. See below:
Eventually, I just used WinSCP to grab what I needed from the .snapshots folder. I replicated this issue on an external USB HDD that also has a backup of the same data with snapshots as well, and a 2nd OMV 7.6.0-1 server also with a btrfs volume and snapshots.
As of note, if the data is actually not deleted from the share and you try to "recover" or open a file from within Previous Versions, it works but is not actually grabbing the data off the snapshots path but rather the actual live share.
To replicate:
1. Create a snapshot of the share
2. Delete the original data
3. Use Previous Versions on Explorer to recover
4. Profit?
I am not sure if this is a Samba Shadow Copy path issue or a misconfiguration on my end, but this is pretty bog standard stuff.
Any input helps!
Code
Display More# This file is auto-generated by openmediavault (https://www.openmediavault.org) # WARNING: Do not edit this file, your changes will get lost. #======================= Global Settings ======================= [global] workgroup = WORKGROUP server string = %h server dns proxy = no log level = 0 log file = /var/log/samba/log.%m max log size = 1000 logging = syslog panic action = /usr/share/samba/panic-action %d passdb backend = tdbsam obey pam restrictions = no unix password sync = no passwd program = /usr/bin/passwd %u passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* . pam password change = yes socket options = TCP_NODELAY IPTOS_LOWDELAY guest account = nobody load printers = no disable spoolss = yes printing = bsd printcap name = /dev/null unix extensions = yes create mask = 0777 directory mask = 0777 map to guest = Bad User use sendfile = yes aio read size = 1 aio write size = 1 time server = no wins support = no disable netbios = yes multicast dns register = no server min protocol = SMB3_00 # Special configuration for Apple's Time Machine fruit:aapl = yes fruit:copyfile = yes fruit:nfs_aces = no # Extra options fruit:model = MacRack access based share enum = yes veto files = /.DS_Store/.AppleDouble/.AppleDesktop/Network Trash Folder/.AppleDB/.TemporaryItems/Temporary Items/.snapshots delete veto files = yes [nobody] browseable = no #======================= Share Definitions ======================= [Backups] comment = External HDD path = /srv/dev-disk-by-uuid-051c2056-fd32-434f-b257-df5695e4620f/Backups/ guest ok = no guest only = no read only = yes browseable = no inherit acls = no inherit permissions = no ea support = yes store dos attributes = no smb encrypt = required shadow:mountpoint = /srv/dev-disk-by-uuid-051c2056-fd32-434f-b257-df5695e4620f/ shadow:snapdir = /srv/dev-disk-by-uuid-051c2056-fd32-434f-b257-df5695e4620f/.snapshots/ shadow:basedir = /srv/dev-disk-by-uuid-051c2056-fd32-434f-b257-df5695e4620f/Backups/ shadow:sort = desc shadow:format = _%Y%m%dT%H%M%S shadow:delimiter = _ shadow:snapprefix = ^Backups\(@hourly\)\{0,1\}\(@daily\)\{0,1\}\(@weekly\)\{0,1\}\(@monthly\)\{0,1\}\(@yearly\)\{0,1\}$ shadow:localtime = no dfree command = /usr/sbin/omv-btrfs-dfree dfree cache time = 30 vfs objects = catia fruit streams_xattr btrfs shadow_copy2 printable = no create mask = 0664 force create mode = 0664 directory mask = 0775 force directory mode = 0775 hide special files = yes follow symlinks = yes wide links = no hide dot files = yes valid users = @"admins" invalid users = read list = [TimeMachine] comment = macOS Backups path = /srv/dev-disk-by-uuid-b547fd47-3448-4781-8eec-f53c6284b6d1/Shares/TimeMachine/ guest ok = no guest only = no read only = no browseable = no inherit acls = yes inherit permissions = yes ea support = yes store dos attributes = no smb encrypt = required fruit:encoding = private fruit:locking = none fruit:metadata = stream fruit:resource = file fruit:veto_appledouble = no fruit:wipe_intentionally_left_blank_rfork = yes fruit:delete_empty_adfiles = yes fruit:time machine = yes shadow:mountpoint = /srv/dev-disk-by-uuid-b547fd47-3448-4781-8eec-f53c6284b6d1/ shadow:snapdir = /srv/dev-disk-by-uuid-b547fd47-3448-4781-8eec-f53c6284b6d1/.snapshots/ shadow:basedir = /srv/dev-disk-by-uuid-b547fd47-3448-4781-8eec-f53c6284b6d1/Shares/TimeMachine/ shadow:sort = desc shadow:format = _%Y%m%dT%H%M%S shadow:delimiter = _ shadow:snapprefix = ^TimeMachine\(@hourly\)\{0,1\}\(@daily\)\{0,1\}\(@weekly\)\{0,1\}\(@monthly\)\{0,1\}\(@yearly\)\{0,1\}$ shadow:localtime = no dfree command = /usr/sbin/omv-btrfs-dfree dfree cache time = 30 vfs objects = catia fruit streams_xattr btrfs shadow_copy2 printable = no create mask = 0664 force create mode = 0664 directory mask = 0775 force directory mode = 0775 hide special files = yes follow symlinks = yes wide links = no hide dot files = yes valid users = invalid users = read list = write list = fruit:time machine max size=500G [Public] comment = Drop-Box path = /srv/dev-disk-by-uuid-b547fd47-3448-4781-8eec-f53c6284b6d1/Shares/Public/ guest ok = yes guest only = no read only = no browseable = yes inherit acls = yes inherit permissions = yes ea support = yes store dos attributes = no shadow:mountpoint = /srv/dev-disk-by-uuid-b547fd47-3448-4781-8eec-f53c6284b6d1/ shadow:snapdir = /srv/dev-disk-by-uuid-b547fd47-3448-4781-8eec-f53c6284b6d1/.snapshots/ shadow:basedir = /srv/dev-disk-by-uuid-b547fd47-3448-4781-8eec-f53c6284b6d1/Shares/Public/ shadow:sort = desc shadow:format = _%Y%m%dT%H%M%S shadow:delimiter = _ shadow:snapprefix = ^Public\(@hourly\)\{0,1\}\(@daily\)\{0,1\}\(@weekly\)\{0,1\}\(@monthly\)\{0,1\}\(@yearly\)\{0,1\}$ shadow:localtime = no dfree command = /usr/sbin/omv-btrfs-dfree dfree cache time = 30 vfs objects = catia fruit streams_xattr btrfs shadow_copy2 printable = no create mask = 0664 force create mode = 0664 directory mask = 0775 force directory mode = 0775 hide special files = yes follow symlinks = yes wide links = no hide dot files = yes read list = write list = [Media] comment = Guests are read-only path = /srv/dev-disk-by-uuid-b547fd47-3448-4781-8eec-f53c6284b6d1/Shares/Media/ guest ok = yes guest only = no read only = no browseable = yes inherit acls = yes inherit permissions = yes ea support = yes store dos attributes = no shadow:mountpoint = /srv/dev-disk-by-uuid-b547fd47-3448-4781-8eec-f53c6284b6d1/ shadow:snapdir = /srv/dev-disk-by-uuid-b547fd47-3448-4781-8eec-f53c6284b6d1/.snapshots/ shadow:basedir = /srv/dev-disk-by-uuid-b547fd47-3448-4781-8eec-f53c6284b6d1/Shares/Media/ shadow:sort = desc shadow:format = _%Y%m%dT%H%M%S shadow:delimiter = _ shadow:snapprefix = ^Media\(@hourly\)\{0,1\}\(@daily\)\{0,1\}\(@weekly\)\{0,1\}\(@monthly\)\{0,1\}\(@yearly\)\{0,1\}$ shadow:localtime = no dfree command = /usr/sbin/omv-btrfs-dfree dfree cache time = 30 vfs objects = catia fruit streams_xattr btrfs shadow_copy2 printable = no create mask = 0664 force create mode = 0664 directory mask = 0775 force directory mode = 0775 hide special files = yes follow symlinks = yes wide links = no hide dot files = yes read list = write list = hide unreadable = yes [Private] comment = Private Share path = /srv/dev-disk-by-uuid-b547fd47-3448-4781-8eec-f53c6284b6d1/Shares/Private/ guest ok = no guest only = no read only = no browseable = yes inherit acls = yes inherit permissions = yes ea support = yes store dos attributes = no smb encrypt = required shadow:mountpoint = /srv/dev-disk-by-uuid-b547fd47-3448-4781-8eec-f53c6284b6d1/ shadow:snapdir = /srv/dev-disk-by-uuid-b547fd47-3448-4781-8eec-f53c6284b6d1/.snapshots/ shadow:basedir = /srv/dev-disk-by-uuid-b547fd47-3448-4781-8eec-f53c6284b6d1/Shares/Private/ shadow:sort = desc shadow:format = _%Y%m%dT%H%M%S shadow:delimiter = _ shadow:snapprefix = ^Private\(@hourly\)\{0,1\}\(@daily\)\{0,1\}\(@weekly\)\{0,1\}\(@monthly\)\{0,1\}\(@yearly\)\{0,1\}$ shadow:localtime = no dfree command = /usr/sbin/omv-btrfs-dfree dfree cache time = 30 vfs objects = catia fruit streams_xattr btrfs shadow_copy2 printable = no create mask = 0664 force create mode = 0664 directory mask = 0775 force directory mode = 0775 hide special files = yes follow symlinks = yes wide links = no hide dot files = yes valid users = @"admins" invalid users = read list = write list = @"admins" [FileHistory] comment = Veeam Backups path = /srv/dev-disk-by-uuid-b547fd47-3448-4781-8eec-f53c6284b6d1/Shares/FileHistory/ guest ok = no guest only = no read only = no browseable = no inherit acls = yes inherit permissions = yes ea support = yes store dos attributes = no smb encrypt = required shadow:mountpoint = /srv/dev-disk-by-uuid-b547fd47-3448-4781-8eec-f53c6284b6d1/ shadow:snapdir = /srv/dev-disk-by-uuid-b547fd47-3448-4781-8eec-f53c6284b6d1/.snapshots/ shadow:basedir = /srv/dev-disk-by-uuid-b547fd47-3448-4781-8eec-f53c6284b6d1/Shares/FileHistory/ shadow:sort = desc shadow:format = _%Y%m%dT%H%M%S shadow:delimiter = _ shadow:snapprefix = ^FileHistory\(@hourly\)\{0,1\}\(@daily\)\{0,1\}\(@weekly\)\{0,1\}\(@monthly\)\{0,1\}\(@yearly\)\{0,1\}$ shadow:localtime = no dfree command = /usr/sbin/omv-btrfs-dfree dfree cache time = 30 vfs objects = catia fruit streams_xattr btrfs shadow_copy2 printable = no create mask = 0664 force create mode = 0664 directory mask = 0775 force directory mode = 0775 hide special files = yes follow symlinks = yes wide links = no hide dot files = yes valid users = invalid users = read list = write list = #======================= Home Directories ======================= [homes] comment = Home directories browseable = no inherit acls = yes inherit permissions = yes writable = yes create mask = 0600 force create mode = 0600 directory mask = 0700 force directory mode = 0700 valid users = %S hide special files = yes follow symlinks = yes wide links = no shadow:mountpoint = /srv/dev-disk-by-uuid-b547fd47-3448-4781-8eec-f53c6284b6d1/ shadow:snapdir = /srv/dev-disk-by-uuid-b547fd47-3448-4781-8eec-f53c6284b6d1/.snapshots/ shadow:basedir = /srv/dev-disk-by-uuid-b547fd47-3448-4781-8eec-f53c6284b6d1/Shares/Users/ shadow:sort = desc shadow:format = _%Y%m%dT%H%M%S shadow:delimiter = _ shadow:snapprefix = ^homes\(@hourly\)\{0,1\}\(@daily\)\{0,1\}\(@weekly\)\{0,1\}\(@monthly\)\{0,1\}\(@yearly\)\{0,1\}$ shadow:localtime = no dfree command = /usr/sbin/omv-btrfs-dfree dfree cache time = 30 vfs objects = catia fruit streams_xattr btrfs shadow_copy2 -
I do happen to have one of these with the iLO5 enablement card. You can get the card for around $40 on Amazon.
As far as the CPU is concerned, it is plenty powerful as a NAS and run Dockers or any other containers you choose. VMs are okay if you have plenty of memory, but not stellar.
If you get one, I recommend a NVMe M.2 SSD on a low profile PCIe adapter for your boot drive. Any low cost solution will do, and this thing is rock solid in terms of reliability. And yes, is more efficient than your older setup.
-
I read your comments on GitHub so I deleted and re-created the share with transport encryption, and now it works as you described.
I am thinking is leftover from a long time ago, this box was originally running on OMV 3.xx and I've always upgraded to the next major release. I am not too surprised.
Thanks for looking into it!
-
Yep, is a pretty straightfoward thing.
-
openmediavault Release: 6.9.2-1
I just noticed today that enabling "Transport encryption" per share wasn't working, and after some digging I concluded that the syntax for this option on this build of OMV is incorrect:
That syntax is for Samba v4.14.xx and above. The correct syntax for the version in OMV6 (v4.13.xx) is:
I was able to get my shares encrypted properly once I added "smb encrypt = required" to my "Private Share":
I raised issue 1605 on GitHub:
Once OpenMediaVault starts using Samba v4.14 and above, this would need to be revisited.
-
I personally like to use the MDADM soft RAID for RAID5/6 instead of HPE's own solution (and I work for HPE!)
My reason behind it is that MDADM is not hardware dependent, while a failure on your HPE SmartArray controller is the complete opposite.
As far as performance is concerned, I don't see any advantages other than the writing caching features of the HPE controller (which is dependent on a battery that needs regular servicing) but it also depends on how much data you will be writing on a regular basis and how many clients will be using it.
As long as you are aware of the limitations of hardware RAID and are able to get spare parts at any time, I don't see any reason to move away from it.
-
For just file sharing, no need to go the Xeon and memory upgrade route.
The base model is more than enough.
-
I agree that your old server may have reached the point that is no longer a good option to keep feeding new drives to.
As far as transitioning, I’d recommend a fresh install so you can take advantage of UEFI, and you will need UEFI anyway if you need to boot off a NVMe SSD which I strongly recommend.
As of right now, Microservers only exist on Gen7 (yours), Gen8, Gen10 and Gen10+. Gen8 has been discontinued for a while and Gen10 was not a great replacement in my opinion since it lacks a lot of what made the Gen8 a great server.
Gen10+ brings it all back, has more options and it is smaller. Definitely avoid a discontinued model if you can help it since UEFI is a big deal and this only started on Gen9 hardware. Gen10 as far as the Microservers are concerned.
-
You have a couple of options. I would have to either convert towers to rack servers or use a shelf for towers in our racks. These shelves are not exactly cheap, but you may be able to find it used on eBay. Since the ML10 v2 is fairly lightweight, you can use 417705-B2 as long as your rack is deep enough for it.
Or use a generic rack shelf and pad it with some packing foam, secure the tower to the shelve with a Velcro strap around it so that it won't move around (that's what I had to do sometimes).
Buying a used server is not a bad idea at all, it all depends on what you want to do. If it is just for storage, I'd recommend the MicroServer Gen10+ which is relatively inexpensive even when new. It has x4 LFF bays, x4 Ethernet ports, and a PCIe slot. You can easily get that, add four very large SATA hard drives and get an inexpensive PCIe to M.2 NVMe adapter with a cheap M.2 NVMe for the OMV OS. Although it does have the iLO5 chip, you do have to purchase the iLO5 network adapter which if you shop around, you can get for less than $50.
I got that server for myself and I have x4 10TB drives, for a total of 30TB of storage. Honestly, the small size, lower power consumption, low noise and low heat that comes out of it really made it totally worth it for me. Plus, it looks pretty!
-
Hi there.
Normally, when RBSU cannot communicate with iLO is due to a misconfiguration or a corrupt iLO firmware. There are a few things you can try out:
- Enter RBSU (F9) during post, and reset RBSU to manufacturing defaults.
- If that doesn't work, and you already have OMV installed, install hponcfg and attempt a factory reset from the CLI with hponcfg /r
- If that also fails, completely turn off your server and remove the power. Then remove the CMOS battery and leave it out for an hour.
- Re-install the battery and power up your server again.
Removing the CMOS battery will erase all the RBSU and iLO4 settings from the server. If this doesn't resolve the issue, is probable that iLO has a corrupted firmware EEPROM. This may require the motherboard to be replaced.
-
I see. I wonder if this is the new expected behavior or if is just a new default for it, kinda sucks since I didn't expect it.
-
Cool, I'll do the same and replicate.
-
I know right? Is so bizarre, I don't even know where to start on trying to figure this out.
As you said, I don't see where it would generate this or even why.
I did see an impact that this would have for me, and that's when using WOL. The app I use wouldn't be able to determine if the server is up since it has use the the physical MAC to power it up. I got scripts on another server that checks those things and powers it up to RSYNC files from one to the other, this will be a challenge.