dump CI failures with kpartx and no /dev/loop devices 75/54175/3
authorRoss Brattain <ross.b.brattain@intel.com>
Tue, 20 Mar 2018 07:58:32 +0000 (00:58 -0700)
committerRoss Brattain <ross.b.brattain@intel.com>
Thu, 22 Mar 2018 13:07:42 +0000 (13:07 +0000)
CI is failing due to unable to find loop device for kpartx

"cmd": [
    "kpartx",
    "-l",
    "/tmp/workspace/yardstick/yardstick-xenial-server.raw"
]

"stderr": "mount: could not find any device /dev/loop#Bad address\ncan't set up loop",

This error occurs when kpartx can't find any loop devices to use

https://build.opnfv.org/ci/job/yardstick-compass-virtual-daily-master/3261/console

JIRA: YARDSTICK-1054
JIRA: YARDSTICK-1096

Change-Id: Ib6131ce29c4f9e81386eb5471dd6107825798620
Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
ansible/build_yardstick_image.yml

index c9b6e74..4ad6e97 100644 (file)
@@ -59,7 +59,7 @@
     - set_fact:
         raw_imgfile: "{{ workspace }}/{{ raw_imgfile_basename }}"
 
-  # cleanup non-lxd
+    # cleanup non-lxd
     - name: unmount all old mount points
       mount:
         name: "{{ item }}"
       command: kpartx -dv "{{ raw_imgfile }}"
       ignore_errors: true
 
+    - name: delete loop devices for image file
+      # use this because kpartx -dv will fail if raw_imgfile was delete
+      # but in theory we could have deleted file still attached to loopback device?
+      # use grep because of // and awk
+      shell: losetup -O NAME,BACK-FILE | grep "{{ raw_imgfile }}" | awk '{ print $1 }' | xargs -l1 losetup -d
+      ignore_errors: true
+
     - name: delete {{ raw_imgfile }}
       file:
         path: "{{ raw_imgfile }}"
       with_sequence: start=0 end=9
       tags: mknod_devices
 
+    - name: Debug dump loop devices
+      command: losetup
+      register: losetup_output
+
+    - debug:
+        var: losetup_output
+        verbosity: 2
+
     - name: find first partition device
-#      command: kpartx -l "{{ loop_device }}"
       command: kpartx -l "{{ raw_imgfile }}"
       register: kpartx_res