Lost network connection to iocage jails after update from FN 11.1-U4 to FN-11.1-U5

Status
Not open for further replies.

Niels Erik

Dabbler
Joined
Aug 9, 2015
Messages
18
I have updated two boxes, same problem.
None of the 10 jails had network connection. (VNET)
Symptoms:
None of the services running inside jails are accessible
Cant ping the jail from the host shell.
Cant ping the host form inside the jail.

Everything looks normal on the surface, epair on the outside is connected to the bridge.
Epair inside jail have the correct ip address.
There is a correct default route inside the jail.

My patience quickly ran out, and I replaced the complete iocage folder (/usr/local/lib/python3.6/site-packages/iocage) with the U4 version..
Now everything works like before..
Code:
diff iocage/lib/ioc_create.py iocage.2.jul.18/lib/ioc_create.py
49,50c49,50
<                  short=False, basejail=False, empty=False, uuid=None,
<                  clone=False, exit_on_error=False, callback=None):
---
>                  short=False, basejail=False, thickjail=False, empty=False,
>                  uuid=None, clone=False, exit_on_error=False, callback=None):
63a64
>         self.thickjail = thickjail
266,268c267,297
<                 su.Popen(["zfs", "clone", "-p",
<                           f"{self.pool}/iocage/releases/{self.release}/root@"
<                           f"{jail_uuid}", jail], stdout=su.PIPE).communicate()
---
>                 if not self.thickjail:
>                     su.Popen(["zfs", "clone", "-p",
>                               f"{self.pool}/iocage/releases/"
>                               f"{self.release}/root@"
>                               f"{jail_uuid}",
>                               jail], stdout=su.PIPE).communicate()
>                 else:
>                     try:
>                         su.Popen(["zfs", "create", "-p", jail],
>                                   stdout=su.PIPE).communicate()
>                         zfs_send = su.Popen(["zfs", "send",
>                                              f"{self.pool}/iocage/releases/"
>                                              f"{self.release}/root@"
>                                              f"{jail_uuid}"], stdout=su.PIPE)
>                         su.check_call(["zfs", "receive", "-F", jail],
>                                       stdin=zfs_send.stdout)
>                     except su.CalledProcessError:
>                         su.Popen(["zfs", "destroy", "-rf",
>                                   f"{self.pool}/iocage/jails/{jail_uuid}"],
>                                   stdout=su.PIPE).communicate()
>                         su.Popen(["zfs", "destroy", "-r",
>                                   f"{self.pool}/iocage/releases/"
>                                   f"{self.release}/root@"
>                                   f"{jail_uuid}"],
>                                   stdout=su.PIPE).communicate()
>                         iocage.lib.ioc_common.logit({
>                             "level": "EXCEPTION",
>                             "message": "Can't copy release!"
>                         }, exit_on_error=self.exit_on_error,
>                             _callback=self.callback,
>                             silent=self.silent)
345c374,382
<         if not self.clone:
---
>         if self.empty:
>             open(f"{location}/fstab", "wb").close()
>
>             config["release"] = "EMPTY"
>             config["cloned_release"] = "EMPTY"
>
>             iocjson.json_write(config)
>
>         elif not self.clone:
415,420d451
<         if self.empty:
<             config["release"] = "EMPTY"
<             config["cloned_release"] = "EMPTY"
<
<             iocjson.json_write(config)
<
469a501
>         jail_props["hostid_strict_check"] = "off"
493c525
<         srv_connect_cmd = ["drill", f"_http._tcp.{repo}", "SRV"]
---
>         srv_connect_cmd = ["drill", "-t", f"{repo} SRV"]
507,508c539,544
<             raise RuntimeError(f"{srv_connection}\n"
<                                f"Command run: {' '.join(srv_connect_cmd)}")
---
>             iocage.lib.ioc_common.logit({
>                 "level": "EXCEPTION",
>                 "message": "{repo} could not be reached, please check your DNS"
>             },
>                 _callback=self.callback,
>                 silent=self.silent)
521,522c557,563
<             raise RuntimeError(f"{dnssec_connection}\n"
<                                f"Command run: {' '.join(dnssec_connect_cmd)}")
---
>             # Not fatal, they may not be using DNSSEC
>             iocage.lib.ioc_common.logit({
>                 "level": "ERROR",
>                 "message": "{repo} could not be reached via DNSSEC, check DNS"
>             },
>                 _callback=self.callback,
>                 silent=self.silent)
 

nojohnny101

Wizard
Joined
Dec 3, 2015
Messages
1,478
Status
Not open for further replies.
Top