LearnBitcoin

Bitcoin Dev Archive 2012

Manual file cleanup on exit, safe? [coredump backtrace]

2 messages, 15 Jun 2012. Started by grarpamp.

grarpamp, Pieter Wuille

Permalink Original thread on gnusha.org

grarpamp permalink original

When bitcoind exits cleanly, it does not seem safe for the blockchain to clean up the following hierarchy with rm -r ?

database/ db.log .lock debug.log addr.dat wallet.dat

And what about adding to the above list the following files when bitcoind crashes:

__db.*

Is there an option to make bitcoind roll/flush the above files on exit so they can be removed/ported?

No matter the answers, bitcoind should not be dumping core.

Bitcoin version v0.6.2.2-unk-beta () Default data directory /.../.bitcoin Loading addresses... dbenv.open LogDir=/.../.bitcoin/database ErrorFile=/.../.bitcoin/db.log

************************
EXCEPTION: 11DbException
Db::open: Invalid argument
bitcoin in AppInit()
terminate called after throwing an instance of 'DbException'
  what():  Db::open: Invalid argument
sh: abort (core dumped)

file unknown has LSN 38/7968116, past end of log at 1/28 Commonly caused by moving a database from one database environment to another without clearing the database LSNs, or by removing all of the log files from a database environment __db_meta_setup: /.../.bitcoin/addr.dat: unexpected file type or format

[New Thread 28801140 (LWP 100964/initial thread)] (gdb) bt #0 0x2873e9a7 in kill () from /lib/libc.so.7 #1 0x2852d397 in raise () from /lib/libthr.so.3 #2 0x2873d4da in abort () from /lib/libc.so.7 #3 0x285a0880 in __gnu_cxx::__verbose_terminate_handler () from /usr/lib/libstdc++.so.6 #4 0x285a508a in std::set_unexpected () from /usr/lib/libstdc++.so.6 #5 0x285a50d2 in std::terminate () from /usr/lib/libstdc++.so.6 #6 0x285a4f58 in __cxa_rethrow () from /usr/lib/libstdc++.so.6 #7 0x0816d2ea in PrintException (pex=0x288251b0, pszThread=0x82f4cfa "AppInit()") at util.cpp:792 #8 0x08087625 in AppInit (argc=2, argv=0xbfbfedf0) at init.cpp:113 #9 0x0808766d in main (argc=Cannot access memory at address 0x3) at init.cpp:96

Pieter Wuille in reply to grarpamp permalink original

On Fri, Jun 15, 2012 at 04:58:55PM -0400, grarpamp wrote:

Quoted text (2 lines)
> When bitcoind exits cleanly, it does not seem safe for the blockchain
> to clean up the following hierarchy with rm -r ?

Use -detachdb if you want to detach the blockchain database files from the database environment at exit. This was turned off by default in 0.6.0 to speed up the shutdown process very significantly, and few people have a need to manually fiddle with their blockchain database files.