mimblewimble / cuckoo-miner

Mining wrapper around the Cuckoo Cycle proof of work system for the Grin/MimbleWimble blockchain.
Apache License 2.0
52 stars 16 forks source link

MacOS pthread barrier implementation in cuckoo #12

Closed yeastplume closed 7 years ago

yeastplume commented 7 years ago

When running mean miner compiled with NSIPHASH=1, XBITS=0 and without the maxv2 flag, there is a very occasional thread deadlock that appears to occur within the OSX pthread barrier implementation in @tromp's repository, and manifests as the miner appearing to stop within grin. The issue can be reproduced consistently on macOS if the original osx_barrier.h implementation is used, and is fixed when including a different implementation (currently in the master).

For now, I've just updated the mimblewimble/cuckoo-miner fork to use a different pthread barrier implementation, and it resolves the issue. However it would be better to get to the root cause of the issue, figure out how to reproduce it consistently, and change the upstream implementation.

tromp commented 7 years ago

Seems I have been over aggressive in stripping down that barrier implementation, in particular taking out the barrier phase. I will restore the originals like you have, maybe later today.

yeastplume commented 7 years ago

Thanks, that would be great. Once you've done it, I'll merge and test again.