Cannot export pool. pool is busy? but it's empty.

gsrcrxsi

Explorer
Joined
Apr 15, 2018
Messages
86
So I have a new TrueNAS SCALE system (see specs in sig) it's running the release version.

I initially set it up with a test pool ("Test_Volume") just a single disk vdev with a single 500GB Samsung 970 EVO M.2 drive for testing some things.

well now that testing is complete, and I've installed 2x 1.6TB Intel DC drives in new pool (single mirrored vdev) to replace it. I replicated all zvols and data sets over to the new pool, and deleted all datasets and zvols from the Test_Volume pool.

I wanted to delete this pool, so in the GUI i clicked the Pool operations icon for the pool, selected "Export/Disconnect" but TrueNAS throws an error that the pool is "busy".

any tips?

Code:
Error: concurrent.futures.process._RemoteTraceback:
"""
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/middlewared/plugins/zfs.py", line 149, in do_delete
    zfs.destroy(name, force=options['force'])
  File "libzfs.pyx", line 404, in libzfs.ZFS.__exit__
  File "/usr/lib/python3/dist-packages/middlewared/plugins/zfs.py", line 149, in do_delete
    zfs.destroy(name, force=options['force'])
  File "libzfs.pyx", line 1388, in libzfs.ZFS.destroy
libzfs.ZFSException: pool or dataset is busy

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 114, 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 1135, in nf
    res = f(*args, **kwargs)
  File "/usr/lib/python3/dist-packages/middlewared/schema.py", line 1265, in nf
    return func(*args, **kwargs)
  File "/usr/lib/python3/dist-packages/middlewared/plugins/zfs.py", line 154, in do_delete
    raise CallError(str(e), errno_)
middlewared.service_exception.CallError: [EFAULT] pool or dataset is busy
"""

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 423, in run
    await self.future
  File "/usr/lib/python3/dist-packages/middlewared/job.py", line 459, in __run_body
    rv = await self.method(*([self] + args))
  File "/usr/lib/python3/dist-packages/middlewared/schema.py", line 1261, in nf
    return await func(*args, **kwargs)
  File "/usr/lib/python3/dist-packages/middlewared/schema.py", line 1129, in nf
    res = await f(*args, **kwargs)
  File "/usr/lib/python3/dist-packages/middlewared/plugins/pool.py", line 1574, in export
    await self.middleware.call('zfs.pool.delete', pool['name'])
  File "/usr/lib/python3/dist-packages/middlewared/main.py", line 1318, in call
    return await self._call(
  File "/usr/lib/python3/dist-packages/middlewared/main.py", line 1275, in _call
    return await methodobj(*prepared_call.args)
  File "/usr/lib/python3/dist-packages/middlewared/service.py", line 929, in delete
    rv = await self.middleware._call(
  File "/usr/lib/python3/dist-packages/middlewared/main.py", line 1283, in _call
    return await self._call_worker(name, *prepared_call.args)
  File "/usr/lib/python3/dist-packages/middlewared/main.py", line 1289, in _call_worker
    return await self.run_in_proc(main_worker, name, args, job)
  File "/usr/lib/python3/dist-packages/middlewared/main.py", line 1212, 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 1186, in run_in_executor
    return await loop.run_in_executor(pool, functools.partial(method, *args, **kwargs))
middlewared.service_exception.CallError: [EFAULT] pool or dataset is busy
 

gsrcrxsi

Explorer
Joined
Apr 15, 2018
Messages
86
Update:

system reboot seems to have "fixed" whatever was keeping the pool busy. exported fine now.
 
Top