When I try to run Odoo from the source file with the option:
Load demonstration data (Check this box to evaluate Odoo)
checked, I get the following error:
Database creation error: Unable to use a closed cursor.
It works when I try to run it without the demonstration data. I am running it on Ubuntu 14.04 with Postresql 9.4. What did I miss?
And on the console it also displays:
`2016-01-20 10:49:23,513 5089 ERROR mydb openerp.modules.registry: Failed to load registry
Traceback (most recent call last):
File "/vagrant_data/odoo-9.0/openerp/modules/registry.py", line 385, in new
openerp.modules.load_modules(registry._db, force_demo, status, update_module)
File "/vagrant_data/odoo-9.0/openerp/modules/loading.py", line 279, in load_modules
loaded_modules, processed_modules = load_module_graph(cr, graph, status, perform_checks=update_module, report=report)
File "/vagrant_data/odoo-9.0/openerp/modules/loading.py", line 159, in load_module_graph
_load_data(cr, module_name, idref, mode, kind='demo')
File "/vagrant_data/odoo-9.0/openerp/modules/loading.py", line 98, in _load_data
tools.convert_file(cr, module_name, filename, idref, mode, noupdate, kind, report)
File "/vagrant_data/odoo-9.0/openerp/tools/convert.py", line 852, in convert_file
convert_xml_import(cr, module, fp, idref, mode, noupdate, report)
File "/vagrant_data/odoo-9.0/openerp/tools/convert.py", line 939, in convert_xml_import
obj.parse(doc.getroot(), mode=mode)
File "/vagrant_data/odoo-9.0/openerp/tools/convert.py", line 802, in parse
self.parse(rec, mode)
File "/vagrant_data/odoo-9.0/openerp/tools/convert.py", line 805, in parse
self._tags[rec.tag](self.cr, rec, de, mode=mode)
File "/vagrant_data/odoo-9.0/openerp/tools/convert.py", line 709, in _tag_record
id = self.pool['ir.model.data']._update(cr, self.uid, rec_model, self.module, res, rec_id or False, not self.isnoupdate(data_node), noupdate=self.isnoupdate(data_node), mode=self.mode, context=rec_context )
File "/vagrant_data/odoo-9.0/openerp/api.py", line 238, in wrapper
return old_api(self, *args, **kwargs)
File "/vagrant_data/odoo-9.0/openerp/addons/base/ir/ir_model.py", line 1101, in _update
res_id = model_obj.create(cr, uid, values, context=context)
File "/vagrant_data/odoo-9.0/openerp/api.py", line 238, in wrapper
return old_api(self, *args, **kwargs)
File "/vagrant_data/odoo-9.0/openerp/addons/base/res/res_users.py", line 845, in create
return super(users_view, self).create(cr, uid, values, context)
File "/vagrant_data/odoo-9.0/openerp/api.py", line 238, in wrapper
return old_api(self, *args, **kwargs)
File "/vagrant_data/odoo-9.0/openerp/addons/base/res/res_users.py", line 643, in create
user_id = super(users_implied, self).create(cr, uid, values, context)
File "/vagrant_data/odoo-9.0/openerp/api.py", line 238, in wrapper
return old_api(self, *args, **kwargs)
File "/vagrant_data/odoo-9.0/openerp/addons/base/res/res_users.py", line 336, in create
user_id = super(res_users, self).create(cr, uid, vals, context=context)
File "/vagrant_data/odoo-9.0/openerp/api.py", line 238, in wrapper
return old_api(self, *args, **kwargs)
File "/vagrant_data/odoo-9.0/openerp/api.py", line 342, in old_api
result = method(recs, *args, **kwargs)
File "/vagrant_data/odoo-9.0/openerp/models.py", line 4132, in create
record = self.browse(self._create(old_vals))
File "/vagrant_data/odoo-9.0/openerp/api.py", line 236, in wrapper
return new_api(self, *args, **kwargs)
File "/vagrant_data/odoo-9.0/openerp/api.py", line 478, in new_api
result = method(self._model, cr, uid, *args, **old_kwargs)
File "/vagrant_data/odoo-9.0/openerp/models.py", line 4190, in _create
self.pool[table].write(cr, user, [record_id], tocreate[table], context=context)
File "/vagrant_data/odoo-9.0/openerp/api.py", line 238, in wrapper
return old_api(self, *args, **kwargs)
File "/vagrant_data/odoo-9.0/openerp/api.py", line 369, in old_api
result = method(recs, *args, **kwargs)
File "/vagrant_data/odoo-9.0/openerp/addons/base/res/res_partner.py", line 536, in write
result = super(res_partner, self).write(vals)
File "/vagrant_data/odoo-9.0/openerp/api.py", line 236, in wrapper
return new_api(self, *args, **kwargs)
File "/vagrant_data/odoo-9.0/openerp/models.py", line 3819, in write
self._write(old_vals)
File "/vagrant_data/odoo-9.0/openerp/api.py", line 236, in wrapper
return new_api(self, *args, **kwargs)
File "/vagrant_data/odoo-9.0/openerp/api.py", line 562, in new_api
result = method(self._model, cr, uid, self.ids, *args, **old_kwargs)
File "/vagrant_data/odoo-9.0/openerp/models.py", line 3970, in _write
result += self._columns[field].set(cr, self, id, field, vals[field], user, context=rel_context) or []
File "/vagrant_data/odoo-9.0/openerp/osv/fields.py", line 638, in set
att.write({'datas': value})
File "/vagrant_data/odoo-9.0/openerp/api.py", line 236, in wrapper
return new_api(self, *args, **kwargs)
File "/vagrant_data/odoo-9.0/openerp/api.py", line 562, in new_api
result = method(self._model, cr, uid, self.ids, *args, **old_kwargs)
File "/vagrant_data/odoo-9.0/openerp/addons/base/ir/ir_attachment.py", line 429, in write
return super(ir_attachment, self).write(cr, uid, ids, vals, context)
File "/vagrant_data/odoo-9.0/openerp/api.py", line 238, in wrapper
return old_api(self, *args, **kwargs)
File "/vagrant_data/odoo-9.0/openerp/api.py", line 369, in old_api
result = method(recs, *args, **kwargs)
File "/vagrant_data/odoo-9.0/openerp/models.py", line 3819, in write
self._write(old_vals)
File "/vagrant_data/odoo-9.0/openerp/api.py", line 236, in wrapper
return new_api(self, *args, **kwargs)
File "/vagrant_data/odoo-9.0/openerp/api.py", line 562, in new_api
result = method(self._model, cr, uid, self.ids, *args, **old_kwargs)
File "/vagrant_data/odoo-9.0/openerp/models.py", line 3970, in _write
result += self._columns[field].set(cr, self, id, field, vals[field], user, context=rel_context) or []
File "/vagrant_data/odoo-9.0/openerp/osv/fields.py", line 1512, in set
self._fnct_inv(obj, cr, user, id, name, value, self._fnct_inv_arg, context)
File "/vagrant_data/odoo-9.0/openerp/addons/base/ir/ir_attachment.py", line 228, in _data_set
super(ir_attachment, self).write(cr, SUPERUSER_ID, [id], vals, context=context)
File "/vagrant_data/odoo-9.0/openerp/api.py", line 238, in wrapper
return old_api(self, *args, **kwargs)
File "/vagrant_data/odoo-9.0/openerp/api.py", line 369, in old_api
result = method(recs, *args, **kwargs)
File "/vagrant_data/odoo-9.0/openerp/models.py", line 3819, in write
self._write(old_vals)
File "/vagrant_data/odoo-9.0/openerp/api.py", line 236, in wrapper
return new_api(self, *args, **kwargs)
File "/vagrant_data/odoo-9.0/openerp/api.py", line 562, in new_api
result = method(self._model, cr, uid, self.ids, *args, **old_kwargs)
File "/vagrant_data/odoo-9.0/openerp/models.py", line 4079, in _write
recs.recompute()
File "/vagrant_data/odoo-9.0/openerp/api.py", line 236, in wrapper
return new_api(self, *args, **kwargs)
File "/vagrant_data/odoo-9.0/openerp/models.py", line 5828, in recompute
vals = rec._convert_to_write({n: rec[n] for n in ns})
File "/vagrant_data/odoo-9.0/openerp/models.py", line 5828, in <dictcomp>
vals = rec._convert_to_write({n: rec[n] for n in ns})
File "/vagrant_data/odoo-9.0/openerp/models.py", line 5715, in __getitem__
return self._fields[key].__get__(self, type(self))
File "/vagrant_data/odoo-9.0/openerp/fields.py", line 807, in __get__
self.determine_value(record)
File "/vagrant_data/odoo-9.0/openerp/fields.py", line 889, in determine_value
self.compute_value(recs)
File "/vagrant_data/odoo-9.0/openerp/fields.py", line 869, in compute_value
self._compute_value(records)
File "/vagrant_data/odoo-9.0/openerp/fields.py", line 859, in _compute_value
getattr(records, self.compute)()
File "/vagrant_data/odoo-9.0/openerp/addons/base/res/res_partner.py", line 288, in _compute_images
rec.image_medium = tools.image_resize_image_medium(rec.image)
File "/vagrant_data/odoo-9.0/openerp/tools/image.py", line 143, in image_resize_image_medium
return image_resize_image(base64_source, size, encoding, filetype, avoid_if_small)
File "/vagrant_data/odoo-9.0/openerp/tools/image.py", line 73, in image_resize_image
image = image_resize_and_sharpen(image, size)
File "/vagrant_data/odoo-9.0/openerp/tools/image.py", line 92, in image_resize_and_sharpen
image = image.convert('RGBA')
File "/home/vagrant/odoo/local/lib/python2.7/site-packages/PIL/Image.py", line 832, in convert
self.load()
File "/home/vagrant/odoo/local/lib/python2.7/site-packages/PIL/ImageFile.py", line 200, in load
d = Image._getdecoder(self.mode, d, a, self.decoderconfig)
File "/home/vagrant/odoo/local/lib/python2.7/site-packages/PIL/Image.py", line 417, in _getdecoder
raise IOError("decoder %s not available" % decoder_name)
ParseError: "decoder jpeg not available" while parsing /vagrant_data/odoo-9.0/openerp/addons/base/base_demo.xml:38, near
<record id="user_demo" model="res.users">
<field name="partner_id" ref="base.partner_demo"/>
<field name="login">demo</field>
<field name="password">demo</field>
<field name="signature">--
Mr Demo</field>
<field name="company_id" ref="main_company"/>
<field name="groups_id" eval="[(6,0,[ref('base.group_user'), ref('base.group_partner_manager')])]"/>
<field name="image" type="base64" file="base/static/img/user_demo-image.jpg"/>
</record>
2016-01-20 10:49:23,555 5089 ERROR mydb openerp.service.db: CREATE DATABASE failed:
Traceback (most recent call last):
File "/vagrant_data/odoo-9.0/openerp/service/db.py", line 49, in _initialize_db
db_name, demo, None, update_module=True)
File "/vagrant_data/odoo-9.0/openerp/modules/registry.py", line 385, in new
openerp.modules.load_modules(registry._db, force_demo, status, update_module)
File "/vagrant_data/odoo-9.0/openerp/modules/loading.py", line 279, in load_modules
loaded_modules, processed_modules = load_module_graph(cr, graph, status, perform_checks=update_module, report=report)
File "/vagrant_data/odoo-9.0/openerp/modules/loading.py", line 159, in load_module_graph
_load_data(cr, module_name, idref, mode, kind='demo')
File "/vagrant_data/odoo-9.0/openerp/modules/loading.py", line 98, in _load_data
tools.convert_file(cr, module_name, filename, idref, mode, noupdate, kind, report)
File "/vagrant_data/odoo-9.0/openerp/tools/convert.py", line 852, in convert_file
convert_xml_import(cr, module, fp, idref, mode, noupdate, report)
File "/vagrant_data/odoo-9.0/openerp/tools/convert.py", line 939, in convert_xml_import
obj.parse(doc.getroot(), mode=mode)
File "/vagrant_data/odoo-9.0/openerp/tools/convert.py", line 802, in parse
self.parse(rec, mode)
File "/vagrant_data/odoo-9.0/openerp/tools/convert.py", line 805, in parse
self._tags[rec.tag](self.cr, rec, de, mode=mode)
File "/vagrant_data/odoo-9.0/openerp/tools/convert.py", line 709, in _tag_record
id = self.pool['ir.model.data']._update(cr, self.uid, rec_model, self.module, res, rec_id or False, not self.isnoupdate(data_node), noupdate=self.isnoupdate(data_node), mode=self.mode, context=rec_context )
File "/vagrant_data/odoo-9.0/openerp/api.py", line 238, in wrapper
return old_api(self, *args, **kwargs)
File "/vagrant_data/odoo-9.0/openerp/addons/base/ir/ir_model.py", line 1101, in _update
res_id = model_obj.create(cr, uid, values, context=context)
File "/vagrant_data/odoo-9.0/openerp/api.py", line 238, in wrapper
return old_api(self, *args, **kwargs)
File "/vagrant_data/odoo-9.0/openerp/addons/base/res/res_users.py", line 845, in create
return super(users_view, self).create(cr, uid, values, context)
File "/vagrant_data/odoo-9.0/openerp/api.py", line 238, in wrapper
return old_api(self, *args, **kwargs)
File "/vagrant_data/odoo-9.0/openerp/addons/base/res/res_users.py", line 643, in create
user_id = super(users_implied, self).create(cr, uid, values, context)
File "/vagrant_data/odoo-9.0/openerp/api.py", line 238, in wrapper
return old_api(self, *args, **kwargs)
File "/vagrant_data/odoo-9.0/openerp/addons/base/res/res_users.py", line 336, in create
user_id = super(res_users, self).create(cr, uid, vals, context=context)
File "/vagrant_data/odoo-9.0/openerp/api.py", line 238, in wrapper
return old_api(self, *args, **kwargs)
File "/vagrant_data/odoo-9.0/openerp/api.py", line 342, in old_api
result = method(recs, *args, **kwargs)
File "/vagrant_data/odoo-9.0/openerp/models.py", line 4132, in create
record = self.browse(self._create(old_vals))
File "/vagrant_data/odoo-9.0/openerp/api.py", line 236, in wrapper
return new_api(self, *args, **kwargs)
File "/vagrant_data/odoo-9.0/openerp/api.py", line 478, in new_api
result = method(self._model, cr, uid, *args, **old_kwargs)
File "/vagrant_data/odoo-9.0/openerp/models.py", line 4190, in _create
self.pool[table].write(cr, user, [record_id], tocreate[table], context=context)
File "/vagrant_data/odoo-9.0/openerp/api.py", line 238, in wrapper
return old_api(self, *args, **kwargs)
File "/vagrant_data/odoo-9.0/openerp/api.py", line 369, in old_api
result = method(recs, *args, **kwargs)
File "/vagrant_data/odoo-9.0/openerp/addons/base/res/res_partner.py", line 536, in write
result = super(res_partner, self).write(vals)
File "/vagrant_data/odoo-9.0/openerp/api.py", line 236, in wrapper
return new_api(self, *args, **kwargs)
File "/vagrant_data/odoo-9.0/openerp/models.py", line 3819, in write
self._write(old_vals)
File "/vagrant_data/odoo-9.0/openerp/api.py", line 236, in wrapper
return new_api(self, *args, **kwargs)
File "/vagrant_data/odoo-9.0/openerp/api.py", line 562, in new_api
result = method(self._model, cr, uid, self.ids, *args, **old_kwargs)
File "/vagrant_data/odoo-9.0/openerp/models.py", line 3970, in _write
result += self._columns[field].set(cr, self, id, field, vals[field], user, context=rel_context) or []
File "/vagrant_data/odoo-9.0/openerp/osv/fields.py", line 638, in set
att.write({'datas': value})
File "/vagrant_data/odoo-9.0/openerp/api.py", line 236, in wrapper
return new_api(self, *args, **kwargs)
File "/vagrant_data/odoo-9.0/openerp/api.py", line 562, in new_api
result = method(self._model, cr, uid, self.ids, *args, **old_kwargs)
File "/vagrant_data/odoo-9.0/openerp/addons/base/ir/ir_attachment.py", line 429, in write
return super(ir_attachment, self).write(cr, uid, ids, vals, context)
File "/vagrant_data/odoo-9.0/openerp/api.py", line 238, in wrapper
return old_api(self, *args, **kwargs)
File "/vagrant_data/odoo-9.0/openerp/api.py", line 369, in old_api
result = method(recs, *args, **kwargs)
File "/vagrant_data/odoo-9.0/openerp/models.py", line 3819, in write
self._write(old_vals)
File "/vagrant_data/odoo-9.0/openerp/api.py", line 236, in wrapper
return new_api(self, *args, **kwargs)
File "/vagrant_data/odoo-9.0/openerp/api.py", line 562, in new_api
result = method(self._model, cr, uid, self.ids, *args, **old_kwargs)
File "/vagrant_data/odoo-9.0/openerp/models.py", line 3970, in _write
result += self._columns[field].set(cr, self, id, field, vals[field], user, context=rel_context) or []
File "/vagrant_data/odoo-9.0/openerp/osv/fields.py", line 1512, in set
self._fnct_inv(obj, cr, user, id, name, value, self._fnct_inv_arg, context)
File "/vagrant_data/odoo-9.0/openerp/addons/base/ir/ir_attachment.py", line 228, in _data_set
super(ir_attachment, self).write(cr, SUPERUSER_ID, [id], vals, context=context)
File "/vagrant_data/odoo-9.0/openerp/api.py", line 238, in wrapper
return old_api(self, *args, **kwargs)
File "/vagrant_data/odoo-9.0/openerp/api.py", line 369, in old_api
result = method(recs, *args, **kwargs)
File "/vagrant_data/odoo-9.0/openerp/models.py", line 3819, in write
self._write(old_vals)
File "/vagrant_data/odoo-9.0/openerp/api.py", line 236, in wrapper
return new_api(self, *args, **kwargs)
File "/vagrant_data/odoo-9.0/openerp/api.py", line 562, in new_api
result = method(self._model, cr, uid, self.ids, *args, **old_kwargs)
File "/vagrant_data/odoo-9.0/openerp/models.py", line 4079, in _write
recs.recompute()
File "/vagrant_data/odoo-9.0/openerp/api.py", line 236, in wrapper
return new_api(self, *args, **kwargs)
File "/vagrant_data/odoo-9.0/openerp/models.py", line 5828, in recompute
vals = rec._convert_to_write({n: rec[n] for n in ns})
File "/vagrant_data/odoo-9.0/openerp/models.py", line 5828, in <dictcomp>
vals = rec._convert_to_write({n: rec[n] for n in ns})
File "/vagrant_data/odoo-9.0/openerp/models.py", line 5715, in __getitem__
return self._fields[key].__get__(self, type(self))
File "/vagrant_data/odoo-9.0/openerp/fields.py", line 807, in __get__
self.determine_value(record)
File "/vagrant_data/odoo-9.0/openerp/fields.py", line 889, in determine_value
self.compute_value(recs)
File "/vagrant_data/odoo-9.0/openerp/fields.py", line 869, in compute_value
self._compute_value(records)
File "/vagrant_data/odoo-9.0/openerp/fields.py", line 859, in _compute_value
getattr(records, self.compute)()
File "/vagrant_data/odoo-9.0/openerp/addons/base/res/res_partner.py", line 288, in _compute_images
rec.image_medium = tools.image_resize_image_medium(rec.image)
File "/vagrant_data/odoo-9.0/openerp/tools/image.py", line 143, in image_resize_image_medium
return image_resize_image(base64_source, size, encoding, filetype, avoid_if_small)
File "/vagrant_data/odoo-9.0/openerp/tools/image.py", line 73, in image_resize_image
image = image_resize_and_sharpen(image, size)
File "/vagrant_data/odoo-9.0/openerp/tools/image.py", line 92, in image_resize_and_sharpen
image = image.convert('RGBA')
File "/home/vagrant/odoo/local/lib/python2.7/site-packages/PIL/Image.py", line 832, in convert
self.load()
File "/home/vagrant/odoo/local/lib/python2.7/site-packages/PIL/ImageFile.py", line 200, in load
d = Image._getdecoder(self.mode, d, a, self.decoderconfig)
File "/home/vagrant/odoo/local/lib/python2.7/site-packages/PIL/Image.py", line 417, in _getdecoder
raise IOError("decoder %s not available" % decoder_name)
ParseError: "decoder jpeg not available" while parsing /vagrant_data/odoo-9.0/openerp/addons/base/base_demo.xml:38, near
<record id="user_demo" model="res.users">
<field name="partner_id" ref="base.partner_demo"/>
<field name="login">demo</field>
<field name="password">demo</field>
<field name="signature">--
Mr Demo</field>
<field name="company_id" ref="main_company"/>
<field name="groups_id" eval="[(6,0,[ref('base.group_user'), ref('base.group_partner_manager')])]"/>
<field name="image" type="base64" file="base/static/img/user_demo-image.jpg"/>
</record>
2016-01-20 10:49:23,585 5089 INFO mydb openerp.modules.loading: loading 1 modules...
2016-01-20 10:49:23,640 5089 INFO mydb openerp.modules.module: module base: creating or updating database tables
2016-01-20 10:49:24,479 5089 ERROR mydb openerp.modules.registry: Failed to load registry
Traceback (most recent call last):
File "/vagrant_data/odoo-9.0/openerp/modules/registry.py", line 385, in new
openerp.modules.load_modules(registry._db, force_demo, status, update_module)
File "/vagrant_data/odoo-9.0/openerp/modules/loading.py", line 279, in load_modules
loaded_modules, processed_modules = load_module_graph(cr, graph, status, perform_checks=update_module, report=report)
File "/vagrant_data/odoo-9.0/openerp/modules/loading.py", line 137, in load_module_graph
init_module_models(cr, package.name, models)
File "/vagrant_data/odoo-9.0/openerp/modules/module.py", line 306, in init_module_models
obj_list[0].recompute(cr, openerp.SUPERUSER_ID, {})
File "/vagrant_data/odoo-9.0/openerp/api.py", line 238, in wrapper
return old_api(self, *args, **kwargs)
File "/vagrant_data/odoo-9.0/openerp/api.py", line 342, in old_api
result = method(recs, *args, **kwargs)
File "/vagrant_data/odoo-9.0/openerp/models.py", line 5827, in recompute
for rec in recs.exists():
File "/vagrant_data/odoo-9.0/openerp/api.py", line 236, in wrapper
return new_api(self, *args, **kwargs)
File "/vagrant_data/odoo-9.0/openerp/models.py", line 4967, in exists
self._cr.execute(query, [tuple(ids)])
File "/vagrant_data/odoo-9.0/openerp/sql_db.py", line 138, in wrapper
raise psycopg2.OperationalError(msg)
OperationalError: Unable to use a closed cursor.
2016-01-20 10:49:24,488 5089 ERROR mydb openerp.http: Unable to use a closed cursor.
Traceback (most recent call last):
File "/vagrant_data/odoo-9.0/openerp/http.py", line 114, in dispatch_rpc
result = dispatch(method, params)
File "/vagrant_data/odoo-9.0/openerp/service/common.py", line 57, in dispatch
return g[exp_method_name](*params)
File "/vagrant_data/odoo-9.0/openerp/service/common.py", line 29, in exp_authenticate
res_users = openerp.registry(db)['res.users']
File "/vagrant_data/odoo-9.0/openerp/__init__.py", line 50, in registry
return modules.registry.RegistryManager.get(database_name)
File "/vagrant_data/odoo-9.0/openerp/modules/registry.py", line 354, in get
update_module)
File "/vagrant_data/odoo-9.0/openerp/modules/registry.py", line 385, in new
openerp.modules.load_modules(registry._db, force_demo, status, update_module)
File "/vagrant_data/odoo-9.0/openerp/modules/loading.py", line 279, in load_modules
loaded_modules, processed_modules = load_module_graph(cr, graph, status, perform_checks=update_module, report=report)
File "/vagrant_data/odoo-9.0/openerp/modules/loading.py", line 137, in load_module_graph
init_module_models(cr, package.name, models)
File "/vagrant_data/odoo-9.0/openerp/modules/module.py", line 306, in init_module_models
obj_list[0].recompute(cr, openerp.SUPERUSER_ID, {})
File "/vagrant_data/odoo-9.0/openerp/api.py", line 238, in wrapper
return old_api(self, *args, **kwargs)
File "/vagrant_data/odoo-9.0/openerp/api.py", line 342, in old_api
result = method(recs, *args, **kwargs)
File "/vagrant_data/odoo-9.0/openerp/models.py", line 5827, in recompute
for rec in recs.exists():
File "/vagrant_data/odoo-9.0/openerp/api.py", line 236, in wrapper
return new_api(self, *args, **kwargs)
File "/vagrant_data/odoo-9.0/openerp/models.py", line 4967, in exists
self._cr.execute(query, [tuple(ids)])
File "/vagrant_data/odoo-9.0/openerp/sql_db.py", line 138, in wrapper
raise psycopg2.OperationalError(msg)
OperationalError: Unable to use a closed cursor.`