Some Open Ethereum and Parity users are stuck between a months-long resync and a bugged client. The OpenEthereum client is the community successor for the Parity client for Ethereum and an update in the former caused the nodes running on the newer version to become completely useless. It appears that the bug was introduced in OpenEthereum’s 2.7.2 version and the subsequent 3.0 update was also based on the same. Even though the 2.7 update release was considered stable, the community began reporting since June that the client was freezing occasionally and this required the node to be hard restarted manually.
This issue occurs randomly, anywhere between one to three times in a month, and the software doesn’t even notify the users of the malfunction. Thus, it has prompted some of the users to label the release as ‘broken for node operators’ and ‘useless’. The issue has been pinpointed by the developers to a subtle bug found in the thread concurrency, which is used for processing tasks in parallel. As far as this specific situation is concerned, it seems that the software is entering a deadlock. This is a condition in which two threads are left waiting forever for their turn to access some of the shared data.
According to OpenEthereum, they are going to scrap the 2.7 release entirely because of this issue, along with some other ‘heisenbugs’, as it is extremely difficult to reproduce and fix those. The new 3.0 iteration is now based on the 2.5 version, which was the last stable one, and it has been given a release date of mid-September, which is just before the Berlin hard fork. However, until this update is released, operators who had downloaded the new version are faced with the quite disruptive task of having to downgrade.
A developer working at BlockNative, which is an infrastructure developer, Liam Aharon said on Twitter that the blockchain had to be completely resynced in order to downgrade to the previous version. He said that this could take months in the case of some node configurations. Almost 50% of the existing Parity nodes are affected by the bug, along with all nodes that have been branded as OpenEthereum. According to Ethernodes data, this is about 12% of the entire Ethereum network. It is said that the OpenEthereum team is developing a conversion process that could end up eliminating the costly re-synchronization of nodes, which could be helpful.
There was some criticism directed towards the team for declaring a heavily bugged release as a ‘stable’ one, since the error was propagated into all the released made later. The effectiveness of the multi-client approach was also questioned by others, referring to Satoshi’s view that issues were inevitable if the same blockchain node was implemented multiple times. Those who support the multi-client approach are of the opinion that it can prevent in a single implementation from bringing down the entire network. As far as the OpenEthereum bug is concerned, it appears to be a similar scenario as this one.