Author

Topic: Bitcoin-qt after displaying low disk space warning, it quits (Read 4728 times)

legendary
Activity: 1498
Merit: 1000
I have multiple symlink links one for the wallet.dat, which is encrypted and inside of a true crypt container. I have a symlink for the rest of the files which are on a separate partition that is unencrypted so it isn't too bad on I/O.

Sadly, this doesn't do what you think it does. Wallet data ends up in your database directory.... so you can easily leak private keys that way if you're not using the integrated encryption,  and if you lose your disk while your wallet hasn't been flushed the copy on the flash may be unreadable without a manual recovery effort.

Are you talking about the database folder, or the files that are IE: _db.001? the database folder is in my true crypt container. Believe me I am not a half-ass person, I research a lot and looked at a lot of cases of how other people did it, this is the best solutions I could see working for me, but if you think I would love to hear how you encrypt your wallet?
legendary
Activity: 1512
Merit: 1036
I believe the "low disk space" warning is from your OS and not from Bitcoin; Bitcoin just crashes. It crashes from the datadir running out of space, which is only usually on the same disk as the program install.

I was doing a new-install blockchain download speed-test using symlinks to only blkindex.dat and blk0001.dat on a a RAM Disk. I just ran the RAM disk out of space and bitcoind crashed hard. This could be handled more gracefully, Bitcoin could go into a "read-only" mode, waiting for more free space or such, or back out some data and cleanly close the databases. It was trying to write the blockchain index file when it died, likely the two blockchain files are de-syncronized and unrepairable after an event like this (since there is no "reindex" feature or database scan).

At least I got a chart up to block 187242 that shows how much new blocks suck, even with RAM disk speed:



===
Barf Logs:
===
Console:

************************
EXCEPTION: NSt8ios_base7failureE
CAutoFile::write : write failed
C:\Program Files\Bitcoin\daemon\bitcoind.exe in ProcessMessages()



************************
EXCEPTION: 11DbException
DbEnv::txn_checkpoint: No space left on device
C:\Program Files\Bitcoin\daemon\bitcoind.exe in ThreadMessageHandler()

terminate called after throwing an instance of 'DbException'
  what():  DbEnv::txn_checkpoint: No space left on device

This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.


debug.log:


....

received getdata for: block 000000000000005acfa6
received getdata for: block 00000000000175944e69
received getdata for: block 000000000000dd81683e
received getdata for: block 000000000002d56a5dec
received getdata for: block 00000000000020886d4d
received getdata for: block 00000000000291ce2802
askfor tx 4c1d99b248059b3352fa   0
sending getdata: tx 4c1d99b248059b3352fa


************************
EXCEPTION: 11DbException      
DbEnv::txn_checkpoint: No space left on device      
C:\Program Files\Bitcoin\daemon\bitcoind.exe in ThreadMessageHandler()      

accepted connection 46.4.121.99:32459


db.log:


write: 0x3e71994, 8192: There is not enough space on the disk.

blkindex.dat: write failed for page 82493
blkindex.dat: unable to flush page: 82493
write: 0x3ae7f94, 8192: There is not enough space on the disk.

blkindex.dat: write failed for page 82494
blkindex.dat: unable to flush page: 82494
write: 0x3099efc, 8192: There is not enough space on the disk.

blkindex.dat: write failed for page 82495
blkindex.dat: unable to flush page: 82495
write: 0x2ae4674, 8192: There is not enough space on the disk.

blkindex.dat: write failed for page 82496
blkindex.dat: unable to flush page: 82496
write: 0x25574cc, 8192: There is not enough space on the disk.

blkindex.dat: write failed for page 82497
blkindex.dat: unable to flush page: 82497
write: 0x244a714, 8192: There is not enough space on the disk.

blkindex.dat: write failed for page 82498
blkindex.dat: unable to flush page: 82498
write: 0x3fdd774, 8192: There is not enough space on the disk.

blkindex.dat: write failed for page 82499
blkindex.dat: unable to flush page: 82499
write: 0x378cd7c, 8192: There is not enough space on the disk.

blkindex.dat: write failed for page 82500
blkindex.dat: unable to flush page: 82500
write: 0x2de696c, 8192: There is not enough space on the disk.

blkindex.dat: write failed for page 82501
blkindex.dat: unable to flush page: 82501
write: 0x2bf958c, 8192: There is not enough space on the disk.

blkindex.dat: write failed for page 82502
blkindex.dat: unable to flush page: 82502
write: 0x34869d4, 8192: There is not enough space on the disk.

blkindex.dat: write failed for page 82503
blkindex.dat: unable to flush page: 82503
write: 0x25c06ac, 8192: There is not enough space on the disk.

blkindex.dat: write failed for page 82504
blkindex.dat: unable to flush page: 82504
write: 0x375a4e4, 8192: There is not enough space on the disk.

blkindex.dat: write failed for page 82505
blkindex.dat: unable to flush page: 82505
write: 0x28310e4, 8192: There is not enough space on the disk.

blkindex.dat: write failed for page 82506
blkindex.dat: unable to flush page: 82506
write: 0x3bd071c, 8192: There is not enough space on the disk.

blkindex.dat: write failed for page 82507
blkindex.dat: unable to flush page: 82507
write: 0x2cc1794, 8192: There is not enough space on the disk.

blkindex.dat: write failed for page 82508
blkindex.dat: unable to flush page: 82508
write: 0x289c31c, 8192: There is not enough space on the disk.

blkindex.dat: write failed for page 82509
blkindex.dat: unable to flush page: 82509
write: 0x3a1dd34, 8192: There is not enough space on the disk.

blkindex.dat: write failed for page 82510
blkindex.dat: unable to flush page: 82510
txn_checkpoint: failed to flush the buffer cache: No space left on device


staff
Activity: 4284
Merit: 8808
I have multiple symlink links one for the wallet.dat, which is encrypted and inside of a true crypt container. I have a symlink for the rest of the files which are on a separate partition that is unencrypted so it isn't too bad on I/O.

Sadly, this doesn't do what you think it does. Wallet data ends up in your database directory.... so you can easily leak private keys that way if you're not using the integrated encryption,  and if you lose your disk while your wallet hasn't been flushed the copy on the flash may be unreadable without a manual recovery effort.
hero member
Activity: 628
Merit: 500
Thanks for info, now I can relax, I was really worried.
hero member
Activity: 628
Merit: 500
How big can bitcoin-qt become on the hard disk? I have installed it on 30GB partition, is that enough?
newbie
Activity: 14
Merit: 0
You would be better off in most cases encrypting the wallet off to the flash disk and keep the blockchain on a machine with a decent disk.  Symbolic linking is your friend, mount the drive and symlink wallet.dat into datadir.  A lot of unnecessary writes going on if you are fetching the whole chain to a flash drive.
sr. member
Activity: 285
Merit: 250
Ever fill a disk to capacity? Occasionally some bad things can happen. I seen a few in my days and they almost always had a file or two sharing some space. If its junk you don't even know or care about it, but if its a system file your sunk.
legendary
Activity: 1498
Merit: 1000
As the title suggest "Bitcoin-qt after displaying low disk space warning quits" why does it do that, shouldn't it halt all I/O writing and just enter into a special read mode only?
Jump to: