Hangin’ with the Hirsute Hippo

Spring is here (although my parents up in OH just experienced a late-April snow storm!) which means it’s time to upgrade my Linux server to the new Ubuntu release, 21.04 (Hirsute Hippo). First, the obligatory check-in on my spring sports teams:

  • the Lightning will be heading back to the playoffs to defend their Stanley Cup title … they’re currently third in the Central division in a tight race for 1st with the Hurricanes and Panthers
  • the Rays are in 2nd place in the AL East, just behind the Red Sox
  • the Indians are right in the middle of the AL Central, falling behind the Royals and White Sox
  • the Cavaliers are near the bottom of the Eastern Conference and unsurprisingly won’t make the playoffs this year
  • Brady and Gronk will be back with the Bucs in the fall when they start to defend their Super Bowl title

Ok, Linux. Despite the issues I had back in October (mostly due to the deprecation of Python 2), the April updates are usually smoother. After a quick backup, I launched the do-release-upgrade and about 20 minutes and a few configuration file updates later, I was up and running on the latest release with the 5.11 kernel:

$ lsb_release -a
Distributor ID: Ubuntu
Description: Ubuntu 21.04
Release: 21.04
Codename: hirsute

$ uname -r
5.11.0-16-generic

I haven’t had an issue free upgrade since Cosmic so I usually find myself Googling for various solutions. This time around, I had a few minor problems:

  • When logging in, the login banner showed “There were exceptions while processing one or more plugins. See /var/log/landscape/sysinfo.log for more information.” and the sysinfo.log file showed:

    2021-04-22 21:03:25,207 ERROR Network plugin raised an exception. Traceback (most recent call last):
    File "/usr/lib/python3/dist-packages/landscape/sysinfo/sysinfo.py", line 99, in run result = plugin.run()
    File "/usr/lib/python3/dist-packages/landscape/sysinfo/network.py", line 36, in run device_info = self._get_device_info()
    File "/usr/lib/python3/dist-packages/landscape/lib/network.py", line 163, in get_active_device_info speed, duplex = get_network_interface_speed(
    File "/usr/lib/python3/dist-packages/landscape/lib/network.py", line 249, in get_network_interface_speed res = status_cmd.tostring()

    It appears that the array.tostring function was deprecated in Python 3.2 and removed in Python 3.9 (which came with the upgrade) but landscape-sysinfo was still using the function call in the Network plugin. I applied a patch (changing tostring to tobytes) and that resolved the issue.

  • I couldn’t get vncserver to start:

    Session startup via '/home/windracer/.vnc/xstartup' cleanly exited too early (< 3 seconds)!
    xrdb: Bad file descriptor
    xrdb: Can't open display ':1'
    Unable to init server: Could not connect: Connection refused
    xfce4-session: Cannot open display: .

    In my startx file, I switched from startxfce & to exec startxfce which fixed the startup issue, but I still couldn’t connect to the server remotely. It turned out that tigervnc server was only listening on localhost (127.0.0.1). I found that during the upgrade, my /etc/vnc.conf file had been renamed (and the log said it was a deprecated file). I had to make a copy of /etc/tigervnc/vncserver-config-default to ~/.vnc/vnc.conf then set $localhost="no"; (which is what I had done in my original vnc.conf file) and then I was able to connect with the tightvnc client on my PC.

Nothing major. See you here again in October for 21.10 (Impish Indri)!

Leave a Reply

Your email address will not be published. Required fields are marked *