Errors replacing a Failed drive

wgriffa

Cadet
Joined
Aug 21, 2021
Messages
4
Hi I am running TrueNAS Core Version: TrueNAS-12.0-U5.1.

One of my mirrored drives died. I replaced the failed drive with one two terabytes larger.

I see the serial number and GPTID of the new drive.

Using the web interface I went to, Storage, Disks, selected the gear in the upper right and selected Status.
Mirror ada0p2 is online, the new disk is unavailable, I clicked the ellipses on the right and selected replace, I selected Member disk ada5 the only option. I checked off FORCE and click REPLACE DISK. It said Replacing Disk, starts formatting and gets to 30% and gives me the error below.

This is a brand new hard drive, A Seagate Barracuda 6TB. The other half of the mirror is a 4TB drive.
Someone in the forum suggested doing a disk wipe, the wipe worked, I rebooted and tried replacing the drive again, still failed at the same point.

I did no disk preparation, I just took it out of the package and plugged it into my TrueNAS machine.

Your help is appreciated.

Error: concurrent.futures.process._RemoteTraceback:
"""
Traceback (most recent call last):
File "/usr/local/lib/python3.9/concurrent/futures/process.py", line 243, in _process_worker
r = call_item.fn(*call_item.args, **call_item.kwargs)
File "/usr/local/lib/python3.9/site-packages/middlewared/worker.py", line 94, in main_worker
res = MIDDLEWARE._run(*call_args)
File "/usr/local/lib/python3.9/site-packages/middlewared/worker.py", line 45, in _run
return self._call(name, serviceobj, methodobj, args, job=job)
File "/usr/local/lib/python3.9/site-packages/middlewared/worker.py", line 39, in _call
return methodobj(*params)
File "/usr/local/lib/python3.9/site-packages/middlewared/worker.py", line 39, in _call
return methodobj(*params)
File "/usr/local/lib/python3.9/site-packages/middlewared/schema.py", line 977, in nf
return f(*args, **kwargs)
File "/usr/local/lib/python3.9/site-packages/middlewared/plugins/zfs.py", line 277, in replace
target.replace(newvdev)
File "libzfs.pyx", line 391, in libzfs.ZFS.__exit__
File "/usr/local/lib/python3.9/site-packages/middlewared/plugins/zfs.py", line 277, in replace
target.replace(newvdev)
File "libzfs.pyx", line 2060, in libzfs.ZFSVdev.replace
File "libzfs.pyx", line 469, in libzfs.ZFS.get_error
File "/usr/local/lib/python3.9/enum.py", line 384, in __call__
return cls.__new__(cls, value)
File "/usr/local/lib/python3.9/enum.py", line 702, in __new__
raise ve_exc
ValueError: 2074 is not a valid Error
"""

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/usr/local/lib/python3.9/site-packages/middlewared/job.py", line 367, in run
await self.future
File "/usr/local/lib/python3.9/site-packages/middlewared/job.py", line 403, in __run_body
rv = await self.method(*([self] + args))
File "/usr/local/lib/python3.9/site-packages/middlewared/schema.py", line 973, in nf
return await f(*args, **kwargs)
File "/usr/local/lib/python3.9/site-packages/middlewared/plugins/pool_/replace_disk.py", line 122, in replace
raise e
File "/usr/local/lib/python3.9/site-packages/middlewared/plugins/pool_/replace_disk.py", line 102, in replace
await self.middleware.call(
File "/usr/local/lib/python3.9/site-packages/middlewared/main.py", line 1248, in call
return await self._call(
File "/usr/local/lib/python3.9/site-packages/middlewared/main.py", line 1213, in _call
return await self._call_worker(name, *prepared_call.args)
File "/usr/local/lib/python3.9/site-packages/middlewared/main.py", line 1219, in _call_worker
return await self.run_in_proc(main_worker, name, args, job)
File "/usr/local/lib/python3.9/site-packages/middlewared/main.py", line 1146, in run_in_proc
return await self.run_in_executor(self.__procpool, method, *args, **kwargs)
File "/usr/local/lib/python3.9/site-packages/middlewared/main.py", line 1120, in run_in_executor
return await loop.run_in_executor(pool, functools.partial(method, *args, **kwargs))
ValueError: 2074 is not a valid Error
 

wgriffa

Cadet
Joined
Aug 21, 2021
Messages
4
I tried using the command line,

zpool replace -f pool /gptid/olddriveserial /gptid/newdriveserial

I received an error, stating the the drive cannot be replaced because a CHECKPOINT exists

I ran, zpool checkpoint -d mypool (To remove the check point)

Now I re-ran,

zpool replace -f pool /gptid/olddriveserial /gptid/newdrive serial

And now it is resilvering, all is good!

Did the web interface give an understandable error and fail because it did could not tell me a CHECKPOINT existed?
 
Top