Pages:
Author

Topic: The bug could be found!!! run them both in same test envrionment - page 2. (Read 4013 times)

legendary
Activity: 826
Merit: 1001
rippleFanatic
This is not accurate.

There was, indeed, testing on the testnet with a full (1 MB) block. This was accepted by both the 0.7 and 0.8 versions. There is no concern here.

Slush's block should have produced the same valid block. However, the block was structured carefully as to expose a problem in 0.7 that was never discovered. Not only was this an extremely difficult problem to catch, but its finding would in fact not have been accelerated with a mixed testnet. The introduction of 0.8 into the equation would actually delay finding the bug, as it would mean less time spent testing edge cases on 0.7.

Source?

@dree12: Do you mean it was done on purpose? Source?

It wasn't done on purpose. The bad block was produced by the slush pool (mining.bitcoin.cz) after he upgraded to 0.8 and set his max block size to 1MB. The problem was that the BDB (Berkeley database) settings (max_locks) used in the pre-0.8 clients were not sufficient to handle a large and complex (many txins and txouts) block. berkeleydb was replaced with leveldb in 0.8.


#bitcoin-dev IRC channel
Quote
sipa: so what was special about the block in question?
   jgarzik: 998,081 byte, 1700+ transaction block

<@gmaxwell> samurai1200: there is a target blocksize. It defaults to 250k. With txn slow last week due to SD being 90+% of all blocks, Gavin and Mike went around and nagged pools to increase their target sizes.. so its not surprising that someone was running with a big setting. The target size is just a commandline option.

<@gmaxwell> Arguably any setting over 500 is exposing undertested parts of bitcoin, because prior to 0.7.x (?) the target size was hard coded at 500.

basically, the slush pool generated a larger block (within protocol limits) and the old 0.7 bitcoind stuff tripped over its bdb usage and dropped it, causing the fork.

<@gmaxwell> The soft limit change was slush manually setting his target blocksize to 1MB.
Which was encouraged by Gavin.
Indeed. But although people did say "uh. yuck" no one suggested this kind of risk as far as I know.


<@gmaxwell> One mistake we made here in hindsight was exposing the target going over 500kb without doing more testing with >500kb blocks. Sad

<@gmaxwell> BlueMatt: Can you get a blocktester test in that tries to get a extreme maximum number of distinct inputs+outputs? Like 4000 in and 5000 out?

gmaxwell: Testnet doesn't have much in the way of large blocks, the only ones >500KB are the ones I made, and they're just single transactions. Sad

petertodd: There are some with >2000 TXN and such, but they don't have large numbers of txins because I was spending 50 tnbtc blocks.

would fuzz testing have prevented this bug?
TradeFortress: no. We do fuzz test. Perhaps a very specialized kind of fuzztester (that produced valid blocks with random txn, e.g. simulating a whole network) would.


bitcoin-development mailing list
Quote
Hello everyone,

Í've just seen many reports of 0.7 nodes getting stuck around block 225430,
due to running out of lock entries in the BDB database. 0.8 nodes do not
seem to have a problem.

In any case, if you do not have this block:

  2013-03-12 00:00:10 SetBestChain: new
best=000000000000015aab28064a4c521d6a5325ff6e251e8ca2edfdfe6cb5bf832c
 height=225439  work=853779625563004076992  tx=14269257  date=2013-03-11
23:49:08

you're likely stuck. Check debug.log and db.log (look for 'Lock table is
out of available lock entries').

If this is a widespread problem, it is an emergency. We risk having
(several) forked chains with smaller blocks, which are accepted by 0.7
nodes. Can people contact pool operators to see which fork they are on?
Blockexplorer and blockchain.info seem to be stuck as well.

Immediate solution is upgrading to 0.8, or manually setting the number of
lock objects higher in your database. I'll follow up with more concrete
instructions.

If you're unsure, please stop processing transactions.

--
Pieter
full member
Activity: 126
Merit: 100
I have worked in software, and let me tell you, if you lose the company money cause a bug like this which is clearly an edge test, you do get docked some pay.
I work in software, but I'd never work at *that* place.
legendary
Activity: 1176
Merit: 1015
also gweedo you seem to be a angry person. I have faith in the developers and maybe its misplaced and naive. But I haven't the skill to help, it sounds like you do have the skill to help with the satoshi client codebase, why don't you help out?
hero member
Activity: 896
Merit: 1000
Gavin is a god among men, like everyone else here thinks.

You are mistaken. Everyone else probably includes me last time I checked the meaning of words. I don't think Gavin is a god among men. I don't even have an opinion on his qualities as a software architect/developer as I didn't go through his commits and comments on the code.

What I do think though (and I write it there for the record) is that you are an inept jerk.

Have a nice day/night.
legendary
Activity: 1176
Merit: 1015
In reading about economics many people contribute to a system of wealth, and Bitcoin is a system of wealth.

Without the code Bitcoin is zero, its just a paper with some diagrams and mathematics. Yes you have built your own wealth, but its on top of the code that enables that wealth.

legendary
Activity: 1498
Merit: 1000
Every time we find a bug lets not pay Gavin!!!

This is the stupidest thing ever, its amazing how many angry idiots are into Bitcoin and makes me feel uneasy. This community is so aggressive sometimes.

No, Gavin is working on Bitcoin and this gives Bitcoin value! All the money everyone makes from Bitcoin is because of the developers first and miners second. We need the client for the network and set out the rules for the system as a whole.

Satoshi and Gavin and all the other developers have given you Bitcoin and all the wealth that has brought you. Stop being so selfish. Gavin is being paid to work all the time on Bitcoin and thus work on making our investment in this network that more valuable.

The lynch mob around every corner is boring and childish. If you want to help then test and code and help out instead of being a armchair warrior.

/rant

WOW you need to go read about economics, cause I am pretty sure Gavin working on bitcoin isn't what gives it value. Otherwise when that bug hit we be at zero. Satoshi and Gavin didn't bring me wealth. Satoshi created software that I am using to my advantage and I created my own wealth. Also if it wasn't for people like me pushing it on to people, contacting companies everyday to spread the word, it be at zero, so people like me give it value cause I use it. Gavin is being paid cause whined enough to get paid. I am starting to think the only reason the foundation was created was so he can get paid. Also why should I do the work that someone gets paid to do? If you think it is childish then that is clearly your opinion, I think hobbyist don't have a say anymore.
hero member
Activity: 504
Merit: 500
WTF???
All software projects have bugs.  Salaries are for work not perfection. 

Do you mind if I PM you my bosses phone number and you can tell him that for me? thx
legendary
Activity: 2632
Merit: 1023
This is not accurate.

There was, indeed, testing on the testnet with a full (1 MB) block. This was accepted by both the 0.7 and 0.8 versions. There is no concern here.

Slush's block should have produced the same valid block. However, the block was structured carefully as to expose a problem in 0.7 that was never discovered. Not only was this an extremely difficult problem to catch, but its finding would in fact not have been accelerated with a mixed testnet. The introduction of 0.8 into the equation would actually delay finding the bug, as it would mean less time spent testing edge cases on 0.7.

Source?

@dree12: Do you mean it was done on purpose? Source?

From IRC, all said by gmaxwell:
Quote
I'd rather it go to the 250k level while we don't know. I'm not certian that it couldn't be triggered by a somewhat smaller block.
Seems to indicate that smaller blocks could trigger it.

Quote
or 0.7 had another dumb implicit limit + which we didn't discover because our tests were inadequate to discover + and miners were encouraged to crank their block targets up when other than a few testnet blocks only a few max size blocks had ever been created.
Testnet blocks were at max size, so that type of testing could not have caught the issue.

Quote
There are some with >2000 TXN and such, but they don't have large numbers of txins because I was spending 50 tnbtc blocks.
This seems to indicate that not even a large number of transactions specifically causes the issue, but rather a large number of txins.

Quote
we don't have it fully measured and determined yet, but its most likely the number of transaction outputs being spent plus the number of outputs being created.
This supports the idea that only specific blocks could cause this.

Quote
we have tests that make maximum sized blocks... but not one that makes large numbers of both inputs and outputs.

In conclusion, it seems that it was not in fact a "big block" that caused this. A small block could in theory cause it if the tx-ins or tx-outs were small, which is entirely possible thanks to compressed public keys.

I did not mean my statement "structured carefully" to mean that someone has intentionally done so, but rather that the block's structure was rare and unique.

So how many other rare a unique blocks can be constructed that can ____ the ____ out of the system?
donator
Activity: 1218
Merit: 1079
Gerald Davis
This is the stupidest thing ever, its amazing how many angry idiots are into Bitcoin and makes me feel uneasy. This community is so aggressive sometimes.

Gweedo has been butt hurt for a long time that Gavin can collect a salary for his skills.  There aren't a lot of people which share his opinion.  Don't let one loud butt hurt troll make you think it is a representative sample of the community.

I mean it is just an asinine reaction.  All software projects have bugs.  Salaries are for work not perfection.  The idea that any entity anywhere would retroactively seize one's pay because of a bug is just ... well stupid.
legendary
Activity: 1176
Merit: 1015
Every time we find a bug lets not pay Gavin!!!

This is the stupidest thing ever, its amazing how many angry idiots are into Bitcoin and makes me feel uneasy. This community is so aggressive sometimes.

No, Gavin is working on Bitcoin and this gives Bitcoin value! All the money everyone makes from Bitcoin is because of the developers first and miners second. We need the client for the network and set out the rules for the system as a whole.

Satoshi and Gavin and all the other developers have given you Bitcoin and all the wealth that has brought you. Stop being so selfish. Gavin is being paid to work all the time on Bitcoin and thus work on making our investment in this network that more valuable.

The lynch mob around every corner is boring and childish. If you want to help then test and code and help out instead of being a armchair warrior.

/rant
full member
Activity: 126
Merit: 100
Aha, seems we have flushed out a nuance in the problem!!!
Hey!  None of that "nuance" crap here, this is the Internet!

In other news, Gavin is compensated well enough to work on the code, but not nearly well enough to assume all risk of an extreme-edge-case bug happening to show itself at an inopportune time.  Hence the language about "no warranty, express or implied, yada yada".
legendary
Activity: 1246
Merit: 1077
This is not accurate.

There was, indeed, testing on the testnet with a full (1 MB) block. This was accepted by both the 0.7 and 0.8 versions. There is no concern here.

Slush's block should have produced the same valid block. However, the block was structured carefully as to expose a problem in 0.7 that was never discovered. Not only was this an extremely difficult problem to catch, but its finding would in fact not have been accelerated with a mixed testnet. The introduction of 0.8 into the equation would actually delay finding the bug, as it would mean less time spent testing edge cases on 0.7.

Source?

@dree12: Do you mean it was done on purpose? Source?

From IRC, all said by gmaxwell:
Quote
I'd rather it go to the 250k level while we don't know. I'm not certian that it couldn't be triggered by a somewhat smaller block.
Seems to indicate that smaller blocks could trigger it.

Quote
or 0.7 had another dumb implicit limit + which we didn't discover because our tests were inadequate to discover + and miners were encouraged to crank their block targets up when other than a few testnet blocks only a few max size blocks had ever been created.
Testnet blocks were at max size, so that type of testing could not have caught the issue.

Quote
There are some with >2000 TXN and such, but they don't have large numbers of txins because I was spending 50 tnbtc blocks.
This seems to indicate that not even a large number of transactions specifically causes the issue, but rather a large number of txins.

Quote
we don't have it fully measured and determined yet, but its most likely the number of transaction outputs being spent plus the number of outputs being created.
This supports the idea that only specific blocks could cause this.

Quote
we have tests that make maximum sized blocks... but not one that makes large numbers of both inputs and outputs.

In conclusion, it seems that it was not in fact a "big block" that caused this. A small block could in theory cause it if the tx-ins or tx-outs were small, which is entirely possible thanks to compressed public keys.

I did not mean my statement "structured carefully" to mean that someone has intentionally done so, but rather that the block's structure was rare and unique.
hero member
Activity: 504
Merit: 500
WTF???
So who do you blame? I mean the blame lies on Gavin, I think. He is project lead -snip-

On an open source project. A p2p system. We blame one person?

I blame people for not upgrading. Especially mining pools.
legendary
Activity: 1708
Merit: 1020
This is not accurate.

There was, indeed, testing on the testnet with a full (1 MB) block. This was accepted by both the 0.7 and 0.8 versions. There is no concern here.

Slush's block should have produced the same valid block. However, the block was structured carefully as to expose a problem in 0.7 that was never discovered. Not only was this an extremely difficult problem to catch, but its finding would in fact not have been accelerated with a mixed testnet. The introduction of 0.8 into the equation would actually delay finding the bug, as it would mean less time spent testing edge cases on 0.7.

Source?

@dree12: Do you mean it was done on purpose? Source?
full member
Activity: 124
Merit: 101
If you are dissatisfied with the performance of the one paid Bitcoin programmer, then you are entitled not to pay for more of his work in the future. You cannot change the fact that you have already paid him for past work.

I expect that the vast majority of those who do donate are satisfied with the work being done and keen to keep it going.
donator
Activity: 668
Merit: 500
You of course tested both v0.7 and 0.8 on testnet found the flaw and reported it to the development team.  When they ignored you, you went viral sharing the incompatibility with everyone you knew.  Thanks goodness we had you ... er wait you didn't do any testing.  Most of the developers are unpaid volunteers.  Given your extensive testing experience why aren't YOU doing something?

Gavin is paid, I think this month his payment should be revoked for this bug getting thru.

Or not. 

So who do you blame? I mean the blame lies on Gavin, I think. He is project lead, he is getting paid which means no more BS that he is doing this free, he should take the blame. If one payment is breaking his bank I be surprised, but I think that this is mess up and someone needs to be held responsible. But of course no one will take my side, and you all call me a troll, but bugs like this need responsibility behind them.
And you contributed how much to his pay?  And that gives you how much decision-making power?  Don't be so black-and-white.
legendary
Activity: 2632
Merit: 1023
I can take the hit, it is when a bug that could have been easily found is making the entire network take a hit.

You're just speculating that it was an easy-to-find bug. Bugs happen. They've happened before and caused hard-forks. This is experimental software, and that has been reiterated by the developers over and over, especially lately now that the price has skyrocketed again.

If you don't like it, don't send money to the Bitcoin Foundation. Send it to your own 3rd party source auditing group that can find these "easily found" bugs. Otherwise, seriously, stop embarrassing yourself over something which will correct itself.

It's your fault you invested in experimental software and can't handle occasional issues.

No some of the devs I talk to said it should have been check, we just had this conversation about the block limits last week. No one saw this coming? Give me a break. I will never send money to the foundation, I honestly think they are so miss-managed and just one hand washing the other, but that rant is for another day. As I predict you all call me a troll for things you have no understanding about.



But you all think this is acceptable, then that is your opinion mine is that is very unacceptable and responsibility lies with Gavin cause he wanted to get paid and he messed up. He lead the community to a failure.


Nothing is as valuable as a counter point, and the fact others may have resorted to calling you a troll take as mark that likely you have thrown up questions found hard to answer....and gone down the pyramid of reason a bit

in oppositional ideas we may find closest/best truth, one sided agreement covers faults

So I for one do appreciate your views, and that they are forcefully put.
sr. member
Activity: 476
Merit: 250
I can take the hit

Then quit looking for retribution.
hero member
Activity: 756
Merit: 501
There is more to Bitcoin than bitcoins.
What about the bread out of my mouth? Time is money.

At most 4 hours mining wasted by the second bug impacting the blockchain in 4+ years is a problem for you? I fear there isn't many places where you can earn your bread without such risks...

Wait a second you just said that I am medieval for asking the foundation to not pay 1 payment of Gavin's and when I said this has lost me money, then it is a risk. Well aren't we just playing both sides of the fence. So Gavin didn't test bitcoin it is a risk... Please your argument is invalid bitcoin is a risk, but the software shouldn't be the risky part, especially when it comes from the lead developer, and has been "tested".
Bitcoin - and coders' work behind it - did not lose you money. It made you money, and that's why you are still involved. Also, Bitcoin is a p2p, decentralized technology. Build it and test it yourself, or as a part of a team, or be a responsible man and choose whom to trust to do the job for you. Pay them, or don't.  Audit their work, or don't. It's all up to you, so quit whining.
legendary
Activity: 2632
Merit: 1023
So who do you blame? I mean the blame lies on Gavin, I think. He is project lead, he is getting paid which means no more BS that he is doing this free, he should take the blame. If one payment is breaking his bank I be surprised, but I think that this is mess up and someone needs to be held responsible. But of course no one will take my side, and you all call me a troll, but bugs like this need responsibility behind them.

He why don't you go medieval and fetch the pitchforks instead. Removing bread from the mouth of a man (and his family if he has one to support) isn't fun enough, you should definitely eviscerate him...

What about the bread out of my mouth? Time is money.

What do you do for a living gweedo? If you make a mistake, do they withhold your paycheck?

To be honest bitcoin is my job, so maybe you hobbyist aren't affected but it hits hard for me to be down for a couple hours.


You of course tested both v0.7 and 0.8 on testnet found the flaw and reported it to the development team.  When they ignored you, you went viral sharing the incompatibility with everyone you knew.  Thanks goodness we had you ... er wait you didn't do any testing.  Most of the developers are unpaid volunteers.  Given your extensive testing experience why aren't YOU doing something?

Gavin is paid, I think this month his payment should be revoked for this bug getting thru.

Or not. 

So who do you blame? I mean the blame lies on Gavin, I think. He is project lead, he is getting paid which means no more BS that he is doing this free, he should take the blame. If one payment is breaking his bank I be surprised, but I think that this is mess up and someone needs to be held responsible. But of course no one will take my side, and you all call me a troll, but bugs like this need responsibility behind them.

Hmm....I think the idea of a distributed anything is that it garners enough people who through self interest (ie bieng invested in the crypto) stand the best possible chance of fixing it

having one person to blame....may demonstrate a weakness in a distributed system

Gavin's pay and terms are just part of a debugging routine instituted by the larger [free] market,

the blame if it is to be leveled is at us all to....

I posit that the allocation of blame to a individual, is myopic/archaic, but convenient idea to the lenses of our mind to focus on....broaden you mind-scape and appreciate the interwoven nature of systems and outcomes.

Eg  A Car is an expression of pheno type of the genome of human DNA, but to look at human DNA you would not see this readily.

No Gavin whined about getting paid, now he is getting paid. The blame needs to fall on his shoulders cause this is his job, otherwise I would like to know what he is getting paid for? This doesn't demonstrate any weakness in that part, I could go and look thru the github blame and lay it on that person shoulders, but what good would that do. Gavin is lead developer and someone needs to step up and take responsibility for why people are losing money. Also I brought up when the foundation started paying him why they started paying him, everyone again sat and called me a troll cause I said paying Gavin cause he is and I quote "indispensable", that is also another reason why I am blaming him. Sorry to break to you, but this distributed protocol is controlled by one guy, and a foundation of businesses.

I Also add you are not forced to use this protocol, you may go to others or start you own...

see my points supra on LTC/TRC Othercoin

The cryptocoin paradigm is here to stay...but which instantiation(s) [of it] will be successful for which time frame is up in the air.
Pages:
Jump to: