7.0: fix for lp:1233730 breaks the scheduler

Bug #1236191 reported by Alexandre Fayolle - camptocamp
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Odoo Addons (MOVED TO GITHUB)
Fix Released
Medium
Unassigned

Bug Description

https://code.launchpad.net/~openerp-dev/openobject-addons/7.0-purchase-reduce-mail-mat/+merge/189325 breaks the scheduler

Steps to reproduce on runbot:

1. edit the HDD-DEM product to set the procurement method to buy and remove the configured suppliers for the product (easy way to get a procurement in exception)

2. create a SO for 1 HDD-DEM to Camptocamp, confirm it

3. in Warehouse -> Procurements in exception, remove the filter and display the procurement for HDD-DEM

4. First issue, there are 2 messages such as "Status: Confirmed → Exception", and I'm concerned that in the case of a persistently in exception procurement, I'll get more of these which is what lp:1233730 was about

4. click the "Retry" button. I get a crash in the user interface, and presumably the same crash is in the logs when running the scheduler :

OpenERP Server Error

Client Traceback (most recent call last):
File "/home/odoo/runbot/static/openerp-dev-7-0-21912/server/openerp/addons/web/http.py", line 204, in dispatch
response["result"] = method(self, **self.params)
File "/home/odoo/runbot/static/openerp-dev-7-0-21912/server/openerp/addons/web/controllers/main.py", line 1139, in exec_workflow
return req.session.exec_workflow(model, id, signal)
File "/home/odoo/runbot/static/openerp-dev-7-0-21912/server/openerp/addons/web/session.py", line 147, in exec_workflow
r = self.proxy('object').exec_workflow(self._db, self._uid, self._password, model, signal, id)
File "/home/odoo/runbot/static/openerp-dev-7-0-21912/server/openerp/addons/web/session.py", line 30, in proxy_method
result = self.session.send(self.service_name, method, *args)
File "/home/odoo/runbot/static/openerp-dev-7-0-21912/server/openerp/addons/web/session.py", line 103, in send
raise xmlrpclib.Fault(openerp.tools.ustr(e), formatted_info)

Server Traceback (most recent call last):
File "/home/odoo/runbot/static/openerp-dev-7-0-21912/server/openerp/addons/web/session.py", line 89, in send
return openerp.netsvc.dispatch_rpc(service_name, method, args)
File "/home/odoo/runbot/static/openerp-dev-7-0-21912/server/openerp/netsvc.py", line 292, in dispatch_rpc
result = ExportService.getService(service_name).dispatch(method, params)
File "/home/odoo/runbot/static/openerp-dev-7-0-21912/server/openerp/service/web_services.py", line 626, in dispatch
res = fn(db, uid, *params)
File "/home/odoo/runbot/static/openerp-dev-7-0-21912/server/openerp/osv/osv.py", line 131, in wrapper
return f(self, dbname, *args, **kwargs)
File "/home/odoo/runbot/static/openerp-dev-7-0-21912/server/openerp/osv/osv.py", line 220, in exec_workflow
res = self.exec_workflow_cr(cr, uid, obj, signal, *args)
File "/home/odoo/runbot/static/openerp-dev-7-0-21912/server/openerp/addons/audittrail/audittrail.py", line 520, in exec_workflow_cr
return fct_src(cr, uid, model, method, *args, **kw)
File "/home/odoo/runbot/static/openerp-dev-7-0-21912/server/openerp/osv/osv.py", line 213, in exec_workflow_cr
return object._workflow_signal(cr, uid, [res_id], signal)[res_id]
File "/home/odoo/runbot/static/openerp-dev-7-0-21912/server/openerp/osv/orm.py", line 3930, in _workflow_signal
result[res_id] = wf_service.trg_validate(uid, self._name, res_id, signal, cr)
File "/home/odoo/runbot/static/openerp-dev-7-0-21912/server/openerp/workflow/wkf_service.py", line 119, in trg_validate
res2 = instance.validate(cr, id, ident, signal)
File "/home/odoo/runbot/static/openerp-dev-7-0-21912/server/openerp/workflow/instance.py", line 43, in validate
workitem.process(cr, witem, ident, signal, force_running, stack=stack)
File "/home/odoo/runbot/static/openerp-dev-7-0-21912/server/openerp/workflow/workitem.py", line 60, in process
ok = _split_test(cr, workitem, activity['split_mode'], ident, signal, stack)
File "/home/odoo/runbot/static/openerp-dev-7-0-21912/server/openerp/workflow/workitem.py", line 175, in _split_test
_join_test(cr, t[0], t[1], ident, stack)
File "/home/odoo/runbot/static/openerp-dev-7-0-21912/server/openerp/workflow/workitem.py", line 183, in _join_test
create(cr,[activity], inst_id, ident, stack)
File "/home/odoo/runbot/static/openerp-dev-7-0-21912/server/openerp/workflow/workitem.py", line 40, in create
process(cr, res, ident, stack=stack)
File "/home/odoo/runbot/static/openerp-dev-7-0-21912/server/openerp/workflow/workitem.py", line 52, in process
result = _execute(cr, workitem, activity, ident, stack)
File "/home/odoo/runbot/static/openerp-dev-7-0-21912/server/openerp/workflow/workitem.py", line 127, in _execute
id_new = wkf_expr.execute(cr, ident, workitem, activity)
File "/home/odoo/runbot/static/openerp-dev-7-0-21912/server/openerp/workflow/wkf_expr.py", line 67, in execute
return _eval_expr(cr, ident, workitem, activity['action'])
File "/home/odoo/runbot/static/openerp-dev-7-0-21912/server/openerp/workflow/wkf_expr.py", line 57, in _eval_expr
ret = eval(line, env, nocopy=True)
File "/home/odoo/runbot/static/openerp-dev-7-0-21912/server/openerp/tools/safe_eval.py", line 241, in safe_eval
return eval(test_expr(expr, _SAFE_OPCODES, mode=mode), globals_dict, locals_dict)
File "", line 1, in <module>
File "/home/odoo/runbot/static/openerp-dev-7-0-21912/server/openerp/osv/orm.py", line 374, in function_proxy
return attr(self._cr, self._uid, [self._id], *args, **kwargs)
File "/home/odoo/runbot/static/openerp-dev-7-0-21912/server/openerp/addons/purchase/purchase.py", line 1066, in action_po_assign
res = self.make_po(cr, uid, ids, context=context)
File "/home/odoo/runbot/static/openerp-dev-7-0-21912/server/openerp/addons/purchase_requisition/purchase_requisition.py", line 261, in make_po
res = super(procurement_order, self).make_po(cr, uid, ids, context=context)
File "/home/odoo/runbot/static/openerp-dev-7-0-21912/server/openerp/addons/purchase/purchase.py", line 1133, in make_po
address_id = partner_obj.address_get(cr, uid, [partner_id], ['delivery'])['delivery']
File "/home/odoo/runbot/static/openerp-dev-7-0-21912/server/openerp/addons/base/res/res_partner.py", line 704, in address_get
default = result.get('default', partner.id)
UnboundLocalError: local variable 'partner' referenced before assignment

Related branches

Revision history for this message
Martin Trigaux (OpenERP) (mat-openerp) wrote :

Hello Alexandre,

Indeed there was an error in this revision. It has been fixed in the latest patch.

revno: 9505 [merge]
revision-id: <email address hidden>

Thanks for the notice and sorry for the inconvenience.

I will also check the reason of duplicates messages
Regards

Changed in openobject-addons:
status: New → Confirmed
importance: Undecided → Medium
status: Confirmed → Won't Fix
status: Won't Fix → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.