I recently ran updates on this box.
I previously did not have any jails or plugins. I decided I want to install a plugin, it asked for a pool, I gave the the only pool I have. Errors followed.
Everything it tries to do with iocage fails, no mount points, read only filesystem. I didn’t do anything myself, everything along with the errors was generated automatically. What’s the fix? Delete iocage and try again? Should iocage be read only?
Error: Traceback (most recent call last):
File “/usr/local/lib/python3.9/site-packages/iocage_lib/ioc_json.py”, line 650, in json_write
with iocage_lib.ioc_common.open_atomic(write_location, ‘w’) as out:
File “/usr/local/lib/python3.9/contextlib.py”, line 119, in enter
return next(self.gen)
File “/usr/local/lib/python3.9/site-packages/iocage_lib/ioc_common.py”, line 590, in open_atomic
with tempfile(dir=os.path.dirname(os.path.abspath(filepath))) as tmppath:
File “/usr/local/lib/python3.9/contextlib.py”, line 119, in enter
return next(self.gen)
File “/usr/local/lib/python3.9/site-packages/iocage_lib/ioc_common.py”, line 553, in tempfile
tf = tmp.NamedTemporaryFile(delete=False, suffix=suffix, dir=dir)
File “/usr/local/lib/python3.9/tempfile.py”, line 545, in NamedTemporaryFile
(fd, name) = _mkstemp_inner(dir, prefix, suffix, flags, output_type)
File “/usr/local/lib/python3.9/tempfile.py”, line 255, in _mkstemp_inner
fd = _os.open(file, flags, 0o600)
OSError: [Errno 30] Read-only file system: ‘/mnt/NASvol/iocage/tmpy5a5f40s’
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File “/usr/local/lib/python3.9/site-packages/middlewared/plugins/jail_freebsd.py”, line 1074, in get_activated_pool
pool = ioc.IOCage(skip_jails=True, reset_cache=True).get(‘’, pool=True)
File “/usr/local/lib/python3.9/site-packages/iocage_lib/iocage.py”, line 95, in init
self.generic_iocjson = ioc_json.IOCJson()
File “/usr/local/lib/python3.9/site-packages/iocage_lib/ioc_json.py”, line 1372, in init
super().init(location, checking_datasets, silent, callback)
File “/usr/local/lib/python3.9/site-packages/iocage_lib/ioc_json.py”, line 432, in init
self.default_config = self.check_default_config()
File “/usr/local/lib/python3.9/site-packages/iocage_lib/ioc_json.py”, line 1302, in check_default_config
self.json_write(default_props, default_json_location,
File “/usr/local/lib/python3.9/site-packages/iocage_lib/ioc_json.py”, line 654, in json_write
raise FileNotFoundError(write_location)
FileNotFoundError: /mnt/NASvol/iocage/defaults.json
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File “/usr/local/lib/python3.9/site-packages/iocage_lib/ioc_check.py”, line 97, in check_datasets
raise ZFSException(-1, ‘Dataset does not exist’)
iocage_lib.zfs.ZFSException: Dataset does not exist
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File “/usr/local/lib/python3.9/site-packages/iocage_lib/zfs.py”, line 20, in run
cp.check_returncode()
File “/usr/local/lib/python3.9/subprocess.py”, line 460, in check_returncode
raise CalledProcessError(self.returncode, self.args, self.stdout,
subprocess.CalledProcessError: Command ‘[‘zfs’, ‘create’, ‘-o’, ‘compression=lz4’, ‘-o’, ‘aclmode=passthrough’, ‘-o’, ‘aclinherit=passthrough’, ‘NASvol/iocage/log’]’ returned non-zero exit status 1.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File “/usr/local/lib/python3.9/site-packages/middlewared/main.py”, line 139, in call_method
result = await self.middleware._call(message[‘method’], serviceobj, methodobj, params, app=self)
File “/usr/local/lib/python3.9/site-packages/middlewared/main.py”, line 1251, in _call
return await self.run_in_executor(prepared_call.executor, methodobj, *prepared_call.args)
File “/usr/local/lib/python3.9/site-packages/middlewared/main.py”, line 1156, in run_in_executor
return await loop.run_in_executor(pool, functools.partial(method, *args, **kwargs))
File “/usr/local/lib/python3.9/concurrent/futures/thread.py”, line 58, in run
result = self.fn(*self.args, **self.kwargs)
File “/usr/local/lib/python3.9/site-packages/middlewared/schema.py”, line 985, in nf
return f(*args, **kwargs)
File “/usr/local/lib/python3.9/site-packages/middlewared/plugins/jail_freebsd.py”, line 1078, in get_activated_pool
self.check_dataset_existence()
File “/usr/local/lib/python3.9/site-packages/middlewared/plugins/jail_freebsd.py”, line 1047, in check_dataset_existence
IOCCheck(migrate=True, reset_cache=True)
File “/usr/local/lib/python3.9/site-packages/iocage_lib/ioc_check.py”, line 58, in init
self.check_datasets()
File “/usr/local/lib/python3.9/site-packages/iocage_lib/ioc_check.py”, line 127, in check_datasets
ds.create({‘properties’: dataset_options})
File “/usr/local/lib/python3.9/site-packages/iocage_lib/dataset.py”, line 42, in create
return create_dataset({‘name’: self.resource_name, **data})
File “/usr/local/lib/python3.9/site-packages/iocage_lib/zfs.py”, line 155, in create_dataset
return run([
File “/usr/local/lib/python3.9/site-packages/iocage_lib/zfs.py”, line 22, in run
raise ZFSException(cp.returncode, cp.stderr)
iocage_lib.zfs.ZFSException: cannot mount ‘/mnt/NASvol/iocage/log’: failed to create mountpoint: Read-only file system
filesystem successfully created, but not mounted