Bug 1387934

Summary: docker-storage-setup service deleted to break systemd ordering cycle
Product: [Fedora] Fedora Reporter: Dusty Mabe <dustymabe>
Component: docker-storage-setupAssignee: Andy Grimm <agrimm>
Status: CLOSED CURRENTRELEASE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 25CC: agrimm, jgoulding, lnie
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-11-01 12:45:45 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Dusty Mabe 2016-10-23 22:53:35 UTC
Description of problem:

There is an ordering issue with docker-storage setup that causes it to be deleted from the startup on Fedora 25 atomic host. The error looks like:

[fedora@cloudhost ~]$ journalctl -u docker-storage-setup.service
-- Logs begin at Fri 2016-10-21 18:40:36 UTC, end at Sun 2016-10-23 22:44:26 UTC. --
Oct 21 18:40:37 localhost.localdomain systemd[1]: docker-storage-setup.service: Job docker-storage-setup.service/start deleted to break ordering cycle starting with multi-user.target/start


Version-Release number of selected component (if applicable):
Cloud image from: 
http://kojipkgs.fedoraproject.org/compose/branched/Fedora-25-20161021.n.0/compose/CloudImages/x86_64/images/Fedora-Atomic-25-20161021.n.0.x86_64.qcow2
[fedora@cloudhost ~]$ rpm-ostree status
State: idle
Deployments:
● fedora-atomic:fedora-atomic/25/x86_64/docker-host
       Version: 25.31 (2016-10-21 01:14:00)
        Commit: fe55d64c8d2f4caae628ff2e50d832ff0b66350e61d8989dc5b6a1b7ab0ed83f
        OSName: fedora-atomic
[fedora@cloudhost ~]$ 
[fedora@cloudhost ~]$ rpm -q docker 
docker-1.12.1-13.git9a3752d.fc25.x86_64



How reproducible:
Always


Steps to Reproduce:
1. Boot up cloud image 
2. systemctl status docker-storage-setup

Comment 1 Dusty Mabe 2016-10-23 22:53:50 UTC
Input from colin walters:
"""
I think this is due to:

# grep After /usr/lib/systemd/system/docker-storage-setup.service
After=cloud-final.service
# grep ^After /usr/lib/systemd/system/cloud-final.service
After=network-online.target cloud-config.service rc-local.service multi-user.target

But docker.service wants docker-storage-setup.service, and
multi-user.target wants docker.service.

Hence we're trying to run d-s-s both before and after multi-user.target.

I think the fix here is going to be changing the After=cloud-final.service
in d-s-s to After=cloud-init-local.service or so.

The main requirement here from my perspective is that cloud node
users are able to configure d-s-s (and docker).  Specifically to do
things like enable overlayfs by default.

If changing it to cloud-init-local.service is sufficient to use `bootcmd`,
that may work.
"""

Comment 2 Dusty Mabe 2016-10-23 23:18:17 UTC
Here is a user-data workaround that can be used to put in walters' suggested fix and then get the docker service up and running: 

#cloud-config
bootcmd:
  - sed s/After=cloud-final.service/After=cloud-init-local.service/ /usr/lib/systemd/system/docker-storage-setup.service > /etc/systemd/system/docker-storage-setup.service
  - systemctl daemon-reload
  - systemctl start --no-block docker.service

Comment 3 Dusty Mabe 2016-10-24 16:12:40 UTC
upstream PR: 

https://github.com/projectatomic/docker-storage-setup/pull/161

Comment 4 Dusty Mabe 2016-10-25 15:41:34 UTC
*** Bug 1388000 has been marked as a duplicate of this bug. ***

Comment 5 Dusty Mabe 2016-11-01 12:45:45 UTC
PR was merged and a new docker package with the update was pushed to stable in: 

https://bodhi.fedoraproject.org/updates/FEDORA-2016-0ed0314ad7