Trouble upgrading from 2.3.0 to 2.3.1
-
I'm trying to upgrade my pfsense instance from 2.3.0 to 2.3.1 and I'm getting errors when pkg is trying to download its files. It would appear that it can't resolve pkg.pfsense.org, but when I log into the box, I can resolve the hostname and make HTTP requests to it using curl via both IPv4 and IPv6. I'm not sure where to go with this…
Upgrade logs (note the 'No address record' messages):
>>> Updating repositories metadata... Updating pfSense-core repository catalogue... pfSense-core repository is up-to-date. Updating pfSense repository catalogue... pfSense repository is up-to-date. All repositories are up-to-date. >>> Upgrading pfSense-repo... done. **** WARNING **** Duplicate slice required!! Before starting the upgrade process, the currently mounted nanobsd partition needs to be cloned to the secondary partition, where the update will happen After installation a reboot will be required to switch partition. >>> Cleaning secondary partition... done. >>> Duplicating current slice... done. >>> Restoring slice label... done. >>> Testing duplicated partition integrity... done. >>> Mounting second partition to run upgrade... done. >>> Unlocking package pfSense-kernel-pfSense_wrap... done. >>> Downloading upgrade packages... Updating pfSense-core repository catalogue... pkg: https://pkg.pfsense.org/pfSense_v2_3_1_i386-core/meta.txz: No address record repository pfSense-core has no meta file, using default settings pkg: https://pkg.pfsense.org/pfSense_v2_3_1_i386-core/packagesite.txz: No address record Unable to update repository pfSense-core Updating pfSense repository catalogue... pkg: https://pkg.pfsense.org/pfSense_v2_3_1_i386-pfSense_v2_3_1/meta.txz: No address record repository pfSense has no meta file, using default settings pkg: https://pkg.pfsense.org/pfSense_v2_3_1_i386-pfSense_v2_3_1/packagesite.txz: No address record Unable to update repository pfSense All repositories are up-to-date. Checking for upgrades (62 candidates): .......... done Processing candidates (62 candidates): .......... done The following 64 package(s) will be affected (of 0 checked): New packages to be INSTALLED: uclcmd: 0.1 [pfSense] libucl: 0.8.0 [pfSense] Installed packages to be UPGRADED: unbound: 1.5.5 -> 1.5.8 [pfSense] sqlite3: 3.9.2 -> 3.11.1 [pfSense] smartmontools: 6.4_1 -> 6.4_2 [pfSense] rate: 0.9 -> 0.9_1 [pfSense] python27: 2.7.11_1 -> 2.7.11_2 [pfSense] php56-zlib: 5.6.20 -> 5.6.21 [pfSense] php56-xmlwriter: 5.6.20 -> 5.6.21 [pfSense] php56-xmlreader: 5.6.20 -> 5.6.21 [pfSense] php56-xml: 5.6.20 -> 5.6.21 [pfSense] php56-tokenizer: 5.6.20 -> 5.6.21 [pfSense] php56-sysvshm: 5.6.20 -> 5.6.21 [pfSense] php56-sysvsem: 5.6.20 -> 5.6.21 [pfSense] php56-sysvmsg: 5.6.20 -> 5.6.21 [pfSense] php56-sqlite3: 5.6.20 -> 5.6.21 [pfSense] php56-sockets: 5.6.20 -> 5.6.21 [pfSense] php56-simplexml: 5.6.20 -> 5.6.21 [pfSense] php56-shmop: 5.6.20 -> 5.6.21 [pfSense] php56-session: 5.6.20 -> 5.6.21 [pfSense] php56-readline: 5.6.20 -> 5.6.21 [pfSense] php56-posix: 5.6.20 -> 5.6.21 [pfSense] php56-pdo_sqlite: 5.6.20 -> 5.6.21 [pfSense] php56-pdo: 5.6.20 -> 5.6.21 [pfSense] php56-pcntl: 5.6.20 -> 5.6.21 [pfSense] php56-openssl: 5.6.20 -> 5.6.21 [pfSense] php56-opcache: 5.6.20 -> 5.6.21 [pfSense] php56-mcrypt: 5.6.20 -> 5.6.21 [pfSense] php56-mbstring: 5.6.20 -> 5.6.21 [pfSense] php56-ldap: 5.6.20 -> 5.6.21 [pfSense] php56-json: 5.6.20 -> 5.6.21 [pfSense] php56-hash: 5.6.20 -> 5.6.21 [pfSense] php56-gettext: 5.6.20 -> 5.6.21 [pfSense] php56-filter: 5.6.20 -> 5.6.21 [pfSense] php56-dom: 5.6.20 -> 5.6.21 [pfSense] php56-curl: 5.6.20 -> 5.6.21 [pfSense] php56-ctype: 5.6.20 -> 5.6.21 [pfSense] php56-bz2: 5.6.20 -> 5.6.21 [pfSense] php56-bcmath: 5.6.20 -> 5.6.21 [pfSense] php56: 5.6.20 -> 5.6.21 [pfSense] pfSense-rc: 2.3 -> 2.3.1_1 [pfSense-core] pfSense-kernel-pfSense_wrap: 2.3 -> 2.3.1_1 [pfSense-core] pfSense-default-config-serial: 2.3 -> 2.3.1_1 [pfSense-core] pfSense-base-nanobsd: 2.3 -> 2.3.1_1 [pfSense-core] pfSense-Status_Monitoring: 1.0_1 -> 1.4.1_1 [pfSense] pfSense: 2.3 -> 2.3.1_1 [pfSense] perl5: 5.20.3_8 -> 5.20.3_12 [pfSense] pecl-zmq: 1.1.3 -> 1.1.3_1 [pfSense] openvpn: 2.3.9 -> 2.3.11 [pfSense] ntp: 4.2.8p6 -> 4.2.8p7 [pfSense] nettle: 2.7.1 -> 3.2 [pfSense] libzmq4: 4.1.3 -> 4.1.4_1 [pfSense] libsodium: 1.0.3 -> 1.0.8 [pfSense] libedit: 3.1.20150325_1 -> 3.1.20150325_2 [pfSense] gmp: 5.1.3_2 -> 5.1.3_3 [pfSense] glib: 2.44.1_3 -> 2.46.2 [pfSense] gettext-runtime: 0.19.6 -> 0.19.7 [pfSense] filterlog: 0.1_1 -> 0.1_2 [pfSense] dnsmasq-devel: 2.76.0test8 -> 2.76.0test12 [pfSense] curl: 7.47.0 -> 7.48.0_1 [pfSense] cpdup: 1.17_2 -> 1.18 [pfSense] bsnmp-ucd: 0.4.1 -> 0.4.2 [pfSense] Installed packages to be REINSTALLED: rrdtool-1.5.5_1 [pfSense] (options changed) nginx-1.8.1,2 [pfSense] (options changed) 72 MiB to be downloaded. pkg: https://pkg.pfsense.org/pfSense_v2_3_1_i386-pfSense_v2_3_1/All/unbound-1.5.8.txz: No address record >>> Locking package pfSense-kernel-pfSense_wrap... done. Failed
For what it's worth, this is running on a Soekris net6501-50 (i386).
-
So after some code diving and whatnot, I have arrived at the source of the problem, which in turn leads me to a new problem.
On my system, I have System > Advanced > Miscellaneous > "Use memory file system for /tmp and /var" checked. /etc/resolv.conf is a symlink to /var/etc/resolv.conf, and because my /var is mounted from /dev/md1, when pkg goes to chroot into the other partition in order to apply the upgrade, there's nothing in /var/etc and the resolver can't figure out what DNS servers to use.
So now I arrive at my other problem. I can't actually uncheck that value. I unset it, the machine reboots, and it's checked again when I log back in. According to my configuration file, it's not set at all. I have to assume that this is because I'm using the embedded build, since I'm running off a USB stick.
I have to assume then that this problem affects all embedded users. I'm not sure how to proceed here, short of maybe putting in a hack into the upgrade script to copy the contents of /var into /tmp/nanobsd_upgrade/var before it starts the upgrade.