Hi, I am consistently encountering the below error in my system when I try to write/update my config after mounting a new disk. OMV is running in an LXC in Proxmox VE 7. It appears to be trying to probe or remount the root filesystem//the rpool within which the LXC data is stored, but this is not exposed within the container itself. This has not previously been a persistent issue until now.
An excerpt of the error message is posted below:
Failed to execute command 'export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin; export LANG=C.UTF-8; export LANGUAGE=; omv-salt deploy run --no-color collectd 2>&1' with exit code '1': omv.local:
Data failed to compile:
----------
Rendering SLS 'base:omv.deploy.collectd.plugins.disk' failed: Jinja error: [Errno 2] No such file or directory: 'rpool/data/subvol-190-disk-0'
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/pyudev/device/_device.py", line 225, in from_device_file
device_type = get_device_type(filename)
File "/usr/lib/python3/dist-packages/pyudev/_util.py", line 130, in get_device_type
mode = os.stat(filename).st_mode
FileNotFoundError: [Errno 2] No such file or directory: 'rpool/data/subvol-190-disk-0'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/salt/utils/templates.py", line 469, in render_jinja_tmpl
output = template.render(**decoded_context)
File "/usr/lib/python3/dist-packages/jinja2/environment.py", line 1090, in render
self.environment.handle_exception()
File "/usr/lib/python3/dist-packages/jinja2/environment.py", line 832, in handle_exception
reraise(*rewrite_traceback_stack(source=source))
File "/usr/lib/python3/dist-packages/jinja2/_compat.py", line 28, in reraise
raise value.with_traceback(tb)
File "<template>", line 61, in top-level template code
File "/usr/lib/python3/dist-packages/jinja2/sandbox.py", line 465, in call
return __context.call(__obj, *args, **kwargs)
File "/usr/lib/python3/dist-packages/salt/loader/lazy.py", line 149, in __call__
return self.loader.run(run_func, *args, **kwargs)
File "/usr/lib/python3/dist-packages/salt/loader/lazy.py", line 1228, in run
return self._last_context.run(self._run_as, _func_or_method, *args, **kwargs)
File "/usr/lib/python3/dist-packages/salt/loader/lazy.py", line 1243, in _run_as
return _func_or_method(*args, **kwargs)
File "/var/cache/salt/minion/extmods/modules/omv_utils.py", line 241, in get_root_filesystem
return fs.predictable_device_file
File "/usr/lib/python3/dist-packages/openmediavault/fs/__init__.py", line 193, in predictable_device_file
if self.has_device_file_by_uuid():
File "/usr/lib/python3/dist-packages/openmediavault/device/block.py", line 171, in has_device_file_by_uuid
return is_device_file_by_uuid(self.device_file_by_uuid)
File "/usr/lib/python3/dist-packages/openmediavault/device/block.py", line 186, in device_file_by_uuid
for device_link in self.device_links:
File "/usr/lib/python3/dist-packages/openmediavault/device/block.py", line 89, in device_links
device = pyudev.Devices.from_device_file(context, self.device_file)
File "/usr/lib/python3/dist-packages/pyudev/device/_device.py", line 228, in from_device_file
raise DeviceNotFoundByFileError(err)
pyudev._errors.DeviceNotFoundByFileError: [Errno 2] No such file or directory: 'rpool/data/subvol-190-disk-0'
; line 61
---
[...]
[...]
[...]
--- in /usr/share/php/openmediavault/system/process.inc:220
Stack trace:
#0 /usr/share/php/openmediavault/engine/module/serviceabstract.inc(62): OMV\System\Process->execute()
#1 /usr/share/openmediavault/engined/rpc/config.inc(174): OMV\Engine\Module\ServiceAbstract->deploy()
#2 [internal function]: Engined\Rpc\Config->applyChanges(Array, Array)
#3 /usr/share/php/openmediavault/rpc/serviceabstract.inc(123): call_user_func_array(Array, Array)
#4 /usr/share/php/openmediavault/rpc/serviceabstract.inc(149): OMV\Rpc\ServiceAbstract->callMethod('applyChanges', Array, Array)
#5 /usr/share/php/openmediavault/rpc/serviceabstract.inc(619): OMV\Rpc\ServiceAbstract->OMV\Rpc\{closure}('/tmp/bgstatusDr...', '/tmp/bgoutput7l...')
#6 /usr/share/php/openmediavault/rpc/serviceabstract.inc(159): OMV\Rpc\ServiceAbstract->execBgProc(Object(Closure))
#7 /usr/share/openmediavault/engined/rpc/config.inc(195): OMV\Rpc\ServiceAbstract->callMethodBg('applyChanges', Array, Array)
#8 [internal function]: Engined\Rpc\Config->applyChangesBg(Array, Array)
#9 /usr/share/php/openmediavault/rpc/serviceabstract.inc(123): call_user_func_array(Array, Array)
#10 /usr/share/php/openmediavault/rpc/rpc.inc(86): OMV\Rpc\ServiceAbstract->callMethod('applyChangesBg', Array, Array)
#11 /usr/sbin/omv-engined(537): OMV\Rpc\Rpc::call('Config', 'applyChangesBg', Array, Array, 1)
#12 {main}
Alles anzeigen
For further context, this was a previously used hard drive that I had mounted on the system. I removed all the files, wiped it, reformatted it, and then mounted the new clean partition. When I try to write my updated config, I encounter the above error. I have rebooted the machine several times but the problem persists.
I believe this change of partitions within the same disk may have confused omv. Thanks for any help.
Edit 2: The problem appears to be -- as expected -- related to the fact I was running it in an LXC container on a proxmox host, which didn't seem to have access to the zfs pool root path from within the container. I tried including this path explicitly in the container and adding the block device to the cgroup, but this still didn't help.