Project

General

Profile

Bug #30597

Handle IOCAGE_SKIP gracefully when no pool is activated

Added by disk diddler over 1 year ago. Updated about 1 year ago.

Status:
Done
Priority:
No priority
Assignee:
Brandon Schneider
Category:
Middleware
Target version:
Severity:
Medium
Reason for Closing:
Reason for Blocked:
Needs QA:
No
Needs Doc:
No
Needs Merging:
No
Needs Automation:
No
Support Suite Ticket:
n/a
Hardware Configuration:
ChangeLog Required:
No

Description

I have tried this now on 4 different nightly builds in the last 5 days, each time it's consistently broken.
I have tried it with and without creating an array on my drives.
I would simply assume this should not be working at this point in time, were it not for a forum posted claiming it works for them.

Current build at time of reporting:
FreeNAS-11-MASTER-201803220838

NOTE: This is being tested in a 4 core VM with 8GB memory, intel CPU, SSD

ERROR:

Error 22:'IOCAGE_SKIP'

@Error: concurrent.futures.process._RemoteTraceback:
"""
Traceback (most recent call last):
File "/usr/local/lib/python3.6/concurrent/futures/process.py", line 175, in _process_worker
r = call_item.fn(*call_item.args, **call_item.kwargs)
File "/usr/local/lib/python3.6/site-packages/middlewared/worker.py", line 102, in main_worker
res = loop.run_until_complete(coro)
File "/usr/local/lib/python3.6/asyncio/base_events.py", line 467, in run_until_complete
return future.result()
File "/usr/local/lib/python3.6/site-packages/middlewared/worker.py", line 62, in _call
return methodobj(*args)
File "/usr/local/lib/python3.6/site-packages/middlewared/worker.py", line 62, in _call
return methodobj(*args)
File "/usr/local/lib/python3.6/site-packages/middlewared/schema.py", line 506, in nf
return f(*args, **kwargs)
File "/usr/local/lib/python3.6/site-packages/middlewared/plugins/jail.py", line 209, in list_resource
self.check_dataset_existence() # Make sure our datasets exist.
File "/usr/local/lib/python3.6/site-packages/middlewared/plugins/jail.py", line 156, in check_dataset_existence
IOCCheck()
File "/usr/local/lib/python3.6/site-packages/iocage/lib/ioc_check.py", line 39, in init
"pool")
File "/usr/local/lib/python3.6/site-packages/iocage/lib/ioc_json.py", line 520, in json_get_value
if os.environ["IOCAGE_SKIP"] == "TRUE":
File "/usr/local/lib/python3.6/os.py", line 669, in getitem
raise KeyError(key) from None
KeyError: 'IOCAGE_SKIP'
"""

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

Traceback (most recent call last):
File "/usr/local/lib/python3.6/site-packages/middlewared/main.py", line 151, in call_method
result = await self.middleware.call_method(self, message)
File "/usr/local/lib/python3.6/asyncio/coroutines.py", line 128, in throw
return self.gen.throw(type, value, traceback)
File "/usr/local/lib/python3.6/site-packages/middlewared/main.py", line 941, in call_method
return await self._call(message['method'], serviceobj, methodobj, params, app=app)
File "/usr/local/lib/python3.6/asyncio/coroutines.py", line 128, in throw
return self.gen.throw(type, value, traceback)
File "/usr/local/lib/python3.6/site-packages/middlewared/main.py", line 895, in call
return await self._call_worker(serviceobj, name, *args)
File "/usr/local/lib/python3.6/asyncio/coroutines.py", line 128, in throw
return self.gen.throw(type, value, traceback)
File "/usr/local/lib/python3.6/site-packages/middlewared/main.py", line 918, in _call_worker
job,
File "/usr/local/lib/python3.6/asyncio/coroutines.py", line 128, in throw
return self.gen.throw(type, value, traceback)
File "/usr/local/lib/python3.6/site-packages/middlewared/main.py", line 853, in run_in_proc
return await self.run_in_executor(self.
_procpool, method, *args, **kwargs)
File "/usr/local/lib/python3.6/asyncio/coroutines.py", line 128, in throw
return self.gen.throw(type, value, traceback)
File "/usr/local/lib/python3.6/site-packages/middlewared/main.py", line 847, in run_in_executor
return await loop.run_in_executor(pool, functools.partial(method, *args, **kwargs))
KeyError: 'IOCAGE_SKIP'
@

PluginNoPools-2018-06-27.png (30.7 KB) PluginNoPools-2018-06-27.png Michael Reynolds, 06/27/2018 11:40 AM
19713

Related issues

Has duplicate FreeNAS - Bug #30660: When trying to View PluginsClosed2018-03-23

History

#1 Updated by disk diddler over 1 year ago

NOTE: This error also occurs on regular production U3 build.

#2 Updated by disk diddler over 1 year ago

EDIT:

Solution has been found, it is not ideal - error messages are not adequate.

I needed to not only create a storage array (system should say so.
I ALSO needed to MANUALLY make any, random, jail on the system.

Once this was done, this menu no longer fails to load, it will (slowly, without any indication it's working) load and provide a short list of available plugins.

I recommend the error message be much clearer : ERROR: no jails repository found
Alternatively, it should make the jail automatically (the warden plugin system does this on the old UI)

#3 Updated by Dru Lavigne over 1 year ago

  • Assignee changed from Release Council to Erin Clark
  • Target version set to 11.2-RC2

#4 Updated by Erin Clark over 1 year ago

  • Assignee changed from Erin Clark to Lola Yang

#5 Updated by Dru Lavigne over 1 year ago

  • Has duplicate Bug #30660: When trying to View Plugins added

#6 Updated by William Grzybowski over 1 year ago

  • Category changed from GUI (new) to Middleware
  • Assignee changed from Lola Yang to Brandon Schneider
  • Severity changed from Low to Medium

#7 Updated by Brandon Schneider over 1 year ago

  • Status changed from Unscreened to Not Started

#8 Updated by Brandon Schneider over 1 year ago

  • Status changed from Not Started to In Progress

#9 Updated by Brandon Schneider over 1 year ago

  • Status changed from In Progress to Done

#10 Updated by Dru Lavigne over 1 year ago

  • Subject changed from FreeNAS Nightly 11, iocage plugins menu not working. to Handle IOCAGE_SKIP gracefully when no pool is activated
  • Target version changed from 11.2-RC2 to 11.2-BETA1
  • Needs Doc changed from Yes to No
  • Needs Merging changed from Yes to No

#11 Updated by Disk Didler over 1 year ago

Please excuse the second account (it's a long story.... it's being worked on)

Just to clarify, we now have a fairly smart message when attempting to create a JAIL without a pool / array of any kind, however installing a plugin, while not erroring out, doesn't do anything, no indication to the end user they need to make an array.
(admitedly, this is a low priority issue, obviously, just an FYI)

#12 Updated by Dru Lavigne over 1 year ago

  • Status changed from Done to Ready for Testing

#13 Avatar?id=55038&size=24x24 Updated by Zackary Welch about 1 year ago

Mike is working on testing this one.

#14 Updated by Michael Reynolds about 1 year ago

19713

When attempting to create a jail when no pools exist there is now a "No Pools Exist" dialog presented to the user.
This dialog takes you to the section to create a pool.

See https://redmine.ixsystems.com/issues/34393

There is also a No Pools Exist dialog when attempting to access plugins.

#15 Updated by Dru Lavigne about 1 year ago

  • Status changed from Passed Testing to Done

Also available in: Atom PDF