Bitcoin Forum

Bitcoin => Bitcoin Discussion => Topic started by: Gavin Andresen on March 30, 2012, 03:19:38 PM



Title: Version 0.6.0 released
Post by: Gavin Andresen on March 30, 2012, 03:19:38 PM
Bitcoin version 0.6.0 is now available for download at:
  http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.6.0/test/

This release includes more than 20 language localizations.
More translations are welcome; join the
project at Transifex to help:
  https://www.transifex.net/projects/p/bitcoin/

Please report bugs using the issue tracker at github:
  https://github.com/bitcoin/bitcoin/issues

Project source code is hosted at github; we are no longer
distributing .tar.gz files here, you can get them
directly from github:
 https://github.com/bitcoin/bitcoin/tarball/v0.6.0  # .tar.gz
 https://github.com/bitcoin/bitcoin/zipball/v0.6.0  # .zip

For Ubuntu users, there is a ppa maintained by Matt Corallo which
you can add to your system so that it will automatically keep
bitcoin up-to-date.  Just type
 sudo apt-add-repository ppa:bitcoin/bitcoin
in your terminal, then install the bitcoin-qt package.


KNOWN ISSUES
------------

Shutting down while synchronizing with the network
(downloading the blockchain) can take more than a minute,
because database writes are queued to speed up download
time.


NEW FEATURES SINCE BITCOIN VERSION 0.5
--------------------------------------

Initial network synchronization should be much faster
(one or two hours on a typical machine instead of ten or more
hours).

Backup Wallet menu option.

Bitcoin-Qt can display and save QR codes for sending
and receiving addresses.

New context menu on addresses to copy/edit/delete them.

New Sign Message dialog that allows you to prove that you
own a bitcoin address by creating a digital
signature.

New wallets created with this version will
use 33-byte 'compressed' public keys instead of
65-byte public keys, resulting in smaller
transactions and less traffic on the bitcoin
network. The shorter keys are already supported
by the network but wallet.dat files containing
short keys are not compatible with earlier
versions of Bitcoin-Qt/bitcoind.

New command-line argument -blocknotify=<command>
that will spawn a shell process to run <command>
when a new block is accepted.

New command-line argument -splash=0 to disable
Bitcoin-Qt's initial splash screen

validateaddress JSON-RPC api command output includes
two new fields for addresses in the wallet:
 pubkey : hexadecimal public key
 iscompressed : true if pubkey is a short 33-byte key

New JSON-RPC api commands for dumping/importing
private keys from the wallet (dumprivkey, importprivkey).

New JSON-RPC api command for getting information about
blocks (getblock, getblockhash).

New JSON-RPC api command (getmininginfo) for getting
extra information related to mining. The getinfo
JSON-RPC command no longer includes mining-related
information (generate/genproclimit/hashespersec).



NOTABLE CHANGES
---------------

BIP30 implemented (security fix for an attack involving
duplicate "coinbase transactions").

The -nolisten, -noupnp and -nodnsseed command-line
options were renamed to -listen, -upnp and -dnsseed,
with a default value of 1. The old names are still
supported for compatibility (so specifying -nolisten
is automatically interpreted as -listen=0; every
boolean argument can now be specified as either
-foo or -nofoo).

The -noirc command-line options was renamed to
-irc, with a default value of 0. Run -irc=1 to
get the old behavior.

Three fill-up-available-memory denial-of-service
attacks were fixed.

NOT YET IMPLEMENTED FEATURES
----------------------------

Support for clicking on bitcoin: URIs and
opening/launching Bitcoin-Qt is available only on Linux,
and only if you configure your desktop to launch
Bitcoin-Qt. All platforms support dragging and dropping
bitcoin: URIs onto the Bitcoin-Qt window to start
payment.


PRELIMINARY SUPPORT FOR MULTISIGNATURE TRANSACTIONS
---------------------------------------------------

This release has preliminary support for multisignature
transactions-- transactions that require authorization
from more than one person or device before they
will be accepted by the bitcoin network.

Prior to this release, multisignature transactions
were considered 'non-standard' and were ignored;
with this release multisignature transactions are
considered standard and will start to be relayed
and accepted into blocks.

It is expected that future releases of Bitcoin-Qt
will support the creation of multisignature transactions,
once enough of the network has upgraded so relaying
and validating them is robust.

For this release, creation and testing of multisignature
transactions is limited to the bitcoin test network using
the "addmultisigaddress" JSON-RPC api call.

Short multisignature address support is included in this
release, as specified in BIP 13 and BIP 16.


Thanks to everybody who contributed to this release:

Alex B
Alistair Buxton
Chris Moore
Clark Gaebel
Daniel Folkinshteyn
Dylan Noblesmith
Forrest Voight
Gavin Andresen
Gregory Maxwell
Janne Pulkkinen
Joel Kaartinen
Lars Rasmusson
Luke Dashjr
Matt Corallo
Michael Ford
Michael Hendricks
Nick Bosma
Nils Schneider
Philip Kaufmann
Pierre Pronchery
Pieter Wuille
Rune K Svendsen
Wladimir J. van der Laan
coderrr
p2k
sje397

Special thanks to Sergio Lerner and Matt Corallo for bringing
potential denial-of-service attacks to our attention.


Title: Re: Version 0.6.0 released
Post by: minimalB on March 30, 2012, 04:05:56 PM
Thanks for your hard work!


Title: Re: Version 0.6.0 released
Post by: finway on March 30, 2012, 04:48:56 PM
Bitcoin version 0.6.0 is now available for download at:
  http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.6.0/test/
Should be:
http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.6.0/


EDIT:
Congratulations and thanks!
I'll have a bottle of beer to cheer this version.


Title: Re: Version 0.6.0 released
Post by: occulta on March 30, 2012, 05:19:13 PM
nice, keep it up ! ill be donating again


Title: Re: Version 0.6.0 released
Post by: rjk on March 30, 2012, 05:20:06 PM
The signmessage feature is nice - but is there a way to verify the message within the GUI?


Title: Re: Version 0.6.0 released
Post by: Daily Anarchist on March 30, 2012, 05:31:29 PM
When will the Ubuntu Package be updated?


Title: Re: Version 0.6.0 released
Post by: etotheipi on March 30, 2012, 05:50:11 PM
Btw, I would caution against saying "Signing messages ... to prove that you own an bitcoin address ...".  It's very difficult for someone to say "prove you own this address" and then you can do so.  A MITM could ask the person who really does own the address to prove they own it then forward the response packet to the original requestor as if they owned it themselves.  There are ways to do it, but it is not likely to be executed properly, by hand.

I recommend promoting the feature as "Message signing, with address-based authentication" or something more PR-friendly.  For instance, you need a shipping address to send the 1,000 BTC merchandise that was paid for [partly] with address X.  You would instead ask for a shipping address signed by address X.  The MITM wants to divert the package to his own location, but can't do so without breaking the signature.

The important part is that the same person who owns X approves of the message that was being signed, without regards for where the person is or when they signed it.

Perhaps that's already in your line of thinking, but I think it's a distinction worth making.


Title: Re: Version 0.6.0 released
Post by: MysteryMiner on March 30, 2012, 06:22:53 PM
The address signing is counteranonymous and against initial goals of Bitcoin. QR codes are not used worldwide and will fall in disuse much faster than IrDA links did. I smell feature bloat.


Title: Re: Version 0.6.0 released
Post by: etotheipi on March 30, 2012, 06:37:44 PM
The address signing is counteranonymous and against initial goals of Bitcoin. QR codes are not used worldwide and will fall in disuse much faster than IrDA links did. I smell feature bloat.

I'm not sure I follow how it is counteranonymous.  You fund a website/service with 20 BTC coming from address X.  You can then manage your account over the internet without ever creating a username/password, supplying name or email address.   The only thing that matters to the web service is that the same person who originally sent them 20 BTC is the same person telling them to transfer it to another address, purchase something, buy into a poker game, etc. 

It has the same security and anonymity features as Bitcoin itself.  For now, such messages might have to be manually constructed, but in the future, your BTC private key could be used to initiate SSL connections, etc.


Title: Re: Version 0.6.0 released
Post by: Serge on March 30, 2012, 07:32:37 PM
nice, glad noirc made into default setting with this update.

i'll be updating soon from 0.4


Title: Re: Version 0.6.0 released
Post by: istar on March 30, 2012, 08:13:02 PM
Could not install on a Nordic windows7 32bit when logged in as a non admin, tried twice.
The third time I changed the installer directory to "program" instead of "program files" and it worked.

However a casual computer user will having problem will not figure that out.
If its possible to fix it would probably be good.

Really great work guys!



Title: Re: Version 0.6.0 released
Post by: Tritonio on March 30, 2012, 09:25:57 PM
The signmessage feature is nice - but is there a way to verify the message within the GUI?

I'd also like to know this.


Title: Re: Version 0.6.0 released
Post by: bitlotto on March 30, 2012, 09:31:43 PM
Does the software use https://en.bitcoin.it/wiki/BIP_0021 as the QR format?


Title: Re: Version 0.6.0 released
Post by: Gavin Andresen on March 30, 2012, 10:26:46 PM
When will the Ubuntu Package be updated?
When the maintainer (Matt) has a little time.
The signmessage feature is nice - but is there a way to verify the message within the GUI?
No, not yet. Anybody know if there's a web page that will do the verification?  (would be easy to create one...)
Does the software use https://en.bitcoin.it/wiki/BIP_0021 as the QR format?
Yes.


Title: Re: Version 0.6.0 released
Post by: Diapolo on March 30, 2012, 10:30:57 PM
The address signing is counteranonymous and against initial goals of Bitcoin. QR codes are not used worldwide and will fall in disuse much faster than IrDA links did. I smell feature bloat.

It's pretty easy to disable support for that one, during compile time ... so if it's a sucker it's not hard to remove support for it ;).

@Gavin: The linked version has still the Beta flag in the version string, perhaps you forgot to re-label it.

Dia


Title: Re: Version 0.6.0 released
Post by: etotheipi on March 30, 2012, 10:51:15 PM
The signmessage feature is nice - but is there a way to verify the message within the GUI?
No, not yet. Anybody know if there's a web page that will do the verification?  (would be easy to create one...)

Gavin,

I put a sign&verify GUI into Armory, and used a BIP-10-like format to create and verify "signature blocks." 

Here is an example of the signature block and the user interface. (https://bitcointalk.org/index.php?topic=56424.msg776163#msg776163) The UI needs to be cleaned up a bit, but it does work.

Unfortunately, I am not yet compatible with the Satoshi client and I suspect I'll need to handle compressed public keys to do so.  But I want to get it compatible as soon as I can, so can you make sure that it is documented so I can match?  You also might consider a similar "signature block" technique (or do you already have it?)








Title: Re: Version 0.6.0 released
Post by: Omni on March 30, 2012, 10:52:54 PM
Gavin you're a legend.


Title: Re: Version 0.6.0 released
Post by: MaxSan on March 30, 2012, 11:10:19 PM
Thanks to Gavin all others for you continued hard work on the very core of bitcoin.


Title: Re: Version 0.6.0 released
Post by: jgarzik on March 31, 2012, 02:21:13 AM
Thanks to all our contributors and testers for their hard work.


Title: Re: Version 0.6.0 released
Post by: niko on March 31, 2012, 03:38:35 AM
Just upgraded, and it seems to be stuck at 8 connections even though port 8333 is open. Version 0.5.3.1 under same settings worked fine. Any ideas?

False alarm - after 5 minutes or so it started going up.


Title: Re: Version 0.6.0 released
Post by: theymos on March 31, 2012, 04:38:29 AM
@Gavin: The linked version has still the Beta flag in the version string, perhaps you forgot to re-label it.

All Bitcoin releases are considered beta.


Title: Re: Version 0.6.0 released
Post by: gorgo1 on March 31, 2012, 10:23:35 AM
Thanks for the updated version of the client Gavin.Installing now. :)


Title: Re: Version 0.6.0 released
Post by: Jeremy West spendbitcoins.com on March 31, 2012, 10:36:14 AM
Initial network synchronization should be much faster
(one or two hours on a typical machine instead of ten or more
hours).

Here's something I've been wondering for awhile now, but only now remember when I'm actually on the forums...

Would it make sense to include a version for new adopters to download which includes an up-to-date (at time of release) blkindex file rather than a blank blkindex file so that they are nearly synced at installation?


Title: Re: Version 0.6.0 released
Post by: slothbag on March 31, 2012, 10:49:50 AM
Awesome work Gavin and team.. 

The fast block download is a huge improvement.  Even my low powered atom PC managed to catch up on 24 hours of blocks in just under a minute.

Any chance of getting the relative block count progress bar added back in as a configurable display option for the majority who liked it :) v0.6.1 perhaps.

Keep up the good work!


Title: Re: Version 0.6.0 released
Post by: Cusipzzz on March 31, 2012, 12:58:06 PM
kudos to all the developers!


Title: Re: Version 0.6.0 released
Post by: rjk on March 31, 2012, 01:00:28 PM
Initial network synchronization should be much faster
(one or two hours on a typical machine instead of ten or more
hours).

Here's something I've been wondering for awhile now, but only now remember when I'm actually on the forums...

Would it make sense to include a version for new adopters to download which includes an up-to-date (at time of release) blkindex file rather than a blank blkindex file so that they are nearly synced at installation?
The new version downloads the blocks much faster now, but if that is still too slow you can download a nightly here: http://eu1.bitcoincharts.com/blockchain/


Title: Re: Version 0.6.0 released
Post by: Pieter Wuille on March 31, 2012, 01:13:25 PM
The new version downloads the blocks much faster now, but if that is still too slow you can download a nightly here: http://eu1.bitcoincharts.com/blockchain/

If you're going to suggest people to download the block chain database (bypassing all verification that bitcoin does when it fetches blocks from peers), it may be advisable to suggest using -checkblocks -checklevel=6 when starting up the first time. -checklevel is a new option that allows much more thorough verification.

Otherwise, if somehow such a download (by bad luck or malicious intent) gets corrupted, and many people download their chain from that point, a particular block could put them all at once on a block chain fork.


Title: Re: Version 0.6.0 released
Post by: Mushoz on March 31, 2012, 02:44:41 PM
Just upgraded, and it seems to be stuck at 8 connections even though port 8333 is open. Version 0.5.3.1 under same settings worked fine. Any ideas?

False alarm - after 5 minutes or so it started going up.

Same problem here. Getting stuck on 8 connections sometimes. uPnP doesn't seem to be working as well as it used to.


Title: Re: Version 0.6.0 released
Post by: Pieter Wuille on March 31, 2012, 03:12:51 PM
Same problem here. Getting stuck on 8 connections sometimes. uPnP doesn't seem to be working as well as it used to.

The reason is IRC being deprecated and defaulting to off. This will indeed mean less very fast incoming connections, but better connectivity for longing-living listening nodes (as others don't rely on recently IRC-advertized nodes, but on the addresses propagated through the network).


Title: Re: Version 0.6.0 released
Post by: Mushoz on March 31, 2012, 03:40:26 PM
Same problem here. Getting stuck on 8 connections sometimes. uPnP doesn't seem to be working as well as it used to.

The reason is IRC being deprecated and defaulting to off. This will indeed mean less very fast incoming connections, but better connectivity for longing-living listening nodes (as others don't rely on recently IRC-advertized nodes, but on the addresses propagated through the network).

I see. Is it possible to get more than 8 connections on the initial download of the chain? The number of connections finally went past 8 when the download was very close to being finished. Maybe that had something to do with it?


Title: Re: Version 0.6.0 released
Post by: Pieter Wuille on March 31, 2012, 03:47:10 PM
I see. Is it possible to get more than 8 connections on the initial download of the chain? The number of connections finally went past 8 when the download was very close to being finished. Maybe that had something to do with it?

There's no point in that: downloading the chain will not go faster with more connections - one good one suffices. In fact, incoming connections have a much larger chance of wanting to request your block chain, slowing your sync down further.


Title: Re: Version 0.6.0 released
Post by: Portnoy on March 31, 2012, 03:48:26 PM

Any chance of getting the relative block count progress bar added back in as a configurable display option for the majority who liked it :) v0.6.1 perhaps.


+1


Title: Re: Version 0.6.0 released
Post by: Mushoz on March 31, 2012, 04:47:03 PM
I see. Is it possible to get more than 8 connections on the initial download of the chain? The number of connections finally went past 8 when the download was very close to being finished. Maybe that had something to do with it?

There's no point in that: downloading the chain will not go faster with more connections - one good one suffices. In fact, incoming connections have a much larger chance of wanting to request your block chain, slowing your sync down further.


I know it will only use 1 connection at a time for downloading, but with more connections there's a bigger chance you get connected to a fast peer, right?


Title: Re: Version 0.6.0 released
Post by: Pieter Wuille on March 31, 2012, 05:01:34 PM
I know it will only use 1 connection at a time for downloading, but with more connections there's a bigger chance you get connected to a fast peer, right?

No, it just uses whatever node is the first that tells you about a new block. That is almost always the first node you connect to.


Title: Re: Version 0.6.0 released
Post by: minorman on March 31, 2012, 06:45:40 PM
Good work devs.
Bitcoin just keeps getting better...


Title: Re: Version 0.6.0 released
Post by: Daily Anarchist on March 31, 2012, 08:38:08 PM
After issuing the sudo apt-get upgrade command I get the following message

Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages have been kept back:
  bitcoin-qt
0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.

Anybody know why it's not allowing me to upgrade as normal?


Title: Re: Version 0.6.0 released
Post by: LightRider on March 31, 2012, 11:09:32 PM
Thanks again for all of your effort devs!


Title: Re: Version 0.6.0 released
Post by: Daily Anarchist on March 31, 2012, 11:35:31 PM
After issuing the sudo apt-get upgrade command I get the following message

Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages have been kept back:
  bitcoin-qt
0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.

Anybody know why it's not allowing me to upgrade as normal?

Problem solved! Just had to issue the install-qt command instead. There were some outdated dependencies holding it up, which I later autoremoved after replacing them with more recent dependencies during installation.


Title: Re: Version 0.6.0 released
Post by: Dusty on April 01, 2012, 07:20:28 PM
Great news, thanks!


Title: Re: Version 0.6.0 released
Post by: D.H. on April 02, 2012, 03:20:32 PM
I installed v0.6.0 and apparently someone had finished the Swedish translation so I got it in Swedish, great! BUT, there seems to be a problem with the "&" that is included in some strings to indicate the shortcut key. For example, the "Send coins" tab looks like this in the Swedish translation: "amp; Skicka bitcoins". So, it seems that "&amp;" has been used in the program instead of just "&".

It looks right on Transifex from what I can see, and in some places it works, for example the "New address" button on the "Receive coins tab" looks right.


Title: Re: Version 0.6.0 released
Post by: Diapolo on April 02, 2012, 04:02:19 PM
I installed v0.6.0 and apparently someone had finished the Swedish translation so I got it in Swedish, great! BUT, there seems to be a problem with the "&" that is included in some strings to indicate the shortcut key. For example, the "Send coins" tab looks like this in the Swedish translation: "amp; Skicka bitcoins". So, it seems that "&amp;" has been used in the program instead of just "&".

It looks right on Transifex from what I can see, and in some places it works, for example the "New address" button on the "Receive coins tab" looks right.

It had been fixed by a translator on Transifex, so the next time a language update is imported, that will be fixed :).

Dia


Title: Re: Version 0.6.0 released
Post by: dooglus on April 03, 2012, 10:00:33 PM
Any chance of getting the relative block count progress bar added back in as a configurable display option for the majority who liked it :) v0.6.1 perhaps.

How about this?  https://github.com/bitcoin/bitcoin/pull/1030

Show the number of blocks left to download, instead of a percentage.

The reason the display was changed back to being absolute rather than relative was for new users.  Suppose a new user installs the client, downloads half the blocks, sees it take hours to go from 0% to 50%, then quits and restarts.  With the relative scheme, the display would start back to 0% again, and the user may well think that it was starting from the beginning, and give up on the whole idea.

See the discussion here: https://github.com/bitcoin/bitcoin/issues/753


Title: Re: Version 0.6.0 released
Post by: slothbag on April 03, 2012, 10:20:52 PM
I understand why we went back to absolute and agree it needed to be done for the newbs.. What I was suggesting is an option to switch to relative in the options screen.


Title: Re: Version 0.6.0 released
Post by: ThiagoCMC on April 04, 2012, 05:42:43 AM
Hi!

 Where is the TX-fees?!?!

 I just send 50.00 and 10.00 and for both transactions, the fee = 0.00 !!

 But, with the previous versions, the client automatically put a default fee there...

 I would like to pay the fees!! how to enable it again?!

Thanks!
Thiago


Title: Re: Version 0.6.0 released
Post by: Diapolo on April 04, 2012, 05:52:48 AM
Hi!

 Where is the TX-fees?!?!

 I just send 50.00 and 10.00 and for both transactions, the fee = 0.00 !!

 But, with the previous versions, the client automatically put a default fee there...

 I would like to pay the fees!! how to enable it again?!

Thanks!
Thiago

In the settings, you'll find a checkbox there! Or with a supplied flag, -paytxfee=.

Dia


Title: Re: Version 0.6.0 released
Post by: ThiagoCMC on April 04, 2012, 06:04:35 AM
Hi!

 Where is the TX-fees?!?!

 I just send 50.00 and 10.00 and for both transactions, the fee = 0.00 !!

 But, with the previous versions, the client automatically put a default fee there...

 I would like to pay the fees!! how to enable it again?!

Thanks!
Thiago

In the settings, you'll find a checkbox there! Or with a supplied flag, -paytxfee=.

Dia

Mmmm... I don't use GUI... only bitcoind in Ubuntu Linux...

So, I just need to add the option:

paytxfee=?.??

at ~/.bitcoin/bitcoin.conf ?

I would like to have it dynamic as before... Not a fixed fee. But how?!


Title: Re: Version 0.6.0 released
Post by: Pieter Wuille on April 04, 2012, 11:25:05 AM
Hi!

Where is the TX-fees?!?!

I just send 50.00 and 10.00 and for both transactions, the fee = 0.00 !!

But, with the previous versions, the client automatically put a default fee there...

I would like to pay the fees!! how to enable it again?!
Thanks!
Thiago

Fees have always been voluntary, except in case of sending very small outputs, or using too recent/too small inputs, as a means for spam protection on the network. The details of this policy have not been changed since 0.3.23.



Title: Re: Version 0.6.0 released
Post by: ThiagoCMC on April 04, 2012, 05:02:28 PM
Well, the behavior in 0.6.0 is different of 0.5.3.
With 0.5.3 (using the same bitcoin.conf) I pay the fees automatically, now, I pay no fees...
How to "restore" the old behavior?!


Title: Re: Version 0.6.0 released
Post by: Proofer on April 05, 2012, 02:41:54 AM
Well, the behavior in 0.6.0 is different of 0.5.3.
With 0.5.3 (using the same bitcoin.conf) I pay the fees automatically, now, I pay no fees...
How to "restore" the old behavior?!

Code:
$ bitcoind help settxfee
settxfee <amount>
<amount> is a real and is rounded to the nearest 0.00000001
$


Title: Re: Version 0.6.0 released
Post by: rjk on April 05, 2012, 02:43:58 AM
Well, the behavior in 0.6.0 is different of 0.5.3.
With 0.5.3 (using the same bitcoin.conf) I pay the fees automatically, now, I pay no fees...
How to "restore" the old behavior?!
For those transactions, it is entirely possible that you wouldn't have paid a fee even with the old client. Fees are usually applied when the transaction is over the size limit, but they also may be waived if the coins have been sitting in your wallet for a sufficient period of time. I'd say don't worry about it.


Title: Re: Version 0.6.0 released
Post by: Pieter Wuille on April 05, 2012, 03:02:54 AM
Well, the behavior in 0.6.0 is different of 0.5.3.

I guarantee you, nothing changed in the fee policy since 0.3.23. Whether a fee is required or not depends on the size and age of the input coins you're using.


Title: Re: Version 0.6.0 released
Post by: ThiagoCMC on April 05, 2012, 03:11:20 AM
Okay! Thank you guys!!  :)


Title: Re: Version 0.6.0 released
Post by: jetmine on April 05, 2012, 04:12:25 PM
Gavin Andresen,

Horrible work.  Absolutely NOT impressed.

You have >100 bugs open and yet decide to release on 30-march and FORCE the update for 1-april.  Just two days later.

This release is unstable as hell.  I get crashes.  I get unexpected exits.  And I get failures to restart.


Crashes:
-----------

************************
EXCEPTION: 22DbRunRecoveryException
DbEnv::txn_checkpoint: DB_RUNRECOVERY: Fatal error, run database recovery
bitcoin in ThreadMessageHandler()


Unexpected exits:
--------------------

04/05/12 11:38:48 sending: inv (73 bytes)
04/05/12 11:38:49 received: addr (31 bytes)
connection timeout
04/05/12 11:38:49 received: addr (31 bytes)
trying connection 200.74.242.32:8333 lastseen=-2.3hrs
04/05/12 11:38:50 received: addr (31 bytes)
04/05/12 11:38

--> Result code: 139


Failures to restart:
--------------------

Loading addresses...
dbenv.open strLogDir=/home/XXX/.bitcoin/database strErrorFile=/home/XXX/.bitcoin/db.log


************************
EXCEPTION: NSt8ios_base7failureE      
CDataStream::read() : end of data      
bitcoin in AppInit()      

--> Result code: 134


What about good Q&A procedures?  What about testing stuff before release ("compiles fine on Win7" is NOT testing)?  What about establishing a stable status quo BEFORE forcing it on people, like for a month/year?


I get 80% orphans with the old version, and I get 95% downtime with the new version.  Great choices, thanks a lot for that.



Title: Re: Version 0.6.0 released
Post by: rjk on April 05, 2012, 04:15:53 PM
What about good Q&A procedures?  What about testing stuff before release ("compiles fine on Win7" is NOT testing)?  What about establishing a stable status quo BEFORE forcing it on people, like for a month/year?
The devs have been begging for beta testers for a while now. I suggest that you liaise with them to set something up, instead of bashing them without knowing what's up. Perhaps you could join the #bitcoin-dev IRC channel on freenode, and hit up the mailing list, and give them REPRODUCIBLE issues to test and fix.

Calm down.


Title: Re: Version 0.6.0 released
Post by: DeathAndTaxes on April 05, 2012, 04:20:51 PM
This release is unstable as hell.  I get crashes.  I get unexpected exits.  And I get failures to restart.

Good thing you reported this in RC1 to RC5 so it is already fixed..... er wait you didn't?


Title: Re: Version 0.6.0 released
Post by: Boussac on April 05, 2012, 04:49:17 PM
I wonder what is the criteria to become "whitelisted" ?  (one must have been angry for the past six months ?)

@gavin and team:
thanks and keep up the good work, you guys are outstanding!


Title: Re: Version 0.6.0 released
Post by: Gavin Andresen on April 05, 2012, 05:58:32 PM
This release is unstable as hell.  I get crashes.  I get unexpected exits.  And I get failures to restart.
All righty... you're the first person I've heard that from.

Please file bug reports on the github issue tracker. Include enough information so we can reproduce the problem (what platform? what seems to cause the problem? etc) and it might get fixed.

I say "might" because if you're serving up a big mining pool running bitcoind on Windows... well, none of the current core developers work on Windows.



Title: Re: Version 0.6.0 released
Post by: jetmine on April 05, 2012, 07:14:15 PM
Please file bug reports on the github issue tracker. Include enough information so we can reproduce the problem (what platform? what seems to cause the problem? etc) and it might get fixed.

Github doesnt seem to accept new accounts:  "There were problems creating your account." It gives no further details, so I dont know how to get on there.

The platform is CentOS 5.6 x64.  The cause of the problem is unknown.  It started shortly after 2am CET this morning, and is probably related to whatever has been received around that time (because it worked for almost a day before).  I have posted everything that I have, which is (-debug -printtoconsole).  There was another piece of information which I didnt save unfortunately.  It a crash report after the first crash, and it contained a call stack dump.  The initial cause for the crash was a "free" of invalid memory.  I have another similar box that also crashed tonight, but it did not dump the callstack and it did have less problems to start again.  Therefore the other problems are probably caused by data that has been saved during the initial problematic event, and in fact the first box only came up again after deleting all cached data in .bitcoin/ and in particular the addr.dat file.

So there must be at least three problems, one is that an invalid memory free can be triggered, another one is that the file parsers can bail out fatally when encountering corrupt file content, and the third problem is that normal operation can cause files be filled with such corrupt content.

Let me know what else you need to know from me.


Title: Re: Version 0.6.0 released
Post by: pandemic on April 05, 2012, 09:51:03 PM
Any issues upgrading or can I just install and open w/o loss?


Title: Re: Version 0.6.0 released
Post by: DeathAndTaxes on April 05, 2012, 09:51:54 PM
Any issues upgrading or can I just install and open w/o loss?

You can just install but always (on this ver or any verion) make a backup of wallet.dat before upgrading.


Title: Re: Version 0.6.0 released
Post by: Red Emerald on April 05, 2012, 09:56:36 PM
The blockchain download speed is soo much faster now!

<3


Title: Re: Version 0.6.0 released
Post by: SkRRJyTC on April 05, 2012, 10:40:09 PM
The devs have been begging for beta testers for a while now.

How would I begin to get involved with this?


Title: Re: Version 0.6.0 released
Post by: ThiagoCMC on April 05, 2012, 11:27:17 PM
Any issues upgrading or can I just install and open w/o loss?

What I've done:

1- Stop your Bitcoin <0.5.3;
2- Copy your wallet;
3- remove (or move it away) the "old" blockchain (i.e. mv ~/.bitcoin/ ~/_bitcoin-0.5.3-backup);
4- create a empty dir (i.e. mkdir ~/.bitcoin/);
5- copy the wallet.dat from the backup to ~/.bitcoin;
6- start Bitcoin 0.6.0.


Title: Re: Version 0.6.0 released
Post by: dlb76 on April 06, 2012, 01:17:28 AM
updated to 0.6.0.6-beta
Thanks for QR codes!


Title: Re: Version 0.6.0 released
Post by: GideonGono on April 06, 2012, 05:43:25 AM
Thanks to all the contributors to this release!!


Title: Re: Version 0.6.0 released
Post by: jetmine on April 06, 2012, 09:24:56 PM
Please file bug reports on the github issue tracker. Include enough information so we can reproduce the problem (what platform? what seems to cause the problem? etc) and it might get fixed.

Another crash happened today, same platform etc.

This time it ran with -printtoconsole (no -debug).  The scrollback buffer is filled with hundreds of

Code:
received getdata for: tx 7680e65403ab1b258887

.. then:

Code:
received getdata for: tx 7680e65403ab1b258887
received getdata for: tx 7680e65403ab1b258887
trying connection 81.176.229.178:8333 lastseen=-2.5hrs
connect() failed after select(): Connection refused
received getdata for: tx 7680e65403ab1b258887
received getdata for: tx 7680e65403ab1b258887
received getdata for: tx 7680e65403ab1b258887
received getdata for: tx 7680e65403ab1b258887
received getdata for: tx 7680e65403ab1b258887
received getdata for: tx 7680e65403ab1b258887
askfor tx 263d4ec0b5712e6e1b47   0
sending getdata: tx 263d4ec0b5712e6e1b47
trying connection 141.106.36.16:8333 lastseen=-3.9hrs
connect() failed after select(): Connection refused
received getdata for: tx 7680e65403ab1b258887
askfor tx 263d4ec0b5712e6e1b47   1333717043000000
askfor tx 263d4ec0b5712e6e1b47   1333717163000000
askfor tx 263d4ec0b5712e6e1b47   1333717283000000
askfor tx 263d4ec0b5712e6e1b47   1333717403000000
askfor tx 263d4ec0b5712e6e1b47   1333717523000000
askfor tx 263d4ec0b5712e6e1b47   1333717643000000
askfor tx 263d4ec0b5712e6e1b47   1333717763000000
askfor tx 263d4ec0b5712e6e1b47   1333717883000000
askfor tx 263d4ec0b5712e6e1b47   1333718003000000
askfor tx 263d4ec0b5712e6e1b47   1333718123000000
AcceptToMemoryPoolUnchecked(): size 22
AcceptToMemoryPool(): accepted 263d4ec0b5
received getdata for: tx 7680e65403ab1b258887
received getdata for: tx 7680e65403ab1b258887
trying connection 69.119.102.53:8333 lastseen=-2.9hrs
sending getdata: tx 35f44d3defc623e850d4
received getdata for: tx 89c54bace5d7221fb8e2
ERROR: AcceptToMemoryPool() : not enough fees
received getdata for: tx 7680e65403ab1b258887
Added 1 addresses from 74.58.231.130: 3415 tried, 8183 new
Added 1 addresses from 95.211.10.8: 3415 tried, 8183 new
received getdata for: tx 7680e65403ab1b258887
askfor tx fee32af70d821d823ba6   0
sending getdata: tx fee32af70d821d823ba6
askfor tx fee32af70d821d823ba6   1333717046000000
askfor tx fee32af70d821d823ba6   1333717166000000
askfor tx fee32af70d821d823ba6   1333717286000000
askfor tx fee32af70d821d823ba6   1333717406000000
askfor tx fee32af70d821d823ba6   1333717526000000
AcceptToMemoryPoolUnchecked(): size 23
AcceptToMemoryPool(): accepted fee32af70d
received getdata for: tx fee32af70d821d823ba6
Added 1 addresses from 91.95.240.5: 3415 tried, 8183 new
Added 1 addresses from 68.38.31.2: 3415 tried, 8183 new
askfor tx a817688a1f0463c40287   0
sending getdata: tx a817688a1f0463c40287
askfor tx a817688a1f0463c40287   1333717048000000
askfor tx a817688a1f0463c40287   1333717168000000
connection timeout  
askfor tx a817688a1f0463c40287   1333717288000000
accepted connection 147.133.197.3:64460
askfor tx a817688a1f0463c40287   1333717408000000
askfor tx a817688a1f0463c40287   1333717528000000
askfor tx a817688a1f0463c40287   1333717648000000
AcceptToMemoryPoolUnchecked(): size 24
AcceptToMemoryPool(): accepted a817688a1f
version message: version 32300, blocks=174516
trying connection 83.101.77.156:8333 lastseen=-3.7hrs
connect() failed after select(): Connection refused
received getdata for: tx a817688a1f0463c40287
received getdata for: tx a817688a1f0463c40287
askfor tx 9258e72d561e900d9f43   0
sending getdata: tx 9258e72d561e900d9f43
AcceptToMemoryPoolUnchecked(): size 25
AcceptToMemoryPool(): accepted 9258e72d56
received getdata for: tx 8d0bb79790fb657abcf5
trying connection 80.109.36.181:8333 lastseen=-2.1hrs
connect() failed after select(): Connection refused
trying connection 75.71.123.118:8333 lastseen=-2.8hrs
askfor tx 92422eb05a06de269337   0
sending getdata: tx 92422eb05a06de269337
askfor tx 92422eb05a06de269337   1333717051000000
askfor tx 92422eb05a06de269337   1333717171000000
askfor tx 92422eb05a06de269337   1333717291000000
askfor tx 92422eb05a06de269337   1333717411000000
askfor tx 92422eb05a06de269337   1333717531000000
askfor tx 92422eb05a06de269337   1333717651000000
askfor tx 92422eb05a06de269337   1333717771000000
askfor tx 92422eb05a06de269337   1333717891000000
askfor tx 92422eb05a06de269337   1333718011000000
askfor tx 92422eb05a06de269337   1333718131000000
askfor tx 92422eb05a06de269337   1333718251000000
askfor tx 92422eb05a06de269337   1333718371000000
AcceptToMemoryPoolUnchecked(): size 26
AcceptToMemoryPool(): accepted 92422eb05a
askfor tx 4119e666abec78284fa8   0
sending getdata: tx 4119e666abec78284fa8
askfor tx 4119e666abec78284fa8   1333717053000000
askfor tx 1c7736165bd767d36f81   0
sending getdata: tx 1c7736165bd767d36f81
AcceptToMemoryPoolUnchecked(): size 27
AcceptToMemoryPool(): accepted 4119e666ab
AcceptToMemoryPoolUnchecked(): size 28
AcceptToMemoryPool(): accepted 1c7736165b
Added 1 addresses from 128.211.220.133: 3415 tried, 8181 new
connection timeout  
trying connection 85.134.121.91:8333 lastseen=-2.7hrs
received getdata for: tx bc7df6ba49c3f73c67b5
received getdata for: tx 0824d52714585ec7b346
Added 1 addresses from 174.29.73.225: 3415 tried, 8180 new
askfor tx 4c999081f337a76825bb   0
sending getdata: tx 4c999081f337a76825bb
askfor tx 4c999081f337a76825bb   1333717059000000
askfor tx 4c999081f337a76825bb   1333717179000000
askfor tx 4c999081f337a76825bb   1333717299000000
askfor tx 4c999081f337a76825bb   1333717419000000
askfor tx 4c999081f337a76825bb   1333717539000000
askfor tx 4c999081f337a76825bb   1333717659000000
askfor tx 4c999081f337a76825bb   1333717779000000
askfor tx 4c999081f337a76825bb   1333717899000000
askfor tx 4c999081f337a76825bb   1333718019000000
AcceptToMemoryPoolUnchecked(): size 29
AcceptToMemoryPool(): accepted 4c999081f3
Added 1 addresses from 58.38.114.57: 3415 tried, 8180 new
Added 1 addresses from 86.171.229.45: 3415 tried, 8179 new
connection timeout  
trying connection 24.199.159.83:8333 lastseen=-3.6hrs
Added 1 addresses from 71.125.32.246: 3415 tried, 8178 new
Added 1 addresses from 131.93.72.31: 3415 tried, 8179 new
connection timeout  
Added 1 addresses from 76.117.220.29: 3415 tried, 8177 new
trying connection 78.159.58.51:8333 lastseen=-3.5hrs
connected 78.159.58.51:8333
Added time data, samples 200, offset -17 (+0 minutes)
Moving 78.159.58.51:8333 to tried
version message: version 32300, blocks=174521
trying connection 95.27.140.103:8333 lastseen=-3.3hrs
Added 8 addresses from 78.159.58.51: 3415 tried, 8170 new
connection timeout  
Added 1 addresses from 98.182.22.232: 3415 tried, 8168 new
trying connection 194.226.8.27:8333 lastseen=-2.1hrs
received getdata for: block 0000000000000504f773
ERROR: CBlock::ReadFromDisk() : OpenBlockFile failed
socket closed
disconnecting node 109.75.176.70:8333

...

Code:
Added 1 addresses from 76.117.220.29: 3415 tried, 8128 new
accepted connection 86.47.17.210:10890
Added time data, samples 200, offset -4 (+0 minutes)
Added 86.47.17.210:8333 from 86.47.17.210: 3415 tried, 8127 new
Moving 86.47.17.210:8333 to tried
version message: version 60000, blocks=167425
connection timeout  
trying connection 117.22.50.36:8333 lastseen=-2.2hrs
connected 117.22.50.36:8333
trying connection 84.232.230.105:8333 lastseen=-2.0hrs
connect() failed after select(): Connection refused
trying connection 82.170.160.25:8333 lastseen=-2.1hrs
getblocks 166650 to 000000000000027f4096 limit 500
ERROR: CBlock::ReadFromDisk() : OpenBlockFile failed
ERROR: CBlock::ReadFromDisk() : OpenBlockFile failed

.. and now I get literally hundreds of this:

Code:
ERROR: CBlock::ReadFromDisk() : OpenBlockFile failed

.. after which it continues like this:

Code:
ERROR: CBlock::ReadFromDisk() : OpenBlockFile failed
ERROR: CBlock::ReadFromDisk() : OpenBlockFile failed
ERROR: CBlock::ReadFromDisk() : OpenBlockFile failed
  getblocks stopping at limit 167149 00000000000003251788 (40500 bytes)
received getdata for: tx 1b356369085657c7ace4
received getdata for: tx 8c50e82b2748528264cf
received getdata for: tx 2198ff40554b152b1a79
received getdata for: tx 828a38228f1721fece77
received getdata for: tx d4a4a2a23faebe9f6e62
received getdata for: tx 227eb66590575d626827
received getdata for: tx f3bc2efde58857ee9e66
received getdata for: tx 905f4ec6f080f66ffd0e
received getdata for: tx cc2fa59268afb6437f27
received getdata for: tx 8204e14270077c5cbf76
received getdata for: tx 5a3e47b43ce378aad707
received getdata for: tx 09a5d50c49714bafeaf8
received getdata for: tx 89c99876c87ccddea130
received getdata for: tx 16b0eedcbe030dc75129
received getdata for: block 0000000000000706fb4a
ERROR: CBlock::ReadFromDisk() : OpenBlockFile failed
received getdata for: tx a26d8f23d50b8ede2221
Added 1 addresses from 213.151.89.23: 3416 tried, 8123 new
connection timeout
socket closed
disconnecting node 68.12.223.12:8333
trying connection 77.93.86.5:8333 lastseen=-9.3hrs
connect() failed after select(): No route to host
trying connection 92.30.18.217:8333 lastseen=-2.7hrs
Added 1 addresses from 24.84.96.223: 3416 tried, 8119 new
Added 1 addresses from 68.53.153.158: 3416 tried, 8120 new
Added 1 addresses from 216.150.78.34: 3416 tried, 8120 new
connection timeout
trying connection 78.42.219.156:8333 lastseen=-2.2hrs
connected 78.42.219.156:8333
trying connection 86.93.165.82:8333 lastseen=-3.2hrs
askfor tx cc18e6dd56b2ac029bb1   0
sending getdata: tx cc18e6dd56b2ac029bb1
askfor tx cc18e6dd56b2ac029bb1   1333717155000000
askfor tx cc18e6dd56b2ac029bb1   1333717275000000
received getdata for: tx 7112939b80c44093c5cc
askfor tx cc18e6dd56b2ac029bb1   1333717395000000
askfor tx cc18e6dd56b2ac029bb1   1333717515000000
ERROR: CTransaction::ReadFromDisk() : OpenBlockFile failed
ERROR: FetchInputs() : cc18e6dd56 ReadFromDisk prev tx 803d7f1f5d failed
ERROR: AcceptToMemoryPool() : FetchInputs failed cc18e6dd56
storing orphan tx cc18e6dd56
Added 1 addresses from 90.214.173.163: 3416 tried, 8115 new
received getdata for: tx a26d8f23d50b8ede2221
received getdata for: tx a26d8f23d50b8ede2221
received getdata for: tx a26d8f23d50b8ede2221
received getdata for: tx a26d8f23d50b8ede2221
received getdata for: tx a26d8f23d50b8ede2221
connection timeout  
received getdata for: tx ddb63a21608ada6d5a1d
trying connection 89.223.38.207:8333 lastseen=-4.3hrs
received getdata for: tx a26d8f23d50b8ede2221
received getdata for: tx a26d8f23d50b8ede2221
received getdata for: tx 4febb23f86ab4a0d6cc4
Added 1 addresses from 68.53.153.158: 3416 tried, 8105 new
connection timeout  
trying connection 99.244.62.156:8333 lastseen=-4.0hrs
connected 99.244.62.156:8333
Added 1 addresses from 173.238.168.52: 3416 tried, 8106 new
Added 1 addresses from 192.75.95.253: 3416 tried, 8107 new
trying connection 90.129.138.126:8333 lastseen=-2.3hrs
trying connection 216.160.91.91:8333 lastseen=-4.5hrs
trying connection 75.94.171.54:8333 lastseen=-3.4hrs
trying connection 68.207.196.134:8333 lastseen=-2.2hrs
trying connection 80.199.31.74:8333 lastseen=-2.4hrs
trying connection 12.189.154.66:8333 lastseen=-3.1hrs
trying connection 188.47.5.13:8333 lastseen=-2.0hrs
trying connection 46.146.1.200:8333 lastseen=-2.8hrs
trying connection 74.60.78.73:8333 lastseen=-3.2hrs
trying connection 98.222.154.122:8333 lastseen=-2.8hrs
trying connection 77.255.5.179:8333 lastseen=-3.2hrs
socket recv error 110
disconnecting node 109.246.254.188:8333
trying connection 81.151.216.26:8333 lastseen=-4.3hrs
socket closed
disconnecting node 84.73.221.49:8333
terminate called after throwing an instance of 'DbRunRecoveryException'
  what():  DbEnv::txn_checkpoint: DB_RUNRECOVERY: Fatal error, run database recovery
Aborted

.. and here bitcoind is dead.  No more messages, nor a stackdump either.  Resultcode is 134.

I got the same behaviour on two different boxes.


The earliest abnormal behaviour I could find in the scrollback buffer is transaction 7680e65403ab1b258887 (dont know if this identifier is meaningful after bitcoind has shutdown?).  Then there is that sole "OpenBlockFile failed", which shortly extends into hundreds of the same error which take down all dependent operations very quickly.

This happened around 7pm CET this afternoon.

If necessary, I think I have full -debug -printtoconsole logs on the other box (not limited by scrollback buffer size).  Let me know if you need them and I will recover them for you.

Edit: added code tags


Title: Re: Version 0.6.0 released
Post by: rjk on April 06, 2012, 09:38:08 PM
Look to me like it could be either disk corruption or someone flooding your node with an invalid tx. I think you mentioned that you have already blown away the block database once, but if you haven't that would be something to try.


Title: Re: Version 0.6.0 released
Post by: jetmine on April 06, 2012, 09:38:36 PM
Another good one:

...

Code:
version message: version 40000, blocks=174571
04/06/12 21:31:23 received: verack (0 bytes)
04/06/12 21:31:23 received: block (7123 bytes)
received block 00000000000008506c9e
SetBestChain: new best=00000000000008506c9e  height=174572  work=286071818980138056873
ProcessBlock: ACCEPTED
04/06/12 21:31:23 received: inv (37 bytes)
  got inventory: tx 2218b46d9523b7a39653  new
askfor tx 2218b46d9523b7a39653   0
sending getdata: tx 2218b46d9523b7a39653
04/06/12 21:31:23 sending: getdata (37 bytes)
04/06/12 21:31:23 received: block (7123 bytes)
received block 00000000000008506c9e
ERROR: ProcessBlock() : already have block 174572 00000000000008506c9e
04/06/12 21:31:23 sending: inv (37 bytes)
04/06/12 21:31:23 sending: inv (37 bytes)
04/06/12 21:31:23 sending: inv (37 bytes)
04/06/12 21:31:23 sending: inv (37 bytes)
04/06/12 21:31:23 sending: addr (31 bytes)
04/06/12 21:31:23 sending: inv (37 bytes)
04/06/12 21:31:23 sending: inv (37 bytes)
04/06/12 21:31:23 received: inv (37 bytes)
  got inventory: block 00000000000008506c9e  have
askfor block 00000000000008506c9e   0
04/06/12 21:31:23 sending: inv (37 bytes)
04/06/12 21:31:23 sending: inv (37 bytes)
04/06/12 21:31:23 sending: inv (37 bytes)
04/06/12 21:31:23 received: tx (620 bytes)
Rate limit dFreeCount: 728.562 => 1348.56
AcceptToMemoryPoolUnchecked(): size 5
AcceptToMemoryPool(): accepted 2218b46d95
04/06/12 21:31:24 received: inv (37 bytes)
  got inventory: block 00000000000008506c9e  have
askfor block 00000000000008506c9e   1333747883000000
04/06/12 21:31:24 sending: inv (37 bytes)
04/06/12 21:31:24 sending: inv (37 bytes)
04/06/12 21:31:24 received: inv (37 bytes)
  got inventory: tx 2218b46d9523b7a39653  have
04/06/12 21:31:24 sending: inv (37 bytes)
04/06/12 21:31:24 sending: inv (37 bytes)
04/06/12 21:31:24 sending: inv (37 bytes)
04/06/12 21:31:25 received: inv (37 bytes)
  got inventory: tx 2218b46d9523b7a39653  have
04/06/12 21:31:26 sending: inv (37 bytes)
04/06/12 21:31:26 Flushing wallet.dat
Flushed wallet.dat 19ms
04/06/12 21:31:26 sending: inv (37 bytes)
04/06/12 21:31:26 sending: inv (37 bytes)
04/06/12 21:31:26 received: addr (5851 bytes)
Segmentation fault  

The returncode is 139 at this point.

Note how at one point is sais received block 00000000000008506c9e, then it sais error, already have 00000000000008506c9e.  Then shortly after it sais ask for block 00000000000008506c9e and shortly after it just segfaults.

Edit: added code tags


Title: Re: Version 0.6.0 released
Post by: paraipan on April 06, 2012, 09:42:54 PM
interesting...

Quote
askfor tx 263d4ec0b5712e6e1b47   1333717043000000

Quote
askfor block 00000000000008506c9e   1333747883000000


Title: Re: Version 0.6.0 released
Post by: jetmine on April 06, 2012, 09:44:26 PM
Look to me like it could be either disk corruption or someone flooding your node with an invalid tx. I think you mentioned that you have already blown away the block database once, but if you haven't that would be something to try.

Disk corruption is not likely.  The two boxes have different hardware, different blockdevs, even different filesystems.

Wipe database, yes I did this already.

About your other suspicion:  flood with invalid tx -> crash == DoS attack vector.

The goold old 3.xx branch was rock stable, and now we are FORCED to use software which has less than a week of testing (and many obvious problems already visible).


Title: Re: Version 0.6.0 released
Post by: rjk on April 06, 2012, 09:49:04 PM
About your other suspicion:  flood with invalid tx -> crash == DoS attack vector.
Some similar tx flood DoS attack vectors were recently closed, but it is entirely possible that more remain, or that the patch has opened a different vector. It will be interesting to find out the cause of this crashing.

BTW, I believe that Luke-jr has posted backports of 0.5.x, if that interests you.


Title: Re: Version 0.6.0 released
Post by: jetmine on April 06, 2012, 10:00:00 PM
What about this one:

Bitcoin version 0.6.0.99-beta
Default data directory /home/USERNAME/.bitcoin
Loading addresses...
dbenv.open strLogDir=/home/USERNAME/.bitcoin/database strErrorFile=/home/USERNAME/.bitcoin/db.log


************************
EXCEPTION: NSt8ios_base7failureE
CDataStream::read() : end of data
bitcoin in AppInit()

Result code is 134 and it repeats like this until I delete addr.adt

Apparently addr.dat can also be filled with "poisonous data" from remote.  Good way to take offline your competitors.


Title: Re: Version 0.6.0 released
Post by: Gavin Andresen on April 07, 2012, 12:02:44 AM
Is anybody else seeing anything like what jetmine is seeing?  Anybody else running CentOS 5.6?  Did you compile from source or are you using the binaries we compiled?

My 0.6 nodes running on Ubuntu 11 have been rock solid.

The "CBlock::ReadFromDisk() : OpenBlockFile failed" is very odd, that should never happen.  You aren't running with a -datadir on a network drive or something are you?

RE: filling addr.dat:  that is one of the denial-of-service attacks fixed by the 0.6 release.


Title: Re: Version 0.6.0 released
Post by: DeathAndTaxes on April 07, 2012, 02:49:52 AM
Nope but not using Centos.  Have 3 copies running 1 on Win7 and 2 on Debian.  They support a farm running p2pool.  Haven't had a single crash on any instance.


Title: Re: Version 0.6.0 released
Post by: jgarzik on April 07, 2012, 08:28:58 AM
run it in gdb, and use the "bt" command when a segfault occurs.  Make sure to enable thread tracing, if that is not default / built in.


Title: Re: Version 0.6.0 released
Post by: jetmine on April 07, 2012, 11:58:51 AM
Did you compile from source or are you using the binaries we compiled?

The "CBlock::ReadFromDisk() : OpenBlockFile failed" is very odd, that should never happen.  You aren't running with a -datadir on a network drive or something are you?

Compiled from source.

The datadir is on the local disk (LVM volume on the same physical disk as the OS).

run it in gdb, and use the "bt" command when a segfault occurs.  Make sure to enable thread tracing, if that is not default / built in.

Thanks, I will do that.  One doubt though.  How can I enable thread tracing, or check whether it is enabled by default?  Google tells me to use ptrace instead of gdb for thread tracing, but I suspect this is not what you want me to do.


Title: Re: Version 0.6.0 released
Post by: BlackEye on April 07, 2012, 03:33:46 PM
I've been running the released 0.6.0.6-beta Windows version for a few days without issue.  This morning I see that it had crashed.

Code:
AcceptToMemoryPoolUnchecked(): size 165
AcceptToMemoryPool(): accepted 6782e85f04
askfor tx 6aa3f5bd2139496e20ca   0
sending getdata: tx 6aa3f5bd2139496e20ca
askfor tx 6aa3f5bd2139496e20ca   1333775791000000
AcceptToMemoryPoolUnchecked(): size 166
AcceptToMemoryPool(): accepted 6aa3f5bd21
askfor tx 69c0e4718003450f04d7   0
sending getdata: tx 69c0e4718003450f04d7
askfor tx 69c0e4718003450f04d7   1333775793000000
AcceptToMemoryPoolUnchecked(): size 167
AcceptToMemoryPool(): accepted 69c0e47180
Added 1 addresses from 216.245.210.212: 45 tried, 12819 new
Added 1 addresses from 208.118.235.153: 45 tried, 12820 new


************************
EXCEPTION: St9bad_alloc       
std::bad_alloc
C:\path\to\bitcoin\bitcoin-qt.exe in ThreadDumpAddress()



Title: Re: Version 0.6.0 released
Post by: jetmine on April 08, 2012, 09:56:35 AM
RE: filling addr.dat:  that is one of the denial-of-service attacks fixed by the 0.6 release.

I am running both 0.6.0 release and the master from Apr-03 (which is shortly afterwards).  Yet I get these addr.dat errors.  There must be another bug to fix in addr.dat

Today I got two other crashes, one of them in gdb.  I will post it in a separate post, so that my point about addr.dat doesnt get drowned.


Title: Re: Version 0.6.0 released
Post by: jetmine on April 08, 2012, 10:05:27 AM
run it in gdb, and use the "bt" command when a segfault occurs.  Make sure to enable thread tracing, if that is not default / built in.

Ok, so this is a crash with v0.6.0 release at around 6am today.  I still dont know how to enable thread tracing, so I hope it was just enable by default (?).


The backbuffer of -debug -printtoconsole looks quite normal:

Code:
Added 1 addresses from 91.154.226.179: 3470 tried, 11409 new
04/08/12 04:06:56 sending: addr (31 bytes)
04/08/12 04:06:57 received: addr (31 bytes)
04/08/12 04:06:57 sending: addr (31 bytes)
04/08/12 04:06:59 sending: addr (31 bytes)
04/08/12 04:07:00 sending: addr (31 bytes)
04/08/12 04:07:00 sending: addr (31 bytes)
04/08/12 04:07:01 sending: addr (31 bytes)
04/08/12 04:07:03 received: inv (37 bytes)
  got inventory: tx 46003e4d1f5d3985d710  new
askfor tx 46003e4d1f5d3985d710   0
sending getdata: tx 46003e4d1f5d3985d710
04/08/12 04:07:03 sending: getdata (37 bytes)
04/08/12 04:07:03 received: inv (37 bytes)
  got inventory: tx 46003e4d1f5d3985d710  new
askfor tx 46003e4d1f5d3985d710   1333858023000000
04/08/12 04:07:03 received: tx (258 bytes)
Rate limit dFreeCount: 13149.2 => 13407.2
AcceptToMemoryPoolUnchecked(): size 132
AcceptToMemoryPool(): accepted 46003e4d1f
04/08/12 04:07:03 received: inv (37 bytes)
  got inventory: tx 46003e4d1f5d3985d710  have
04/08/12 04:07:03 sending: inv (37 bytes)
04/08/12 04:07:03 received: inv (37 bytes)
  got inventory: tx 46003e4d1f5d3985d710  have
04/08/12 04:07:03 sending: inv (37 bytes)
04/08/12 04:07:04 sending: inv (37 bytes)
04/08/12 04:07:04 received: inv (37 bytes)
  got inventory: tx 46003e4d1f5d3985d710  have
04/08/12 04:07:04 received: inv (37 bytes)
  got inventory: tx 46003e4d1f5d3985d710  have
04/08/12 04:07:04 sending: inv (37 bytes)
04/08/12 04:07:04 received: inv (37 bytes)
  got inventory: tx 46003e4d1f5d3985d710  have
04/08/12 04:07:04 sending: inv (37 bytes)
04/08/12 04:07:04 received: inv (37 bytes)
  got inventory: tx 46003e4d1f5d3985d710  have
04/08/12 04:07:04 received: inv (37 bytes)
  got inventory: tx 46003e4d1f5d3985d710  have
04/08/12 04:07:04 sending: inv (37 bytes)
04/08/12 04:07:04 received: inv (37 bytes)
  got inventory: tx 46003e4d1f5d3985d710  have
04/08/12 04:07:04 received: inv (37 bytes)
  got inventory: tx 46003e4d1f5d3985d710  have
04/08/12 04:07:05 sending: inv (37 bytes)
04/08/12 04:07:05 sending: inv (37 bytes)
04/08/12 04:07:05 received: inv (37 bytes)
  got inventory: tx 46003e4d1f5d3985d710  have
04/08/12 04:07:05 received: inv (37 bytes)
  got inventory: tx 46003e4d1f5d3985d710  have
04/08/12 04:07:05 received: inv (37 bytes)
  got inventory: tx 46003e4d1f5d3985d710  have
04/08/12 04:07:05 sending: inv (37 bytes)
04/08/12 04:07:06 received: inv (37 bytes)
  got inventory: tx 46003e4d1f5d3985d710  have
04/08/12 04:07:06 sending: inv (37 bytes)
04/08/12 04:07:07 received: inv (37 bytes)
  got inventory: tx 46003e4d1f5d3985d710  have
04/08/12 04:07:10 received: inv (37 bytes)
  got inventory: tx 46003e4d1f5d3985d710  have
04/08/12 04:07:12 received: addr (31 bytes)
04/08/12 04:07:12 sending: addr (31 bytes)
04/08/12 04:07:16 sending: addr (31 bytes)
04/08/12 04:07:17 received: addr (31 bytes)
04/08/12 04:07:18 sending: addr (31 bytes)
04/08/12 04:07:19 received: addr (31 bytes)
*** glibc detected *** /home/btc/bitcoind: free(): invalid next size (fast): 0x0000000000d9ffa0 ***

Now comes a dump that was made automatically.  It looks similar to what I mentioned that had happened already once to me:

Code:
======= Backtrace: =========
[0x7f346b]
[0x7f7516]
[0x40f013]
[0x40f2d8]
[0x40e0ee]
[0x40e3dc]
[0x46d2b4]
[0x470620]
[0x48e435]
[0x48e645]
[0x751edd]
[0x810329]
======= Memory map: ========
00400000-0099b000 r-xp 00000000 fd:02 181991                             /home/USERNAME/bitcoind
00b9a000-00bab000 rwxp 0059a000 fd:02 181991                             /home/USERNAME/bitcoind
00bab000-038dc000 rwxp 00bab000 00:00 0
038dc000-038dd000 rwxp 038dc000 00:00 0
038dd000-04cb9000 rwxp 038dd000 00:00 0
40000000-40001000 ---p 40000000 00:00 0
40001000-40a01000 rwxp 40001000 00:00 0
40a01000-40a02000 ---p 40a01000 00:00 0
40a02000-41402000 rwxp 40a02000 00:00 0
41402000-41403000 ---p 41402000 00:00 0
41403000-41e03000 rwxp 41403000 00:00 0
41e03000-41e04000 ---p 41e03000 00:00 0
41e04000-42804000 rwxp 41e04000 00:00 0
42804000-42805000 ---p 42804000 00:00 0
42805000-43205000 rwxp 42805000 00:00 0
43205000-43206000 ---p 43205000 00:00 0
43206000-43c06000 rwxp 43206000 00:00 0
43c06000-43c07000 ---p 43c06000 00:00 0
43c07000-44607000 rwxp 43c07000 00:00 0
44607000-44608000 ---p 44607000 00:00 0
44608000-45008000 rwxp 44608000 00:00 0
45008000-45009000 ---p 45008000 00:00 0
45009000-45a09000 rwxp 45009000 00:00 0
2aaaaaaab000-2aaaaaaae000 r-xp 2aaaaaaab000 00:00 0                      [vdso]
2aaaaaaae000-2aaaae07c000 r-xp 00000000 fd:00 4475090                    /usr/lib/locale/locale-archive
2aaaae07c000-2aaaae083000 r-xs 00000000 fd:00 8786                       /usr/lib64/gconv/gconv-modules.cache
2aaaae083000-2aaaae085000 rwxp 2aaaae083000 00:00 0
2aaaae085000-2aaaae08b000 rwxs 00000000 fd:02 37965938                   /home/USERNAME/.bitcoin/__db.001
2aaaae08b000-2aaaae281000 rwxs 00000000 fd:02 37965939                   /home/USERNAME/.bitcoin/__db.002
2aaaae281000-2aaab01c3000 rwxs 00000000 fd:02 37965940                   /home/USERNAME/.bitcoin/__db.003
2aaab01c3000-2aaab02e3000 rwxs 00000000 fd:02 37965941                   /home/USERNAME/.bitcoin/__db.004
2aaab02e3000-2aaab08e9000 rwxs 00000000 fd:02 37965942                   /home/USERNAME/.bitcoin/__db.005
2aaab08e9000-2aaab08f5000 rwxs 00000000 fd:02 37965943                   /home/USERNAME/.bitcoin/__db.006
2aaab08fb000-2aaab0905000 r-xp 00000000 09:01 130597                     /lib64/libnss_files-2.5.so
2aaab0905000-2aaab0b04000 ---p 0000a000 09:01 130597                     /lib64/libnss_files-2.5.so
2aaab0b04000-2aaab0b05000 r-xp 00009000 09:01 130597                     /lib64/libnss_files-2.5.so
2aaab0b05000-2aaab0b06000 rwxp 0000a000 09:01 130597                     /lib64/libnss_files-2.5.so
2aaab0b06000-2aaab0c53000 r-xp 00000000 09:01 130565                     /lib64/libc-2.5.so
2aaab0c53000-2aaab0e53000 ---p 0014d000 09:01 130565                     /lib64/libc-2.5.so
2aaab0e53000-2aaab0e57000 r-xp 0014d000 09:01 130565                     /lib64/libc-2.5.so
2aaab0e57000-2aaab0e58000 rwxp 00151000 09:01 130565                     /lib64/libc-2.5.so
2aaab0e58000-2aaab0e5d000 rwxp 2aaab0e58000 00:00 0
2aaab0e5d000-2aaab0e79000 r-xp 00000000 09:01 130587                     /lib64/ld-2.5.so
2aaab0e79000-2aaab1079000 ---p 0001c000 09:01 130587                     /lib64/ld-2.5.so
2aaab1079000-2aaab107a000 r-xp 0001c000 09:01 130587                     /lib64/ld-2.5.so
2aaab107a000-2aaab107b000 rwxp 0001d000 09:01 130587                     /lib64/ld-2.5.so
2aaab107b000-2aaab117b000 rwxp 2aaab107b000 00:00 0
2aaab117b000-2aaab117f000 r-xp 00000000 09:01 130596                     /lib64/libnss_dns-2.5.so
2aaab117f000-2aaab137e000 ---p 00004000 09:01 130596                     /lib64/libnss_dns-2.5.so
2aaab137e000-2aaab137f000 r-xp 00003000 09:01 130596                     /lib64/libnss_dns-2.5.so
2aaab137f000-2aaab1380000 rwxp 00004000 09:01 130596                     /lib64/libnss_dns-2.5.so
2aaab1380000-2aaab1391000 r-xp 00000000 09:01 130606                     /lib64/libresolv-2.5.so
2aaab1391000-2aaab1591000 ---p 00011000 09:01 130606                     /lib64/libresolv-2.5.so
2aaab1591000-2aaab1592000 r-xp 00011000 09:01 130606                     /lib64/libresolv-2.5.so
2aaab1592000-2aaab1593000 rwxp 00012000 09:01 130606                     /lib64/libresolv-2.5.so
2aaab1593000-2aaab1595000 rwxp 2aaab1593000 00:00 0
2aaab2117000-2aaab272f000 rwxp 2aaab2117000 00:00 0
2aaab4000000-2aaab5e3d000 rwxp 2aaab4000000 00:00 0
2aaab5e3d000-2aaab8000000 ---p 2aaab5e3d000 00:00 0
7ffffffea000-7ffffffff000 rwxp 7ffffffe9000 00:00 0                      [stack]
ffffffffff600000-ffffffffffe00000 ---p 00000000 00:00 0                  [vsyscall]

Program received signal SIGABRT, Aborted.
[Switching to Thread 0x43c05940 (LWP 1393)]
0x000000000082ce95 in raise ()

When I use the bt command, I get this:

Code:
#0  0x000000000082ce95 in raise ()
#1  0x00000000007cfb10 in abort ()
#2  0x00000000007eaaeb in __libc_message ()
#3  0x00000000007f346b in _int_free ()
#4  0x00000000007f7516 in free ()
#5  0x000000000040f013 in erase (this=0xbab918, __first=<value optimized out>, __last=...)
    at /usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../include/c++/4.1.2/ext/new_allocator.h:94
#6  std::_Rb_tree<CNetAddr, std::pair<CNetAddr const, int>, std::_Select1st<std::pair<CNetAddr const, int> >, std::less<CNetAddr>, std::allocator<std::pair<CNetAddr const, int> > >::erase (this=0xbab918, __first=<value optimized out>, __last=...)
    at /usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../include/c++/4.1.2/bits/stl_tree.h:1281
#7  0x000000000040f2d8 in std::_Rb_tree<CNetAddr, std::pair<CNetAddr const, int>, std::_Select1st<std::pair<CNetAddr const, int> >, std::less<CNetAddr>, std::allocator<std::pair<CNetAddr const, int> > >::erase (this=0xbab918, __x=<value optimized out>)
    at /usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../include/c++/4.1.2/bits/stl_tree.h:1215
#8  0x000000000040e0ee in erase (this=0xbab8a0, nUBucket=<value optimized out>)
    at /usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../include/c++/4.1.2/bits/stl_map.h:461
#9  CAddrMan::ShrinkNew (this=0xbab8a0, nUBucket=<value optimized out>) at addrman.cpp:181
#10 0x000000000040e3dc in CAddrMan::Add_ (this=0xbab8a0, addr=<value optimized out>, source=<value optimized out>, nTimePenalty=<value optimized out>)
    at addrman.cpp:346
#11 0x000000000046d2b4 in ProcessMessage (pfrom=0x2aaab4bb0450, strCommand=..., vRecv=...) at addrman.h:433
#12 0x0000000000470620 in ProcessMessages (pfrom=0x2aaab4bb0450) at main.cpp:2767
#13 0x000000000048e435 in ThreadMessageHandler2 (parg=<value optimized out>) at net.cpp:1516
#14 0x000000000048e645 in ThreadMessageHandler (parg=0x0) at net.cpp:1481
#15 0x0000000000751edd in start_thread ()
#16 0x0000000000810329 in clone ()

I have to leave for a few hours, but will keep the debugger open.  If there are any commands that can extract more useful information from it, please post here and I will run them on it tonight.

Edit: Added code tags (good idea).  BTW, the box is still up, for if anyone wants to see the output of another gdb command, memory dump, etc.


Title: Re: Version 0.6.0 released
Post by: Red Emerald on April 08, 2012, 05:50:40 PM
jetmine. You should really put those giant posts inside code blocks

Code:
Like this


Title: Re: Version 0.6.0 released
Post by: Gavin Andresen on April 08, 2012, 07:24:59 PM
When I use the bt command, I get this:
....
Thanks, that should be very helpful.  I opened issue #1065 https://github.com/bitcoin/bitcoin/issues/1065