raiden-network / raiden

Raiden Network
https://developer.raiden.network
Other
1.84k stars 377 forks source link

ValueError: I/O operation on closed file. #4479

Closed palango closed 5 years ago

palango commented 5 years ago

During tests I see stuff like this a lot. Seems like something closes the logging file.


Traceback (most recent call last):
  File "/usr/local/Cellar/python/3.7.4/Frameworks/Python.framework/Versions/3.7/lib/python3.7/logging/__init__.py", line 1028, in emit
    stream.write(msg + self.terminator)
  File "/Users/paul/Projects/brainbot/raiden/venv/lib/python3.7/site-packages/colorama/ansitowin32.py", line 41, in write
    self.__convertor.write(text)
  File "/Users/paul/Projects/brainbot/raiden/venv/lib/python3.7/site-packages/colorama/ansitowin32.py", line 162, in write
    self.write_and_convert(text)
  File "/Users/paul/Projects/brainbot/raiden/venv/lib/python3.7/site-packages/colorama/ansitowin32.py", line 187, in write_and_convert
    self.write_plain_text(text, cursor, start)
  File "/Users/paul/Projects/brainbot/raiden/venv/lib/python3.7/site-packages/colorama/ansitowin32.py", line 195, in write_plain_text
    self.wrapped.write(text[start:end])
ValueError: I/O operation on closed file.
Call stack:
  File "/Users/paul/Projects/brainbot/raiden/raiden/tests/integration/test_pythonapi.py", line 144, in run_test_register_token_insufficient_eth
    token_network_deposit_limit=UINT256_MAX,
  File "/Users/paul/Projects/brainbot/raiden/raiden/api/python.py", line 231, in token_network_register
    token_network_deposit_limit=token_network_deposit_limit,
  File "/Users/paul/Projects/brainbot/raiden/raiden/network/proxies/token_network_registry.py", line 117, in add_token_with_limits
    "_token_network_deposit_limit": token_network_deposit_limit,
  File "/Users/paul/Projects/brainbot/raiden/raiden/network/proxies/token_network_registry.py", line 199, in _add_token
    raise RuntimeError(msg)
  File "/usr/local/Cellar/python/3.7.4/Frameworks/Python.framework/Versions/3.7/lib/python3.7/contextlib.py", line 130, in __exit__
    self.gen.throw(type, value, traceback)
  File "/Users/paul/Projects/brainbot/raiden/raiden/network/proxies/utils.py", line 124, in log_transaction
    log.exception("Failed because of")
  File "/Users/paul/Projects/brainbot/raiden/venv/lib/python3.7/site-packages/structlog/stdlib.py", line 97, in exception
    return self.error(event, *args, **kw)
  File "/Users/paul/Projects/brainbot/raiden/venv/lib/python3.7/site-packages/structlog/stdlib.py", line 83, in error
    return self._proxy_to_logger("error", event, *args, **kw)
  File "/Users/paul/Projects/brainbot/raiden/venv/lib/python3.7/site-packages/structlog/stdlib.py", line 119, in _proxy_to_logger
    method_name, event=event, **event_kw
  File "/Users/paul/Projects/brainbot/raiden/venv/lib/python3.7/site-packages/structlog/_base.py", line 192, in _proxy_to_logger
    return getattr(self._logger, method_name)(*args, **kw)
Message: {'event': 'Failed because of', 'logger': 'raiden.network.proxies.token_network_registry', 'level': 'error', 'timestamp': '2019-07-29 14:45:38.265403', 'exception': 'Traceback (most recent call last):\n  File "/Users/paul/Projects/brainbot/raiden/raiden/network/rpc/smartcontract_proxy.py", line 87, in transact\n    data=decode_hex(data),\n  File "/Users/paul/Projects/brainbot/raiden/raiden/network/rpc/client.py", line 642, in send_transaction\n    tx_hash = self.web3.eth.sendRawTransaction(signed_txn.rawTransaction)\n  File "/Users/paul/Projects/brainbot/raiden/venv/lib/python3.7/site-packages/web3/eth.py", line 275, in sendRawTransaction\n    [raw_transaction],\n  File "/Users/paul/Projects/brainbot/raiden/venv/lib/python3.7/site-packages/web3/manager.py", line 112, in request_blocking\n    raise ValueError(response["error"])\nValueError: {\'code\': -32000, \'message\': \'insufficient funds for gas * price + value\'}\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n  File "/Users/paul/Projects/brainbot/raiden/raiden/network/proxies/utils.py", line 121, in log_transaction\n    yield\n  File "/Users/paul/Projects/brainbot/raiden/raiden/network/proxies/token_network_registry.py", line 166, in _add_token\n    "createERC20TokenNetwork", gas_limit, **kwarguments\n  File "/Users/paul/Projects/brainbot/raiden/raiden/network/rpc/smartcontract_proxy.py", line 92, in transact\n    raise InsufficientFunds("Insufficient ETH for transaction")\nraiden.exceptions.InsufficientFunds: Insufficient ETH for transaction'}
palango commented 5 years ago

The problem seems to be according to bisect: [b3280da865cb896c99ebd775f3a813c130bc4d41] disable output capture on signal handler