SUSE Support

Here When You Need Us

DeepSea Stage 3 deployment fails for each of the OSD nodes: Data failed to compile.

This document (7018857) is provided subject to the disclaimer at the end of this document.


SUSE Enterprise Storage 4


The automatically created server profile YAML files (/srv/pillar/ceph/proposals/profile-*-X/stack/default/ceph/minions/server_fqdn.yml) were modified to specify only specific devices to host the OSD journals. When then executing Stage 3 of the deployment, the stage fails for each of the OSD nodes in the cluster with:

           ID: storage
    Function: salt.state
      Result: False
     Comment: Run failed on minions: ses_osdnode_1, ses_osdnode_2, ses_osdnode_3, ...
                      Data failed to compile:
                      Rendering SLS 'base:ceph.osd.default' failed: Jinja error: cannot concatenate 'str' and 'dict' objects
                  Traceback (most recent call last):
                    File "/usr/lib/python2.7/site-packages/salt/utils/", line 368, in render_jinja_tmpl
                      output = template.render(**decoded_context)
                    File "/usr/lib/python2.7/site-packages/jinja2/", line 989, in render
                      return self.environment.handle_exception(exc_info, True)
                    File "/usr/lib/python2.7/site-packages/jinja2/", line 754, in handle_exception
                      reraise(exc_type, exc_value, tb)
                    File "<template>", line 6, in top-level template code
                  TypeError: cannot concatenate 'str' and 'dict' objects
                  ; line 6
                    - .keyring
                  {% for device in salt['pillar.get']('storage:osds') %}
                  {% set dev = salt['']('readlink -f ' + device ) %}    <======================
                  prepare {{ device }}:
                      - name: "ceph-disk -v prepare --fs-type xfs --data-dev --journal-dev --cluster {{ salt['pillar.get']('cluster') }} --cluster-uuid {{ salt['pillar.get']('fsid') }} {{ device }}"
                      - unless: "fsck {{ dev }}1"
                      - fire_event: True


Verify the syntax that was used in the server_fqdn.yml files, this also includes the spaces.


Incorrect file syntax.

Additional Information

Below is an example with the correct syntax for specifying separate journal devices (eg. hosted on NVMe devices), note that there should be two empty spaces before each of the lines after the "storage:" line:

  - /dev/disk/by-id/scsi-35000_OSD_DISK1: /dev/disk/by-id/nvme-JOURNAL_DISKA
  - /dev/disk/by-id/scsi-35000_OSD_DISK2: /dev/disk/by-id/nvme-JOURNAL_DISKA
  - /dev/disk/by-id/scsi-35000_OSD_DISK3: /dev/disk/by-id/nvme-JOURNAL_DISKB
  - /dev/disk/by-id/scsi-35000_OSD_DISK4: /dev/disk/by-id/nvme-JOURNAL_DISKB
  osds: []


This Support Knowledgebase provides a valuable tool for SUSE customers and parties interested in our products and solutions to acquire information, ideas and learn from one another. Materials are provided for informational, personal or non-commercial use within your organization and are presented "AS IS" WITHOUT WARRANTY OF ANY KIND.

  • Document ID:7018857
  • Creation Date: 03-May-2017
  • Modified Date:03-Mar-2020
    • SUSE Enterprise Storage

< Back to Support Search

For questions or concerns with the SUSE Knowledgebase please contact: tidfeedback[at]

SUSE Support Forums

Get your questions answered by experienced Sys Ops or interact with other SUSE community experts.

Support Resources

Learn how to get the most from the technical support you receive with your SUSE Subscription, Premium Support, Academic Program, or Partner Program.

Open an Incident

Open an incident with SUSE Technical Support, manage your subscriptions, download patches, or manage user access.