Uploaded image for project: 'TrueNAS'
  1. TrueNAS
  2. NAS-108685

Traceback when trying to export an offline pool

    XMLWordPrintable

    Details

      Description

      I have a pool that composed of a single mirror. I put the pool offline by yanking both disks.
      When trying to call pool.export regardless of how cascade or destroy params are set, I get the following traceback...

       

      `Error: concurrent.futures.process._RemoteTraceback:
      """
      Traceback (most recent call last):
        File "/usr/lib/python3/dist-packages/middlewared/plugins/zfs.py", line 171, in get_devices
          return [i.replace('/dev/', '') for i in zfs.get(name).disks]
        File "libzfs.pyx", line 391, in libzfs.ZFS.__exit__
        File "/usr/lib/python3/dist-packages/middlewared/plugins/zfs.py", line 171, in get_devices
          return [i.replace('/dev/', '') for i in zfs.get(name).disks]
        File "libzfs.pyx", line 1032, in libzfs.ZFS.get
      libzfs.ZFSException: Pool Masodik not found
      
      During handling of the above exception, another exception occurred:
      
      Traceback (most recent call last):
        File "/usr/lib/python3.8/concurrent/futures/process.py", line 239, in _process_worker
          r = call_item.fn(*call_item.args, **call_item.kwargs)
        File "/usr/lib/python3/dist-packages/middlewared/worker.py", line 94, 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 1025, in nf
          return f(*args, **kwargs)
        File "/usr/lib/python3/dist-packages/middlewared/plugins/zfs_/disks_linux.py", line 17, in get_disks
          disks = self.middleware.call_sync('zfs.pool.get_devices', name)
        File "/usr/lib/python3/dist-packages/middlewared/worker.py", line 59, in call_sync
          return methodobj(*params)
        File "/usr/lib/python3/dist-packages/middlewared/schema.py", line 1025, in nf
          return f(*args, **kwargs)
        File "/usr/lib/python3/dist-packages/middlewared/plugins/zfs.py", line 173, in get_devices
          raise CallError(str(e), errno.ENOENT)
      middlewared.service_exception.CallError: [ENOENT] Pool Masodik not found
      """
      
      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 372, in run
          await self.future
        File "/usr/lib/python3/dist-packages/middlewared/job.py", line 408, in __run_body
          rv = await self.method(*([self] + args))
        File "/usr/lib/python3/dist-packages/middlewared/schema.py", line 1021, in nf
          return await f(*args, **kwargs)
        File "/usr/lib/python3/dist-packages/middlewared/plugins/pool.py", line 1530, in export
          attachments = await delegate.query(pool['path'], True)
        File "/usr/lib/python3/dist-packages/middlewared/common/attachment/__init__.py", line 94, in query
          for resource in await self.middleware.call(
        File "/usr/lib/python3/dist-packages/middlewared/main.py", line 1258, in call
          return await self._call(
        File "/usr/lib/python3/dist-packages/middlewared/main.py", line 1215, in _call
          return await methodobj(*prepared_call.args)
        File "/usr/lib/python3/dist-packages/middlewared/schema.py", line 1021, in nf
          return await f(*args, **kwargs)
        File "/usr/lib/python3/dist-packages/middlewared/service.py", line 456, in query
          result = await self.middleware.call(
        File "/usr/lib/python3/dist-packages/middlewared/main.py", line 1258, in call
          return await self._call(
        File "/usr/lib/python3/dist-packages/middlewared/main.py", line 1215, in _call
          return await methodobj(*prepared_call.args)
        File "/usr/lib/python3/dist-packages/middlewared/schema.py", line 1021, in nf
          return await f(*args, **kwargs)
        File "/usr/lib/python3/dist-packages/middlewared/plugins/datastore/read.py", line 163, in query
          result = await self._queryset_serialize(
        File "/usr/lib/python3/dist-packages/middlewared/plugins/datastore/read.py", line 207, in _queryset_serialize
          extend_context_value = await self.middleware.call(extend_context, extra_options)
        File "/usr/lib/python3/dist-packages/middlewared/main.py", line 1258, in call
          return await self._call(
        File "/usr/lib/python3/dist-packages/middlewared/main.py", line 1215, in _call
          return await methodobj(*prepared_call.args)
        File "/usr/lib/python3/dist-packages/middlewared/service.py", line 600, in sharing_task_extend_context
          'service_extend': (await self.middleware.call(self._config.datastore_extend_context, extra))
        File "/usr/lib/python3/dist-packages/middlewared/main.py", line 1258, in call
          return await self._call(
        File "/usr/lib/python3/dist-packages/middlewared/main.py", line 1215, in _call
          return await methodobj(*prepared_call.args)
        File "/usr/lib/python3/dist-packages/middlewared/plugins/iscsi.py", line 698, in extent_extend_context
          'pools': {
        File "/usr/lib/python3/dist-packages/middlewared/plugins/iscsi.py", line 699, in <dictcomp>
          p['name']: {'disks': await self.middleware.call('zfs.pool.get_disks', p['name']), 'all_flash': False}
        File "/usr/lib/python3/dist-packages/middlewared/main.py", line 1258, in call
          return await self._call(
        File "/usr/lib/python3/dist-packages/middlewared/main.py", line 1223, in _call
          return await self._call_worker(name, *prepared_call.args)
        File "/usr/lib/python3/dist-packages/middlewared/main.py", line 1229, in _call_worker
          return await self.run_in_proc(main_worker, name, args, job)
        File "/usr/lib/python3/dist-packages/middlewared/main.py", line 1156, 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 1130, in run_in_executor
          return await loop.run_in_executor(pool, functools.partial(method, *args, **kwargs))
      middlewared.service_exception.CallError: [ENOENT] Pool Masodik not found`

       

        Attachments

          Attachments

            JEditor

              Issue Links

                Activity

                  People

                  Assignee:
                  vladimirv Vladimir Vinogradenko
                  Reporter:
                  damian Damian Szidiropulosz
                  Votes:
                  0 Vote for this issue
                  Watchers:
                  3 Start watching this issue

                    Dates

                    Created:
                    Updated:
                    Resolved: