Subject: [Bitcoin-development] Manual file cleanup on exit, safe? [coredump backtrace]

From: grarpamp <[email-masked]>
Date: Fri, 15 Jun 2012 16:58:55 -0400

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