# Concurrency problem using proteus on 5.4

**URL:** https://discuss.tryton.org/t/concurrency-problem-using-proteus-on-5-4/1937
**Category:** Developer
**Created:** [November 12, 2019, 11:13am UTC](https://discuss.tryton.org/t/concurrency-problem-using-proteus-on-5-4/1937 "2019-11-12T11:13:46Z")
**Posts on this page:** 4
**Page:** 1

<div class="post-metadata">

### Author: ![dave](https://discuss-cdn.tryton.org/letter_avatar_proxy/v4/letter/d/ee7513/32.png) [@dave](https://discuss.tryton.org/u/dave)
#### Post date: [November 12, 2019, 11:13am UTC](https://discuss.tryton.org/t/concurrency-problem-using-proteus-on-5-4/1937/1 "2019-11-12T11:13:46Z")

</div>

I am running Tryton in a docker container on a remote server, and I am trying to use proteus to activate some modules and do some setup on there.

Using the standard docker image for 5.2 this works without a problem, but on 5.4 it no longer works and I consistently get a concurrency exception when updating the Config Wizard Items.

I am wondering if this is a problem with the way I am doing things, or if this is a bug that needs fixing?

FYI, I did also notice this message [https://codereview.tryton.org/277491002/#msg84](https://codereview.tryton.org/277491002/#msg84) by @wifasoi which I think may be related.

I’m happy to create a bug report if this seems to be issue, but any help with this would be greatly appreciated.

* * *

Some more details:

A cut down version of the script that works against 5.2 but not 5.4:

```
#!/usr/bin/env python3
from proteus import Model, Wizard, config as proteus_config

url='https://admin:password@tryton.host/tryton/'
config = proteus_config.set_xmlrpc(url=url)

Module = Model.get('ir.module')
modules = Module.find([('name', 'in', [
    'account',
    'account_statement_ofx',
    'account_statement_rule',
    'country',
    'currency',
    ])])
for module in modules:
    module.click('activate')
Wizard('ir.module.activate_upgrade').execute('upgrade')

ConfigWizardItem = Model.get('ir.module.config_wizard.item')
for item in ConfigWizardItem.find([('state', '!=', 'done')]):
    item.state = 'done'
    item.save()

```

The result of running the above script against a standard tryton 5.4 container:

```
    Traceback (most recent call last):
  File "./test.py", line 21, in <module>
    item.save()
  File "/home/dave/.venv/lib/python3.7/site-packages/proteus/ __init__.py", line 101, in newfunc
    return self.func(owner, [instance], *args, **kwargs)
  File "/home/dave/.venv/lib/python3.7/site-packages/proteus/ __init__.py", line 858, in save
    proxy.write(*values)
  File "/usr/lib/python3.7/xmlrpc/client.py", line 1112, in __call__
    return self.__send(self.__name, args)
  File "/usr/lib/python3.7/xmlrpc/client.py", line 1452, in __request
    verbose=self.__verbose
  File "/usr/lib/python3.7/xmlrpc/client.py", line 1154, in request
    return self.single_request(host, handler, request_body, verbose)
  File "/usr/lib/python3.7/xmlrpc/client.py", line 1170, in single_request
    return self.parse_response(resp)
  File "/usr/lib/python3.7/xmlrpc/client.py", line 1342, in parse_response
    return u.close()
  File "/usr/lib/python3.7/xmlrpc/client.py", line 656, in close
    raise Fault(**self._stack[0])
xmlrpc.client.Fault: <Fault 4: 'Records were modified in the meanwhile'>

```

The traceback from the server:

```
Traceback (most recent call last):
  File "/usr/local/lib/python3.7/dist-packages/trytond/protocols/dispatcher.py", line 186, in _dispatch
    result = rpc.result(meth(*c_args, **c_kwargs))
  File "/usr/local/lib/python3.7/dist-packages/trytond/res/ir.py", line 229, in write
    super(ModuleConfigWizardItem, cls).write(items, values, *args)
  File "/usr/local/lib/python3.7/dist-packages/trytond/model/modelsql.py", line 159, in wrapper
    return func(cls, *args, **kwargs)
  File "/usr/local/lib/python3.7/dist-packages/trytond/model/modelsql.py", line 951, in write
    cls.__check_timestamp(all_ids)
  File "/usr/local/lib/python3.7/dist-packages/trytond/model/modelsql.py", line 551, in __check_timestamp
    'Records were modified in the meanwhile')
trytond.exceptions.ConcurrencyException: Records were modified in the meanwhile

```

---

<div class="post-metadata">

### Author: ![ced](https://discuss-cdn.tryton.org/user_avatar/discuss.tryton.org/ced/32/1237_2.png) [@ced](https://discuss.tryton.org/u/ced)
#### Post date: [November 12, 2019, 11:23am UTC](https://discuss.tryton.org/t/concurrency-problem-using-proteus-on-5-4/1937/2 "2019-11-12T11:23:21Z")

</div>

This has been fixed by [Support PostgreSQL-12 (#8779) · Issues · Tryton / Tryton · GitLab](https://bugs.tryton.org/issue8779) and is already included in the version 5.4.1 of trytond.

---

<div class="post-metadata">

### Author: ![dave](https://discuss-cdn.tryton.org/letter_avatar_proxy/v4/letter/d/ee7513/32.png) [@dave](https://discuss.tryton.org/u/dave)
#### Post date: [November 12, 2019, 12:29pm UTC](https://discuss.tryton.org/t/concurrency-problem-using-proteus-on-5-4/1937/3 "2019-11-12T12:29:39Z")

</div>

Brilliant, it looks like I was using an old docker image. Pulling the image, so it was updated to 5.4.1 fixed the issue.

Thank you for the fast and accurate response.

---

<div class="post-metadata">

### Author: ![system](https://discuss-cdn.tryton.org/uploads/default/original/1X/c6f8ec0a40525cdcd50058c734283450a4b3d38b.png) [@system](https://discuss.tryton.org/u/system)
#### Post date: [December 12, 2019, 12:29pm UTC](https://discuss.tryton.org/t/concurrency-problem-using-proteus-on-5-4/1937/4 "2019-12-12T12:29:39Z")

</div>

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.
