Improve iocage fstab validation
Description
Problem/Justification
None
Impact
None
duplicates
is blocked by
is duplicated by
SmartDraw Connector
Katalon Manual Tests (BETA)
Activity
Show:
Jeff Ervin June 20, 2019 at 1:04 PM
Test Passed FreeNAS-11.2-INTERNAL-9
Disconnected pool associated with a mount point. Was able to edit the mount point without error after disconnect.
Bug Clerk May 29, 2019 at 6:57 PM
Bug Clerk May 29, 2019 at 6:49 PMEdited
Bug Clerk May 29, 2019 at 6:27 PM
Bug Clerk May 28, 2019 at 11:40 AMEdited
Complete
Pinned fields
Click on the next to a field label to start pinning.
Created April 23, 2019 at 1:53 PM
Updated July 1, 2022 at 4:32 PM
Resolved June 23, 2019 at 4:02 AM
1. add mount point to the jail
2. disconnect disk/pool
3. now you can't remove mount from jail : Source: /mnt/HDD01 does not exist!
Error: concurrent.futures.process._RemoteTraceback:
"""
Traceback (most recent call last):
File "/usr/local/lib/python3.6/site-packages/middlewared/plugins/jail.py", line 707, in fstab
dump, _pass, index=index
File "/usr/local/lib/python3.6/site-packages/iocage_lib/iocage.py", line 1037, in fstab
index=index
File "/usr/local/lib/python3.6/site-packages/iocage_lib/ioc_fstab.py", line 69, in _init_
self.dests = self._validate_fstab_(self.fstab, 'all')
File "/usr/local/lib/python3.6/site-packages/iocage_lib/ioc_fstab.py", line 212, in _validate_fstab_
exception=iocage_lib.ioc_exceptions.ValidationFailed
File "/usr/local/lib/python3.6/site-packages/iocage_lib/ioc_common.py", line 90, in logit
_callback(content, exception)
File "/usr/local/lib/python3.6/site-packages/iocage_lib/ioc_common.py", line 64, in callback
raise callback_exception(message)
iocage_lib.ioc_exceptions.ValidationFailed: ['Source: /mnt/HDD01 does not exist!']
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python3.6/concurrent/futures/process.py", line 175, in _process_worker
r = call_item.fn(*call_item.args, **call_item.kwargs)
File "/usr/local/lib/python3.6/site-packages/middlewared/worker.py", line 128, in main_worker
res = loop.run_until_complete(coro)
File "/usr/local/lib/python3.6/asyncio/base_events.py", line 468, in run_until_complete
return future.result()
File "/usr/local/lib/python3.6/site-packages/middlewared/worker.py", line 88, in _run
return await self._call(f'{service_name}.{method}', serviceobj, methodobj, params=args, job=job)
File "/usr/local/lib/python3.6/site-packages/middlewared/worker.py", line 81, in _call
return methodobj(*params)
File "/usr/local/lib/python3.6/site-packages/middlewared/worker.py", line 81, in _call
return methodobj(*params)
File "/usr/local/lib/python3.6/site-packages/middlewared/schema.py", line 668, in nf
return f(*args, **kwargs)
File "/usr/local/lib/python3.6/site-packages/middlewared/plugins/jail.py", line 719, in fstab
raise CallError(e.message)
middlewared.service_exception.CallError: [EFAULT] Source: /mnt/HDD01 does not exist!
"""
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/local/lib/python3.6/site-packages/middlewared/main.py", line 165, in call_method
result = await self.middleware.call_method(self, message)
File "/usr/local/lib/python3.6/site-packages/middlewared/main.py", line 1141, in call_method
return await self._call(message['method'], serviceobj, methodobj, params, app=app, io_thread=False)
File "/usr/local/lib/python3.6/site-packages/middlewared/main.py", line 1078, in _call
return await self._call_worker(serviceobj, name, *args)
File "/usr/local/lib/python3.6/site-packages/middlewared/main.py", line 1105, in _call_worker
job,
File "/usr/local/lib/python3.6/site-packages/middlewared/main.py", line 1036, in run_in_proc
return await self.run_in_executor(self.__procpool, method, *args, **kwargs)
File "/usr/local/lib/python3.6/site-packages/middlewared/main.py", line 1021, in run_in_executor
return await loop.run_in_executor(pool, functools.partial(method, *args, **kwargs))
middlewared.service_exception.CallError: [EFAULT] Source: /mnt/HDD01 does not exist!