I’ve been trying to run travis-worker locally however I’m running into LXC storage volume issues.
root@travis-worker-anup:~# lxc storage volume list data
+--------+----------------------------------------------------+-------------+--------------+---------+
| TYPE | NAME | DESCRIPTION | CONTENT-TYPE | USED BY |
+--------+----------------------------------------------------+-------------+--------------+---------+
| custom | travis-job-xxxxxxxx-xxxxx-travis-job-721271-docker | | filesystem | 0 |
+--------+----------------------------------------------------+-------------+--------------+---------+
root@travis-worker-anup:~# lxc storage volume delete data travis-job-xxxxxxxx-xxxxx-travis-job-721271-docker
Storage volume travis-job-xxxxxxxx-xxxxx-travis-job-721271-docker deleted
root@travis-worker-anup:~# lxc storage volume list data
+--------+----------------------------------------------------+-------------+--------------+---------+
| TYPE | NAME | DESCRIPTION | CONTENT-TYPE | USED BY |
+--------+----------------------------------------------------+-------------+--------------+---------+
| custom | travis-job-xxxxxxxx-xxxxx-travis-job-721271-docker | | filesystem | 0 |
+--------+----------------------------------------------------+-------------+--------------+---------+
root@travis-worker-anup:~#
As you can see, even though the delete command returns that the storage volume was deleted, it’s still showing up in the list. It’s very annoying since this error gets travis-worker to fail with
level=error msg="couldn't create the container Docker storage volume" err="Volume name \"travis-job-xxxxxxxx-xxxxx-travis-job-721271-docker\" already exists."
root@travis-worker-anup:~# lxc storage show data
config:
source: /mnt/travis-docker-data
description: ""
name: data
driver: dir
used_by:
- /1.0/storage-pools/data/volumes/custom/travis-job-xxxxxxxx-xxxxx-travis-job-721271-docker
status: Created
locations:
- none
lxd init --auto
mkdir /mnt/data
lxc storage create data dir source=/mnt/data
Storage pool data created
lxc storage volume create data travis-job-xxxxxxxx-xxxxx-travis-job-721271-docker
Storage volume travis-job-xxxxxxxx-xxxxx-travis-job-721271-docker created
lxc storage volume ls data
+--------+----------------------------------------------------+-------------+--------------+---------+
| TYPE | NAME | DESCRIPTION | CONTENT-TYPE | USED BY |
+--------+----------------------------------------------------+-------------+--------------+---------+
| custom | travis-job-xxxxxxxx-xxxxx-travis-job-721271-docker | | filesystem | 0 |
+--------+----------------------------------------------------+-------------+--------------+---------+
ls /mnt/data/custom
default_travis-job-xxxxxxxx-xxxxx-travis-job-721271-docker
lxc storage volume delete data travis-job-xxxxxxxx-xxxxx-travis-job-721271-docker
Storage volume travis-job-xxxxxxxx-xxxxx-travis-job-721271-docker deleted
ls /mnt/data/custom
lxc storage volume ls data
+------+------+-------------+--------------+---------+
| TYPE | NAME | DESCRIPTION | CONTENT-TYPE | USED BY |
+------+------+-------------+--------------+---------+
Can you manually remove /mnt/travis-docker-data/custom/default_travis-job-xxxxxxxx-xxxxx-travis-job-721271-docker?
I’ve tried rebooting but unfortunately doesn’t do anything.
What error do you get though?
Nothing. I removed the /mnt/travis-docker-data/custom/default_travis-job-xxxxxxxx-xxxxx-travis-job-721271-docker directory myself and ran lxc storage volume delete data travis-job-xxxxxxxx-xxxxx-travis-job-721271-docker just to be sure. It still doesn’t get rid of that storage volume.
So instead of deleting /mnt/travis-docker-data/custom/default_travis-job-xxxxxxxx-xxxxx-travis-job-721271-docker I deleted the whole custom directory as it only had “default_travis-job…”
and then made an empty custom directory, which seems to have resolved the issue.
Anyway, here’s the thing you asked for:
ubuntu@travis-worker-anup:~/worker$ sudo lxd sql global 'select * from storage_pools'
+----+-----------+--------+-------------+-------+
| id | name | driver | description | state |
+----+-----------+--------+-------------+-------+
| 3 | instances | zfs | | 1 |
| 4 | data | dir | | 1 |
+----+-----------+--------+-------------+-------+
OK good. Although I don’t think we can identify and resolve the bug in LXD now that you’ve made manual changes. I was really after the debug log I requested to see why LXD thought it had removed it when it had left both the dir and the DB record behind.
I’ll try to reproduce the situation again. I ran into it after repeatedly cancelling travis jobs while they were executing, and I’ll keep the debug monitor running