Skip to content

Raiden gets stuck in Update NonClosing balance proof transaction #2129

@BCsRock

Description

@BCsRock

Hi guys,

tl;dr:
this could be a bug in case an account joins a payment channel with zero Ethereum or having not enough funds to pay the update / settlement transactions. It seems to run into a stucked state with a repeatedly failing transaction.

Find debug.log file further below.

Problem Definition

Following scenario was tested :

Acc1 had some ERC20 token and some Ethereum
Acc2 had no ERC20 token and no Ethereum

Acc1 registered ERC20 token as Raiden payment channel network, opened a channel with Acc2, deployed a deposit, sent some ERC20 token off-chain to Acc2.
All of this was successful.

Then, Acc1 called a settlement which caused a transaction to be mined -> was successful.

Then Acc2 should have called a transaction but this failed due to low gas error.

Then Acc1 sent on-chain some ethereum to Acc2.

Restarting Raiden client with Acc2 tries to make Update Nonclosing balance proof transaction transaction, but fails with error message below:

Update NonClosing balance proof transaction threw. Receipt=AttributeDict({'blockHash': HexBytes('0x79c90b22f969b6d7b0067a9ba068519c8559ae453e980e311d21861436f28d09'), 'blockNumber': 3801406, 'contractAddress': None, 'cumulativeGasUsed': 1156498, 'gasUsed': 96119, 'logs': [], 'logsBloom': HexBytes('0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'), 'root': None, 'status': 0, 'transactionHash': HexBytes('0x07416563ae15729a7c7b76048f5e69428866accd495231ee4bbf3135a4de525a'), 'transactionIndex': 15})

The raiden-deub.log can be found via gist record.

The ever failing transactions from restarting Acc2 can be found for example here or here

Now the problem is, the channel is officially in the state closed but I can neither send any Tokens between Acc1 and Acc2. Acc1 has received the correct balance from the off-chain transfers, but Acc2 did not receive a balance. I can also not re-open the channel, because it already exists. If I see correctly, the ERC20 tokens for Acc2 are frozen in the smart contract which I cannot settle / update.

System Description

Ubuntu 16.04 LTC
Raiden-0.4.2
Parity/v1.10.6-unstable-bc0d134-20180605/x86_64-linux-gnu/rustc1.26.2

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions