Attempt to add third SSD to mirrored pool fails
Description
Problem/Justification
Impact
Activity

Bug Clerk May 14, 2022 at 12:00 PM
22.02.2 PR: https://github.com/truenas/webui/pull/6693

Rick Bollar September 27, 2021 at 8:21 PM
Agree the error is clear when I try to REPLACE a pool's drive. However, when I tried to EXTEND the pool, the error I got (the initial report) doesn't mention "device is too small".
Otherwise, yes, REPLACE error is correct: the drive is too small. They are all labeled 1TB drives, but the replacement is about 20GB smaller than the existing drives (mumble grumble)

William Gryzbowski September 27, 2021 at 8:02 PM
The error seems to be clear, despite too verbose: [EZFS_BADDEV] device is too small
Are you positive is the same size or bigger than the other ones?

Rick Bollar September 27, 2021 at 6:43 PM
Received a similar error when I tried to replace. Although the drives all say they're 1TB, I wonder if they really are?
Error: concurrent.futures.process._RemoteTraceback:
"""
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/middlewared/plugins/zfs.py", line 299, in replace
target.replace(newvdev)
File "libzfs.pyx", line 404, in libzfs.ZFS._exit_
File "/usr/lib/python3/dist-packages/middlewared/plugins/zfs.py", line 299, in replace
target.replace(newvdev)
File "libzfs.pyx", line 2070, in libzfs.ZFSVdev.replace
libzfs.ZFSException: device is too small
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python3.9/concurrent/futures/process.py", line 243, in _process_worker
r = call_item.fn(*call_item.args, **call_item.kwargs)
File "/usr/lib/python3/dist-packages/middlewared/worker.py", line 97, in main_worker
res = MIDDLEWARE._run(*call_args)
File "/usr/lib/python3/dist-packages/middlewared/worker.py", line 45, in _run
return self._call(name, serviceobj, methodobj, args, job=job)
File "/usr/lib/python3/dist-packages/middlewared/worker.py", line 39, in _call
return methodobj(*params)
File "/usr/lib/python3/dist-packages/middlewared/worker.py", line 39, in _call
return methodobj(*params)
File "/usr/lib/python3/dist-packages/middlewared/schema.py", line 1186, in nf
return func(*args, **kwargs)
File "/usr/lib/python3/dist-packages/middlewared/plugins/zfs.py", line 301, in replace
raise CallError(str(e), e.code)
middlewared.service_exception.CallError: [EZFS_BADDEV] device is too small
"""
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/middlewared/job.py", line 382, in run
await self.future
File "/usr/lib/python3/dist-packages/middlewared/job.py", line 418, in __run_body
rv = await self.method(*([self] + args))
File "/usr/lib/python3/dist-packages/middlewared/schema.py", line 1182, in nf
return await func(*args, **kwargs)
File "/usr/lib/python3/dist-packages/middlewared/schema.py", line 1092, in nf
res = await f(*args, **kwargs)
File "/usr/lib/python3/dist-packages/middlewared/plugins/pool_/replace_disk.py", line 137, in replace
raise e
File "/usr/lib/python3/dist-packages/middlewared/plugins/pool_/replace_disk.py", line 117, in replace
await self.middleware.call(
File "/usr/lib/python3/dist-packages/middlewared/main.py", line 1305, in call
return await self._call(
File "/usr/lib/python3/dist-packages/middlewared/main.py", line 1270, in _call
return await self._call_worker(name, *prepared_call.args)
File "/usr/lib/python3/dist-packages/middlewared/main.py", line 1276, in _call_worker
return await self.run_in_proc(main_worker, name, args, job)
File "/usr/lib/python3/dist-packages/middlewared/main.py", line 1203, in run_in_proc
return await self.run_in_executor(self.__procpool, method, *args, **kwargs)
File "/usr/lib/python3/dist-packages/middlewared/main.py", line 1177, in run_in_executor
return await loop.run_in_executor(pool, functools.partial(method, *args, **kwargs))
middlewared.service_exception.CallError: [EZFS_BADDEV] device is too small
Details
Details
Assignee

Reporter

I tried to extend a mirrored pool with a third SSD. It failed with the following error:
Error: Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/middlewared/job.py", line 382, in run
await self.future
File "/usr/lib/python3/dist-packages/middlewared/job.py", line 418, in __run_body
rv = await self.method(*([self] + args))
File "/usr/lib/python3/dist-packages/middlewared/schema.py", line 1182, in nf
return await func(*args, **kwargs)
File "/usr/lib/python3/dist-packages/middlewared/schema.py", line 1092, in nf
res = await f(*args, **kwargs)
File "/usr/lib/python3/dist-packages/middlewared/plugins/pool_/attach_disk.py", line 83, in attach
await job.wrap(extend_job)
File "/usr/lib/python3/dist-packages/middlewared/job.py", line 513, in wrap
raise CallError(subjob.exception)
middlewared.service_exception.CallError: [EFAULT] concurrent.futures.process._RemoteTraceback:
"""
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/middlewared/plugins/zfs.py", line 219, in extend
i['target'].attach(newvdev)
File "libzfs.pyx", line 404, in libzfs.ZFS._exit_