c2c-oerpscenario team mailing list archive
-
c2c-oerpscenario team
-
Mailing list archive
-
Message #25188
[Bug 673773] Re: safe_eval prevents workflow execution with Python 2.7
In my case, I had this problem running Openerp 5 over Python 2.7.
I have installed Python 2.6 making them both coexist. But the problem is
that the 2.6 installation, doesn't have the needed addons installed. The
key problem is PyUno ("uno") is an open office bridge, needed for the
report_openoffice, which has some dependencies with other modules.
The problem comes from the old server which has been compromised, so I
had to migrate in a rush to another server
Please, help. I'm not prepared yet for OE6, since a number of modules
must be upgraded to 6 before I could migrate.
--
You received this bug notification because you are a member of C2C
OERPScenario, which is subscribed to the OpenERP Project Group.
https://bugs.launchpad.net/bugs/673773
Title:
safe_eval prevents workflow execution with Python 2.7
Status in OpenERP Server:
Fix Released
Bug description:
Environment:
-------------------------------------------------
OpenERP Web ; Version 6.0.0-rc1
Ubuntu 8.4 ; Linux scubuntu 2.6.24-28-server #1 SMP Sat Oct 16 18:09:42 UTC 2010 x86_64 GNU/Linux
Python-2.7
Google Chrome and Firefox
Latest versions of all dependencies (Let me know if you need me to
list them with their versions)
Problem:
-------------------------------------------------
1. I installed OpenERP 6.0.0-rc1
2. I clicked on the "Start Configuration" button that appeared when I first logged in
3. I hit next (I've tried several times and it doesn't matter if I use the simple or the extended Interface)
4. I hit next (again, I have tried by entering in valid data and have tried with the defaults)
5. I select/check all of the applications and any of the "Industry Specific" applications and then hit "Install"
I then get the Following:
An Application Error has been reported.
Let me fix it
Fix it for me
I click on Let me fix it and I get the following:
Traceback (most recent call last):
File "/opt/standingcloud/stack/openerp-server-6.0.0-rc1/lib/python2.7/site-packages/openerp-server/netsvc.py", line 489, in dispatch
result = ExportService.getService(service_name).dispatch(method, auth, params)
File "/opt/standingcloud/stack/openerp-server-6.0.0-rc1/lib/python2.7/site-packages/openerp-server/service/web_services.py", line 586, in dispatch
res = fn(db, uid, *params)
File "/opt/standingcloud/stack/openerp-server-6.0.0-rc1/lib/python2.7/site-packages/openerp-server/osv/osv.py", line 57, in wrapper
return f(self, dbname, *args, **kwargs)
File "/opt/standingcloud/stack/openerp-server-6.0.0-rc1/lib/python2.7/site-packages/openerp-server/osv/osv.py", line 140, in execute
res = pool.execute_cr(cr, uid, obj, method, *args, **kw)
File "/opt/standingcloud/stack/openerp-server-6.0.0-rc1/lib/python2.7/site-packages/openerp-server/osv/osv.py", line 130, in execute_cr
return getattr(object, method)(cr, uid, *args, **kw)
File "/opt/standingcloud/stack/openerp-server-6.0.0-rc1/lib/python2.7/site-packages/openerp-server/addons/base/res/res_config.py", line 182, in action_next
next = self.execute(cr, uid, ids, context=None)
File "/opt/standingcloud/stack/openerp-server-6.0.0-rc1/lib/python2.7/site-packages/openerp-server/addons/base/res/res_config.py", line 420, in execute
pooler.restart_pool(cr.dbname, update_module=True)
File "/opt/standingcloud/stack/openerp-server-6.0.0-rc1/lib/python2.7/site-packages/openerp-server/pooler.py", line 60, in restart_pool
return get_db_and_pool(db_name, force_demo, status, update_module=update_module)
File "/opt/standingcloud/stack/openerp-server-6.0.0-rc1/lib/python2.7/site-packages/openerp-server/pooler.py", line 39, in get_db_and_pool
addons.load_modules(db, force_demo, status, update_module)
File "/opt/standingcloud/stack/openerp-server-6.0.0-rc1/lib/python2.7/site-packages/openerp-server/addons/__init__.py", line 852, in load_modules
r = load_module_graph(cr, graph, status, report=report)
File "/opt/standingcloud/stack/openerp-server-6.0.0-rc1/lib/python2.7/site-packages/openerp-server/addons/__init__.py", line 732, in load_module_graph
load_demo(cr, m, idref, mode)
File "/opt/standingcloud/stack/openerp-server-6.0.0-rc1/lib/python2.7/site-packages/openerp-server/addons/__init__.py", line 643, in load_demo
_load_data(cr, module_name, id_map, mode, 'demo')
File "/opt/standingcloud/stack/openerp-server-6.0.0-rc1/lib/python2.7/site-packages/openerp-server/addons/__init__.py", line 675, in _load_data
tools.convert_xml_import(cr, module_name, file, id_map, mode, noupdate)
File "/opt/standingcloud/stack/openerp-server-6.0.0-rc1/lib/python2.7/site-packages/openerp-server/tools/convert.py", line 960, in convert_xml_import
obj.parse(doc.getroot())
File "/opt/standingcloud/stack/openerp-server-6.0.0-rc1/lib/python2.7/site-packages/openerp-server/tools/convert.py", line 851, in parse
self._tags[rec.tag](self.cr, rec, n)
File "/opt/standingcloud/stack/openerp-server-6.0.0-rc1/lib/python2.7/site-packages/openerp-server/tools/convert.py", line 533, in _tag_workflow
str(rec.get('action','')), cr)
File "/opt/standingcloud/stack/openerp-server-6.0.0-rc1/lib/python2.7/site-packages/openerp-server/workflow/wkf_service.py", line 80, in trg_validate
res2 = instance.validate(cr, id, ident, signal)
File "/opt/standingcloud/stack/openerp-server-6.0.0-rc1/lib/python2.7/site-packages/openerp-server/workflow/instance.py", line 48, in validate
workitem.process(cr, witem, ident, signal, force_running, stack=stack)
File "/opt/standingcloud/stack/openerp-server-6.0.0-rc1/lib/python2.7/site-packages/openerp-server/workflow/workitem.py", line 61, in process
ok = _split_test(cr, workitem, activity['split_mode'], ident, signal, stack)
File "/opt/standingcloud/stack/openerp-server-6.0.0-rc1/lib/python2.7/site-packages/openerp-server/workflow/workitem.py", line 174, in _split_test
_join_test(cr, t[0], t[1], ident, stack)
File "/opt/standingcloud/stack/openerp-server-6.0.0-rc1/lib/python2.7/site-packages/openerp-server/workflow/workitem.py", line 182, in _join_test
create(cr,[activity], inst_id, ident, stack)
File "/opt/standingcloud/stack/openerp-server-6.0.0-rc1/lib/python2.7/site-packages/openerp-server/workflow/workitem.py", line 41, in create
process(cr, res, ident, stack=stack)
File "/opt/standingcloud/stack/openerp-server-6.0.0-rc1/lib/python2.7/site-packages/openerp-server/workflow/workitem.py", line 61, in process
ok = _split_test(cr, workitem, activity['split_mode'], ident, signal, stack)
File "/opt/standingcloud/stack/openerp-server-6.0.0-rc1/lib/python2.7/site-packages/openerp-server/workflow/workitem.py", line 174, in _split_test
_join_test(cr, t[0], t[1], ident, stack)
File "/opt/standingcloud/stack/openerp-server-6.0.0-rc1/lib/python2.7/site-packages/openerp-server/workflow/workitem.py", line 182, in _join_test
create(cr,[activity], inst_id, ident, stack)
File "/opt/standingcloud/stack/openerp-server-6.0.0-rc1/lib/python2.7/site-packages/openerp-server/workflow/workitem.py", line 41, in create
process(cr, res, ident, stack=stack)
File "/opt/standingcloud/stack/openerp-server-6.0.0-rc1/lib/python2.7/site-packages/openerp-server/workflow/workitem.py", line 61, in process
ok = _split_test(cr, workitem, activity['split_mode'], ident, signal, stack)
File "/opt/standingcloud/stack/openerp-server-6.0.0-rc1/lib/python2.7/site-packages/openerp-server/workflow/workitem.py", line 174, in _split_test
_join_test(cr, t[0], t[1], ident, stack)
File "/opt/standingcloud/stack/openerp-server-6.0.0-rc1/lib/python2.7/site-packages/openerp-server/workflow/workitem.py", line 182, in _join_test
create(cr,[activity], inst_id, ident, stack)
File "/opt/standingcloud/stack/openerp-server-6.0.0-rc1/lib/python2.7/site-packages/openerp-server/workflow/workitem.py", line 41, in create
process(cr, res, ident, stack=stack)
File "/opt/standingcloud/stack/openerp-server-6.0.0-rc1/lib/python2.7/site-packages/openerp-server/workflow/workitem.py", line 53, in process
result = _execute(cr, workitem, activity, ident, stack)
File "/opt/standingcloud/stack/openerp-server-6.0.0-rc1/lib/python2.7/site-packages/openerp-server/workflow/workitem.py", line 126, in _execute
id_new = wkf_expr.execute(cr, ident, workitem, activity)
File "/opt/standingcloud/stack/openerp-server-6.0.0-rc1/lib/python2.7/site-packages/openerp-server/workflow/wkf_expr.py", line 68, in execute
return _eval_expr(cr, ident, workitem, activity['action'])
File "/opt/standingcloud/stack/openerp-server-6.0.0-rc1/lib/python2.7/site-packages/openerp-server/workflow/wkf_expr.py", line 58, in _eval_expr
ret = eval(line, env, nocopy=True)
File "/opt/standingcloud/stack/openerp-server-6.0.0-rc1/lib/python2.7/site-packages/openerp-server/tools/safe_eval.py", line 271, in safe_eval
return eval(test_expr(expr,_SAFE_OPCODES, mode=mode), globals_dict, locals_dict)
File "", line 1, in <module>
File "/opt/standingcloud/stack/openerp-server-6.0.0-rc1/lib/python2.7/site-packages/openerp-server/osv/orm.py", line 177, in <lambda>
return lambda *args, **argv: attr(self._cr, self._uid, [self._id], *args, **argv)
File "/opt/standingcloud/stack/openerp-server-6.0.0-rc1/lib/python2.7/site-packages/openerp-server/addons/purchase/purchase.py", line 461, in action_picking_create
wf_service.trg_validate(uid, 'stock.picking', picking_id, 'button_confirm', cr)
File "/opt/standingcloud/stack/openerp-server-6.0.0-rc1/lib/python2.7/site-packages/openerp-server/workflow/wkf_service.py", line 80, in trg_validate
res2 = instance.validate(cr, id, ident, signal)
File "/opt/standingcloud/stack/openerp-server-6.0.0-rc1/lib/python2.7/site-packages/openerp-server/workflow/instance.py", line 48, in validate
workitem.process(cr, witem, ident, signal, force_running, stack=stack)
File "/opt/standingcloud/stack/openerp-server-6.0.0-rc1/lib/python2.7/site-packages/openerp-server/workflow/workitem.py", line 61, in process
ok = _split_test(cr, workitem, activity['split_mode'], ident, signal, stack)
File "/opt/standingcloud/stack/openerp-server-6.0.0-rc1/lib/python2.7/site-packages/openerp-server/workflow/workitem.py", line 174, in _split_test
_join_test(cr, t[0], t[1], ident, stack)
File "/opt/standingcloud/stack/openerp-server-6.0.0-rc1/lib/python2.7/site-packages/openerp-server/workflow/workitem.py", line 182, in _join_test
create(cr,[activity], inst_id, ident, stack)
File "/opt/standingcloud/stack/openerp-server-6.0.0-rc1/lib/python2.7/site-packages/openerp-server/workflow/workitem.py", line 41, in create
process(cr, res, ident, stack=stack)
File "/opt/standingcloud/stack/openerp-server-6.0.0-rc1/lib/python2.7/site-packages/openerp-server/workflow/workitem.py", line 61, in process
ok = _split_test(cr, workitem, activity['split_mode'], ident, signal, stack)
File "/opt/standingcloud/stack/openerp-server-6.0.0-rc1/lib/python2.7/site-packages/openerp-server/workflow/workitem.py", line 174, in _split_test
_join_test(cr, t[0], t[1], ident, stack)
File "/opt/standingcloud/stack/openerp-server-6.0.0-rc1/lib/python2.7/site-packages/openerp-server/workflow/workitem.py", line 182, in _join_test
create(cr,[activity], inst_id, ident, stack)
File "/opt/standingcloud/stack/openerp-server-6.0.0-rc1/lib/python2.7/site-packages/openerp-server/workflow/workitem.py", line 41, in create
process(cr, res, ident, stack=stack)
File "/opt/standingcloud/stack/openerp-server-6.0.0-rc1/lib/python2.7/site-packages/openerp-server/workflow/workitem.py", line 61, in process
ok = _split_test(cr, workitem, activity['split_mode'], ident, signal, stack)
File "/opt/standingcloud/stack/openerp-server-6.0.0-rc1/lib/python2.7/site-packages/openerp-server/workflow/workitem.py", line 156, in _split_test
if wkf_expr.check(cr, workitem, ident, transition,signal):
File "/opt/standingcloud/stack/openerp-server-6.0.0-rc1/lib/python2.7/site-packages/openerp-server/workflow/wkf_expr.py", line 81, in check
return _eval_expr(cr, ident, workitem, transition['condition'])
File "/opt/standingcloud/stack/openerp-server-6.0.0-rc1/lib/python2.7/site-packages/openerp-server/workflow/wkf_expr.py", line 58, in _eval_expr
ret = eval(line, env, nocopy=True)
File "/opt/standingcloud/stack/openerp-server-6.0.0-rc1/lib/python2.7/site-packages/openerp-server/tools/safe_eval.py", line 271, in safe_eval
return eval(test_expr(expr,_SAFE_OPCODES, mode=mode), globals_dict, locals_dict)
File "/opt/standingcloud/stack/openerp-server-6.0.0-rc1/lib/python2.7/site-packages/openerp-server/tools/safe_eval.py", line 105, in test_expr
raise ValueError("opcode %s not allowed (%r)" % (opname[code], expr))
ValueError: opcode JUMP_IF_FALSE_OR_POP not allowed (u'auto_picking and test_auto_picking()')
Follow ups
References