OMV – Fallo al montar unidad nueva (Solucionado)

Andaba yo tan contento montando un nuevo disco duro externo de Western Digital con 8Tb de capacidad en OpenMediaVault 5, cuando las alegrías se fueron a dar un paseo.

Cuando iba a montar la nueva unidad, y a aplicar los cambios, resulta que el sistema genera un error, y no un error claro y conciso:

Error #0:
OMV\ExecException: Failed to execute command 'export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin; export LANG=C.UTF-8; omv-salt deploy run collectd 2>&1' with exit code '1': debian: Data failed to compile:
---------- Rendering SLS 'base:omv.deploy.collectd.plugins.interface' failed: Jinja error: slaves: The value '' doesn't match the pattern '^(((eth|venet|wlan)\d+|(en|veth|wl)\S+|(bond)\d+)(\.\d+)?,)*((eth|venet|wlan)\d+|(en|veth|wl)\S+|(bond)\d+)(\.\d+)?$'.
Traceback (most recent call last): File "/usr/lib/python3/dist-packages/salt/utils/templates.py", line 400, in render_jinja_tmpl output = template.render(**decoded_context) File "/usr/lib/python3/dist-packages/jinja2/asyncsupport.py", line 76, in render return original_render(self, *args, **kwargs) File "/usr/lib/python3/dist-packages/jinja2/environment.py", line 1008, in render return self.environment.handle_exception(exc_info, True) File "/usr/lib/python3/dist-packages/jinja2/environment.py", line 780, in handle_exception reraise(exc_type, exc_value, tb) File "/usr/lib/python3/dist-packages/jinja2/_compat.py", line 37, in reraise raise value.with_traceback(tb) File "<template>", line 21, in top-level template code File "/var/cache/salt/minion/extmods/modules/omv_conf.py", line 82, in get_by_filter objs = db.get_by_filter(id_, openmediavault.config.DatabaseFilter(filter_), **kwargs) File "/usr/lib/python3/dist-packages/openmediavault/config/database.py", line 125, in get_by_filter query.execute() File "/usr/lib/python3/dist-packages/openmediavault/config/database.py", line 695, in execute self._response = self._elements_to_object(elements) File "/usr/lib/python3/dist-packages/openmediavault/config/database.py", line 473, in _elements_to_object obj.validate() File "/usr/lib/python3/dist-packages/openmediavault/config/object.py", line 235, in validate self.model.validate(self.get_dict()) File "/usr/lib/python3/dist-packages/openmediavault/config/datamodel.py", line 200, in validate self.schema.validate(data) File "/usr/lib/python3/dist-packages/openmediavault/json/schema.py", line 170, in validate self._validate_type(value, schema, name) File "/usr/lib/python3/dist-packages/openmediavault/json/schema.py", line 224, in _validate_type raise last_exception File "/usr/lib/python3/dist-packages/openmediavault/json/schema.py", line 195, in _validate_type self._validate_object(value, schema, name) File "/usr/lib/python3/dist-packages/openmediavault/json/schema.py", line 300, in _validate_object self._check_properties(value, schema, name) File "/usr/lib/python3/dist-packages/openmediavault/json/schema.py", line 508, in _check_properties self._validate_type(value[propk], propv, path) File "/usr/lib/python3/dist-packages/openmediavault/json/schema.py", line 224, in _validate_type raise last_exception File "/usr/lib/python3/dist-packages/openmediavault/json/schema.py", line 204, in _validate_type self._validate_string(value, schema, name) File "/usr/lib/python3/dist-packages/openmediavault/json/schema.py", line 275, in _validate_string self._check_pattern(value, schema, name) File "/usr/lib/python3/dist-packages/openmediavault/json/schema.py", line 385, in _check_pattern % (value, schema['pattern']),
openmediavault.json.schema.SchemaValidationException: slaves: The value '' doesn't match the pattern '^(((eth|venet|wlan)\d+|(en|veth|wl)\S+|(bond)\d+)(\.\d+)?,)*((eth|venet|wlan)\d+|(en|veth|wl)\S+|(bond)\d+)(\.\d+)?$'.

; line 21---
[...]
#
# You should have received a copy of the GNU General Public License
# along with OpenMediaVault. If not, see <http://www.gnu.org/licenses/>.

{% set interfaces = [] %}
{% for interface in salt['omv_conf.get_by_filter']( <====================== 'conf.system.network.interface', {'operator': 'or', 'arg0': {'operator': 'stringEquals', 'arg0': 'type', 'arg1': 'ethernet'}, 'arg1': {'operator': 'stringEquals', 'arg0': 'type', 'arg1': 'wifi'}}) %}
{% set used_by = salt['omv_conf.get_by_filter']( 'conf.system.network.interface', {'operator': 'stringContains', 'arg0': 'slaves', 'arg1': interface.devicename}) %}
[...]
--- in /usr/share/php/openmediavault/system/process.inc:182
Stack trace:
#0 /usr/share/php/openmediavault/engine/module/serviceabstract.inc(60): OMV\System\Process->execute()
#1 /usr/share/openmediavault/engined/rpc/config.inc(167): OMV\Engine\Module\ServiceAbstract->deploy()
#2 [internal function]: Engined\Rpc\Config->applyChanges(Array, Array)
#3 /usr/share/php/openmediavault/rpc/serviceabstract.inc(123): call_user_func_array(Array, Array)
#4 /usr/share/php/openmediavault/rpc/serviceabstract.inc(149): OMV\Rpc\ServiceAbstract->callMethod('applyChanges', Array, Array)
#5 /usr/share/php/openmediavault/rpc/serviceabstract.inc(588): OMV\Rpc\ServiceAbstract->OMV\Rpc\{closure}('/tmp/bgstatusIw...', '/tmp/bgoutputIV...')
#6 /usr/share/php/openmediavault/rpc/serviceabstract.inc(159): OMV\Rpc\ServiceAbstract->execBgProc(Object(Closure))
#7 /usr/share/openmediavault/engined/rpc/config.inc(189): OMV\Rpc\ServiceAbstract->callMethodBg('applyChanges', Array, Array)
#8 [internal function]: Engined\Rpc\Config->applyChangesBg(Array, Array)
#9 /usr/share/php/openmediavault/rpc/serviceabstract.inc(123): call_user_func_array(Array, Array)
#10 /usr/share/php/openmediavault/rpc/rpc.inc(86): OMV\Rpc\ServiceAbstract->callMethod('applyChangesBg', Array, Array)
#11 /usr/sbin/omv-engined(537): OMV\Rpc\Rpc::call('Config', 'applyChangesBg', Array, Array, 1)
#12 {main}

Verificando en los LOGs del sistema, aparecía otro mensaje:

collectd[765]: rrdcached plugin: Failed to connect to RRDCacheD at unix:/run/rrdcached.sock: Unable to connect to rrdcached: No such file or directory (status=2)

Buscando por la red, encontré que podía ser algo relacionado con el servidor de hora NTP, que bien es cierto que no lo tenía configurado, pero nada, incluso configurándolo, el mismo mensaje de error aparecía una y otra vez al aplicar los cambios.Lo raro, era que aun revirtiendo la configuración, el sistema me ponía que la unidad estaba montada, pero luego, no podía trabajar con ella.

Actualicé las cosas que habían pendientes con el opción de gestión de actualizaciones que nos da el propio OMV, pero nada, encefalograma plano.

Finalmente, lanzando la última piedra al río, se me ocurre la brillante idea de revisar actualizaciones via Terminal, si tienes pantalla y teclado conectado al OMV, te ahorras un paso, si no, se puede hacer por SSH (como usuario root).

Procedemos a actualizar el sistema con dos sencillos pasos:

apt-get update

apt-get upgrade

En mi caso, OMV pasó de la versión 5.5.7-1 a la 5.5.8-1.

Seguidamente, sin reiniciar nada, ya pude montar con tranquilidad la nueva unidad.

Por supuesto, que no creo que hubiera un bug que causalmente acababan de corregir, si no que al aplicarse la actualización, se debió restablecer algún archivo corrupto…

Leave a Comment

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.