Bitcoin Forum

Bitcoin => Development & Technical Discussion => Topic started by: wtogami on November 18, 2013, 03:26:40 AM



Title: [FIXED] MacOS X LevelDB Corruption Bounty (10.00 BTC + 200.2 LTC)
Post by: wtogami on November 18, 2013, 03:26:40 AM
FIXED.

Can you fix the MacOS X Bitcoin LevelDB data corruption issue?

https://bitcointalk.org/index.php?topic=337294.msg3718821#msg3718821
TEST THESE BUILDS NOW!


Bounty Funding: 10.00 BTC + 200.2 LTC
Gavin Andresen has pledged 5 BTC.  BitcoinTalk pledged 4 BTC.  Public donations have contributed 1 BTC.  Litecoin Dev Team pledges 200 LTC.  The public is encouraged to contribute to these addresses to increase the incentive to fix this sooner.

BTC: 1FZ1mSJXj8aJqdpwUcpigLBqJLwtTu46fA (https://blockchain.info/address/1FZ1mSJXj8aJqdpwUcpigLBqJLwtTu46fA)
LTC: LS1Rb3bb29TA9PEVGR64bV2cLxC7RdQi8A (http://litecoinscout.com/address/LS1Rb3bb29TA9PEVGR64bV2cLxC7RdQi8A)

Conditions
The bounty may be awarded under the following conditions.

  • Document how anyone can consistently reproduce the data corruption.
  • Explain why it happens.
  • Write a code fix that is acceptable to the Bitcoin core developers and merged into Bitcoin.

The Bitcoin developers have ultimate deciding power of how to apportion the bounty award(s) based upon the merit of the contributions  This may encourage collaboration that may lead to a fix rather than hoarding of information.  Non-developers may be able to figure out #1.

These terms may be changed at any time for any or no reason.

Background
https://github.com/bitcoin/bitcoin/issues/2770
Since Bitcoin 0.8.x and the introduction of LevelDB, MacOS X users have been experiencing periodic LevelDB data corruption.  For some Mac users it has never happened, while for others it happens frequently.

https://github.com/bitcoin/bitcoin/pull/2916
https://github.com/bitcoin/bitcoin/pull/3000
https://github.com/bitcoin/bitcoin/pull/2933
Bitcoin master now contains two Mac-specific fsync patches and an upgrade to LevelDB 1.13.  Bitcoin 0.8.5 OMG3 (https://bitcointalk.org/index.php?topic=320695.0) and Litecoin 0.8.5.2-rc5 contains these same patches.  It is possible that a different Mac corruption issue was solved by these earlier patches, but users of these branches have reported continued corruption.  Curiously, corruption seems to happen after a clean shutdown and restart of the client.  All corruption reports seem to be from MacOS X 10.8.x and 10.9 users.  It is unclear if earlier versions of MacOS X are affected.  It is unknown if particular hardware or software configurations are involved.

https://github.com/bitcoin/bitcoin/issues/2785
Corruption with the same error message apparently is capable of fixing itself.  Not clear if this is true of the recent master branch.

GPG Signed message
Code:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

https://bitcointalk.org/index.php?topic=337294
These addresses contain public donations to be added to the Bitcoin MacOS X corruption fix bounty.
BTC: 1FZ1mSJXj8aJqdpwUcpigLBqJLwtTu46fA
LTC: LS1Rb3bb29TA9PEVGR64bV2cLxC7RdQi8A
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.15 (GNU/Linux)

iQQcBAEBCAAGBQJSiaeFAAoJELEXnrc0fcENmRsf/3c/w53R2EHX62L+QimS96Rj
J+GPSpVQQRFOFr19OM+efjC1ydoZ3N/suYI1FynQ9nX4RzmCW5ZwbxMtl6wnEw7h
oIqv+ufnD0XEpkFr+g32JdoRNN2KprrMH4Cr2oLI0w+Oqv32jLveoRIqSzIArCId
U9ZVPcvFvKa9hWJrnM9KJQW6NgsGsKW3WBk5n/Wcbp4PYUn9ZC0taRMq2NbakSwk
RaNf6yFSC1wWb2dD6eE+1UiXBCidyK0cVUMkjCRoA0eRqZqy2cJwELmOrJ1RHlgP
6K9Y6MuelTPxhXNa/NNq/sVAbhOmtAeyJ5ApuTuvjd1gpKpS14bFEHY7yFf/dv7A
t0Z43xqQ8FVJ9HnYKY0T6d5W30L31bz5EZvhTQsa+IzfrQeBXGu1ecXM6dSlkcpf
KkJQdyLZ2W72roq+RjF5eOsLmlW9+Xyk7pMSn403oMlMY5EpJByAO8znomq0XEkq
UWPqfzjF2ptXGt6JqPdXx2La3w/jd+GNpHFsA65xZlcgYls/LXyq6483jDz3qPUS
L6WZJZh5BrE4yfmIcTh8LUdiVj7fzlZs3r7CKmD8pv3mtsLpqAZGNiFdK8uMuerp
h+2rPreMxGN7AqN28xdo5WOhqCAersoJQuwz3yQcGtXqnqcVTCBUCoaDpFxExlIK
BHKuGW6awyd1akgKz46aWjlDnWuJ94ZY90tkKPXtSe2XhMZHtq5gYzxpv6qEEFo4
ikDpxyaoDMK7GOdUW0FGY9ZSELWjuPSIwjip/5KN5Z51/TaUeiOQmhxQJLIHKNY3
SMj+wNJLb+FTdlOPBEqYAu3WPPG9ye73ADudt1N36ELLqFcvjsB1RzqntpogEHXR
T+I2VOTtbMvCPqbKdy5FijOERfjRIfrfXirovboLb/iP8ouhbuH7JHcj2niFshaL
i6MBAB2eTTh9LlNx3B1w/ESQuYJlR4NsHDiGmWQGHAEHw6LaCVT7MDh2fmag+1Jx
vDF2LdcCnRCgP5mSv+ZeJv7MvpeJ84UL3SlkB6iKZyD1+EJMyTB7f7xLbyWZSp+v
To7lqJBxk1PbqcRl9rYX7jdW4b4ztsr8FNxOvw5jxcPGZ0Mc9eb9ln6Nl+hx4PBv
jg4j4emg9uAPqRZn8KgJ1OL+wYE5Lw74mu3CP63pBmRVSl894janSUhKc4Z3ToF2
9kf81jVWudmRrVzQhiYA8vlrbC1Bc3nhlrX0KlF8VdREvptfV9PMbOAZdW96u4Mt
1lbqv2ZNWqxOon7Q3HKOcOo3uNvhv0sYItXSygZx5Z/chmBBRQrrJDCdHUw+WhR8
UGNsSL+Rz2vFeAc/W6jrlw3dId/wK+H36vDW8X4bSY6rVi+HhxZNoAPihUNNFy4=
=o/b5
-----END PGP SIGNATURE-----


Title: Re: MacOS X LevelDB Corruption Bounty (5 BTC + 200.2 LTC)
Post by: Diapolo on November 18, 2013, 11:17:47 AM
I created a pull (not specific to this problem), which uses std::fstream instead of fopen() and such for reading/writing block/undo files.
Perhaps this can help in a way that it works a little different than current code, dunno. I also added somewhat clearer exception error messages.

https://github.com/bitcoin/bitcoin/pull/3277

It's not intended for getting merged into the master branch yet, perhaps it never will, but you can give it a try.

Dia


Title: Re: MacOS X LevelDB Corruption Bounty (5 BTC + 200.2 LTC)
Post by: Remember remember the 5th of November on November 18, 2013, 12:07:10 PM
Is it not possible that LevelDB or something else related to the data files is failing silently?


Title: Re: MacOS X LevelDB Corruption Bounty (5 BTC + 200.2 LTC)
Post by: Diapolo on November 18, 2013, 12:10:36 PM
Is it not possible that LevelDB or something else related to the data files is failing silently?

I would say that's at least not impossible...

Dia


Title: Re: MacOS X LevelDB Corruption Bounty (5 BTC + 200.2 LTC)
Post by: Valerian77 on November 18, 2013, 01:00:12 PM
  • Document how anyone can consistently reproduce the data corruption.
  • Explain why it happens.
  • Write a code fix that is acceptable to the Bitcoin core developers and merged into Bitcoin git master.

Please refer to my posting: https://bitcointalk.org/index.php?topic=337575.msg3622968#msg3622968 (https://bitcointalk.org/index.php?topic=337575.msg3622968#msg3622968)

Since I use Windows not IOS the situation may differ slightly. But at least it may be a hint.

If you want to donate me:  1METhkrvz2r9d3zkFPQrHnpFC1BjCs64Zf


Title: Re: MacOS X LevelDB Corruption Bounty (5 BTC + 200.2 LTC)
Post by: donal on November 18, 2013, 10:29:11 PM
Litecoin wallet was crashing for me, saying DB corruption, if I open terminal and enter

cd /Applications/Litecoin-Qt.app/Contents/MacOS

./Litecoin-Qt -reindex

It works..

These messages are then displayed in terminal,

2013-11-18 19:57:36.821 Litecoin-Qt[991:507] CoreText performance note: Client called CTFontCreateWithName() using name "Arial" and got font with PostScript name "ArialMT". For best performance, only use PostScript names when calling this API.

2013-11-18 19:57:36.821 Litecoin-Qt[991:507] CoreText performance note: Set a breakpoint on CTFontLogSuboptimalRequest to debug.

2013-11-18 19:57:37.657 Litecoin-Qt[991:507] CoreText performance note: Client called CTFontCreateWithName() using name "Courier New" and got font with PostScript name "CourierNewPSMT". For best performance, only use PostScript names when calling this API.


Title: Re: MacOS X LevelDB Corruption Bounty (5 BTC + 200.2 LTC)
Post by: behindtext on November 19, 2013, 02:26:39 AM
it is funny to see this considering that marco just penned a blog entry

https://blog.conformal.com/deslugging-in-go-with-pprof-btcd/ (https://blog.conformal.com/deslugging-in-go-with-pprof-btcd/)

about how bitcoind uses leveldb vs what we do in btcd. to quote

"Dealing with corrupt journals/flat-file/database is not only complex it has the potential of a very negative user experience. If corruption of any sort is detected then the database components must be validated, this is inherent to the its size a very long operation."

apparently when using flat file storage for blocks and referencing by offset versus storing the entire block in leveldb, there are lots of unsavory ways for leveldb to fail.

leveldb is a harsh mistress.


Title: Re: MacOS X LevelDB Corruption Bounty (5 BTC + 200.2 LTC)
Post by: Bismarck on November 19, 2013, 02:27:23 AM
I'd like to point everyone's attention to this thread on the LiteCoin forums --

https://forum.litecoin.net/index.php/topic,7147.msg55666.html#msg55666

I have an LTC wallet that doesn't play well with others.  I have no problems being someone's guinea pig as I'd really like to get it working again on my laptop.  

For the new post; I DO have TimeMachine enabled.  

Just for consistency;

Here is the error that Litecoin-Qt keeps throwing;

Code:
Last login: Mon Nov 18 18:27:48 on ttys000
Bismarcks-MacBook-Pro-2:~ Bismarcks$ /Applications/Litecoin-Qt.app/Contents/MacOS/Litecoin-Qt ; exit;
2013-11-18 18:32:21.744 Litecoin-Qt[12289:507] CoreText performance note: Client called CTFontCreateWithName() using name "Arial" and got font with PostScript name "ArialMT". For best performance, only use PostScript names when calling this API.
2013-11-18 18:32:21.745 Litecoin-Qt[12289:507] CoreText performance note: Set a breakpoint on CTFontLogSuboptimalRequest to debug.
2013-11-18 18:32:21.748 Litecoin-Qt[12289:507] *** WARNING: Method userSpaceScaleFactor in class NSView is deprecated on 10.7 and later. It should not be used in new applications. Use convertRectToBacking: instead.
2013-11-18 18:32:27.518 Litecoin-Qt[12289:507] CoreText performance note: Client called CTFontCreateWithName() using name "Courier New" and got font with PostScript name "CourierNewPSMT". For best performance, only use PostScript names when calling this API.
Assertion failed: (pindexFirst), function GetNextWorkRequired, file ../litecoin/src/main.cpp, line 1149.
Abort trap: 6
logout

[Process completed]



Title: Re: MacOS X LevelDB Corruption Bounty (5.51 BTC + 200.2 LTC)
Post by: donal on November 19, 2013, 05:16:36 PM
wtogami,

I can confirm that it has nothing to do with time machine, I do not have time machine.


Title: Re: MacOS X LevelDB Corruption Bounty (5.51 BTC + 200.2 LTC)
Post by: wtogami on November 19, 2013, 09:40:53 PM
wtogami,

I can confirm that it has nothing to do with time machine, I do not have time machine.

What version exactly are you running?  There have been multiple fixes.  Please verify specifically with Bitcoin 0.8.5 OMG3 (https://bitcointalk.org/index.php?topic=320695.0).


Title: Re: MacOS X LevelDB Corruption Bounty (5.51 BTC + 200.2 LTC)
Post by: whault on November 20, 2013, 12:40:38 AM
Some observations. My setup uses two drives, one with the OS and a lower speed one for general storage. I don't use time machine like the poster above, and there's nothing else non-standard about my software.

  • only the blockchain stored on the internal SSD boot disk gets corrupted, a blockchain stored on the second SATA HDD is never corrupted
  • corruption seems to happen most often after a system sleep (deep or not), though not always
  • corruption can happen during the initial sync if it is stopped and then restarted
  • corruption can happen with FileVault 2 turned on and off
  • has happened less often since updating to 10.9 only twice so far instead of every few days, though it could just be chance

That's it really. No other behaviour is specific to corruptions for me. Sometimes they happen twice in a day, sometimes not for weeks.


Title: Re: MacOS X LevelDB Corruption Bounty (5.51 BTC + 200.2 LTC)
Post by: moderate on November 20, 2013, 02:42:39 AM
If anything, this should serve as a warning for picking up cool new shiny things.

I take there was some discussion about why picking LevelDB was the right choice, surely it wasn't considered only because it performs faster than BDB and is developed at Google ? After that surely there were some good testing in various systems, since this is a very new low level storage, yes ?

I'm just mocking here, obviously. Good luck finding and fixing the issues.


Title: Re: MacOS X LevelDB Corruption Bounty (5.51 BTC + 200.2 LTC)
Post by: wtogami on November 20, 2013, 03:15:40 AM
If anything, this should serve as a warning for picking up cool new shiny things.

I take there was some discussion about why picking LevelDB was the right choice, surely it wasn't considered only because it performs faster than BDB and is developed at Google ? After that surely there were some good testing in various systems, since this is a very new low level storage, yes ?

I'm just mocking here, obviously. Good luck finding and fixing the issues.

It's working quite well on Linux and Windows.  Also the old BDB corrupted on all platforms, although less often than Mac users experience this current issue.


Title: Re: MacOS X LevelDB Corruption Bounty (5.51 BTC + 200.2 LTC)
Post by: behindtext on November 20, 2013, 11:04:03 AM
If anything, this should serve as a warning for picking up cool new shiny things.

I take there was some discussion about why picking LevelDB was the right choice, surely it wasn't considered only because it performs faster than BDB and is developed at Google ? After that surely there were some good testing in various systems, since this is a very new low level storage, yes ?

the motivation for using leveldb vs other dbs is due to the fact that with large numbers of records, e.g. over roughly 10 mln records, most "normal" dbs start to get really sluggish on inserts and selects. you can see the behavior for yourself by stuffing a ton of records in sqlite, mysql, psql, etc.

leveldb is not so much a db as a key-value store, which means that insert speed can be maintained even when there are a massive number of records, e.g. 250 mln. this is where the "level" in leveldb comes from - it load levels on inserts. the only price you pay for the load leveling is episodic compaction by leveldb. however, when doing selects/lookups on data that is already in leveldb, you must do several seeks, similar to more common databases.

the likely reason leveldb was chosen is that there aren't a ton of great choices for key-value stores. many of the key-value stores besides leveldb have only a few devs and may not be actively maintained. there are also many key-value stores that have questionable data integrity. using a dependency that goes unmaintained means having to change that dep out later, a giant PITA.

the reason the issue that is cited in this thread is so nasty is that not only does bitcoind use leveldb, it uses it in conjunction with flat file storage for the blocks. the act of storing data in flat files and referencing them in the db substantially increases the number and severity of error and failure paths in the combined structure (leveldb + flat file storage). as we can now see, hunting these bugs is very difficult.

perhaps something can be inferred from the way in which leveldb + blocks are corrupted. this would require a dev looking at the db and blocks after they have been hosed.


Title: Re: MacOS X LevelDB Corruption Bounty (5.51 BTC + 200.2 LTC)
Post by: Mike Hearn on November 20, 2013, 01:15:57 PM
You can blame me for LevelDB. We switched to it because it was a large (>2x) speedup over BDB and performance is critical for Bitcoin, for obvious reasons. Also BDB sucks in lots of different ways and LevelDB is very well written.

We already know Apple have made some .... questionable ... decisions in their kernel, with regard to fsync (hint: fsync doesn't). That was at least one source of corruptions, which we already fixed.

Given that rather astonishing approach to data integrity there may well be other equally questionable decisions lurking under the covers. The fact that this only happens on MacOS and not any other platform is strongly indicative that Apple have done more than one bad thing.

I am wondering if there is something going wrong with mmap.

https://code.google.com/p/leveldb/issues/detail?id=196

The behaviour of mmap seems like it can sometimes be broken by kernel developers in subtle ways, I got a bug report for the Android app a few months ago which strongly implies mmap on Motorola devices is broken in ways that can cause data corruption. I wonder if POSIX specifies its behaviour tightly enough.


Title: Re: MacOS X LevelDB Corruption Bounty (5.51 BTC + 200.2 LTC)
Post by: gmaxwell on November 20, 2013, 11:40:41 PM
Can we get a couple of useful bits of data for someone to work on this:

* Earliest confirmed version of 10.8 with the problem
* A sample of a corrupted DB
* console logs from *during time of corruption* including dmesg and system.log
* Information on how bitcoin built/installed, clang? gcc42? macports/brew for deps?
* if the people experiencing the problem have filevault (FDE) turned on or not, whether it was turned on during the install or after, and if it's ever been cycled on/off
* also whether people who have hit this are using stock fs settings or if have case-sensitivity/etc turned on


Title: Re: MacOS X LevelDB Corruption Bounty (5.51 BTC + 200.2 LTC)
Post by: italoarmstrong on November 21, 2013, 01:19:00 AM
+1 on that... give me some kind of log to start.

I have a possible repro (and potentially solution) on OS X for a db corruption... not sure if its the same issue however.


Title: Re: MacOS X LevelDB Corruption Bounty (5.51 BTC + 200.2 LTC)
Post by: Diapolo on November 21, 2013, 04:08:59 PM
What filesystems are in use on Mac? And did anyone try my std::stream branch ;)?

Dia


Title: Re: MacOS X LevelDB Corruption Bounty (5.51 BTC + 200.2 LTC)
Post by: moderate on November 21, 2013, 10:21:56 PM
This is on Litecoin 0.8.5.2-rc5 (same as Bitcoin 0.8.5 OMG3 (https://bitcointalk.org/index.php?topic=320695.0)) running on MacOS 10.6.8 where it does not corrupt itself.

Does not corrupt or you cannot get it corrupted ? If the latter, then you solved the first step in this bounty but didn't announce it ?


Title: Re: MacOS X LevelDB Corruption Bounty (5.51 BTC + 200.2 LTC)
Post by: wtogami on November 21, 2013, 10:23:45 PM
This is on Litecoin 0.8.5.2-rc5 (same as Bitcoin 0.8.5 OMG3 (https://bitcointalk.org/index.php?topic=320695.0)) running on MacOS 10.6.8 where it does not corrupt itself.

Does not corrupt or you cannot get it corrupted ? If the latter, then you solved the first step in this bounty but didn't announce it ?

MacOS X 10.6.8 does not seem to corrupt with native Bitcoin-Qt as far as I can tell, so this test doesn't tell us anything.  I am only pointing out that it is possible.


Title: Re: MacOS X LevelDB Corruption Bounty (5.51 BTC + 200.2 LTC)
Post by: Rampion on November 21, 2013, 10:26:29 PM
Since 0.8x I have the corrupt db (and thus forced rescan) each time that my computer powers off due to battery/electrical failure.

Wtogami: try to power off your computer without shuttind down Bitcoin-QT, the db will probably be damaged.


Title: Re: MacOS X LevelDB Corruption Bounty (5.51 BTC + 200.2 LTC)
Post by: wtogami on November 21, 2013, 10:39:34 PM
Since 0.8x I have the corrupt db (and thus forced rescan) each time that my computer powers off due to battery/electrical failure.

Wtogami: try to power off your computer without shuttind down Bitcoin-QT, the db will probably be damaged.

0.8.5 OMG3 has three patches that prevent other corruption, although not the particular issue of this bounty.  Also we have never seen corruption on 10.6.8.


Title: Re: MacOS X LevelDB Corruption Bounty (5.51 BTC + 200.2 LTC)
Post by: medicine on November 22, 2013, 07:12:14 AM
I run the latest versions of both bitcoin QT and litcoin QT on my Mac running the Maverick OS.  I don't use time machine and I've never had a problem with either program. 

I won't be using Time machine now either.



Title: Re: MacOS X LevelDB Corruption Bounty (5.51 BTC + 200.2 LTC)
Post by: toffoo on November 23, 2013, 07:43:12 AM
Thank you to Gavin and Warren and everyone for your efforts to help resolve this issue.  I think this bounty is a great idea and I'm very happy to see the Mac client receive some 1st class attention.

2013 has probably been bitcoin's most exciting year, but it's been a rough one for some Mac bitcoin-qt users.  It was way back on December 14, 2012 when the last version of bitcoin-qt (v0.7.2 with the later May 15 workaround) to work reliably on my MacBook Pro was released.  Every one of the many v0.8.x releases since has corrupted for me.  I've grown weary of reindexing the blockchain and testing out new builds.

Some of my experiences and setup are detailed in the original github link:
https://github.com/bitcoin/bitcoin/issues/2770

I'm sure that many new Mac users who have gotten into bitcoin this year have not had the same bullet-proof experience that I enjoyed when I first got started with the earlier versions.  It can be very frustrating, after all the complexity inherent to bitcoin, to have something not function the way it should when you're first getting started.  All financial software needs to be rock solid, especially with the sort of values that are being tossed around these days with our experimental little currency.

So with that in mind, I pleased to support this very worthwhile effort with a contribution of 0.48552571 BTC, so you can now update your bounty fund to an even 6.0 BTC + 200.2 LTC:

https://blockchain.info/tx/dc17a4e4b9ae40fdec9699936f965b57f0fe3c6fce8722033c56c30a11b01900

May bitcoin-qt have a long and illustrious future running on the world's fruitiest operating system, and may this bug meet a swift and permanent demise!!! 


Title: Re: MacOS X LevelDB Corruption Bounty (6.00 BTC + 200.2 LTC)
Post by: theymos on November 25, 2013, 03:00:23 AM
The Bitcoin Forum pledges 4 BTC to this bounty, and we'll probably also put up an ad about this in forum ad round 103. This is more than I really want to spend on non-forum development issues from the forum's treasury, especially when the forum software situation is non-optimal, but this issue seems to be becoming serious despite the efforts of many experts over a long period of time, so I think that increasing the bounty amount is important.


Title: Re: MacOS X LevelDB Corruption Bounty (6.00 BTC + 200.2 LTC)
Post by: gmaxwell on November 25, 2013, 03:12:12 AM
Wow! Theymos, thats awesome!


Title: Re: MacOS X LevelDB Corruption Bounty (5.51 BTC + 200.2 LTC)
Post by: jordan.dev on November 25, 2013, 08:17:00 AM
Corrupted wallet.dat is not the issue of this particular bounty.

ok nm. than sorry I misread and though my issue was related.


Title: Re: MacOS X LevelDB Corruption Bounty (10.00 BTC + 200.2 LTC)
Post by: Boussac on November 25, 2013, 11:11:31 AM
BitcoinQt 0.8.5 works like a charm on OSX 10.7.5 but crashes (with database corrupted message) on OSX 10.8.5 (brand new machine, no filevault involved nor any funky settings).


Title: Re: MacOS X LevelDB Corruption Bounty (10.00 BTC + 200.2 LTC)
Post by: cfields on November 26, 2013, 12:36:58 AM
I have a theory, and a binary to try out for someone who can reproduce. I don't see the issue on my macbook.

Patch is here: https://github.com/theuni/bitcoin/commit/ac0d918bb49e0f8393b1e27662bc4c25113980b2
Binary is here for anyone who trusts me (you can, but of course you shouldn't) https://www.dropbox.com/s/r959wns6rm4xjsu/Bitcoin-Qt.dmg

Theory goes like this:

Currently leveldb's atomics use a gcc-style compiler barrier like:
asm volatile("" : : : "memory");

OSX has a native memory barrier that can be used instead. It's my understanding that on x86/x86_64, a real memory barrier is not needed, but only a flag to tell the compiler not to optimize+reorder store/loads. Looks to me like it's a mistake, and that the OSX function should be chosen instead.

In my tests, the asm hack was often completely optimized away, and loads/stores were reordered anyway. So I believe the barrier in current code is effectively a nop.

Since this is a build-time optim and not run-time, it does not explain why 10.8 is affected while 10.6 is. However, if atomics are busted, timings in other underlying functions (write/fsync/mmap/etc) would have a huge effect, so it seems reasonable that this could be the indirect cause.


Title: Re: MacOS X LevelDB Corruption Bounty (10.00 BTC + 200.2 LTC)
Post by: moderate on November 26, 2013, 01:30:16 AM
I have a theory, and a binary to try out for someone who can reproduce. I don't see the issue on my macbook.

Patch is here: https://github.com/theuni/bitcoin/commit/ac0d918bb49e0f8393b1e27662bc4c25113980b2


Care to explain that your patch isn't just about moving a piece of code 20 lines above where it was previously ? I might be too tired, but that patch does nothing that wasn't being done already.


Title: Re: MacOS X LevelDB Corruption Bounty (10.00 BTC + 200.2 LTC)
Post by: cfields on November 26, 2013, 01:38:27 AM
In the current code, OSX falls into this this case:
Code:
#elif defined(ARCH_CPU_X86_FAMILY) && defined(__GNUC__)
(Note that clang also defines __GNUC__)

I believe that's unintentional. Moving the "#elif defined(OS_MACOSX)" up causes the barrier to be
Code:
OSMemoryBarrier();
rather than
Code:
asm volatile("" : : : "memory");


Title: Re: MacOS X LevelDB Corruption Bounty (10.00 BTC + 200.2 LTC)
Post by: moderate on November 26, 2013, 01:45:34 AM
In the current code, OSX falls into this this case:
Code:
#elif defined(ARCH_CPU_X86_FAMILY) && defined(__GNUC__)
(Note that clang also defines __GNUC__)

I believe that's unintentional. Moving the "#elif defined(OS_MACOSX)" up causes the barrier to be
Code:
OSMemoryBarrier();
rather than
Code:
asm volatile("" : : : "memory");

Oh, alright, that makes sense. You should bring it up to the leveldb people.


Title: GPG Signed test binaries
Post by: wtogami on November 26, 2013, 09:36:55 AM
Updated: December 11h, 2013
The following versions contain cfields' memory barrier patch and phantomcircuit's no-mmap patch.  Extensive testing indicates no new corruption happens on MacOS X.

Official Bitcoin 0.8.6
http://bitcoin.org/en/download

Bitcoin 0.8.5-OMG10
http://download1.rpmfusion.org/~warren/bitcoin-0.8.5-OMG10/macosx/
https://github.com/litecoin-project/bitcoinomg/commits/0.8.5-OMG10
This build contains all the same bug fixes as 0.8.6 above.  Includes additional features like Coin Control.

Litecoin 0.8.6.1
https://download.litecoin.org/litecoin-0.8.6.1/
https://litecoin.info/Upgrading_Litecoin#Upgrading_to_0.8.6.1
Please follow these directions to use Litecoin 0.8.6.1.

https://github.com/bitcoin/bitcoin/issues/2770
Read more here.


Title: Re: MacOS X LevelDB Corruption Bounty (10.00 BTC + 200.2 LTC)
Post by: cfields on November 26, 2013, 10:08:02 AM
Upon further investigation, this does indeed seem to be unintended in leveldb.

Their atomics are borrowed from here (see the note in port/atomic_pointer.h): https://code.google.com/p/gperftools/source/browse/src/base/atomicops.h#102

It's clear there that mach/apple takes precedence over x86. The patch above fixes leveldb to match that behavior. Regardless of whether or not this fixes the db corruption for bitcoin, I'll take it upstream.


Title: Re: MacOS X LevelDB Corruption Bounty (10.00 BTC + 200.2 LTC)
Post by: Mike Hearn on November 26, 2013, 10:48:28 AM
Wow. That's bad and would indeed explain the issues (or at least some of them). Apple really should not be claiming in the headers to be GCC compatible and then ignoring the GCC memory barrier idiom. That's not compatible at all. So technically this is an Apple bug, I'd say, but it's one we can work around pretty easily.

Very exciting that this has been discovered, great work cfields, worthy of a bounty award for sure. It's hard to imagine this not causing corruption. And it would also explain the otherwise unexplainable "self-fixing corruption" problem.


Title: Re: MacOS X LevelDB Corruption Bounty (10.00 BTC + 200.2 LTC)
Post by: cfields on November 26, 2013, 11:20:29 AM
Thanks Mike. Though I must point out that my summation above is a theory, and certainly shouldn't be taken as fact. But the premise is basically this: We can't really know if the GCC idiom is supported on Apple's compiler-of-the-week, but it seems we can be sure that OSMemoryBarrier will work as intended, so there should be no harm in switching to it.


Title: Re: MacOS X LevelDB Corruption Bounty (10.00 BTC + 200.2 LTC)
Post by: misterbigg on November 26, 2013, 06:40:53 PM
If the Bitcoin code can be refactored, or is already factored, to support easily changing the database "Backend" then you can try HyperLevelDB or RocksDB instead, they are both based off LevelDB and with identical APIs. This can be a good solution to try if problems re-surface with LevelDB.


Title: Re: MacOS X LevelDB Corruption Bounty (10.00 BTC + 200.2 LTC)
Post by: Basjee on November 26, 2013, 06:50:04 PM
Noob here, how do I know if my "leveldb" is corrupted?

I have both Bitcoin client and Litecoin client running for approx. 10 days now (with some short breaks / macbook sleep time).

Both my wallets are showing the correct value.

2nd question: are mac os x users risking losing their coins by running the current clients?

Thanks :-)


Title: Re: MacOS X LevelDB Corruption Bounty (10.00 BTC + 200.2 LTC)
Post by: picobit on November 26, 2013, 06:58:03 PM
You know it is corrupted by the client complaining that it is so.

And no, you do not lose coins.  The wallet is not affected (although you should always have a backup), the worst that could potentially happen is that your client "fortgets" you have the coins, or think you have too many (forgets you have spent some).  But rebuilding the database will fix that, since your bitcoins are not stored on your computer but in the blockchain.


Title: Re: MacOS X LevelDB Corruption Bounty (10.00 BTC + 200.2 LTC)
Post by: Basjee on November 26, 2013, 06:59:36 PM
Thanks, that's clear!  ;)


Title: Re: MacOS X LevelDB Corruption Bounty (10.00 BTC + 200.2 LTC)
Post by: moderate on November 26, 2013, 07:30:48 PM
If the Bitcoin code can be refactored, or is already factored, to support easily changing the database "Backend" then you can try HyperLevelDB or RocksDB instead, they are both based off LevelDB and with identical APIs. This can be a good solution to try if problems re-surface with LevelDB.

I'm not seeing the reasoning here. Are you saying that those other options fixed this bug and other ones but didn't contribute it back to leveldb ? I doubt that is the case.


Title: Re: MacOS X LevelDB Corruption Bounty (10.00 BTC + 200.2 LTC)
Post by: goatpig on November 26, 2013, 07:54:57 PM
Are the instances of DB corruptions on Windows caused by the same problems occuring on the OSX builds?


Title: Re: MacOS X LevelDB Corruption Bounty (10.00 BTC + 200.2 LTC)
Post by: koelen3 on November 26, 2013, 08:42:10 PM
Well this is my unofficial explanation.

Due of the mac updates, it changed standard applications.
This happened to me when updating to Maverick

Due of the changes, when having installed VLC, it uses your VLC to open your wallet.dat
On the other side, you would have to unlock your basic documents when installing Bitcoin-QT to have a new transaction being sent.
As this changes your file, MAC OS doesn't allow you to change the files without you unlocking them.

You also need to change a 'hidden' file on your Mac, to allow you to connect from files to the internet as Mac brought some "security" updates.


Title: Re: MacOS X LevelDB Corruption Bounty (10.00 BTC + 200.2 LTC)
Post by: jordan314 on November 27, 2013, 06:33:47 AM
I can answer 1) and 2) but don't have the skills to write the code for 3).

1) Go to system preferences and click on Date/Time. Set the date to 2012. Close System preferences and hit save. Open Bitcoin-qt and get the corrupted database message. Click abort.
Set system preferences and click set date and time automatically. Open Bitcoin-qt and the database is fine.
2) The database is appearing corrupted to leveldb because the system clock is incorrect.
3) Can you use an atomic clock API and rely on that instead of the system clock to prevent leveldb from becoming corrupted?


Title: Re: MacOS X LevelDB Corruption Bounty (10.00 BTC + 200.2 LTC)
Post by: marcotheminer on November 27, 2013, 06:52:32 AM
Passed this on to a friend who might be able to help. we'll see!


Title: Re: MacOS X LevelDB Corruption Bounty (10.00 BTC + 200.2 LTC)
Post by: cfields on November 27, 2013, 07:13:09 AM
As discussed on IRC, I don't think my first change is enough.

I've poked around and now I can reproduce the problem at-will by injecting some sleeps in key places, basically magnifying an unlikely race condition. I'll post my findings and some patches tomorrow, once I can make a bit more sense of it.


Title: Re: MacOS X LevelDB Corruption Bounty (10.00 BTC + 200.2 LTC)
Post by: melacs on November 27, 2013, 07:47:01 AM
I can only support the people trying to solve this problem, don't have the capacity to program a solution. (It seems that the recent attention for bitcoin is putting more and more pressure on the developers.

It seems as if the sleep mode or shutdown or internet connection break is interrupting the client while it is downloading blocks. Is this true or does the problem also occur when all blocks have been downloaded before shutting down and new blocks need to be added later?
In the first case, the problem could lie with an unfininished block that is considered finished or a block that is downloaded multiple times. (probably similar to what cfields stated)
If it also occurs after having been shut down with a complete download of blocks, then the problem is in how the complete blockchain or a finished block is ended and restarted.



Title: Re: MacOS X LevelDB Corruption Bounty (10.00 BTC + 200.2 LTC)
Post by: sixtyeightmk2 on November 27, 2013, 10:35:47 AM
I posted a reply about this in the newbies forums earlier tonight and on github as well.

Basically there are a few things happening with HFS and resource forks, spotlight indexing data, and ssd caching or having a race condition come up when putting the system to sleep or hibernate quickly and taking it out by turning it back on:

https://bitcointalk.org/index.php?topic=348426.msg3731858#msg3731858

See portion with links to HFS ssd tuning.

If you are running on a FAT partition you don't have these problems. (Can't resource fork FAT)


Title: Re: MacOS X LevelDB Corruption Bounty (10.00 BTC + 200.2 LTC)
Post by: Diapolo on November 27, 2013, 03:29:26 PM
Are the instances of DB corruptions on Windows caused by the same problems occuring on the OSX builds?

About which Windows corruptions are you talking about?

Dia


Title: Re: MacOS X LevelDB Corruption Bounty (10.00 BTC + 200.2 LTC)
Post by: goatpig on November 27, 2013, 04:22:55 PM
Are the instances of DB corruptions on Windows caused by the same problems occuring on the OSX builds?

About which Windows corruptions are you talking about?

Dia

Not sure under which criterion this corruption falls. About a week ago I try to start Bitcoin-Qt to no avail. Had to delete the DB folder to get Qt to start, which resulted in a full redownload and verification of the blockchain.


Title: Re: MacOS X LevelDB Corruption Bounty (10.00 BTC + 200.2 LTC)
Post by: Roy Badami on November 28, 2013, 12:20:19 AM
Apropos of nothing, I'll contribute my experience of this problem:

To the best of my knowledge, I have had precisely two unclean shutdowns of my Mac whilst Bitcoin-QT 0.8.x was running.  In two out of two cases, it triggered a rebuild due to a corrupt database.  So I find it interesting that this problem is actually difficult to reproduce - I guess I'm just unlucky.  (This is 10.6 on a MacBook Air.)

What really surprised me, though, is that on the occasion of the second of those unclean shutdowns (the OS X UI froze and I had to do a force power off) not only was I not actively using Bitcoion-QT at the time, but I am 99% sure that I had no network connection, and hadn't had a connection for several minutes.  So it seems pretty unlikely that it was a pathological case involving an interrupted DB transaction.

None of the above makes any sense to me, and it is, of course, quite possible just a fluke occurance - but on the off chance it gives anyone any ideas I thought I'd post it anyway.

roy


Title: Re: MacOS X LevelDB Corruption Bounty (10.00 BTC + 200.2 LTC)
Post by: misterbigg on November 28, 2013, 12:35:29 AM
Are you saying that those other options fixed this bug and other ones but didn't contribute it back to leveldb ? I doubt that is the case.

No. I'm suggesting that if there are more serious problems with LevelDB down the line that prevent features from being added (either due to performance or architecture limitations), then both HyperLevelDB and RocksDB (which are based on LevelDB) are proven alternatives with performance improvements. If the bitcoin backend database is customizable, then it is easy to experiment with alternatives.


Title: Re: MacOS X LevelDB Corruption Bounty (10.00 BTC + 200.2 LTC)
Post by: rrjr777 on November 28, 2013, 01:13:29 AM
Hello All,

I have read through this thread and also researched some of the reports of this issue, I read about bitcoin in the beginning, and had so much going on at the time that I sort of dismissed it and forgot about it. With the recent media coverage, I have been researching bitcoin in general and became very interested, and stumbled across this thread. That being said, I have a comment, a suggestion and my own theory / hypothesis regarding what is going on, however, it is also apparent that there could very well be several unrelated "bugs" throwing the same / similar error and exhibiting similar behavior on the client machine.

First, the comment:
It is apparent, considering the recent media frenzy surrounding bitcoin and positive news regarding the acceptance of it as a viable currency, that any hint of instability / corruption / bugs within the codebase, could be enough to sabotage the efforts to date, and damage the confidence in the currency.

Now the suggestion:
I have read the reports, threads, theories, and I am hoping to contribute to the ultimate solution, however, the most important factor in potentially resolving the issue, is to gather accurate facts regarding the issue that is actually being experienced. Not to say that throwing theories out is counterproductive, it could lead someone along the right path, however, I can say for sure, that the probability of actually fixing the issue, is directly correlated to the quality of data collected. Without the exact problem / circumstances, etc. we would be shooting in the dark.

I have read reports of Mac's, Windows, and other OS's at some point getting a corrupt database, and I suspect based on the sparse descriptions of the event, that the innate behavior of LevelDB is the culprit, specifically the way a write is actually committed, (or not), to media, but under what conditions this occurs is paramount to finding a solution. I wish I had gone with my intuition at the beginning of this Bitcoin project, and became involved, I'm too late to the game of mining, and can't afford to even buy a bitcoin at this point. Its taking so long for me to even download the blockchain, that I decided to start this post in parallel, and hope to make a contribution in some way.

If anyone reading this thread, has a machine that is experiencing the corrupted database, it would be priceless to the community at large to post some basic information, such as:

Computer OS - (version / service pack)
Hard Drive - (Solid State / SATA / IDE?)
Date of first experiencing the issue.
The exact Error Message.
What you or the computer were doing when / immediately before the error occurred.
Whether you have hibernate / sleep / power off options on the Network Adapter configured.
Whether your computer was hard wired or wireless.
If the computer crashed prior to the database corruption.
What version of BitcoinQT you were using at the time the error occurred.
Whether you had a previous version of BitcoinQT installed and later upgraded.
If you have been able to resolve the error, (perhaps re-installing an earlier version), and if so, how.

I believe, if we have enough of the individuals who are actually experiencing the issue, report, to the best of their ability, the answers to the questions above, we as a group, may be able to put together the exact scenario / circumstance to reproduce the issue, and most importantly, begin to understand it, and progress to the path of resolution.

Sorry for the lengthy post, I hope it helps.

- Rich


Title: Re: MacOS X LevelDB Corruption Bounty (10.00 BTC + 200.2 LTC)
Post by: cfields on November 28, 2013, 01:32:16 AM
Though I hate to admit defeat (I had nailed down the issue, but my approach to fix was incorrect), Robert Escriva has submitted the correct fix: https://groups.google.com/forum/#!topic/leveldb/GXhx8YvFiig (https://groups.google.com/forum/#!topic/leveldb/GXhx8YvFiig)
It probably didn't hurt that he's a leveldb consultant ;)

His victory speech: http://hackingdistributed.com/2013/11/27/bitcoin-leveldb/

I'd like to thank Robert for diving into the issue. He's got my +1 for the bounty.


Title: New builds with possible MacOS fix
Post by: wtogami on November 28, 2013, 10:23:02 AM
https://bitcointalk.org/index.php?topic=337294.msg3718821#msg3718821
Builds were updated with Robert Escriva's patch.  Please test!


Title: Re: MacOS X LevelDB Corruption Bounty (10.00 BTC + 200.2 LTC)
Post by: toffoo on November 28, 2013, 06:19:53 PM
Robert Escriva has submitted the correct fix: https://groups.google.com/forum/#!topic/leveldb/GXhx8YvFiig (https://groups.google.com/forum/#!topic/leveldb/GXhx8YvFiig)

"It works for me" (so far ...)  https://github.com/bitcoin/bitcoin/issues/2770#issuecomment-29479456


Title: Re: MacOS X LevelDB Corruption Bounty (10.00 BTC + 200.2 LTC)
Post by: doof on November 28, 2013, 09:22:00 PM
I have had 2 power trips in 2 days, thanks to my Butterflylabs miner.  Both times have forced me to download the chain.  Relieved to see this thread and its not my mac.

Might take a look at the code tonight.


Title: Re: MacOS X LevelDB Corruption Bounty (10.00 BTC + 200.2 LTC)
Post by: doof on November 28, 2013, 09:29:02 PM
Quote
Computer OS - (version / service pack)
Hard Drive - (Solid State / SATA / IDE?)
Date of first experiencing the issue.
The exact Error Message.
What you or the computer were doing when / immediately before the error occurred.
Whether you have hibernate / sleep / power off options on the Network Adapter configured.
Whether your computer was hard wired or wireless.
If the computer crashed prior to the database corruption.
What version of BitcoinQT you were using at the time the error occurred.
Whether you had a previous version of BitcoinQT installed and later upgraded.
If you have been able to resolve the error, (perhaps re-installing an earlier version), and if so, how.

2011 27" iMac with HDD
28-11-2013 & 29-11-2012.  The exact same times.  Each morning I have woken up around 5 and plugged in my BTF Jala miner.  This is cause the power to trip, and turn off my mac and other devices.

I don't have a screen shot of the exact message, but off memory "Blockchain db is corrupt and needs to be re indexed"

This as actually occurred on litecoin-qt.  I haven't opend bitcoin-qt to see if the same has occurred.

Seeing how it has happened twice,  I'm certain I can reproduce.   Both times, the block chain had been entirely synced, and the mac sitting there powered on.


Title: Re: New builds with possible MacOS fix
Post by: doof on November 28, 2013, 09:30:15 PM
https://bitcointalk.org/index.php?topic=337294.msg3718821#msg3718821
Builds were updated with Robert Escriva's patch.  Please test!

I will apply this patch and crash my mac in the same was as the above.  See if it doesn't result in a corrupt db.


Title: Test new MacOS Corruption Fix Builds
Post by: wtogami on November 29, 2013, 09:03:30 AM
https://bitcointalk.org/index.php?topic=337294.msg3718821#msg3718821
New builds again.  We need feedback from MacOS X users who were previously experiencing corruption.  This is a blocker for the release of Bitcoin 0.8.6.


Title: Re: MacOS X LevelDB Corruption Bounty (10.00 BTC + 200.2 LTC)
Post by: edubai on November 29, 2013, 11:12:27 AM
Hi Everyone,


I've tried bitcoinqt with my Mac (10.9) without any corruption problems, but it seems that for everyone who is facing this problem should consider testing his RAM for hardware problems.. a defective RAM will cause a database corruption almost instantly ! Seriously consider testing your RAM !


**RAM TEST TOOLS**

for a Mac : http://osxdaily.com/2011/05/03/memtest-mac-ram-test/ (http://osxdaily.com/2011/05/03/memtest-mac-ram-test/)

for Windows :  http://www.memtest86.com/ (http://www.memtest86.com/)



Good Luck  :)


Title: Re: MacOS X LevelDB Corruption Bounty (10.00 BTC + 200.2 LTC)
Post by: antanst on November 29, 2013, 06:11:48 PM
No corruption (yet) in 10.9 with the latest version for me.


Title: Re: Test new MacOS Corruption Fix Builds
Post by: KaosMcRage on November 30, 2013, 12:07:26 AM
https://bitcointalk.org/index.php?topic=337294.msg3718821#msg3718821
New builds again.  We need feedback from MacOS X users who were previously experiencing corruption.  This is a blocker for the release of Bitcoin 0.8.6.

As I mentioned on GitHub, I had what OMG4 considered to be a working/clean database. I didn't sync for a couple days, then downloaded and ran OMG5. Database corruption detected after attempting to sync for a minute or two. Since then, I tried opening OMG5 again at a later time and it synced just fine (no corruption detected). Downloading OMG6 now.

P.S.
Is coming from a database deemed clean by an older client (OMG4, 5, etc.) an adequate test or do we need to rebuild/resync from scratch (or the latest torrent copy) with each new version? Thanks.


Title: Re: MacOS X LevelDB Corruption Bounty (10.00 BTC + 200.2 LTC)
Post by: cfields on November 30, 2013, 04:00:48 AM
After thinking this over a bit more, and seeing new crash data from toffoo, I believe there's still a bit more to fix.

From IRC:
<cfields> the issue is that while it's looping through the write, it unmaps/remaps. and if there's a write that straddles a mapping, it can be split and not flushed to disk properly by osx
<cfields> robert's patch fixes that part
<cfields> however, once the write is complete, it's not immediately unmapped
<cfields> so at that point, the very tail may not be flushed

So the scenario would look like this:
- Append a new record that straddles the write boundary. Let it return from a successful Append() and don't write any new data (this is the distinction)
- Kill -9 or pull the plug before Close()
- Robert's change has caused the interim data in Append() to be flushed to disk, however the tail will not be unmapped until Close()

I've pushed a proof-of-concept "fix" here: https://github.com/theuni/bitcoin/commit/1d0e54bfb76b3891468582df97c4429174063c3c
This is just a copy/paste of what happens in Sync(), except that it's forced at the end of each logical write. Note however that Sync() first flushes to disk, so it would be sending possibly unsync'd data.


Title: Re: MacOS X LevelDB Corruption Bounty (10.00 BTC + 200.2 LTC)
Post by: moderate on November 30, 2013, 04:03:32 AM
After thinking this over a bit more, and seeing new crash data from toffoo, I believe there's still a bit more to fix.

From IRC:
<cfields> the issue is that while it's looping through the write, it unmaps/remaps. and if there's a write that straddles a mapping, it can be split and not flushed to disk properly by osx
<cfields> robert's patch fixes that part
<cfields> however, once the write is complete, it's not immediately unmapped
<cfields> so at that point, the very tail may not be flushed


I'm actually wondering about a very trivial thing here. Why is no one setting up small reproduceable test cases ? There is no other way to claim bugs are fixed other than doing that. Make a test where it always fail before the patch, and that it always passes after the patch. Repeat, announce fixes.


Title: Re: MacOS X LevelDB Corruption Bounty (10.00 BTC + 200.2 LTC)
Post by: Mike Hearn on November 30, 2013, 10:09:31 AM
Because it's not easy to reproduce. mmap on OS X is clearly broken in some very subtle ways, whether or not data is flushed to disk correctly almost certainly depends on the vagaries of kernel mm algorithms that can make decisions based on a lot of uncontrollable factors. That's why it's so hard to track down.

I think Sanjay may be right that on MacOS we may just have to give up on write-through mmap.


Title: Re: MacOS X LevelDB Corruption Bounty (10.00 BTC + 200.2 LTC)
Post by: moderate on November 30, 2013, 02:54:21 PM
Maybe try contacting one of the OSX developers responsible for the memory management ? Check the darwin-kernel maillist.

People that claim something is clearly broken, yet there are many other databases running in this same OS, might just not know how to do it properly (hard to accept it, I know). I'm not saying it's an easy problem (but maybe it is, for someone that actually knows what he is doing), neither that it is easy to reproduce.


Title: New Bitcoin build
Post by: wtogami on December 01, 2013, 08:22:56 AM
https://bitcointalk.org/index.php?topic=337294.msg3718821#msg3718821
Updated Bitcoin build to match the 0.8.6 work in progress branch at 6003954be08586092d652ca2828e86e92d96c660
This includes the patch by Robert Escriva.


Title: Re: MacOS X LevelDB Corruption Bounty (10.00 BTC + 200.2 LTC)
Post by: Roy Badami on December 02, 2013, 12:35:04 AM
So this boils down to mmap() is just broken on OS X?  Wow.  Just wow.


Title: Re: MacOS X LevelDB Corruption Bounty (10.00 BTC + 200.2 LTC)
Post by: wtogami on December 02, 2013, 02:36:25 AM
So this boils down to mmap() is just broken on OS X?  Wow.  Just wow.

http://s3.amazonaws.com/rapgenius/filepicker%2FMnipLDyQkWrNeFP86Ivk_Think_Different.jpg


Title: Re: GPG Signed test binaries with possible fix
Post by: motomike on December 02, 2013, 11:20:43 PM
Updated: December 2nd, 2013
The following binaries contain the patch from Robert Escriva to workaround leveldb issue 197.  Testing is needed by ALL MacOS X users, Your detailed reports of success or failure including exactly what you tested is needed.

Bitcoin 0.8.6-mactest1
http://download1.rpmfusion.org/~warren/bitcoin-0.8.6-mactest1/
https://github.com/bitcoin/bitcoin/commits/0.8.6
Includes only rescriv's patch.  toffoo had corruption with this build.

Bitcoin 0.8.5-OMG7 (two variants)
http://download1.rpmfusion.org/~warren/bitcoin-0.8.5-OMG7/
https://github.com/litecoin-project/bitcoinomg/commits/0.8.5-OMG7-no-mmap
OMG7-no-mmap2 variant includes phantomcircuit's no-mmap patch and cfields mem barrier patch
https://github.com/litecoin-project/bitcoinomg/commits/0.8.5-OMG7
OMG7 - like OMG5 includes rescriv's patch and cfields' mem barrier patch

Litecoin 0.8.5.3-rc4
http://download1.rpmfusion.org/~warren/litecoin-0.8.5.3-rc4/macosx/
https://github.com/litecoin-project/litecoin/commits/exp-0.8.5.3-rc4

https://github.com/bitcoin/bitcoin/issues/2770
Read the latest status here.  There are possibly more corruption bugs. =(

Tried all of the above betas. Bitcoin-QT will start up and I can use it UNLESS it is connected to the internet. Soon as it finds Peers, Boom I get a force close, and the error. Where do I go from here?  I have a few thousand worth of BTC and I need to move it.

http://pastebin.com/3bFSwP5Z <- thats the whole thing.

Code:
Process:         Bitcoin-Qt [2476]
Path:            /Applications/Bitcoin-Qt.app/Contents/MacOS/Bitcoin-Qt
Identifier:      org.bitcoinfoundation.Bitcoin-Qt
Version:         0.8.5 (0.8.5)
Code Type:       X86 (Native)
Parent Process:  launchd [158]
Responsible:     Bitcoin-Qt [2476]
User ID:         501

Date/Time:       2013-12-02 18:02:32.333 -0500
OS Version:      Mac OS X 10.9 (13A603)
Report Version:  11
Anonymous UUID:  D662DB4B-470F-F949-F8D5-CF867DE9A380

Sleep/Wake UUID: 8ADB2AB8-A9E9-4031-8BC2-BB6377E35E83

Crashed Thread:  18

Exception Type:  EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000

Application Specific Information:
Assertion failed: (pindexFirst), function GetNextWorkRequired, file src/main.cpp, line 1151.
 

Thread 0:: Dispatch queue: com.apple.main-thread
0   libsystem_kernel.dylib         0x92763f7a mach_msg_trap + 10
1   libsystem_kernel.dylib         0x9276316c mach_msg + 68
2   com.apple.CoreFoundation       0x934caf69 __CFRunLoopServiceMachPort + 169
3   com.apple.CoreFoundation       0x934ca541 __CFRunLoopRun + 1393
4   com.apple.CoreFoundation       0x934c9d5a CFRunLoopRunSpecific + 394
5   com.apple.CoreFoundation       0x934c9bbb CFRunLoopRunInMode + 123
6   com.apple.HIToolbox           0x9a138e2d RunCurrentEventLoopInMode + 259
7   com.apple.HIToolbox           0x9a138bb2 ReceiveNextEventCommon + 526
8   com.apple.HIToolbox           0x9a13898d _BlockUntilNextEventMatchingListInModeWithFilter + 92
9   com.apple.AppKit               0x950d45a9 _DPSNextEvent + 1602
10  com.apple.AppKit               0x950d3ad0 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 119
11  com.apple.AppKit               0x950c635c -[NSApplication run] + 727
12  QtGui                         0x00d8d7fa QDesktopWidget::resizeEvent(QResizeEvent*) + 12890
13  QtCore                         0x019f7471 QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 65
14  QtCore                         0x019f784a QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) + 314
15  QtCore                         0x019f9f26 QCoreApplication::exec() + 182
16  org.bitcoinfoundation.Bitcoin-Qt 0x0002562a main + 7402
17  org.bitcoinfoundation.Bitcoin-Qt 0x00022341 start + 53

Thread 1:: Dispatch queue: com.apple.libdispatch-manager
0   libsystem_kernel.dylib         0x92769992 kevent64 + 10
1   libdispatch.dylib             0x9128e8bd _dispatch_mgr_invoke + 238
2   libdispatch.dylib             0x9128e556 _dispatch_mgr_thread + 52

Thread 2:
0   libsystem_kernel.dylib         0x92769046 __workq_kernreturn + 10
1   libsystem_pthread.dylib       0x962cadcf _pthread_wqthread + 372
2   libsystem_pthread.dylib       0x962cecce start_wqthread + 30

Thread 3:
0   libsystem_kernel.dylib         0x92769046 __workq_kernreturn + 10
1   libsystem_pthread.dylib       0x962cadcf _pthread_wqthread + 372
2   libsystem_pthread.dylib       0x962cecce start_wqthread + 30

Thread 4:: com.apple.CFSocket.private
0   libsystem_kernel.dylib         0x92768ace __select + 10
1   com.apple.CoreFoundation       0x9351adc6 __CFSocketManager + 1158
2   libsystem_pthread.dylib       0x962c95fb _pthread_body + 144
3   libsystem_pthread.dylib       0x962c9485 _pthread_start + 130
4   libsystem_pthread.dylib       0x962cecf2 thread_start + 34

Thread 5:
0   libsystem_kernel.dylib         0x92763f7a mach_msg_trap + 10
1   libsystem_kernel.dylib         0x9276316c mach_msg + 68
2   com.apple.CoreFoundation       0x934caf69 __CFRunLoopServiceMachPort + 169
3   com.apple.CoreFoundation       0x934ca541 __CFRunLoopRun + 1393
4   com.apple.CoreFoundation       0x934c9d5a CFRunLoopRunSpecific + 394
5   com.apple.CoreFoundation       0x934c9bbb CFRunLoopRunInMode + 123
6   com.apple.AppKit               0x9527df18 _NSEventThread + 283
7   libsystem_pthread.dylib       0x962c95fb _pthread_body + 144
8   libsystem_pthread.dylib       0x962c9485 _pthread_start + 130
9   libsystem_pthread.dylib       0x962cecf2 thread_start + 34

Thread 6:
0   libsystem_kernel.dylib         0x92768ace __select + 10
1   QtCore                         0x01a29a90 qt_safe_select(int, fd_set*, fd_set*, fd_set*, timeval const*) + 320
2   QtCore                         0x01a2ddda QEventDispatcherUNIXPrivate::doSelect(QFlags<QEventLoop::ProcessEventsFlag>, timeval*) + 394
3   QtCore                         0x01a2e26f QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 175
4   QtCore                         0x019f7471 QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 65
5   QtCore                         0x019f784a QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) + 314
6   QtCore                         0x018d5a45 QThread::exec() + 261
7   QtCore                         0x018d90d3 QThread::terminate() + 787
8   libsystem_pthread.dylib       0x962c95fb _pthread_body + 144
9   libsystem_pthread.dylib       0x962c9485 _pthread_start + 130
10  libsystem_pthread.dylib       0x962cecf2 thread_start + 34

Thread 7:
0   libsystem_kernel.dylib         0x927687ca __psynch_cvwait + 10
1   libsystem_pthread.dylib       0x962cbd1d _pthread_cond_wait + 728
2   libsystem_pthread.dylib       0x962cdbd9 pthread_cond_wait$UNIX2003 + 71
3   org.bitcoinfoundation.Bitcoin-Qt 0x000cb9f8 boost::condition_variable::wait(boost::unique_lock<boost::mutex>&) + 216
4   org.bitcoinfoundation.Bitcoin-Qt 0x00132210 CCheckQueue<CScriptCheck>::Loop(bool) + 432
5   org.bitcoinfoundation.Bitcoin-Qt 0x000e6973 ThreadScriptCheck() + 67
6   libboost_thread-mt.dylib       0x00d202e2 boost::thread::interruption_requested() const + 250
7   libsystem_pthread.dylib       0x962c95fb _pthread_body + 144
8   libsystem_pthread.dylib       0x962c9485 _pthread_start + 130
9   libsystem_pthread.dylib       0x962cecf2 thread_start + 34

Thread 8:
0   libsystem_kernel.dylib         0x927687ca __psynch_cvwait + 10
1   libsystem_pthread.dylib       0x962cbd1d _pthread_cond_wait + 728
2   libsystem_pthread.dylib       0x962cdbd9 pthread_cond_wait$UNIX2003 + 71
3   org.bitcoinfoundation.Bitcoin-Qt 0x000cb9f8 boost::condition_variable::wait(boost::unique_lock<boost::mutex>&) + 216
4   org.bitcoinfoundation.Bitcoin-Qt 0x00132210 CCheckQueue<CScriptCheck>::Loop(bool) + 432
5   org.bitcoinfoundation.Bitcoin-Qt 0x000e6973 ThreadScriptCheck() + 67
6   libboost_thread-mt.dylib       0x00d202e2 boost::thread::interruption_requested() const + 250
7   libsystem_pthread.dylib       0x962c95fb _pthread_body + 144
8   libsystem_pthread.dylib       0x962c9485 _pthread_start + 130
9   libsystem_pthread.dylib       0x962cecf2 thread_start + 34

Thread 9:
0   libsystem_kernel.dylib         0x927687ca __psynch_cvwait + 10
1   libsystem_pthread.dylib       0x962cbd1d _pthread_cond_wait + 728
2   libsystem_pthread.dylib       0x962cdbd9 pthread_cond_wait$UNIX2003 + 71
3   org.bitcoinfoundation.Bitcoin-Qt 0x000cb9f8 boost::condition_variable::wait(boost::unique_lock<boost::mutex>&) + 216
4   org.bitcoinfoundation.Bitcoin-Qt 0x00132210 CCheckQueue<CScriptCheck>::Loop(bool) + 432
5   org.bitcoinfoundation.Bitcoin-Qt 0x000e6973 ThreadScriptCheck() + 67
6   libboost_thread-mt.dylib       0x00d202e2 boost::thread::interruption_requested() const + 250
7   libsystem_pthread.dylib       0x962c95fb _pthread_body + 144
8   libsystem_pthread.dylib       0x962c9485 _pthread_start + 130
9   libsystem_pthread.dylib       0x962cecf2 thread_start + 34

Thread 10:
0   libsystem_kernel.dylib         0x927687ca __psynch_cvwait + 10
1   libsystem_pthread.dylib       0x962cbd1d _pthread_cond_wait + 728
2   libsystem_pthread.dylib       0x962cdbd9 pthread_cond_wait$UNIX2003 + 71
3   org.bitcoinfoundation.Bitcoin-Qt 0x000cb9f8 boost::condition_variable::wait(boost::unique_lock<boost::mutex>&) + 216
4   org.bitcoinfoundation.Bitcoin-Qt 0x00132210 CCheckQueue<CScriptCheck>::Loop(bool) + 432
5   org.bitcoinfoundation.Bitcoin-Qt 0x000e6973 ThreadScriptCheck() + 67
6   libboost_thread-mt.dylib       0x00d202e2 boost::thread::interruption_requested() const + 250
7   libsystem_pthread.dylib       0x962c95fb _pthread_body + 144
8   libsystem_pthread.dylib       0x962c9485 _pthread_start + 130
9   libsystem_pthread.dylib       0x962cecf2 thread_start + 34

Thread 11:
0   libsystem_kernel.dylib         0x927687ca __psynch_cvwait + 10
1   libsystem_pthread.dylib       0x962cbd1d _pthread_cond_wait + 728
2   libsystem_pthread.dylib       0x962cdbd9 pthread_cond_wait$UNIX2003 + 71
3   org.bitcoinfoundation.Bitcoin-Qt 0x000cb9f8 boost::condition_variable::wait(boost::unique_lock<boost::mutex>&) + 216
4   org.bitcoinfoundation.Bitcoin-Qt 0x00132210 CCheckQueue<CScriptCheck>::Loop(bool) + 432
5   org.bitcoinfoundation.Bitcoin-Qt 0x000e6973 ThreadScriptCheck() + 67
6   libboost_thread-mt.dylib       0x00d202e2 boost::thread::interruption_requested() const + 250
7   libsystem_pthread.dylib       0x962c95fb _pthread_body + 144
8   libsystem_pthread.dylib       0x962c9485 _pthread_start + 130
9   libsystem_pthread.dylib       0x962cecf2 thread_start + 34

Thread 12:
0   libsystem_kernel.dylib         0x927687ca __psynch_cvwait + 10
1   libsystem_pthread.dylib       0x962cbd1d _pthread_cond_wait + 728
2   libsystem_pthread.dylib       0x962cdbd9 pthread_cond_wait$UNIX2003 + 71
3   org.bitcoinfoundation.Bitcoin-Qt 0x000cb9f8 boost::condition_variable::wait(boost::unique_lock<boost::mutex>&) + 216
4   org.bitcoinfoundation.Bitcoin-Qt 0x00132210 CCheckQueue<CScriptCheck>::Loop(bool) + 432
5   org.bitcoinfoundation.Bitcoin-Qt 0x000e6973 ThreadScriptCheck() + 67
6   libboost_thread-mt.dylib       0x00d202e2 boost::thread::interruption_requested() const + 250
7   libsystem_pthread.dylib       0x962c95fb _pthread_body + 144
8   libsystem_pthread.dylib       0x962c9485 _pthread_start + 130
9   libsystem_pthread.dylib       0x962cecf2 thread_start + 34

Thread 13:
0   libsystem_kernel.dylib         0x927687ca __psynch_cvwait + 10
1   libsystem_pthread.dylib       0x962cbd1d _pthread_cond_wait + 728
2   libsystem_pthread.dylib       0x962cdbd9 pthread_cond_wait$UNIX2003 + 71
3   org.bitcoinfoundation.Bitcoin-Qt 0x000cb9f8 boost::condition_variable::wait(boost::unique_lock<boost::mutex>&) + 216
4   org.bitcoinfoundation.Bitcoin-Qt 0x00132210 CCheckQueue<CScriptCheck>::Loop(bool) + 432
5   org.bitcoinfoundation.Bitcoin-Qt 0x000e6973 ThreadScriptCheck() + 67
6   libboost_thread-mt.dylib       0x00d202e2 boost::thread::interruption_requested() const + 250
7   libsystem_pthread.dylib       0x962c95fb _pthread_body + 144
8   libsystem_pthread.dylib       0x962c9485 _pthread_start + 130
9   libsystem_pthread.dylib       0x962cecf2 thread_start + 34

Thread 14:
0   libsystem_kernel.dylib         0x927687ca __psynch_cvwait + 10
1   libsystem_pthread.dylib       0x962cbd1d _pthread_cond_wait + 728
2   libsystem_pthread.dylib       0x962cdc25 pthread_cond_timedwait$UNIX2003 + 71
3   libboost_thread-mt.dylib       0x00d25ead boost::condition_variable::do_wait_until(boost::unique_lock<boost::mutex>&, timespec const&) + 145
4   libboost_thread-mt.dylib       0x00d21828 boost::this_thread::hiden::sleep_for(timespec const&) + 238
5   org.bitcoinfoundation.Bitcoin-Qt 0x00105b60 void boost::this_thread::sleep_for<long long, boost::ratio<1ll, 1000ll> >(boost::chrono::duration<long long, boost::ratio<1ll, 1000ll> > const&) + 208
6   org.bitcoinfoundation.Bitcoin-Qt 0x0015bcb2 ThreadMapPort() + 706
7   org.bitcoinfoundation.Bitcoin-Qt 0x0016be7e void TraceThread<boost::function<void ()> >(char const*, boost::function<void ()>) + 206
8   org.bitcoinfoundation.Bitcoin-Qt 0x00169ce4 boost::detail::thread_data<boost::_bi::bind_t<void, void (*)(char const*, boost::function<void ()>), boost::_bi::list2<boost::_bi::value<char const*>, boost::_bi::value<void (*)()> > > >::run() + 132
9   libboost_thread-mt.dylib       0x00d202e2 boost::thread::interruption_requested() const + 250
10  libsystem_pthread.dylib       0x962c95fb _pthread_body + 144
11  libsystem_pthread.dylib       0x962c9485 _pthread_start + 130
12  libsystem_pthread.dylib       0x962cecf2 thread_start + 34

Thread 15:
0   libsystem_kernel.dylib         0x92768ace __select + 10
1   org.bitcoinfoundation.Bitcoin-Qt 0x0016523c ThreadSocketHandler() + 2604
2   org.bitcoinfoundation.Bitcoin-Qt 0x0016bc7e void TraceThread<void (*)()>(char const*, void (*)()) + 110
3   org.bitcoinfoundation.Bitcoin-Qt 0x001674eb boost::detail::thread_data<boost::_bi::bind_t<void, void (*)(char const*, void (*)()), boost::_bi::list2<boost::_bi::value<char const*>, boost::_bi::value<void (*)()> > > >::run() + 59
4   libboost_thread-mt.dylib       0x00d202e2 boost::thread::interruption_requested() const + 250
5   libsystem_pthread.dylib       0x962c95fb _pthread_body + 144
6   libsystem_pthread.dylib       0x962c9485 _pthread_start + 130
7   libsystem_pthread.dylib       0x962cecf2 thread_start + 34

Thread 16:
0   libsystem_kernel.dylib         0x927687ca __psynch_cvwait + 10
1   libsystem_pthread.dylib       0x962cbd1d _pthread_cond_wait + 728
2   libsystem_pthread.dylib       0x962cdc25 pthread_cond_timedwait$UNIX2003 + 71
3   libboost_thread-mt.dylib       0x00d25ead boost::condition_variable::do_wait_until(boost::unique_lock<boost::mutex>&, timespec const&) + 145
4   libboost_thread-mt.dylib       0x00d21828 boost::this_thread::hiden::sleep_for(timespec const&) + 238
5   org.bitcoinfoundation.Bitcoin-Qt 0x00105b60 void boost::this_thread::sleep_for<long long, boost::ratio<1ll, 1000ll> >(boost::chrono::duration<long long, boost::ratio<1ll, 1000ll> > const&) + 208
6   org.bitcoinfoundation.Bitcoin-Qt 0x0016047a ThreadOpenAddedConnections() + 2794
7   org.bitcoinfoundation.Bitcoin-Qt 0x0016bc7e void TraceThread<void (*)()>(char const*, void (*)()) + 110
8   org.bitcoinfoundation.Bitcoin-Qt 0x001674eb boost::detail::thread_data<boost::_bi::bind_t<void, void (*)(char const*, void (*)()), boost::_bi::list2<boost::_bi::value<char const*>, boost::_bi::value<void (*)()> > > >::run() + 59
9   libboost_thread-mt.dylib       0x00d202e2 boost::thread::interruption_requested() const + 250
10  libsystem_pthread.dylib       0x962c95fb _pthread_body + 144
11  libsystem_pthread.dylib       0x962c9485 _pthread_start + 130
12  libsystem_pthread.dylib       0x962cecf2 thread_start + 34

Thread 17:
0   libsystem_kernel.dylib         0x92768ace __select + 10
1   org.bitcoinfoundation.Bitcoin-Qt 0x000b1bd7 ConnectSocketDirectly(CService const&, unsigned int&, int) + 679
2   org.bitcoinfoundation.Bitcoin-Qt 0x000b2387 ConnectSocket(CService const&, unsigned int&, int) + 119
3   org.bitcoinfoundation.Bitcoin-Qt 0x0015efa1 ConnectNode(CAddress, char const*) + 1105
4   org.bitcoinfoundation.Bitcoin-Qt 0x0015f553 OpenNetworkConnection(CAddress const&, CSemaphoreGrant*, char const*, bool) + 531
5   org.bitcoinfoundation.Bitcoin-Qt 0x00162462 ThreadOpenConnections() + 3202
6   org.bitcoinfoundation.Bitcoin-Qt 0x0016bc7e void TraceThread<void (*)()>(char const*, void (*)()) + 110
7   org.bitcoinfoundation.Bitcoin-Qt 0x001674eb boost::detail::thread_data<boost::_bi::bind_t<void, void (*)(char const*, void (*)()), boost::_bi::list2<boost::_bi::value<char const*>, boost::_bi::value<void (*)()> > > >::run() + 59
8   libboost_thread-mt.dylib       0x00d202e2 boost::thread::interruption_requested() const + 250
9   libsystem_pthread.dylib       0x962c95fb _pthread_body + 144
10  libsystem_pthread.dylib       0x962c9485 _pthread_start + 130
11  libsystem_pthread.dylib       0x962cecf2 thread_start + 34

Thread 18 Crashed:
0   libsystem_kernel.dylib         0x92768952 __pthread_kill + 10
1   libsystem_pthread.dylib       0x962ca167 pthread_kill + 101
2   libsystem_c.dylib             0x964f9340 abort + 155
3   libsystem_c.dylib             0x964c443e __assert_rtn + 347
4   org.bitcoinfoundation.Bitcoin-Qt 0x000d2b0a GetNextWorkRequired(CBlockIndex const*, CBlockHeader const*) + 3466
5   org.bitcoinfoundation.Bitcoin-Qt 0x000f258c CBlock::AcceptBlock(CValidationState&, CDiskBlockPos*) + 1612
6   org.bitcoinfoundation.Bitcoin-Qt 0x000f39b6 ProcessBlock(CValidationState&, CNode*, CBlock*, CDiskBlockPos*) + 1718
7   org.bitcoinfoundation.Bitcoin-Qt 0x000faec9 ProcessMessage(CNode*, std::string, CDataStream&) + 23929
8   org.bitcoinfoundation.Bitcoin-Qt 0x000fca9d ProcessMessages(CNode*) + 1293
9   org.bitcoinfoundation.Bitcoin-Qt 0x0015d671 ThreadMessageHandler() + 865
10  org.bitcoinfoundation.Bitcoin-Qt 0x0016bc7e void TraceThread<void (*)()>(char const*, void (*)()) + 110
11  org.bitcoinfoundation.Bitcoin-Qt 0x001674eb boost::detail::thread_data<boost::_bi::bind_t<void, void (*)(char const*, void (*)()), boost::_bi::list2<boost::_bi::value<char const*>, boost::_bi::value<void (*)()> > > >::run() + 59
12  libboost_thread-mt.dylib       0x00d202e2 boost::thread::interruption_requested() const + 250
13  libsystem_pthread.dylib       0x962c95fb _pthread_body + 144
14  libsystem_pthread.dylib       0x962c9485 _pthread_start + 130
15  libsystem_pthread.dylib       0x962cecf2 thread_start + 34

Thread 19:
0   libsystem_kernel.dylib         0x927687ca __psynch_cvwait + 10
1   libsystem_pthread.dylib       0x962cbd1d _pthread_cond_wait + 728
2   libsystem_pthread.dylib       0x962cdc25 pthread_cond_timedwait$UNIX2003 + 71
3   libboost_thread-mt.dylib       0x00d25ead boost::condition_variable::do_wait_until(boost::unique_lock<boost::mutex>&, timespec const&) + 145
4   libboost_thread-mt.dylib       0x00d21828 boost::this_thread::hiden::sleep_for(timespec const&) + 238
5   org.bitcoinfoundation.Bitcoin-Qt 0x00105b60 void boost::this_thread::sleep_for<long long, boost::ratio<1ll, 1000ll> >(boost::chrono::duration<long long, boost::ratio<1ll, 1000ll> > const&) + 208
6   org.bitcoinfoundation.Bitcoin-Qt 0x0016bae1 void LoopForever<void (*)()>(char const*, void (*)(), long long) + 145
7   org.bitcoinfoundation.Bitcoin-Qt 0x0016748e boost::detail::thread_data<boost::_bi::bind_t<void, void (*)(char const*, void (*)(), long long), boost::_bi::list3<boost::_bi::value<char const*>, boost::_bi::value<void (*)()>, boost::_bi::value<int> > > >::run() + 78
8   libboost_thread-mt.dylib       0x00d202e2 boost::thread::interruption_requested() const + 250
9   libsystem_pthread.dylib       0x962c95fb _pthread_body + 144
10  libsystem_pthread.dylib       0x962c9485 _pthread_start + 130
11  libsystem_pthread.dylib       0x962cecf2 thread_start + 34

Thread 20:
0   libsystem_kernel.dylib         0x927687ca __psynch_cvwait + 10
1   libsystem_pthread.dylib       0x962cbd1d _pthread_cond_wait + 728
2   libsystem_pthread.dylib       0x962cdc25 pthread_cond_timedwait$UNIX2003 + 71
3   libboost_thread-mt.dylib       0x00d25ead boost::condition_variable::do_wait_until(boost::unique_lock<boost::mutex>&, timespec const&) + 145
4   libboost_thread-mt.dylib       0x00d21828 boost::this_thread::hiden::sleep_for(timespec const&) + 238
5   org.bitcoinfoundation.Bitcoin-Qt 0x00105b60 void boost::this_thread::sleep_for<long long, boost::ratio<1ll, 1000ll> >(boost::chrono::duration<long long, boost::ratio<1ll, 1000ll> > const&) + 208
6   org.bitcoinfoundation.Bitcoin-Qt 0x001848f9 ThreadFlushWalletDB(std::string const&) + 297
7   libboost_thread-mt.dylib       0x00d202e2 boost::thread::interruption_requested() const + 250
8   libsystem_pthread.dylib       0x962c95fb _pthread_body + 144
9   libsystem_pthread.dylib       0x962c9485 _pthread_start + 130
10  libsystem_pthread.dylib       0x962cecf2 thread_start + 34

Thread 18 crashed with X86 Thread State (32-bit):
  eax: 0x00000000  ebx: 0xa0baccec  ecx: 0xb0a4880c  edx: 0x92768952
  edi: 0xb0a4a000  esi: 0x00000006  ebp: 0xb0a48828  esp: 0xb0a4880c
   ss: 0x00000023  efl: 0x00000206  eip: 0x92768952   cs: 0x0000000b
   ds: 0x00000023   es: 0x00000023   fs: 0x00000023   gs: 0x0000000f
  cr2: 0x07cd1000
  
Logical CPU:     0
Error Code:      0x00080148
Trap Number:     132


Binary Images:
    0x1000 -   0x623fff +org.bitcoinfoundation.Bitcoin-Qt (0.8.5 - 0.8.5) <D5F19E46-ABD7-239B-BFE7-6F5C80B9F939> /Applications/Bitcoin-Qt.app/Contents/MacOS/Bitcoin-Qt
  0x8c7000 -   0x8ccfe7 +libqrencode.3.dylib (5.1) <C65E635B-0FAE-4467-17EF-25D07E50256C> /Applications/Bitcoin-Qt.app/Contents/Frameworks/libqrencode.3.dylib
  0x8d0000 -   0x8d7ff7 +libminiupnpc.8.dylib (0) <F7531662-3FF5-7991-DD71-651C5FE99160> /Applications/Bitcoin-Qt.app/Contents/Frameworks/libminiupnpc.8.dylib
  0x8db000 -   0x928fef +libssl.1.0.0.dylib (1) <FA2694DE-4C3E-C7DE-0403-839D1EB792C1> /Applications/Bitcoin-Qt.app/Contents/Frameworks/libssl.1.0.0.dylib
  0x942000 -   0xa79fef +libcrypto.1.0.0.dylib (1) <494A2CA1-85D4-CDC2-DBCE-25BBF7DBF689> /Applications/Bitcoin-Qt.app/Contents/Frameworks/libcrypto.1.0.0.dylib
  0xae4000 -   0xc3dfff +libdb_cxx-4.8.dylib (0) <B1B58243-25D9-43B8-E64B-F308533E548D> /Applications/Bitcoin-Qt.app/Contents/Frameworks/libdb_cxx-4.8.dylib
  0xc67000 -   0xc6aff3 +libboost_system-mt.dylib (0) <795B1155-4061-F652-DBDD-6FB349176C3B> /Applications/Bitcoin-Qt.app/Contents/Frameworks/libboost_system-mt.dylib
  0xc6e000 -   0xc81ffb +libboost_filesystem-mt.dylib (0) <FFF4EB47-F5A0-698A-4FA7-B36534E617B8> /Applications/Bitcoin-Qt.app/Contents/Frameworks/libboost_filesystem-mt.dylib
  0xc8d000 -   0xcd1ff3 +libboost_program_options-mt.dylib (0) <5B0D175C-6C15-A3FB-189B-008E7C369F1D> /Applications/Bitcoin-Qt.app/Contents/Frameworks/libboost_program_options-mt.dylib
  0xd1c000 -   0xd2aff7 +libboost_thread-mt.dylib (0) <929BEDDE-5048-A781-6E3B-13495561B53C> /Applications/Bitcoin-Qt.app/Contents/Frameworks/libboost_thread-mt.dylib
  0xd40000 -   0xd45ff3 +libboost_chrono-mt.dylib (0) <D32CEBA0-4BA3-4A63-E6AE-35AB61CF72A7> /Applications/Bitcoin-Qt.app/Contents/Frameworks/libboost_chrono-mt.dylib
  0xd4d000 -  0x16ddfe3 +QtGui (4.8.4) <45E39CCC-CCF6-0EE0-D7F6-7D271638DA91> /Applications/Bitcoin-Qt.app/Contents/Frameworks/QtGui.framework/Versions/4/QtGui
 0x18b4000 -  0x1b63ffb +QtCore (4.8.4) <E25EADA9-A088-72A0-01B8-5B84BF8E3F7C> /Applications/Bitcoin-Qt.app/Contents/Frameworks/QtCore.framework/Versions/4/QtCore
 0x1bd5000 -  0x1cfbfe7 +QtNetwork (4.8.4) <34A4DF29-3114-AA6C-E5C6-1EEB4797E8C8> /Applications/Bitcoin-Qt.app/Contents/Frameworks/QtNetwork.framework/Versions/4/QtNetwork
 0x1d37000 -  0x1d48ff7 +libz.1.dylib (1.2.8) <E655BC48-B0AF-42B8-94AD-F7EA95D8BF66> /Applications/Bitcoin-Qt.app/Contents/Frameworks/libz.1.dylib
 0x1d4c000 -  0x1d69fe7 +libpng15.15.dylib (33) <7C8FEA11-5B44-61F7-281B-F41900DCC62A> /Applications/Bitcoin-Qt.app/Contents/Frameworks/libpng15.15.dylib
 0x7000000 -  0x70b0fff  ColorSyncDeprecated.dylib (426) <F54DBFF3-3165-3D15-8AE4-37B603502A5F> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ColorSync.framework/Versions/A/Resources/ColorSyncDeprecated.dylib
 0x7c09000 -  0x7c0dff3 +libqgif.dylib (0) <88247A6C-7963-6E25-F271-07D15F98CF45> /Applications/Bitcoin-Qt.app/Contents/PlugIns/imageformats/libqgif.dylib
 0x7c12000 -  0x7c16fff +libqico.dylib (0) <7AE39AE4-C88A-D835-F6DB-43C38C12D8C9> /Applications/Bitcoin-Qt.app/Contents/PlugIns/imageformats/libqico.dylib
 0x7c1b000 -  0x7c1ffff +libqjpeg.dylib (0) <79F89247-529B-F274-D63C-3BC66954A5E1> /Applications/Bitcoin-Qt.app/Contents/PlugIns/imageformats/libqjpeg.dylib
 0x7c25000 -  0x7c56ff7 +libjpeg.9.dylib (10) <F010902F-D9A0-F58F-0035-36A0D06E9720> /Applications/Bitcoin-Qt.app/Contents/Frameworks/libjpeg.9.dylib
 0x7c5c000 -  0x7c5fff7 +libqmng.dylib (0) <AED7B482-BE3B-C70A-3E5B-7575C58DBCE3> /Applications/Bitcoin-Qt.app/Contents/PlugIns/imageformats/libqmng.dylib
 0x7c64000 -  0x7cb1fe7 +libmng.1.dylib (2) <CD7A0390-8178-C7A2-BDE6-1B64B3686060> /Applications/Bitcoin-Qt.app/Contents/Frameworks/libmng.1.dylib
 0x7cc6000 -  0x7cc8ffb +libqtga.dylib (0) <DF371BC0-F930-689E-9654-D687DE08B059> /Applications/Bitcoin-Qt.app/Contents/PlugIns/imageformats/libqtga.dylib
 0xaa00000 -  0xaa28fe7 +liblcms.1.dylib (2.19) <22FC09D8-B2D7-0356-CEE7-A8736EFC883A> /Applications/Bitcoin-Qt.app/Contents/Frameworks/liblcms.1.dylib
 0xaa32000 -  0xaa37ff7 +libqtiff.dylib (0) <B5FE6E5D-B0E9-29C2-7C27-3C3EC56457D0> /Applications/Bitcoin-Qt.app/Contents/PlugIns/imageformats/libqtiff.dylib
 0xaa3c000 -  0xaa97ff7 +libtiff.5.dylib (8) <501C7645-645E-2088-1796-25500F82C440> /Applications/Bitcoin-Qt.app/Contents/Frameworks/libtiff.5.dylib
 0xaaa1000 -  0xaabdfe7 +liblzma.5.dylib (6.5) <3275FD00-2EBD-9440-0772-91484DE37BC8> /Applications/Bitcoin-Qt.app/Contents/Frameworks/liblzma.5.dylib
 0xae80000 -  0xaea5ff9  com.apple.framework.familycontrols (4.1 - 410) <A33A97EE-C735-38BA-9B49-5D78DAA3DEDA> /System/Library/PrivateFrameworks/FamilyControls.framework/Versions/A/FamilyControls
 0xaeba000 -  0xaec5ffa  com.apple.CommerceCore (1.0 - 42) <E59717F2-6770-3DBC-8510-F7AA61E60F57> /System/Library/PrivateFrameworks/CommerceKit.framework/Versions/A/Frameworks/CommerceCore.framework/Versions/A/CommerceCore
 0xd40c000 -  0xd447ff3 +libqtaccessiblewidgets.dylib (0) <D256CDF3-59B6-AAC8-D553-A348D30AFD9C> /Applications/Bitcoin-Qt.app/Contents/PlugIns/accessible/libqtaccessiblewidgets.dylib
0x8fe24000 - 0x8fe56417  dyld (239.3) <4B280BB1-55F8-313F-86A6-8ADD644ED69E> /usr/lib/dyld
0x900a7000 - 0x900a7fff  com.apple.Cocoa (6.8 - 20) <407DC9E6-BBCE-3D34-9BBB-00C90584FFDF> /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa
0x900a8000 - 0x900abffb  libutil.dylib (34) <B496031E-E763-3DEB-84D2-85C0F3DF2012> /usr/lib/libutil.dylib
0x900ac000 - 0x900fcff7  libcorecrypto.dylib (161.1) <135FD99E-2211-3DF4-825C-C9F816107F0C> /usr/lib/system/libcorecrypto.dylib
0x900fd000 - 0x90135fff  com.apple.LDAPFramework (2.4.28 - 194.5) <0C42A932-15E8-3CD1-AC35-1DF7D41B25A2> /System/Library/Frameworks/LDAP.framework/Versions/A/LDAP
0x90136000 - 0x90221ff4  com.apple.DiskImagesFramework (10.9 - 371.1) <FC13BD5A-0FB7-35D5-A8DF-0510CFA996FE> /System/Library/PrivateFrameworks/DiskImages.framework/Versions/A/DiskImages
0x90222000 - 0x90234fff  libsystem_asl.dylib (217.1.4) <51EB17C9-9F5B-39F3-B6CD-8EF238B05B89> /usr/lib/system/libsystem_asl.dylib
0x90235000 - 0x90241ffe  libkxld.dylib (2422.1.72) <F9B35FA5-C936-3286-A055-2B0780A674AC> /usr/lib/system/libkxld.dylib
0x90251000 - 0x90289ff7  com.apple.MediaKit (15 - 709) <82E0F8C0-313C-379C-9994-4D21587D0C0C> /System/Library/PrivateFrameworks/MediaKit.framework/Versions/A/MediaKit
0x9028a000 - 0x902b5ff7  libsystem_network.dylib (241.3) <71EBA489-386D-3608-ADE6-CB50EBD1AB1B> /usr/lib/system/libsystem_network.dylib
0x902b6000 - 0x905a8ff8  com.apple.CoreImage (9.0.54) <D7BC3E53-EF5B-3A14-8808-8D45EE505B48> /System/Library/Frameworks/QuartzCore.framework/Versions/A/Frameworks/CoreImage.framework/Versions/A/CoreImage
0x905c7000 - 0x905e2ff5  com.apple.openscripting (1.4 - 157) <5C161A52-8D2F-3D56-A988-05727BED7A59> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/OpenScripting.framework/Versions/A/OpenScripting
0x905e3000 - 0x905ebffe  libGFXShared.dylib (9.0.83) <35644AAA-B1E7-367C-90C0-378024F8A46A> /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGFXShared.dylib
0x905ec000 - 0x906b9ff7  com.apple.backup.framework (1.5 - 1.5) <E33257DD-A751-3230-89B7-B4B79F70A8FB> /System/Library/PrivateFrameworks/Backup.framework/Versions/A/Backup
0x906ba000 - 0x906c5ffb  libcommonCrypto.dylib (60049) <F8E60C43-22EE-3E0B-9546-3365056901F1> /usr/lib/system/libcommonCrypto.dylib
0x906c6000 - 0x9073bff1  com.apple.ApplicationServices.ATS (360 - 363.1) <5C9BC698-0CC1-3F6A-9F9D-BCC3A9C3D6DC> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/ATS
0x9073c000 - 0x9078ffff  com.apple.htmlrendering (77 - 1.1.4) <408FA30F-4FE9-3162-9FFD-677E8569C1EA> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HTMLRendering.framework/Versions/A/HTMLRendering
0x907c1000 - 0x907d1ff5  com.apple.LangAnalysis (1.7.0 - 1.7.0) <71DE7754-0A47-3F35-B1BF-B1FE7E1311E0> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/LangAnalysis.framework/Versions/A/LangAnalysis
0x907d2000 - 0x907d3ffc  com.apple.TrustEvaluationAgent (2.0 - 25) <064B485D-56E0-3DD7-BBE2-E08A5BFFF8B3> /System/Library/PrivateFrameworks/TrustEvaluationAgent.framework/Versions/A/TrustEvaluationAgent
0x907d4000 - 0x90870fff  com.apple.QD (3.50 - 298) <F73FD4D4-17A4-37D6-AC06-7CA5A8BA1212> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/QD.framework/Versions/A/QD
0x90a5d000 - 0x90a6bff3  com.apple.opengl (9.0.83 - 9.0.83) <16CFFD50-217E-3E18-88AF-7F2AD980628B> /System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL
0x90ac2000 - 0x90d26fff  com.apple.CoreData (107 - 481) <F699EC21-57D9-3AE6-A17B-C1D1092780BD> /System/Library/Frameworks/CoreData.framework/Versions/A/CoreData
0x90d27000 - 0x90d27fff  libodfde.dylib (20) <98FC02AE-C596-3ED5-80D1-C502FF6115ED> /usr/lib/libodfde.dylib
0x90d28000 - 0x90d56ff3  com.apple.DebugSymbols (106 - 106) <FC70F4C9-B2A6-352F-9563-6C085E9DDDB8> /System/Library/PrivateFrameworks/DebugSymbols.framework/Versions/A/DebugSymbols
0x90d57000 - 0x90d95ff7  com.apple.NavigationServices (3.8 - 215) <A093AAF0-248E-313E-BA82-01F69E269895> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/NavigationServices.framework/Versions/A/NavigationServices
0x90d96000 - 0x90d99ffe  com.apple.LoginUICore (3.0 - 3.0) <6FE961A4-3C17-3004-B50B-FD78FDC28350> /System/Library/PrivateFrameworks/LoginUIKit.framework/Versions/A/Frameworks/LoginUICore.framework/Versions/A/LoginUICore
0x90e63000 - 0x90e7bff7  libsystem_malloc.dylib (23.1.10) <69F485C9-B3E7-3E36-A06C-D7DFD29D22E1> /usr/lib/system/libsystem_malloc.dylib
0x90e7c000 - 0x90e8bfff  libGL.dylib (9.0.83) <E76D1F2A-D98B-3464-AD0B-FC1EBBADF027> /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib
0x90e8c000 - 0x90eb8ff7  com.apple.DictionaryServices (1.2 - 208) <33873336-BECD-3F62-A315-C45F24C1818C> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/DictionaryServices.framework/Versions/A/DictionaryServices
0x90eb9000 - 0x90ebbffb  libRadiance.dylib (1038) <F0D3F13B-5628-3DF9-8B86-A4D914567B25> /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libRadiance.dylib
0x90ebc000 - 0x911bdff7  com.apple.CoreServices.CarbonCore (1077.13 - 1077.13) <C514A490-8689-3665-AD82-863B5FF8D6AE> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/CarbonCore.framework/Versions/A/CarbonCore
0x911be000 - 0x911c7fff  com.apple.DiskArbitration (2.6 - 2.6) <6379523D-3196-370C-AE4A-8EA586E36909> /System/Library/Frameworks/DiskArbitration.framework/Versions/A/DiskArbitration
0x911c8000 - 0x91226ffd  com.apple.AE (665.5 - 665.5) <54F2F247-160C-3A22-A6E3-5D49655A67AB> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/AE.framework/Versions/A/AE
0x9128b000 - 0x912a3ffd  libdispatch.dylib (339.1.9) <6249BAE5-044F-3A7A-9CCC-03FF7E6B405B> /usr/lib/system/libdispatch.dylib
0x912a4000 - 0x916d8ff7  com.apple.vision.FaceCore (3.0.0 - 3.0.0) <5B12F3E9-84F6-3183-B85D-FD19EF800ADB> /System/Library/PrivateFrameworks/FaceCore.framework/Versions/A/FaceCore
0x91858000 - 0x91875ffb  libresolv.9.dylib (54) <3EC12A7F-6BA1-3976-9F1F-6A4B76303028> /usr/lib/libresolv.9.dylib
0x91878000 - 0x91888ff7  libsasl2.2.dylib (170) <CA1C07F6-8E17-315E-AE49-AB696DDE6707> /usr/lib/libsasl2.2.dylib
0x91889000 - 0x918a3ff7  com.apple.GenerationalStorage (2.0 - 160.2) <8755F7F1-2402-387C-A32A-2270E7D680C8> /System/Library/PrivateFrameworks/GenerationalStorage.framework/Versions/A/GenerationalStorage
0x91c5c000 - 0x91d93ff3  com.apple.desktopservices (1.8 - 1.8) <4D853961-F911-3FE2-A7DF-3130EA1D8CEB> /System/Library/PrivateFrameworks/DesktopServicesPriv.framework/Versions/A/DesktopServicesPriv
0x91d94000 - 0x91d9dffa  com.apple.CommonAuth (4.0 - 2.0) <6CB82D57-3C55-39E5-9036-8047DF3E6F57> /System/Library/PrivateFrameworks/CommonAuth.framework/Versions/A/CommonAuth
0x91d9e000 - 0x91dedfff  com.apple.opencl (2.3.57 - 2.3.57) <93385E1C-00D9-31BE-9652-7F3C09484B3E> /System/Library/Frameworks/OpenCL.framework/Versions/A/OpenCL
0x91dee000 - 0x91e64ff3  com.apple.securityfoundation (6.0 - 55122) <25149798-A37E-316F-84AB-93029EAF33D8> /System/Library/Frameworks/SecurityFoundation.framework/Versions/A/SecurityFoundation
0x91e6e000 - 0x91f1affb  libvMisc.dylib (423.32) <43873EFF-FB43-3301-BEE8-F2C3A046D7A6> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libvMisc.dylib
0x91f1b000 - 0x92205fd2  com.apple.vImage (7.0 - 7.0) <256972F0-3DBC-3CE1-9EE8-B48243868729> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vImage.framework/Versions/A/vImage
0x9252d000 - 0x92549fff  libCRFSuite.dylib (34) <FFF76EBA-DF35-3A5F-857F-3F4B1C9F4C77> /usr/lib/libCRFSuite.dylib
0x92708000 - 0x92714ff7  com.apple.OpenDirectory (10.9 - 173.1.1) <2AA24814-2DC6-3E28-B71B-186B686F0F19> /System/Library/Frameworks/OpenDirectory.framework/Versions/A/OpenDirectory
0x92747000 - 0x92750fff  com.apple.speech.recognition.framework (4.2.4 - 4.2.4) <CF8E5706-F744-3139-8A51-D52BF055D19F> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/SpeechRecognition.framework/Versions/A/SpeechRecognition
0x92751000 - 0x9276eff4  libsystem_kernel.dylib (2422.1.72) <C5641F6C-E271-380A-A656-AE4C04345602> /usr/lib/system/libsystem_kernel.dylib
0x9276f000 - 0x927d0ff7  com.apple.Symbolication (1.4 - 129) <E5948C08-6ADF-3D86-9134-6AE49CF1DA0F> /System/Library/PrivateFrameworks/Symbolication.framework/Versions/A/Symbolication
0x927d1000 - 0x9282affa  libTIFF.dylib (1038) <691DAAFD-D72B-3BE9-AE5C-84AF86BE66CD> /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libTIFF.dylib
0x9282b000 - 0x929d34af  libobjc.A.dylib (551.1) <31CBE178-E972-30D1-ADC6-4B8345CAE326> /usr/lib/libobjc.A.dylib
0x92d1b000 - 0x92d90ffb  com.apple.framework.IOKit (2.0.1 - 907.1.13) <86D72735-9DFB-35C8-83F7-CE0DCF17D354> /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit
0x92d91000 - 0x92db9ff7  libRIP.A.dylib (599.7) <461297C0-DDA9-3613-8F27-D7F1AC57208F> /System/Library/Frameworks/CoreGraphics.framework/Versions/A/Resources/libRIP.A.dylib
0x92dc2000 - 0x92dcfff7  com.apple.AppleFSCompression (56 - 1.0) <0C44B3E4-C4A7-3A65-9C1A-334CA3E35BDB> /System/Library/PrivateFrameworks/AppleFSCompression.framework/Versions/A/AppleFSCompression
0x92dd0000 - 0x92ebcff7  libxml2.2.dylib (26) <32040145-6FD6-3AD2-B98B-39F73BF9AC47> /usr/lib/libxml2.2.dylib
0x92ebd000 - 0x92f3dff7  com.apple.CoreServices.OSServices (600.4 - 600.4) <1227DF22-E2DA-3764-A1CA-10CC0CEBE377> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/OSServices.framework/Versions/A/OSServices
0x92f3e000 - 0x92f69ff5  com.apple.ChunkingLibrary (2.0 - 155.1) <50BBBBF8-F30B-39EA-A512-11A47F429F2C> /System/Library/PrivateFrameworks/ChunkingLibrary.framework/Versions/A/ChunkingLibrary
0x92f6a000 - 0x92f6afff  com.apple.Accelerate (1.9 - Accelerate 1.9) <C85070A7-D942-3CFA-981F-5864480788C8> /System/Library/Frameworks/Accelerate.framework/Versions/A/Accelerate
0x92f6b000 - 0x92f93fff  libsystem_info.dylib (449.1.3) <BB68E8CC-422F-3121-8C86-D0F766FB696D> /usr/lib/system/libsystem_info.dylib
0x9305b000 - 0x9305eff7  com.apple.help (1.3.3 - 46) <AB6292FA-D3BC-3D56-B3A5-2BE630A503E7> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/Help.framework/Versions/A/Help
0x9305f000 - 0x93063ffc  libpam.2.dylib (20) <50623D44-795F-3E28-AA85-23E0E7E2AE0E> /usr/lib/libpam.2.dylib
0x93087000 - 0x9311fff7  com.apple.Metadata (10.7.0 - 800.12) <0AE4CD6B-FDFC-31ED-9F2C-FE870155CAF9> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/Metadata.framework/Versions/A/Metadata
0x93120000 - 0x93132fff  libbsm.0.dylib (33) <1BE92DB5-0D2F-3BB5-BCC6-8A71EF2A3450> /usr/lib/libbsm.0.dylib
0x93133000 - 0x93170ffb  libGLImage.dylib (9.0.83) <FA15FEB5-54E4-313B-8E78-A2D2E6C88FE1> /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLImage.dylib
0x93171000 - 0x93174fff  libdyld.dylib (239.3) <729B32AC-EEE2-3739-8CE3-F90838D51906> /usr/lib/system/libdyld.dylib
0x93175000 - 0x9317cff2  com.apple.NetFS (6.0 - 4.0) <915AA303-C02B-3B0C-8208-D8AAA4350DB4> /System/Library/Frameworks/NetFS.framework/Versions/A/NetFS
0x9317d000 - 0x93181fff  com.apple.CommonPanels (1.2.6 - 96) <E7CA63C6-CEE9-3F0A-93A7-C12C653FFB80> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/CommonPanels.framework/Versions/A/CommonPanels
0x9328b000 - 0x932affff  libJPEG.dylib (1038) <212B0986-9227-397C-9493-BCB190EC020E> /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libJPEG.dylib
0x9332c000 - 0x933cbff7  libCoreStorage.dylib (380) <55467C87-E1A3-3057-B428-9BCEFD39E36D> /usr/lib/libCoreStorage.dylib
0x933cc000 - 0x9341aff9  com.apple.HIServices (1.22 - 466) <30636237-408A-3552-90C1-1279348DF7CB> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/HIServices.framework/Versions/A/HIServices
0x93454000 - 0x93656ff7  com.apple.CoreFoundation (6.9 - 855.11) <50F70E07-043A-3A2F-87EF-A36BA6C5C9D9> /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation
0x93657000 - 0x93658fff  libDiagnosticMessagesClient.dylib (100) <B936B1D4-90BB-395D-8EA9-E1237608E7D0> /usr/lib/libDiagnosticMessagesClient.dylib
0x93659000 - 0x93805ff1  com.apple.QuartzCore (1.8 - 332.0) <07F9B77F-35A2-3D21-99FA-CD3FCE5B9C7B> /System/Library/Frameworks/QuartzCore.framework/Versions/A/QuartzCore
0x93806000 - 0x938c9ff1  com.apple.CoreText (352.0 - 367.15) <746AD442-F7B4-3273-A36D-C7103D26F727> /System/Library/Frameworks/CoreText.framework/Versions/A/CoreText
0x938ca000 - 0x9390cfff  libGLU.dylib (9.0.83) <0D9BFE5A-435E-3C66-AF96-D3567B8FC87B> /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLU.dylib
0x939a8000 - 0x939cffff  com.apple.CoreVideo (1.8 - 117.2) <A53FDD90-F200-3F7C-8A8E-5DE36D3DFBB0> /System/Library/Frameworks/CoreVideo.framework/Versions/A/CoreVideo
0x939d0000 - 0x93a16fff  libcurl.4.dylib (78) <EC84399F-5EA8-321B-B122-99730CC557C8> /usr/lib/libcurl.4.dylib
0x93a17000 - 0x93a48ffd  com.apple.GSS (4.0 - 2.0) <6BA01155-4DAD-30EE-B480-D224650EA010> /System/Library/Frameworks/GSS.framework/Versions/A/GSS
0x93aac000 - 0x93b7cfef  libvDSP.dylib (423.32) <E2FA7230-A001-3F6B-9ACF-6998C51AD7DC> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libvDSP.dylib
0x93b7d000 - 0x93b7efff  liblangid.dylib (117) <F18F76C6-7E4B-34AD-AE81-C1C031BF2F7D> /usr/lib/liblangid.dylib
0x93b7f000 - 0x93c73fff  libFontParser.dylib (111.1) <D8F9B2A4-41A6-3407-8D80-13A841F97BE5> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/Resources/libFontParser.dylib
0x93c74000 - 0x93cd0ffa  com.apple.print.framework.PrintCore (9.0 - 428) <3E248391-2669-328B-B84F-8763FE8E92BB> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/PrintCore.framework/Versions/A/PrintCore
0x93cd1000 - 0x93d62fff  com.apple.ColorSync (4.9.0 - 4.9.0) <8366AE10-0396-3100-B87A-A176E8ECE7B6> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ColorSync.framework/Versions/A/ColorSync
0x93d63000 - 0x93d68ff6  libcompiler_rt.dylib (35) <9924DF2E-D80B-3A21-920D-544A4597203F> /usr/lib/system/libcompiler_rt.dylib
0x93d69000 - 0x93dafff7  libFontRegistry.dylib (127) <A0930DB2-A6C6-3C6E-B4A2-119E0D76FD7D> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/Resources/libFontRegistry.dylib
0x94034000 - 0x94073ff7  com.apple.bom (12.0 - 192) <50F9D23C-9C9A-38BF-B4E2-66D93BE2A174> /System/Library/PrivateFrameworks/Bom.framework/Versions/A/Bom
0x94fc6000 - 0x950acff7  com.apple.coreui (2.1 - 231) <1C1AE894-C5C2-3F1C-BF29-B152ECD9BD88> /System/Library/PrivateFrameworks/CoreUI.framework/Versions/A/CoreUI
0x950ad000 - 0x95cc8ff3  com.apple.AppKit (6.9 - 1265) <AE258D94-0272-394F-BBB7-9B5C165A4A78> /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit
0x95cc9000 - 0x95da4ff7  com.apple.LaunchServices (572.23 - 572.23) <7E52FB5C-9ECF-3CB9-BF18-6652B8D8CDE0> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/LaunchServices
0x95da5000 - 0x95da7ff2  com.apple.EFILogin (2.0 - 2) <BC558029-74C0-3A69-B376-8F4CBF8C338F> /System/Library/PrivateFrameworks/EFILogin.framework/Versions/A/EFILogin
0x95dc8000 - 0x95dd0fff  libsystem_dnssd.dylib (522.1.11) <1C015806-B971-34F9-B162-3DF7897351D0> /usr/lib/system/libsystem_dnssd.dylib
0x95dd1000 - 0x95e68ff7  com.apple.ink.framework (10.9 - 207) <EF00BCCB-B270-3F3D-9424-EF5F4BC23E25> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/Ink.framework/Versions/A/Ink
0x95e69000 - 0x95e69fff  com.apple.Accelerate.vecLib (3.9 - vecLib 3.9) <DDAC0B59-F886-3AB1-98E8-C71FFF161CD4> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/vecLib
0x95e6a000 - 0x95e6cfff  libquarantine.dylib (71) <EE3B510E-1AEC-3171-8A1A-D6A5A42CF35C> /usr/lib/system/libquarantine.dylib
0x95e6d000 - 0x96265ff3  com.apple.CoreGraphics (1.600.0 - 599.7) <DB004990-F06F-3768-AE4C-191B3C748EFC> /System/Library/Frameworks/CoreGraphics.framework/Versions/A/CoreGraphics
0x96266000 - 0x96271ff6  com.apple.NetAuth (5.0 - 5.0) <3B2E9615-EE12-38FC-BDCF-09529FF9464B> /System/Library/PrivateFrameworks/NetAuth.framework/Versions/A/NetAuth
0x962c8000 - 0x962cfffb  libsystem_pthread.dylib (53.1.4) <8B1B7B84-1B5D-32A8-AC0D-1E689E5C8A4C> /usr/lib/system/libsystem_pthread.dylib
0x96300000 - 0x96303ffa  libCGXType.A.dylib (599.7) <2738FF52-4B47-31AD-B7E5-412F6AFACC2A> /System/Library/Frameworks/CoreGraphics.framework/Versions/A/Resources/libCGXType.A.dylib
0x96304000 - 0x96307ff9  com.apple.TCC (1.0 - 1) <A5FCF7AA-3F56-3A19-9DF1-661F1F02F79D> /System/Library/PrivateFrameworks/TCC.framework/Versions/A/TCC
0x96308000 - 0x9630dff7  com.apple.print.framework.Print (9.0 - 260) <A6C465F6-C5D1-353A-9F33-19B9CEDBBC2A> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/Print.framework/Versions/A/Print
0x9649c000 - 0x9652effe  libsystem_c.dylib (997.1.1) <D06FD754-8CE3-3EB7-BE05-2EF939BBE05F> /usr/lib/system/libsystem_c.dylib
0x9666f000 - 0x96679ff7  com.apple.DirectoryService.Framework (10.9 - 173.1.1) <D6735614-EF4B-389F-BF99-7D8416A504BA> /System/Library/Frameworks/DirectoryService.framework/Versions/A/DirectoryService
0x9667a000 - 0x966cfff7  com.apple.audio.CoreAudio (4.2.0 - 4.2.0) <0F1C111F-1E64-33BB-A69F-14643B3037D5> /System/Library/Frameworks/CoreAudio.framework/Versions/A/CoreAudio
0x966d0000 - 0x966d4ffe  libCoreVMClient.dylib (58.1) <0EB8FFD7-AFED-3A63-810E-29629831D43D> /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libCoreVMClient.dylib
0x9698a000 - 0x96993fff  com.apple.audio.SoundManager (4.1 - 4.1) <68B7CEB7-AF09-3E24-8548-6ABF065B5186> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/CarbonSound.framework/Versions/A/CarbonSound
0x96994000 - 0x969c5ffa  libsystem_m.dylib (3047.16) <28E614E8-7802-3E84-960A-AD4721EF10F7> /usr/lib/system/libsystem_m.dylib
0x969c6000 - 0x969d1fff  com.apple.CrashReporterSupport (10.9 - 538) <7A5FF845-433C-33E3-99B5-F6AA5B825734> /System/Library/PrivateFrameworks/CrashReporterSupport.framework/Versions/A/CrashReporterSupport
0x96b3a000 - 0x96b5dff7  libc++abi.dylib (48) <5367BE5A-D475-3FB4-972D-E1DC999A709A> /usr/lib/libc++abi.dylib
0x96b5e000 - 0x96b88fff  libxslt.1.dylib (13) <249D54AB-1D82-38FE-ABEC-0D575450C73B> /usr/lib/libxslt.1.dylib
0x96b89000 - 0x96badfff  libxpc.dylib (300.1.17) <252BC88F-A5CA-3E67-AEDB-3D7B9F4537E2> /usr/lib/system/libxpc.dylib
0x96bae000 - 0x96bb0fff  libsystem_configuration.dylib (596.12) <1C31C3F6-568D-3854-AE03-A5DA2F39297E> /usr/lib/system/libsystem_configuration.dylib
0x96bb7000 - 0x96d0dff0  libBLAS.dylib (1094.5) <74310C2F-4FDB-3995-A01A-5AFB83010A43> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib
0x96d0e000 - 0x96d44fff  com.apple.IconServices (25 - 25.17) <A4B5242B-765E-3D58-B066-BBEDB5947AAD> /System/Library/PrivateFrameworks/IconServices.framework/Versions/A/IconServices
0x971ed000 - 0x97258ff9  com.apple.Heimdal (4.0 - 2.0) <E3091095-A893-3089-8DA1-8705B3BE5BF9> /System/Library/PrivateFrameworks/Heimdal.framework/Versions/A/Heimdal
0x9725a000 - 0x9736cffc  libsqlite3.dylib (158) <B3DB0FED-FE4C-314D-8329-CF7708C8AAF4> /usr/lib/libsqlite3.dylib
0x9736d000 - 0x973e0fff  com.apple.SearchKit (1.4.0 - 1.4.0) <6F607AB6-7553-37BA-BEC5-98FD7C27FAD7> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/SearchKit.framework/Versions/A/SearchKit
0x973e1000 - 0x973e1fff  com.apple.Carbon (154 - 157) <6E680560-FD53-3C00-BDF7-7AFA28747DC8> /System/Library/Frameworks/Carbon.framework/Versions/A/Carbon
0x974b7000 - 0x974b7fff  libkeymgr.dylib (28) <1B097DEA-011E-3B1C-86D5-6C7FAD5C765A> /usr/lib/system/libkeymgr.dylib
0x974b8000 - 0x974c3fff  libcsfde.dylib (380) <C9E61AFB-1A9D-324B-9827-06B182CDD7B0> /usr/lib/libcsfde.dylib
0x977f6000 - 0x977f7fff  libsystem_blocks.dylib (63) <2AC67D5E-ECD4-3644-A53C-9684F9B7AA33> /usr/lib/system/libsystem_blocks.dylib
0x977f8000 - 0x97828ff7  com.apple.CoreServicesInternal (184.8 - 184.8) <88528205-9452-3EEC-BB27-DAAA7EC81E04> /System/Library/PrivateFrameworks/CoreServicesInternal.framework/Versions/A/CoreServicesInternal
0x9782b000 - 0x9799dffb  com.apple.audio.toolbox.AudioToolbox (1.9 - 1.9) <E5FFD35D-18CF-333C-BECE-39F8E47BE707> /System/Library/Frameworks/AudioToolbox.framework/Versions/A/AudioToolbox
0x9799e000 - 0x979d3ffd  libssl.0.9.8.dylib (50) <F3BEA2DF-DB84-37F0-B4C7-97C0A4DF19C9> /usr/lib/libssl.0.9.8.dylib
0x979d4000 - 0x97a03fff  com.apple.framework.SystemAdministration (1.0 - 1.0) <05E81260-7DC7-3546-B45D-15B3E5DF056D> /System/Library/PrivateFrameworks/SystemAdministration.framework/Versions/A/SystemAdministration
0x97a04000 - 0x97a05fff  libSystem.B.dylib (1197.1.1) <C58F0CC9-C1FD-3024-9358-D3359A6BBCAD> /usr/lib/libSystem.B.dylib
0x97a06000 - 0x97a06fff  com.apple.ApplicationServices (48 - 48) <7967F6FA-2984-3CC3-AD9A-7B9AEC562A2A> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices
0x97a07000 - 0x97a0bfff  libheimdal-asn1.dylib (323.12) <9EA2A221-301B-3B9A-BBF2-38134145B5A8> /usr/lib/libheimdal-asn1.dylib
0x97a20000 - 0x97a29fff  libsystem_notify.dylib (121) <623269F5-1518-3035-A916-8AF83C972154> /usr/lib/system/libsystem_notify.dylib
0x97a2a000 - 0x97a76ff7  libcups.2.dylib (372) <9A2BE8DC-37E4-3019-B665-1036FE7868EA> /usr/lib/libcups.2.dylib
0x97a77000 - 0x97a81ff7  com.apple.speech.synthesis.framework (4.6.2 - 4.6.2) <16E20DCD-89F4-3C8E-9DBA-EED359807038> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/SpeechSynthesis.framework/Versions/A/SpeechSynthesis
0x97a82000 - 0x97aebfff  com.apple.SystemConfiguration (1.13 - 1.13) <542075CD-9085-3F30-B84B-DD0277D6A40E> /System/Library/Frameworks/SystemConfiguration.framework/Versions/A/SystemConfiguration
0x97aec000 - 0x97aedffd  libunc.dylib (28) <22A126A1-DCFB-3BE5-A66B-C973F0A5D839> /usr/lib/system/libunc.dylib
0x97aee000 - 0x97b57fff  com.apple.datadetectorscore (5.0 - 354.0) <0C6C812D-3E7A-31A4-BFDE-CD3316AA35B6> /System/Library/PrivateFrameworks/DataDetectorsCore.framework/Versions/A/DataDetectorsCore
0x97b58000 - 0x97b66ff7  com.apple.Sharing (132.2 - 132.2) <87DBFC7A-9689-3B8E-AD16-5A9DFF9DE625> /System/Library/PrivateFrameworks/Sharing.framework/Versions/A/Sharing
0x97cd8000 - 0x97dd6fff  libJP2.dylib (1038) <EE0B9985-625D-39E6-B425-03FB75BA2594> /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libJP2.dylib
0x97dd7000 - 0x97deafff  com.apple.ImageCapture (9.0 - 9.0) <63D5C96F-1893-3F35-ADFB-EE451AFD87E6> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/ImageCapture.framework/Versions/A/ImageCapture
0x97deb000 - 0x97df9fff  libxar.1.dylib (202) <B73748D4-F830-3C71-98B3-7A3ABF5136FD> /usr/lib/libxar.1.dylib
0x97dfa000 - 0x97e42fff  com.apple.PerformanceAnalysis (1.47 - 47) <16935C0F-7F9F-316E-9D46-11973DE0904A> /System/Library/PrivateFrameworks/PerformanceAnalysis.framework/Versions/A/PerformanceAnalysis
0x97e43000 - 0x97e44ffa  libsystem_sandbox.dylib (278.10) <F3C9C427-AF9F-3CE0-95FF-DC9ACA0B5760> /usr/lib/system/libsystem_sandbox.dylib
0x97e68000 - 0x97fcaff3  com.apple.CFNetwork (673.0.3 - 673.0.3) <5E0E9AE8-073B-3F2B-B0C7-A0129DE787F6> /System/Library/Frameworks/CFNetwork.framework/Versions/A/CFNetwork
0x97fcb000 - 0x98021ff6  com.apple.ScalableUserInterface (1.0 - 1) <2C81641B-FA30-32FF-8B3E-3CB9BF53B2D9> /System/Library/Frameworks/QuartzCore.framework/Versions/A/Frameworks/ScalableUserInterface.framework/Versions/A/ScalableUserInterface
0x98022000 - 0x98024fff  com.apple.securityhi (9.0 - 55005) <51765C73-80D1-33E3-9589-3E88380CE007> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/SecurityHI.framework/Versions/A/SecurityHI
0x98025000 - 0x98031ffc  libbz2.1.0.dylib (29) <3CEF1E92-BA42-3F8A-8E8D-9E1F7658E5C7> /usr/lib/libbz2.1.0.dylib
0x98032000 - 0x9803ffff  com.apple.Librarian (1.2 - 1) <F85681E3-3398-327B-829B-1D8078C38C22> /System/Library/PrivateFrameworks/Librarian.framework/Versions/A/Librarian
0x98040000 - 0x98040fff  com.apple.CoreServices (59 - 59) <06747539-5035-3307-8645-9BC4E7F89023> /System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices
0x98041000 - 0x98047ff7  com.apple.AOSNotification (1.7.0 - 760.3) <63F7E7F8-6FA3-38D3-9907-CDF360CA9354> /System/Library/PrivateFrameworks/AOSNotification.framework/Versions/A/AOSNotification
0x98809000 - 0x989cfffb  libicucore.A.dylib (511.25) <44DDE9A4-578E-3D23-A41A-D8795D000A18> /usr/lib/libicucore.A.dylib
0x989d0000 - 0x989e8fff  com.apple.CFOpenDirectory (10.9 - 173.1.1) <630A5CCF-8FC3-379D-B0BD-41DCE1F0B624> /System/Library/Frameworks/OpenDirectory.framework/Versions/A/Frameworks/CFOpenDirectory.framework/Versions/A/CFOpenDirectory
0x98a50000 - 0x98b33ff7  libcrypto.0.9.8.dylib (50) <B367D3A3-FC1F-326C-92EC-CAD81666524D> /usr/lib/libcrypto.0.9.8.dylib
0x98bda000 - 0x98bdaffd  libOpenScriptingUtil.dylib (157) <4D06E8ED-D312-34EA-A448-DFF45ADC3CE5> /usr/lib/libOpenScriptingUtil.dylib
0x98c01000 - 0x98c01ffd  com.apple.audio.units.AudioUnit (1.9 - 1.9) <8A37963C-DF6F-3DFF-94E9-407DC5DFEDA9> /System/Library/Frameworks/AudioUnit.framework/Versions/A/AudioUnit
0x9a103000 - 0x9a107ffc  com.apple.IOSurface (91 - 91) <DECEEB72-3C7E-3C21-9237-E5AD293F8B09> /System/Library/Frameworks/IOSurface.framework/Versions/A/IOSurface
0x9a108000 - 0x9a10cffa  libGIF.dylib (1038) <5CEB4EDF-B0B6-33A6-BDDE-8C0D3226FA72> /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libGIF.dylib
0x9a10d000 - 0x9a482ff9  com.apple.HIToolbox (2.1 - 695) <74E2DE33-E48E-3206-BD78-AFB988235A83> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/HIToolbox
0x9a483000 - 0x9a491ff7  libz.1.dylib (53) <858B4D9F-D87E-3D81-B07A-DF9632BD185F> /usr/lib/libz.1.dylib
0x9a492000 - 0x9a49aff7  libCGCMS.A.dylib (599.7) <A7404924-9A2B-3324-A934-BD08953E7098> /System/Library/Frameworks/CoreGraphics.framework/Versions/A/Resources/libCGCMS.A.dylib
0x9a49b000 - 0x9a708ff6  com.apple.security (7.0 - 55471) <5FCF76B2-92C6-3404-87D3-91B3F6E203AA> /System/Library/Frameworks/Security.framework/Versions/A/Security
0x9a71d000 - 0x9aae2ff6  libLAPACK.dylib (1094.5) <E6286E68-3501-31AC-813E-75B3B3968011> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libLAPACK.dylib
0x9aae3000 - 0x9aae5ffe  libCVMSPluginSupport.dylib (9.0.83) <BD30BDD1-DD5B-3F31-A09B-C274EA93CD7C> /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libCVMSPluginSupport.dylib
0x9aae6000 - 0x9aaeaffa  libcache.dylib (62) <9730D7F2-D226-3F30-8D26-BF598CB781F6> /usr/lib/system/libcache.dylib
0x9aaeb000 - 0x9aaecfff  libremovefile.dylib (33) <ED35EA79-EB06-3B84-A6D4-B1A9D6B8648D> /usr/lib/system/libremovefile.dylib
0x9aaed000 - 0x9aaf2ff3  libsystem_platform.dylib (24.1.4) <875321B9-34EF-3FCC-880C-633FA05223F5> /usr/lib/system/libsystem_platform.dylib
0x9aaf3000 - 0x9ab7cfff  com.apple.CoreSymbolication (3.0 - 141) <178DDF5C-B6DA-39BD-84F5-FD3FA7E93BF8> /System/Library/PrivateFrameworks/CoreSymbolication.framework/Versions/A/CoreSymbolication
0x9ab7d000 - 0x9ab83ffb  libunwind.dylib (35.3) <099D1A6F-A1F0-3D05-BF1C-0A7BB32D39C2> /usr/lib/system/libunwind.dylib
0x9ac0e000 - 0x9ac12ff7  libmacho.dylib (845) <D8E93E59-1F80-3413-B9CF-78B848F6E873> /usr/lib/system/libmacho.dylib
0x9ac13000 - 0x9ad03ffb  libiconv.2.dylib (41) <848FEBA7-2E3E-3ECB-BD59-007F32468787> /usr/lib/libiconv.2.dylib
0x9ad04000 - 0x9ad55ff1  libstdc++.6.dylib (60) <354F284B-2343-3810-9CA2-E28038824F6E> /usr/lib/libstdc++.6.dylib
0x9af1e000 - 0x9af32ff9  com.apple.MultitouchSupport.framework (245.13 - 245.13) <6860A0D0-3654-3B02-B2E9-C4D2637167B8> /System/Library/PrivateFrameworks/MultitouchSupport.framework/Versions/A/MultitouchSupport
0x9af4b000 - 0x9b057fff  com.apple.ImageIO.framework (3.3.0 - 1038) <0B4A6607-9FBC-3A6C-984A-0542DE8385FB> /System/Library/Frameworks/ImageIO.framework/Versions/A/ImageIO
0x9b058000 - 0x9b094ff4  com.apple.RemoteViewServices (2.0 - 94) <BEEE6ADF-7DA3-3D68-BCB0-9863BE1A1F46> /System/Library/PrivateFrameworks/RemoteViewServices.framework/Versions/A/RemoteViewServices
0x9b095000 - 0x9b3c0ff6  com.apple.Foundation (6.9 - 1056) <C8AE9C03-3460-354A-A8B6-EF4955BE600D> /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation
0x9b6e4000 - 0x9b7abff7  com.apple.DiscRecording (8.0 - 8000.4.6) <84A7EC09-3BBD-3E04-A88C-6D3B724448FF> /System/Library/Frameworks/DiscRecording.framework/Versions/A/DiscRecording
0x9bd1a000 - 0x9bd22fff  liblaunch.dylib (842.1.4) <3798500D-4436-3AEB-B273-7F2428C33A4A> /usr/lib/system/liblaunch.dylib
0x9bdfd000 - 0x9be19ff9  com.apple.Ubiquity (1.3 - 289) <1CED


Title: Re: GPG Signed test binaries with possible fix
Post by: wtogami on December 03, 2013, 12:08:14 AM
Tried all of the above betas. Bitcoin-QT will start up and I can use it UNLESS it is connected to the internet. Soon as it finds Peers, Boom I get a force close, and the error. Where do I go from here?  I have a few thousand worth of BTC and I need to move it.

These builds with hypothetical Mac fixes will not fix an already corrupted database.  Please consider using -reindex.  Use 0.8.5-OMG7-no-mmap2 for now.  New builds coming soon.


Title: Re: MacOS X LevelDB Corruption Bounty (10.00 BTC + 200.2 LTC)
Post by: Coinkle on December 03, 2013, 07:22:50 AM
Having always used Electrum I have never used Bitcoin-QT
I'm running 10.8.5 still. I could check for errors on a clean download of the block.
I did download 0.8.5.1-beta Litecoin-QT 2days ago and it seems to be fine.


Title: Re: MacOS X LevelDB Corruption Bounty (10.00 BTC + 200.2 LTC)
Post by: wtogami on December 03, 2013, 07:54:26 AM
Having always used Electrum I have never used Bitcoin-QT
I'm running 10.8.5 still. I could check for errors on a clean download of the block.
I did download 0.8.5.1-beta Litecoin-QT 2days ago and it seems to be fine.

Corruption of Bitcoin-Qt or Litecoin-Qt on MacOS X 10.8+ seems to be rare, affecting only particular machines for reasons we do not understand.


Title: New builds again!
Post by: wtogami on December 03, 2013, 08:16:32 AM
https://bitcointalk.org/index.php?topic=337294.msg3718821#msg3718821
Test now!  Entirely different from yesterday.


Title: Re: MacOS X LevelDB Corruption Bounty (10.00 BTC + 200.2 LTC)
Post by: Diapolo on December 03, 2013, 09:10:58 AM
I'm not sure spaming users with Bitcoin-OMG builds (what does that name mean anyway -_-) is the right thing to do. It's nice you are doing this, but IMHO you try to be too quickly perhaps and I'm also not sure all testers are understanding, what they are testing really...

Dia


Title: Re: MacOS X LevelDB Corruption Bounty (10.00 BTC + 200.2 LTC)
Post by: wtogami on December 03, 2013, 11:02:38 AM
I'm not sure spaming users with Bitcoin-OMG builds (what does that name mean anyway -_-) is the right thing to do. It's nice you are doing this, but IMHO you try to be too quickly perhaps and I'm also not sure all testers are understanding, what they are testing really...

Dia

Prior to this bounty, the Bitcoin OMG branch has brought useful, highly tested features to a relatively stable 0.8 Bitcoin branch.  This bounty was a bit tumultuous in testing of various Mac patches and the discovery of another Mac-specific GUI crash in code that was completely stable on Linux and Windows.  I agree the process has been confusing but I believe it has been fruitful in exploring multiple solutions to the important Mac corruption issue and unexpectedly finding and fixing other bugs that may be an issue in HEAD.


Title: Re: MacOS X LevelDB Corruption Bounty (10.00 BTC + 200.2 LTC)
Post by: motomike on December 03, 2013, 09:04:32 PM
I just fired up my Virtual machine and poped my wallet.dat into a win build. Waiting for this DB sucks.


Title: Re: MacOS X LevelDB Corruption Bounty (10.00 BTC + 200.2 LTC)
Post by: wtogami on December 04, 2013, 10:27:16 AM
I just fired up my Virtual machine and poped my wallet.dat into a win build. Waiting for this DB sucks.

Why virtual machine?

The latest builds here have zero reports of new database corruption on MacOS X.


Title: New builds!
Post by: wtogami on December 04, 2013, 10:30:02 AM
https://bitcointalk.org/index.php?topic=337294.msg3718821#msg3718821
Builds updated again with the send crash fix from laanwj (https://github.com/bitcoin/bitcoin/pull/3355).


Title: Re: MacOS X LevelDB Corruption Bounty (10.00 BTC + 200.2 LTC)
Post by: doof on December 04, 2013, 11:46:06 PM
Had another power cut last night before applying the patch.  I have to get a ups.

Litecoin-qt was not running and it was fine.
Bitcoin-qt was running at the time and it had to re-index.

I've applied both patches, so Ill see how it goes.


Title: Re: MacOS X LevelDB Corruption Bounty (10.00 BTC + 200.2 LTC)
Post by: wtogami on December 05, 2013, 12:59:52 AM
Had another power cut last night before applying the patch.  I have to get a ups.

Litecoin-qt was not running and it was fine.
Bitcoin-qt was running at the time and it had to re-index.

I've applied both patches, so Ill see how it goes.

Mac?

You do your own builds?

Please test my latest builds.  It is hard to know if your test results are accurate if you use anything else.


Title: Re: MacOS X LevelDB Corruption Bounty (10.00 BTC + 200.2 LTC)
Post by: gamefixer on December 05, 2013, 01:35:10 AM
I'm joining the conversation as one that has tried both Bitcoin-OMG9 and MacTest1. Both crash right away with a database corruption error.

MacBook Pro 10,1 running OSX 10.8.5 if that matters.

After I re-index the data base BitCoin-Qt will allow me to close and reopen the app over and over again UNTIL I power the computer down. After that I have ot re-index.


Title: Re: MacOS X LevelDB Corruption Bounty (10.00 BTC + 200.2 LTC)
Post by: toffoo on December 05, 2013, 03:39:53 AM
I'm joining the conversation as one that has tried both Bitcoin-OMG9 and MacTest1. Both crash right away with a database corruption error.

MacBook Pro 10,1 running OSX 10.8.5 if that matters.

After I re-index the data base BitCoin-Qt will allow me to close and reopen the app over and over again UNTIL I power the computer down. After that I have ot re-index.

None of the new builds can fix a database corrupted from an earlier version.

Try running:

Code:
/Applications/Bitcoin-Qt.app/Contents/MacOS/Bitcoin-Qt -dbcache=1000 -reindex

one time to reindex with the Bitcoin-OMG9 binary and let us know how it works out for you.  I'm running on a similar setup to you and mactest1 did cause corruption for me but the recent OMG7-8-9 builds are running good for me now...so far.


Title: Re: MacOS X LevelDB Corruption Bounty (10.00 BTC + 200.2 LTC)
Post by: doof on December 05, 2013, 04:55:03 AM
Had another power cut last night before applying the patch.  I have to get a ups.

Litecoin-qt was not running and it was fine.
Bitcoin-qt was running at the time and it had to re-index.

I've applied both patches, so Ill see how it goes.

Mac?

You do your own builds?

Please test my latest builds.  It is hard to know if your test results are accurate if you use anything else.

Yes, 2011 iMac 27" with HDD (not SSD) running OSX Mavericks.  As said before, if i kill the power on the mac, i can reproduce.

Im not at home atm, but off memory, bitcoin-qt 0.8.5 and latest build of litecoin-qt off litecoin.org

No I dont build my own, download them from litecoin-qt etc.


Title: Re: MacOS X LevelDB Corruption Bounty (10.00 BTC + 200.2 LTC)
Post by: doof on December 05, 2013, 04:57:12 AM
Now I have applied both patches, Ill kill the power on litecoin-qt and see if it happens again.


Title: Re: MacOS X LevelDB Corruption Bounty (10.00 BTC + 200.2 LTC)
Post by: wtogami on December 05, 2013, 06:09:45 AM
Now I have applied both patches, Ill kill the power on litecoin-qt and see if it happens again.

I don't know what you mean by "both patches".


Title: Re: MacOS X LevelDB Corruption Bounty (10.00 BTC + 200.2 LTC)
Post by: doof on December 05, 2013, 09:12:04 AM
Now I have applied both patches, Ill kill the power on litecoin-qt and see if it happens again.

I don't know what you mean by "both patches".


I meant i patched litecoin-qt and bitcoin-qt


Title: Re: MacOS X LevelDB Corruption Bounty (10.00 BTC + 200.2 LTC)
Post by: gamefixer on December 05, 2013, 11:55:52 AM
I'm joining the conversation as one that has tried both Bitcoin-OMG9 and MacTest1. Both crash right away with a database corruption error.

MacBook Pro 10,1 running OSX 10.8.5 if that matters.

After I re-index the data base BitCoin-Qt will allow me to close and reopen the app over and over again UNTIL I power the computer down. After that I have ot re-index.

None of the new builds can fix a database corrupted from an earlier version.

Try running:

Code:
/Applications/Bitcoin-Qt.app/Contents/MacOS/Bitcoin-Qt -dbcache=1000 -reindex

one time to reindex with the Bitcoin-OMG9 binary and let us know how it works out for you.  I'm running on a similar setup to you and mactest1 did cause corruption for me but the recent OMG7-8-9 builds are running good for me now...so far.

Thanks, I will try that when I get this computer to its power adapter.

Odd thing is that I installed OMG9 on my iMac (which has never had Bitcoin-QT installed on it) and it cried about the database corruption too.  ???


Title: Re: MacOS X LevelDB Corruption Bounty (10.00 BTC + 200.2 LTC)
Post by: gamefixer on December 05, 2013, 09:01:20 PM
None of the new builds can fix a database corrupted from an earlier version.

Try running:

Code:
/Applications/Bitcoin-Qt.app/Contents/MacOS/Bitcoin-Qt -dbcache=1000 -reindex

one time to reindex with the Bitcoin-OMG9 binary and let us know how it works out for you.  I'm running on a similar setup to you and mactest1 did cause corruption for me but the recent OMG7-8-9 builds are running good for me now...so far.

Tried it. Worked to open bitcoin-qt OMG9 one time. After I shut it down and opened it back up again I get the corruption error again.


Title: Re: MacOS X LevelDB Corruption Bounty (10.00 BTC + 200.2 LTC)
Post by: wtogami on December 06, 2013, 01:52:38 AM
None of the new builds can fix a database corrupted from an earlier version.

Try running:

Code:
/Applications/Bitcoin-Qt.app/Contents/MacOS/Bitcoin-Qt -dbcache=1000 -reindex

one time to reindex with the Bitcoin-OMG9 binary and let us know how it works out for you.  I'm running on a similar setup to you and mactest1 did cause corruption for me but the recent OMG7-8-9 builds are running good for me now...so far.

Tried it. Worked to open bitcoin-qt OMG9 one time. After I shut it down and opened it back up again I get the corruption error again.

Can you join us in Freenode channel #bitcoin-dev?  We need details from you to debug this issue.

Please preserve a copy of the chainstate/ directory, compress it into a .tar.bz2 or .tar.xz archive and upload it to somewhere like Dropbox for the devs to analyze.


Title: Re: MacOS X LevelDB Corruption Bounty (10.00 BTC + 200.2 LTC)
Post by: gamefixer on December 06, 2013, 01:58:19 AM

Can you join us in Freenode channel #bitcoin-dev?  We need details from you to debug this issue.

Please preserve a copy of the chainstate/ directory, compress it into a .tar.bz2 or .tar.xz archive and upload it to somewhere like Dropbox for the devs to analyze.

I've got to go and get my kids so I'll do this when I get back.


Title: Re: MacOS X LevelDB Corruption Bounty (10.00 BTC + 200.2 LTC)
Post by: gamefixer on December 06, 2013, 02:26:17 AM

Can you join us in Freenode channel #bitcoin-dev?  We need details from you to debug this issue.

Please preserve a copy of the chainstate/ directory, compress it into a .tar.bz2 or .tar.xz archive and upload it to somewhere like Dropbox for the devs to analyze.

Hmm... I thought I could figure out how to join you guys on freenode but I'm clearly not that smart...

Still trying, user gamefixer if I make it in there.


Title: Re: GPG Signed test binaries
Post by: kwaaak on December 06, 2013, 04:03:18 AM
Bitcoin 0.8.5-OMG10 December 5th
http://download1.rpmfusion.org/~warren/bitcoin-0.8.5-OMG10/macosx/
https://github.com/litecoin-project/bitcoinomg/commits/0.8.5-OMG10
This build uses PR #3340 (https://github.com/bitcoin/bitcoin/pull/3340) which switches away from mmap for writes on MacOS X.  Previous OMG builds had an intermittent crash during GUI Send on MacOS X only.  We think this separate MacOS-only issue may be fixed, but tests of tx sending would be very helpful.  Please use Testnet.

Sent a tx on mainnet, no crash, broadcasts well.


Title: Re: GPG Signed test binaries
Post by: wtogami on December 06, 2013, 04:29:37 AM
Bitcoin 0.8.5-OMG10 December 5th
http://download1.rpmfusion.org/~warren/bitcoin-0.8.5-OMG10/macosx/
https://github.com/litecoin-project/bitcoinomg/commits/0.8.5-OMG10
This build uses PR #3340 (https://github.com/bitcoin/bitcoin/pull/3340) which switches away from mmap for writes on MacOS X.  Previous OMG builds had an intermittent crash during GUI Send on MacOS X only.  We think this separate MacOS-only issue may be fixed, but tests of tx sending would be very helpful.  Please use Testnet.

Sent a tx on mainnet, no crash, broadcasts well.

The old crash was like a 1 out of 50 random event.  Please use testnet and test many sends.


Title: FIXED MacOS builds
Post by: wtogami on December 11, 2013, 08:14:28 PM
https://bitcointalk.org/index.php?topic=337294.msg3718821#msg3718821
Build list updated.  Official 0.8.6 releases of Bitcoin and Litecoin and OMG with additional features all contain the same patches.


Title: Re: MacOS X LevelDB Corruption Bounty (10.00 BTC + 200.2 LTC)
Post by: wtogami on December 12, 2013, 09:59:04 AM
Quote
Conditions
The bounty may be awarded under the following conditions.

Document how anyone can consistently reproduce the data corruption.
Explain why it happens.
Write a code fix that is acceptable to the Bitcoin core developers and merged into Bitcoin git master.

The Bitcoin developers have ultimate deciding power of how to apportion the bounty award(s) based upon the merit of the contributions  This may encourage collaboration that may lead to a fix rather than hoarding of information.  Non-developers may be able to figure out #1.

These terms may be changed at any time for any or no reason.

These were the original bounty conditions.  After consulting with core Bitcoin devs, it turns out "into Bitcoin git master" was a bad idea.  What was shipped in 0.8.6 was correct and needed for Bitcoin users as quick as possible.  There is a desire to be far more deliberate in testing the code that goes into git master for what will eventually become Bitcoin 0.9.  For this reason we are exercising the "These terms may be changed at any time for any or no reason." clause.

The final term will be changed, s/merged into Bitcoin git master/merged into Bitcoin/.

The apportionment of the bounty to split to different contributors involved in fixing the issue will be the decision of Bitcoin devs including myself, Gavin, laanwj and others.  Depending on the country where the various contributors are located tax forms may be required to make payments.  If they refuse to do required tax forms then they may opt for their portion to be instead directed at a Bitcoin-accepting charitable organization like the FSF or EFF.


Title: Re: MacOS X LevelDB Corruption Bounty (10.00 BTC + 200.2 LTC)
Post by: nazgul104 on December 27, 2013, 01:45:21 AM
Is the mac LevelDB corruption issues fixed in 0.8.6?
I was trying to look for the version history but couldn't find much information in there. Could you pls confirm or point me to the right place where I can get more info on this version.  By the way, I'm running OMG10 right now (thanks for that) and its been good so far without any crashes...


Title: Re: MacOS X LevelDB Corruption Bounty (10.00 BTC + 200.2 LTC)
Post by: dewdeded on December 28, 2013, 08:28:53 AM
Fixed.


Title: Re: [FIXED] MacOS X LevelDB Corruption Bounty (10.00 BTC + 200.2 LTC)
Post by: Bismarck on January 15, 2014, 11:38:14 PM
Well, I have applied the 8.6.2-beta patch and it still immediately crashes upon finding peers. 

Help!?


Title: Re: MacOS X LevelDB Corruption Bounty (10.00 BTC + 200.2 LTC)
Post by: toffoo on June 19, 2014, 04:02:03 PM

These were the original bounty conditions.  After consulting with core Bitcoin devs, it turns out "into Bitcoin git master" was a bad idea.  What was shipped in 0.8.6 was correct and needed for Bitcoin users as quick as possible.  There is a desire to be far more deliberate in testing the code that goes into git master for what will eventually become Bitcoin 0.9.  For this reason we are exercising the "These terms may be changed at any time for any or no reason." clause.

The final term will be changed, s/merged into Bitcoin git master/merged into Bitcoin/.

The apportionment of the bounty to split to different contributors involved in fixing the issue will be the decision of Bitcoin devs including myself, Gavin, laanwj and others.  Depending on the country where the various contributors are located tax forms may be required to make payments.  If they refuse to do required tax forms then they may opt for their portion to be instead directed at a Bitcoin-accepting charitable organization like the FSF or EFF.

So did this bounty ever get paid?  Who won it and when?


Title: Re: MacOS X LevelDB Corruption Bounty (10.00 BTC + 200.2 LTC)
Post by: theymos on June 19, 2014, 09:52:17 PM
So did this bounty ever get paid?  Who won it and when?

The bounty was split equally between Cory Fields, Patrick Strateman, and Robert Escriva.