Page MenuHomeSolus

Update to 19.03.3

Authored by ReillyBrogan on Oct 9 2019, 4:56 PM.



Updated Docker to 19.03.3. Release notes available here.

Removed obsolete patch specifying storage graph driver (overlay2 is now the default choice)

Test Plan

Built several new images and tested running them and pushing them to a Docker image registry

Diff Detail

R649 docker
Automatic diff as part of commit; lint not applicable.
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

ReillyBrogan created this revision.Oct 9 2019, 4:56 PM
ReillyBrogan requested review of this revision.Oct 9 2019, 4:56 PM

Note that the specific reason I needed this update is this upstream bug report.

I also took the liberty of removing the overlayfs patch. Recent versions of Docker user overlay2 by default so this is obsolete. Having the storage driver specified via command line arguments made it impossible to use an alternate driver without modifying the systemd service file.

Current versions of Docker choose the graph driver to use for storage through the following method:

  1. Check the contents of /var/lib/docker to see what graph drivers have been used previously A. If no drivers have been used previously then Docker will check to see what the kernel supports (this defaults to overlay2 on Solus) B. If only one driver has been used previously then Docker will use that one. C. If more than one driver has been used then Docker will halt and output an error complaining about not being able to choose a driver. If this is the case then the user will need to either delete the subfolders in /var/lib/docker for the plugin(s) they do not want to use or specify the storage driver in the Docker daemon config file.

This means that this update will not be backwards compatible for any user that has used multiple graph drivers in the past. This should be a very small percentage of users as any such user would either need to be using a Solus install that is more than 2 years old or would need to have directly modified the Docker systemd unit file to specify an alternate driver. For those impacted users the fix will be to either delete unused drivers from /var/lib/docker or to specify the storage driver in the Docker daemon config file:


  "storage-driver": "overlay2"

Sorry @JoshStrobl, I needed this update ASAP to work around a bug and I figured I'd learn a bit about Solus packaging and package maintenance by pushing it here. If you'd prefer I can delete this and open a package update request instead so you can update it yourself.

JoshStrobl requested changes to this revision.Oct 9 2019, 5:31 PM

It's fine, but we should check for runc and containerd updates whenever we update Docker as well, which is precisely what I do when I update Docker. runc has an rc9 available for it and containerd has an update (1.3.0) as well, so those need to be updated and added as requirements for this, even if Docker functions just fine with the current versions.

As such, marking as needs changes. Thanks for the patch, it looks good, I'm not concerned about the graph driver changes since it is not likely this will apply to many, if any users.

This revision now requires changes to proceed.Oct 9 2019, 5:31 PM
JoshStrobl added a parent revision: D7360: Update to 1.3.0.
JoshStrobl retitled this revision from Update to 19.03.3. Release notes available [here]( to Update to 19.03.3.
JoshStrobl edited the summary of this revision. (Show Details)
JoshStrobl accepted this revision.Oct 17 2019, 9:24 AM

Marking as accepted since deps are now resolved. Thanks again!

This revision is now accepted and ready to land.Oct 17 2019, 9:24 AM
This revision was automatically updated to reflect the committed changes.
logTom added a subscriber: logTom.EditedOct 22 2019, 12:40 PM

I can confirm the backwards compatible problem pointed out by @ReillyBrogan. This broke my install. This was the error message:
sudo systemctl start docker.service
sudo journalctl -xe
dockerd[31412]: failed to start daemon: error initializing graphdriver: /var/lib/docker contains several valid graphdrivers: overlay, overlay2; Please cleanup or explicitly choose storage driver (-s <DRIVER>)

I fixed this with (it ran for several minutes, even though I have a SSD):
sudo rm -rf /var/lib/docker/overlay