Use a split instead of a regex to find the poolname for zvol blocksize
Seen in FreeNAS-11.2-INTERNAL72
To recreate the issue, click three dot menu under a pool. Click "Add zvol". Enter name and a size. Click "Save". The WebUI hangs there indefinitely and does not create a zvol.
- Category changed from GUI (new) to Middleware
- Assignee changed from Erin Clark to William Grzybowski
I see this happening in the webui:
reason: "[ENOENT] Pool not found."
formatted: "Traceback (most recent call last):\n File \"/usr/local/lib/python3.6/site-packages/middlewared/main.py\", line 165, in call_method\n result = await self.middleware.call_method(self, message)\n File \"/usr/local/lib/python3.6/site-packages/middlewared/main.py\", line 1141, in call_method\n return await self._call(message['method'], serviceobj, methodobj, params, app=app, io_thread=False)\n File \"/usr/local/lib/python3.6/site-packages/middlewared/main.py\", line 1081, in _call\n return await methodobj(*args)\n File \"/usr/local/lib/python3.6/site-packages/middlewared/schema.py\", line 664, in nf\n return await f(*args, **kwargs)\n File \"/usr/local/lib/python3.6/site-packages/middlewared/plugins/pool.py\", line 884, in recommended_zvol_blocksize\n raise CallError('Pool not found.', errno.ENOENT)\nmiddlewared.service_exception.CallError: [ENOENT] Pool not found.\n"
Which I seems to be happening happening when this call is being made to get the recommended blocksize 'pool.dataset.recommended_zvol_blocksize', since the blocksize is not discovered and not set the form errors out. If I manually set the blocksize the call succeeds and creates a zvol.
It is also only doing this for one of the two pools on the box this originates from and not the other one, it seems the middleware just doesn't like that pool for some reason. Could you look into this William?