Linux Btrfs filesystem development
 help / color / mirror / Atom feed
From: Christoph Anton Mitterer <calestyo@scientia.net>
To: linux-btrfs@vger.kernel.org
Subject: strange "No space left on device"
Date: Sun, 08 Nov 2015 00:22:42 +0100	[thread overview]
Message-ID: <1446938562.7297.7.camel@scientia.net> (raw)

[-- Attachment #1: Type: text/plain, Size: 8486 bytes --]

Hey.

I just repeatedly did the following twice on a ~8GB USB stick, under
Debian sid (ergo kernel 4.2.0-1-amd64, btrfsprogs 4.2.2-1).

First, created some GPT on the stick:
Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048         1048575   511.0 MiB   EF02  BIOS boot partition
   2         1048576         3145727   1024.0 MiB  8300  Linux filesystem
   3         3145728         4194303   512.0 MiB   8300  Linux filesystem
   4         4194304         6291455   1024.0 MiB  8300  Linux filesystem
   5         6291456        15687644   4.5 GiB     8300  Linux filesystem


Then filesystems:
root@heisenberg:~# mkfs.btrfs --nodiscard --label boot-main /dev/sdb2 
btrfs-progs v4.2.2
See http://btrfs.wiki.kernel.org for more information.

Label:              boot-main
UUID:               150ee9fb-c650-4b5b-8f64-606e589e429a
Node size:          16384
Sector size:        4096
Filesystem size:    1.00GiB
Block group profiles:
  Data:             single            8.00MiB
  Metadata:         DUP              59.19MiB
  System:           DUP              12.00MiB
SSD detected:       no
Incompat features:  extref, skinny-metadata
Number of devices:  1
Devices:
   ID        SIZE  PATH
    1     1.00GiB  /dev/sdb2

root@heisenberg:~# mkfs.btrfs --nodiscard --label boot-data /dev/sdb3
btrfs-progs v4.2.2
See http://btrfs.wiki.kernel.org for more information.

Label:              boot-data
UUID:               b1c1fc77-c965-4f0c-a2b5-44a301fd8772
Node size:          16384
Sector size:        4096
Filesystem size:    1.00GiB
Block group profiles:
  Data:             single            8.00MiB
  Metadata:         DUP              59.19MiB
  System:           DUP              12.00MiB
SSD detected:       no
Incompat features:  extref, skinny-metadata
Number of devices:  1
Devices:
   ID        SIZE  PATH
    1     1.00GiB  /dev/sdb3

root@heisenberg:~# mkfs.btrfs --nodiscard --label boot-archive
/dev/sdb4
btrfs-progs v4.2.2
See http://btrfs.wiki.kernel.org for more information.

Label:              boot-archive
UUID:               a063cf3b-0322-4ec7-a8c1-2dabecad9f57
Node size:          16384
Sector size:        4096
Filesystem size:    1.00GiB
Block group profiles:
  Data:             single            8.00MiB
  Metadata:         DUP              59.19MiB
  System:           DUP              12.00MiB
SSD detected:       no
Incompat features:  extref, skinny-metadata
Number of devices:  1
Devices:
   ID        SIZE  PATH
    1     1.00GiB  /dev/sdb4

root@heisenberg:~# mkfs.btrfs --nodiscard --label boot-rescue /dev/sdb5
btrfs-progs v4.2.2
See http://btrfs.wiki.kernel.org for more information.

Label:              boot-rescue
UUID:               104b7bc3-3b8c-4a08-b0a6-9172ed664e68
Node size:          16384
Sector size:        4096
Filesystem size:    3.98GiB
Block group profiles:
  Data:             single            8.00MiB
  Metadata:         DUP             211.75MiB
  System:           DUP              12.00MiB
SSD detected:       no
Incompat features:  extref, skinny-metadata
Number of devices:  1
Devices:
   ID        SIZE  PATH
    1     3.98GiB  /dev/sdb5



No errors in the kernel log.



Then I got usage info:
root@heisenberg:/data/SSS/boot# btrfs filesystem usage data/
Overall:
    Device size:		   1.00GiB
    Device allocated:		 126.38MiB
    Device unallocated:		 897.62MiB
    Device missing:		     0.00B
    Used:			 256.00KiB
    Free (estimated):		 905.62MiB	(min: 456.81MiB)
    Data ratio:			      1.00
    Metadata ratio:		      2.00
    Global reserve:		  16.00MiB	(used: 0.00B)

Data,single: Size:8.00MiB, Used:0.00B
   /dev/sdb3	   8.00MiB

Metadata,DUP: Size:51.19MiB, Used:112.00KiB
   /dev/sdb3	 102.38MiB

System,DUP: Size:8.00MiB, Used:16.00KiB
   /dev/sdb3	  16.00MiB

Unallocated:
   /dev/sdb3	 897.62MiB
root@heisenberg:/data/SSS/boot# btrfs filesystem usage main/
Overall:
    Device size:		   1.00GiB
    Device allocated:		 126.38MiB
    Device unallocated:		 897.62MiB
    Device missing:		     0.00B
    Used:			 256.00KiB
    Free (estimated):		 905.62MiB	(min: 456.81MiB)
    Data ratio:			      1.00
    Metadata ratio:		      2.00
    Global reserve:		  16.00MiB	(used: 0.00B)

Data,single: Size:8.00MiB, Used:0.00B
   /dev/sdb2	   8.00MiB

Metadata,DUP: Size:51.19MiB, Used:112.00KiB
   /dev/sdb2	 102.38MiB

System,DUP: Size:8.00MiB, Used:16.00KiB
   /dev/sdb2	  16.00MiB

Unallocated:
   /dev/sdb2	 897.62MiB
root@heisenberg:/data/SSS/boot# btrfs filesystem usage rescue/
Overall:
    Device size:		   3.98GiB
    Device allocated:		 431.50MiB
    Device unallocated:		   3.56GiB
    Device missing:		     0.00B
    Used:			 320.00KiB
    Free (estimated):		   3.57GiB	(min: 1.79GiB)
    Data ratio:			      1.00
    Metadata ratio:		      2.00
    Global reserve:		  16.00MiB	(used: 0.00B)

Data,single: Size:8.00MiB, Used:64.00KiB
   /dev/sdb5	   8.00MiB

Metadata,DUP: Size:203.75MiB, Used:112.00KiB
   /dev/sdb5	 407.50MiB

System,DUP: Size:8.00MiB, Used:16.00KiB
   /dev/sdb5	  16.00MiB

Unallocated:
   /dev/sdb5	   3.56GiB



Still all fine.

Now I write to one of the filesystems (main at first, that still works)
but then when I cp -a from another btrfs to data:
cp: error writing ‘data/SHA512-sums.OLD’: No space left on device
cp: failed to extend ‘data/SHA512-sums.OLD’: No space left on device
cp: error writing ‘data/SHA512-sums’: No space left on device
cp: failed to extend ‘data/SHA512-sums’: No space left on device

(these files are just a few bytes large)
On the target fs, they're there but all 0 bytes large.

(btw: I've aliased cp to cp --reflink=auto


When I now repeat the usage info:
root@heisenberg:/data/SSS/boot# btrfs filesystem usage data
Overall:
    Device size:		   1.00GiB
    Device allocated:		 118.38MiB
    Device unallocated:		 905.62MiB
    Device missing:		     0.00B
    Used:			 256.00KiB
    Free (estimated):		   8.00EiB	(min: 8.00EiB)
    Data ratio:			      -nan
    Metadata ratio:		      2.00
    Global reserve:		  16.00MiB	(used: 0.00B)

Metadata,DUP: Size:51.19MiB, Used:112.00KiB
   /dev/sdc3	 102.38MiB

System,DUP: Size:8.00MiB, Used:16.00KiB
   /dev/sdc3	  16.00MiB

Unallocated:
   /dev/sdc3	 905.62MiB

It get's bogus... at least the Free space shows 8 EiB (if wishes were
horses)...

Still no error in kernel logs:
 3401.934514] BTRFS: device label boot-rescue devid 1 transid 8
/dev/sdc5
[ 3401.985858] BTRFS: device label boot-main devid 1 transid 8
/dev/sdc2
[ 3401.988601] BTRFS: device label boot-data devid 1 transid 9
/dev/sdc3
[ 3401.997370] BTRFS: device label boot-archive devid 1 transid 9
/dev/sdc4
[ 3403.721091] BTRFS info (device sdc3): disk space caching is enabled
[ 3403.721098] BTRFS: has skinny extents
[ 3413.964033] BTRFS info (device sdb3): disk space caching is enabled
[ 3413.964042] BTRFS: has skinny extents
[ 3522.902309] BTRFS info (device sdb3): disk space caching is enabled
[ 3522.902314] BTRFS: has skinny extents
[ 3525.055653] BTRFS info (device sdc3): disk space caching is enabled
[ 3525.055659] BTRFS: has skinny extents


btrfs check doesn't show errors either.


After a balance, i can copy again, even though the usage still shows 8
EiB for a while...


Anyway how can it happen, that on a fresh btrfs with no files at all a
balance is necessary?
Or is there some deeper corruption going on here?


Thanks,
Chris.

[-- Attachment #2: smime.p7s --]
[-- Type: application/x-pkcs7-signature, Size: 5313 bytes --]

             reply	other threads:[~2015-11-07 23:22 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-11-07 23:22 Christoph Anton Mitterer [this message]
2015-11-07 23:30 ` strange "No space left on device" Hugo Mills
2015-11-08  0:38   ` Christoph Anton Mitterer
2015-11-08 18:18 ` Henk Slager
2015-11-08 20:39   ` Duncan
2015-11-08 22:10     ` Christoph Anton Mitterer
2015-11-09  1:51       ` Duncan
2015-11-09 11:12 ` Filipe Manana

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1446938562.7297.7.camel@scientia.net \
    --to=calestyo@scientia.net \
    --cc=linux-btrfs@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox