local variable 'bridge_cmd' referenced before assignment - 11.2 u2

EsTaF

Contributor
Joined
Sep 20, 2013
Messages
163
Всем доброго

После обновления FreeNAS 11.2 u1 до u2 невозможно запустить ни один из jail дополнений.

ошибка UnboundLocalError: local variable 'bridge_cmd' referenced before assignment

развернуто
Code:
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 128, in main_worker
    res = loop.run_until_complete(coro)
  File "/usr/local/lib/python3.6/asyncio/base_events.py", line 468, in run_until_complete
    return future.result()
  File "/usr/local/lib/python3.6/site-packages/middlewared/worker.py", line 88, in _run
    return await self._call(f'{service_name}.{method}', serviceobj, methodobj, params=args, job=job)
  File "/usr/local/lib/python3.6/site-packages/middlewared/worker.py", line 81, in _call
    return methodobj(*params)
  File "/usr/local/lib/python3.6/site-packages/middlewared/worker.py", line 81, in _call
    return methodobj(*params)
  File "/usr/local/lib/python3.6/site-packages/middlewared/schema.py", line 668, in nf
    return f(*args, **kwargs)
  File "/usr/local/lib/python3.6/site-packages/middlewared/plugins/jail.py", line 581, in start
    iocage.start()
  File "/usr/local/lib/python3.6/site-packages/iocage_lib/iocage.py", line 1663, in start
    callback=self.callback
  File "/usr/local/lib/python3.6/site-packages/iocage_lib/ioc_start.py", line 66, in __init__
    self.__start_jail__()
  File "/usr/local/lib/python3.6/site-packages/iocage_lib/ioc_start.py", line 415, in __start_jail__
    vnet_err = self.start_network(vnet)
  File "/usr/local/lib/python3.6/site-packages/iocage_lib/ioc_start.py", line 598, in start_network
    err = self.start_network_interface_vnet(nic, net_configs, jid)
  File "/usr/local/lib/python3.6/site-packages/iocage_lib/ioc_start.py", line 624, in start_network_interface_vnet
    membermtu = self.find_bridge_mtu(bridge)
  File "/usr/local/lib/python3.6/site-packages/iocage_lib/ioc_start.py", line 975, in find_bridge_mtu
    su.check_call(bridge_cmd, stdout=su.PIPE, stderr=su.PIPE)
UnboundLocalError: local variable 'bridge_cmd' referenced before assignment
"""

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 165, in call_method
    result = await self.middleware.call_method(self, message)
  File "/usr/local/lib/python3.6/site-packages/middlewared/main.py", line 1141, in call_method
    return await self._call(message['method'], serviceobj, methodobj, params, app=app, io_thread=False)
  File "/usr/local/lib/python3.6/site-packages/middlewared/main.py", line 1078, in _call
    return await self._call_worker(serviceobj, name, *args)
  File "/usr/local/lib/python3.6/site-packages/middlewared/main.py", line 1105, in _call_worker
    job,
  File "/usr/local/lib/python3.6/site-packages/middlewared/main.py", line 1036, in run_in_proc
    return await self.run_in_executor(self.__procpool, method, *args, **kwargs)
  File "/usr/local/lib/python3.6/site-packages/middlewared/main.py", line 1021, in run_in_executor
    return await loop.run_in_executor(pool, functools.partial(method, *args, **kwargs))
UnboundLocalError: local variable 'bridge_cmd' referenced before assignment

Локальная переменная ссылается до присваивания. Присваивания чего?
Нужно как-то все править после обновлений?
 

EsTaF

Contributor
Joined
Sep 20, 2013
Messages
163
И получил "[middleware.notifier:20261] Importing tank [xxxxxxxx....] failed with: cannot import "xxxxxxxx....": no such pool available."

geli.key есть, но подставка его через веб морду, во время ввода пароля, ни к каким результатам не приводит. та же ошибка.
 

Yuriy

Explorer
Joined
Nov 6, 2016
Messages
72
Возможно, Вы уже видели это решение:

And we have a solution thanks to David Meier. Stop all jails, edit one jail's properties, go to Network Properties, set vnet_default_interface to auto, from none. Save - you may need to uncheck and recheck DHCP Autoconfigure in Basic before Save becomes available. Start your jail(s).

In his testing, making this change on one jail solved it for all.

https://forums.freenas.org/index.ph...-release-has-arrived.71699/page-9#post-513060
 

EsTaF

Contributor
Joined
Sep 20, 2013
Messages
163
Ну да. Ну не такое прям. Загон в статику. Не суть. Тут другое забавно. Когда уже откатился на u1.

Давай я, значит, монтировать geli устройства, ну и получил "no such pool available" при вводе пароля. Хотя, пароль добавлялся изначально, помимо просто шифрования и бэкапа ключа.
Ну, думаю, сейчас удалю пул из системы. Удаляю. веб морда мне предложила предварительно сохранить recovery ключ. Но у меня уже был ключ в виде geli02.key. Ну хорошо - все равно сохраняю, как 000.key.
А затем, после удаления пула, пробую снова его добавить. Добавляю и подставляю ключ, что у меня был - geli02.key. Ну и, понимал так, что и пароль нужно ввести. Ввожу пароль и получаю https://forums.freenas.org/index.ph...fter-11-2-u1-11-2-u2-update.73926/post-512802
Code:
Error: Traceback (most recent call last):
  File "/usr/local/lib/python3.6/site-packages/middlewared/job.py", line 332, in run
    await self.future
  File "/usr/local/lib/python3.6/site-packages/middlewared/job.py", line 363, in __run_body
    rv = await self.middleware.run_in_thread(self.method, *([self] + args))
  File "/usr/local/lib/python3.6/site-packages/middlewared/main.py", line 1041, in run_in_thread
    return await self.loop.run_in_executor(executor, functools.partial(method, *args, **kwargs))
  File "/usr/local/lib/python3.6/concurrent/futures/thread.py", line 56, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/usr/local/lib/python3.6/site-packages/middlewared/schema.py", line 668, in nf
    return f(*args, **kwargs)
  File "/usr/local/lib/python3.6/site-packages/middlewared/plugins/disk.py", line 258, in decrypt
    raise CallError(f'The following devices failed to attach: {", ".join(failed)}')
middlewared.service_exception.CallError: [EFAULT] The following devices failed to attach: gptid/f4aaa779-272f-11e9-8f12-002590d29258, gptid/4409ec70-1c1b-11e9-a174-002590d29258

хех. перегружаю ось и снова пробую добавить пул. нифига. И тут меня посетила мысль добавлять этот ключ, но не вводить пароль и вуаля - все ок. Пул подмонтировался) Но вуаля-то вуаля, но где тогда безопасность???)) Нет ли во всем этом уязвимости? Помимо фактора "меня"?
 

EsTaF

Contributor
Joined
Sep 20, 2013
Messages
163
Это что получается.
Атакующему нужно будет:
1. Завладеть устройствами (А шифрование и нужно на случай, если устройство будет либо похищено, либо отобрано).
2. Устроить чрут на систему на флешке и поменять пароль руту.
3. Загрузить угнанную систему и удалить шифрованный пул из системы, с сохранением ключа восстановления.
4. Добавить это же устройство, предоставив только что экспортированный при удалении ключ.
5. Профит.

Либо ключ восстановления, который сохраняется при удалении пула, отличается от ключа восстановления, который сохраняется после созданного пароля - тогда да - злоумышленник попросту не сможет найти такой ключ, а ключ, что сохраняется при удалении пула, "потребует" еще и пароль. Либо на такую флешку/загрузочный диск нельзя зачрутиться извне.
 

chs

Guru
Joined
Apr 18, 2017
Messages
500
Может создать отдельный топик ?
А то тема интересная - а заголовок не очень :smile:
 

EsTaF

Contributor
Joined
Sep 20, 2013
Messages
163
Да можно-то можно, но может оно того не стоит из-за моей "сверхобразованности" по данному предмету. В кавычках, ибо вообще невежда по этой теме.
 

chs

Guru
Joined
Apr 18, 2017
Messages
500
Ну на заголовок набежит народ, который в этом понимает :smile:
 

KellyO

Cadet
Joined
Nov 8, 2016
Messages
1
I had the same exact problem, googled the error which led me exactly to this page, followed the instructions and Wala! Embly and Plex both running again. Thanks!!!

Возможно, Вы уже видели это решение:

And we have a solution thanks to David Meier. Stop all jails, edit one jail's properties, go to Network Properties, set vnet_default_interface to auto, from none. Save - you may need to uncheck and recheck DHCP Autoconfigure in Basic before Save becomes available. Start your jail(s).

In his testing, making this change on one jail solved it for all.

https://forums.freenas.org/index.ph...-release-has-arrived.71699/page-9#post-513060
 
Top