Published on: 2011-09-07T15:07:25+00:00
On September 6, 2011, Luke-Jr proposed a fix for the encrypted-wallet mining issue, suggesting the use of unique_coinbase. Although the code was reviewed, it has not yet been tested. To test the fix, a plan was created which involves running a clean testnet-in-a-box bitcoind with -keypool=1 and encrypting the wallet. Additionally, generating blocks via internal miner, verifying unique coinbase transactions, and generating blocks via getwork RPC call are part of the test plan. This information can be found on a Github pull request created by Luke-Jr and commented on by Gavin Andresen.A solution has been found for the encrypted-wallet mining issue through the introduction of 'unique_coinbase'. To merge this solution, one must first fetch it from git://gitorious.org/~Luke-Jr/bitcoin/luke-jr-bitcoin.git and then merge FETCH_HEAD. This solution relies on the getwork_dedupe fix already present in pools and other miners who keep up with the latest mining fixes.Detective Wuille received praise for successfully patching the deadlock issue in Bitcoin's code. The patch, which can be found on GitHub, uses a different approach than the one suggested by Pieter to fix the cs_mapaddresses deadlock. Detective Wuille performed the necessary database operation after releasing the deadlock and tested it using start/stop/restart stress tests, proving its success. He also reviewed all the places in the code that initiate a database transaction to ensure there were no similar issues. Regarding the improvement of DEBUG_LOCKORDER, Pieter suggested adding a rule that ignores critical sections locked only through TRY_...? While Gavin Andresen highlighted a deadlock between the addr-handling and IRC-join-handling code, Pieter pointed out that the DB internally uses pthreads to implement the txn_begin()/commit() scheme, which needs to be considered when searching for deadlocks but is not detected by DEBUG_LOCKORDER.On September 4, 2011, Pieter Wuille informed Gavin about deadlock issues he found in bitcoind while using DEBUG_LOCKORDER. However, he later realized that all locking of cs_vRecv/cs_vSend happens inside TRY_CRITICAL_SECTION blocks, so there are no actual potential deadlocks. Sipa discovered a deadlock between the addr-handling and IRC-join-handling code caused by the db transaction for the entire message created by processing "addr" while only locking cs_mapAddresses inside AddAddress. For IRC seeded addresses, no db tx was pre-created, causing a lock inside AddAddress. A solution was proposed by adding CRITICAL_BLOCK(cs_mapAddresses) before addrDB.TxnBegin() in main.cpp, ProcessMessage, case "addr".Michael Grønager apologized for a mistake he made in the first clean checkout and shared his findings regarding compile in an email to Gavin Andresen. He mentioned not using the UPNP feature and having to change USE_UPNP from 0 to nothing in the makefile.unix to define it as disabled by default. Luke-Jr confirmed this default setting as "UPnP supported, disabled by default" (USE_UPNP=0) in build-unix.txt. Michael Gronager's contact details were also provided.Michael Grønager reported his findings on September 5, 2011, stating that he did not use the UPNP feature. He discovered the need to change USE_UPNP from USE_UPNP:=0 to USE_UPNP:= in the makefile.unix file to define it as disabled by default. The default setting is "UPnP supported, disabled by default," as documented in build-unix.txt.In an email to Gavin Andresen, Michael Gronager reported his findings after compiling and running bitcoind on Ubuntu 10.04.3 LTS. He mentioned not using the UPNP feature and making changes in the "makefile.unix" file to define USE_UPNP:=0 as USE_UPNP:= to avoid any issues. He did not encounter any apparent issues while running it. Michael appreciated Gavin's work but suggested a quick cleanup of interfaces and classes, with each file having one class and all interfaces defined in headers. He offered to do the cleanup himself to improve code flexibility and move towards a more library/interface-like split.Gavin Andresen provided a status update on version 0.4 of Bitcoin. Sipa found a deadlock issue between addr-handling and IRC-join-handling code. UukGoblin reported a deadlock problem on a bitcoind while handling getwork requests. ArtForz discovered a performance bug with transactions that have thousands of inputs and outputs on the solidcoin test network. Lastly, Michael Gronager's contact information, including his mobile number, email address, and position as the owner of Ceptacle and Director of NDGF at NORDUnet A/S, was included in the email signature.
Updated on: 2023-08-01T02:23:17.114422+00:00