Skip to content

Unable to clean up after failed fs creation #3992

@tasleson

Description

@tasleson

Summary:

Attempting to create multiple filesystems in a Stratis pool results in one filesystem being successfully created while the second fails with an XFS error. If you try to clean up, you are unable to do so.

Steps to Reproduce:

# stratis pool create testing /dev/loop0 /dev/loop1
# stratis fs create testing fs1
# stratis fs create testing fs2
Execution failed:
stratisd failed to perform the operation that you requested. It returned the following information via the D-Bus: ERROR: Command failed: cmd: "/usr/sbin/mkfs.xfs" "-f" "/dev/dm-7" "-m" "uuid=8a15f293-2ade-41d4-81d9-b20f0a500cb1" "-i" "nrext64=0", exit reason: 1 stdout: meta-data=/dev/dm-7              isize=512    agcount=32, agsize=8388608 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
         =                       exchange=0   metadir=0
data     =                       bsize=4096   blocks=268435456, imaxpct=5
         =                       sunit=256    swidth=256 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1, parent=0
log      =internal log           bsize=4096   blocks=131072, version=2
         =                       sectsz=512   sunit=8 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
         =                       rgcount=0    rgsize=0 extents
         =                       zoned=0      start=0 reserved=0
Discarding blocks...Done.
 stderr: log stripe unit (1048576 bytes) is too large (maximum is 256KiB)
log stripe unit adjusted to 32KiB
mkfs.xfs: libxfs_device_zero write failed: No space left on device

# lsblk
NAME                                                                                          MAJ:MIN RM  SIZE RO TYPE    MOUNTPOINTS
loop0                                                                                           7:0    0    2G  0 loop    
└─stratis-1-private-e3cbea75aa9b4e4a8a984937e3b04b10-physical-originsub                       252:0    0  3.7G  0 stratis 
  └─stratis-1-private-e3cbea75aa9b4e4a8a984937e3b04b10-physical-cache                         252:1    0  3.7G  0 stratis 
    ├─stratis-1-private-e3cbea75aa9b4e4a8a984937e3b04b10-flex-thinmeta                        252:2    0    5M  0 stratis 
    │ └─stratis-1-private-e3cbea75aa9b4e4a8a984937e3b04b10-thinpool-pool                      252:5    0  3.2G  0 stratis 
    │   └─stratis-1-e3cbea75aa9b4e4a8a984937e3b04b10-thin-fs-a439d99cef824b6aab2f1ffcb16d11c7 252:6    0    1T  0 stratis 
    ├─stratis-1-private-e3cbea75aa9b4e4a8a984937e3b04b10-flex-thindata                        252:3    0  3.2G  0 stratis 
    │ └─stratis-1-private-e3cbea75aa9b4e4a8a984937e3b04b10-thinpool-pool                      252:5    0  3.2G  0 stratis 
    │   └─stratis-1-e3cbea75aa9b4e4a8a984937e3b04b10-thin-fs-a439d99cef824b6aab2f1ffcb16d11c7 252:6    0    1T  0 stratis 
    └─stratis-1-private-e3cbea75aa9b4e4a8a984937e3b04b10-flex-mdv                             252:4    0  512M  0 stratis 
loop1                                                                                           7:1    0    2G  0 loop    
└─stratis-1-private-e3cbea75aa9b4e4a8a984937e3b04b10-physical-originsub                       252:0    0  3.7G  0 stratis 
  └─stratis-1-private-e3cbea75aa9b4e4a8a984937e3b04b10-physical-cache                         252:1    0  3.7G  0 stratis 
    ├─stratis-1-private-e3cbea75aa9b4e4a8a984937e3b04b10-flex-thinmeta                        252:2    0    5M  0 stratis 
    │ └─stratis-1-private-e3cbea75aa9b4e4a8a984937e3b04b10-thinpool-pool                      252:5    0  3.2G  0 stratis 
    │   └─stratis-1-e3cbea75aa9b4e4a8a984937e3b04b10-thin-fs-a439d99cef824b6aab2f1ffcb16d11c7 252:6    0    1T  0 stratis 
    ├─stratis-1-private-e3cbea75aa9b4e4a8a984937e3b04b10-flex-thindata                        252:3    0  3.2G  0 stratis 
    │ └─stratis-1-private-e3cbea75aa9b4e4a8a984937e3b04b10-thinpool-pool                      252:5    0  3.2G  0 stratis 
    │   └─stratis-1-e3cbea75aa9b4e4a8a984937e3b04b10-thin-fs-a439d99cef824b6aab2f1ffcb16d11c7 252:6    0    1T  0 stratis 
    └─stratis-1-private-e3cbea75aa9b4e4a8a984937e3b04b10-flex-mdv                             252:4    0  512M  0 stratis 
...

# stratis fs
Pool      Filesystem   Total / Used / Free / Limit            Device                     UUID                                
testing   fs1          1 TiB / 546 MiB / 1023.47 GiB / None   /dev/stratis/testing/fs1   a439d99c-ef82-4b6a-ab2f-1ffcb16d11c7

# stratis fs destroy testing fs1
Execution failed:
stratisd failed to perform the operation that you requested. It returned the following information via the D-Bus: ERROR: low-level ioctl error due to nix error; ioctl number: 4, input header: Some(DeviceInfo { version: Version { major: 4, minor: 0, patch: 0 }, data_size: 16384, data_start: 312, target_count: 0, open_count: 0, flags: DmFlags(0x0), event_nr: 4205888, dev: Device { major: 0, minor: 0 }, name: Some(DmNameBuf { inner: "stratis-1-e3cbea75aa9b4e4a8a984937e3b04b10-thin-fs-a439d99cef824b6aab2f1ffcb16d11c7" }), uuid: None }), header result: Some(DeviceInfo { version: Version { major: 4, minor: 50, patch: 0 }, data_size: 16384, data_start: 312, target_count: 0, open_count: 0, flags: DmFlags(0x0), event_nr: 4205888, dev: Device { major: 0, minor: 0 }, name: Some(DmNameBuf { inner: "stratis-1-e3cbea75aa9b4e4a8a984937e3b04b10-thin-fs-a439d99cef824b6aab2f1ffcb16d11c7" }), uuid: None }), error: ENXIO: No such device or address.

# stratis pool destroy testing
Execution failed:
stratisd failed to perform the operation that you requested. It returned the following information via the D-Bus: ERROR: filesystems remaining on pool.
.

Version

stratisd-3.8.6-2.fc43.x86_64
stratis-cli-3.8.3-1.fc43.noarch

Notes:

  • This doesn't exist /dev/stratis/testing/fs1
  • Happy to open a BZ if you'd prefer. This was discovered in the Fedora-packaged version, so it might be worth tracking there as well.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions