golemfactory / clay

Golem is creating a global market for computing power.
https://golem.network
GNU General Public License v3.0
2.91k stars 286 forks source link

ValueError: Config can be updated only when the environment is disabled #5151

Closed ederenn closed 4 years ago

ederenn commented 4 years ago

Description

Golem Version: 0.22.1+dev124.gf5a985e

Golem-Messages version (leave empty if unsure): 3.15.0

Electron version (if used):

OS [e.g. Windows 10 Pro]: Ubuntu 18.04

Branch (if launched from source): b0.23

Mainnet/Testnet: mainnet

Priority label is set to the lowest by default. To setup higher priority please change the label P0 label is set for Severity-Critical/Effort-easy P1 label is set for Severity-Critical/Effort-hard P2 label is set for Severity-Low/ Effort-easy P3 label is set for Severity-Low/Effort-hard

Description of the issue: After pausing golem thera are problems with switching on/off requesting only. In logs appears an error

Traceback (most recent call last):
  File "/home/ederenn/projects/golem-env/lib/python3.6/site-packages/twisted/internet/defer.py", line 1418, in _inlineCallbacks
    result = g.send(result)
  File "/home/ederenn/projects/golem/golem/task/taskserver.py", line 866, in _change_task_computer_config
    config_changed = yield self.task_computer.change_config(config_desc)
  File "/home/ederenn/projects/golem-env/lib/python3.6/site-packages/twisted/internet/defer.py", line 1613, in unwindGenerator
    return _cancellableInlineCallbacks(gen)
  File "/home/ederenn/projects/golem-env/lib/python3.6/site-packages/twisted/internet/defer.py", line 1529, in _cancellableInlineCallbacks
    _inlineCallbacks(None, g, status)
--- <exception caught here> ---
  File "/home/ederenn/projects/golem/golem/client.py", line 1525, in activate_hw_preset
    result = yield deferred
  File "/home/ederenn/projects/golem/golem/task/taskserver.py", line 858, in change_config
    yield self._change_task_computer_config(config_desc, run_benchmarks)
  File "/home/ederenn/projects/golem/golem/task/taskserver.py", line 866, in _change_task_computer_config
    config_changed = yield self.task_computer.change_config(config_desc)
  File "/home/ederenn/projects/golem-env/lib/python3.6/site-packages/twisted/internet/defer.py", line 1418, in _inlineCallbacks
    result = g.send(result)
  File "/home/ederenn/projects/golem/golem/task/taskcomputer.py", line 263, in change_config
    work_dir=work_dir)
  File "/home/ederenn/projects/golem/golem/task/taskcomputer.py", line 478, in change_config
    docker_cpu.update_config(DockerCPUConfig(**config_dict))
  File "/home/ederenn/projects/golem/golem/envs/wrappers/__init__.py", line 120, in update_config
    self._env.update_config(config)
  File "/home/ederenn/projects/golem/golem/envs/wrappers/__init__.py", line 120, in update_config
    self._env.update_config(config)
  File "/home/ederenn/projects/golem/golem/envs/docker/cpu.py", line 690, in update_config
    "Config can be updated only when the environment is disabled")
builtins.ValueError: Config can be updated only when the environment is disabled

Actual result:

In interface it seems like it is not possible to resume Golem

Steps To Reproduce

Short description of steps to reproduce the behavior: e.g.

  1. Launch the app
  2. Click on Stop Golem button
  3. Switch on "I want to act only as a requestor "
  4. Click button Start Golem
  5. See error in logs

Proposed Solution?

(Optional: What could be a solution for that issue)

etam commented 4 years ago

Seems like some unfinished work introduced by #4618

etam commented 4 years ago

@ederenn could you give me full log? Maybe there's something more required to reproduce it, because I can't.

ederenn commented 4 years ago

golem.log.2020-03-17.log golem.log.2020-03-30.log golem.log.2020-03-31.log golem.log.2020-04-01.log

error should be at 31.03

etam commented 4 years ago

No such error in those logs

etam commented 4 years ago

I don't know yet where, but a missing step has something to do with a Task API task. Otherwise the "docker cpu environment" is never activated.

etam commented 4 years ago

I found it! The important part is to stop and reconfigure golem, while it's computing (i.e. being a provider for) a Task API task.

etam commented 4 years ago

fixed and merged to b0.23