Weekly status for the week of the 21st to the 27th of May 2018.
Introduction
The team was out on Monday due to various regional holidays.
The rest of the week was then spent working on a few new LXD features like UDP and Unix socket proxying, support for nested LXD retrieving images from its host and the lxc-to-lxd rewrite.
We also kept tracking down a number of issues and fixed quite a few of them, especially related to clustering corner cases.
All our branches are now ready for the upcoming 3.0.1 bugfix release which if all testing passes should be out by the end of the week.
Other than that, quite a bit of effort also went into the LXD snap, refreshing all packaging branches, adding a few new features like translation support and a new lxd.buginfo
command as well as tracking down a number of reported issues there too.
On the LXCFS side, we merged support for loadavg
virtualization which should make it possible for containers to report a much more reliable load value.
And lastly on the LXC side of things, a lot of care went into tracking down a number of Seccomp issues, cleaning up the code quite a bit in the process as well as fixing some issues related to multi-threaded use of the liblxc library.
Upcoming conferences and events
- None confirmed at this time
Ongoing projects
The list below is feature or refactoring work which will span several weeks/months and can’t be tied directly to a single Github issue or pull request.
- Rewrite of the LXC-to-LXD migration tool
- Switching distribution building over to distrobuilder
- Various kernel work
- Stable release work for LXC, LXCFS and LXD
Upstream changes
The items listed below are highlights of the work which happened upstream over the past week and which will be included in the next release.
LXD
- Fixed bad tracking of LVM VG names
- Improved target server URL handling in
lxd-p2c
- Fixed a number of error reporting issues in
lxd-p2c
- Changed clustering logic to serialize DB reads
- Extended the
/dev/lxd
API to allow retrieving cached and public images from the host - Fixed container/snapshot publishing inside a cluster
- Fixed GPU device modes when host path is missing
- Improved error messages when adding new networks and storage pools to a cluster
- Made
lxd-p2c
aware of rsync versions
LXC
- Refactored some of the CGroup handling code
- Improved container logging to store the container name per thread
- Fixed lxc-init logic to skip signals that can’t be caught
- Changed logic to use of
execveat
when possible to spawnlxc-init
- Fixed the tools so that they don’t create log files when not requested
- Fixed a number of Seccomp issues
- Cleaned up some of our Seccomp handling logic
- Switched from
sigprocmask
topthread_sigprocmask
in the whole tree - Fixed an fd leak when sending signals
- Fixed a memory leak in the Seccomp code
- Fixed some more Seccomp issues
- Fixed even more Seccomp issues
- Fixed
lxc-create
's use of global config options - Cleaned up and fixed some bugs in the config parsing code
- Fixed a network socket handle leak
- Backported support for pre-setns kernels to stable-1.0
- Fixed a potential initialization issue in ns_clone_flags
LXCFS
- Implemented new per-container loadavg tracking logic
Distrobuilder
- Improved support for new series with debootstrap
- Fixed some flaky GPG tests
Distribution work
This section is used to track the work done in downstream Linux distributions to ship the latest LXC, LXD and LXCFS as well as work to get various software to work properly inside containers.
Ubuntu
- Nothing to report this week
Snap
- Updated cherry-picked fixes to LXD 3.0.0 and 3.1
- Improved logging of LXD error codes
- Added support for command line translations (help translate here)
- Added a new
lxd.buginfo
command to capture useful debugging information - Bumped Go version to 1.10.2