Odoo Help

Welcome!

This community is for beginners and experts willing to share their Odoo knowledge. It's not a forum to discuss ideas, but a knowledge base of questions and their answers.

1

Recursivity issue with warehouse

By
sfacchin
on 2/9/13, 3:15 PM 3,052 views

So I'm using OpenERP 6.1 in synchro with Magento 1.7 and sneldev module.

I get a Web Store and 2 places for real stock and only one of them to be the main stock to receive and deliver products through Web, that we bought to some purchase partners in fews differents countries

All seem to function well since I want to reorganise Physical Store and Warehouse. I had some doubt about the way the stock inventory is managed. I first loose display of the customers deliveries and the Purchase exception. Schedulers stop working. I try to go backward and try some other option like Automatic chain but now it's worst.

So I'm in worry on how to recover basic functionality as you could see below I even loose the ability to valid a pre purchase to become a real purchase.

No more confidence within the stock inventory!?

How could I recover the whole functionality?


OpenERP Server Error

Client Traceback (most recent call last): File "/home/erpuser/openerp/production/server/openerp/addons/web/common/http.py", line 180, in dispatch response["result"] = method(controller, self, **self.params) File "/home/erpuser/openerp/production/server/openerp/addons/web/controllers/main.py", line 1059, in execworkflow r = req.session.execworkflow(model, id, signal) File "/home/erpuser/openerp/production/server/openerp/addons/web/common/session.py", line 100, in execworkflow r = self.proxy('object').execworkflow(self.db, self.uid, self.password, model, signal, id) File "/home/erpuser/openerp/production/server/openerp/addons/web/common/openerplib/main.py", line 117, in proxy result = self.connector.send(self.servicename, method, *args) File "/home/erpuser/openerp/production/server/openerp/addons/web/common/http.py", line 608, in send raise xmlrpclib.Fault(openerp.tools.exceptiontounicode(e), formattedinfo)

-Many suppressed line-

Server Traceback (most recent call last): File "/home/erpuser/openerp/production/server/openerp/addons/web/common/http.py", line 593, in send return openerp.netsvc.dispatchrpc(servicename, method, args) File "/home/erpuser/openerp/production/server/openerp/netsvc.py", line 360, in dispatchrpc result = ExportService.getService(servicename).dispatch(method, params) File "/home/erpuser/openerp/production/server/openerp/service/webservices.py", line 586, in dispatch res = fn(db, uid, params) File "/home/erp_user/openerp/production/server/openerp/osv/osv.py", line 121, in wrapper return f(self, dbname, *args, *kwargs) File "/home/erpuser/openerp/production/server/openerp/osv/osv.py", line 196, in execworkflow res = self.execworkflowcr(cr, uid, obj, method, args) File "/home/erp_user/openerp/production/server/openerp/osv/osv.py", line 189, in exec_workflow_cr return wf_service.trg_validate(uid, obj, args[0], method, cr) File "/home/erp_user/openerp/production/server/openerp/workflow/wkf_service.py", line 124, in trg_validate res2 = instance.validate(cr, id, ident, signal) File "/home/erp_user/openerp/production/server/openerp/workflow/instance.py", line 48, in validate workitem.process(cr, witem, ident, signal, force_running, stack=stack) File "/home/erp_user/openerp/production/server/openerp/workflow/workitem.py", line 61, in process ok = _split_test(cr, workitem, activity['split_mode'], ident, signal, stack) File "/home/erp_user/openerp/production/server/openerp/workflow/workitem.py", line 176, in _split_test _join_test(cr, t[0], t[1], ident, stack) File "/home/erp_user/openerp/production/server/openerp/workflow/workitem.py", line 184, in _join_test create(cr,[activity], inst_id, ident, stack) File "/home/erp_user/openerp/production/server/openerp/workflow/workitem.py", line 41, in create process(cr, res, ident, stack=stack) File "/home/erp_user/openerp/production/server/openerp/workflow/workitem.py", line 61, in process ok = _split_test(cr, workitem, activity['split_mode'], ident, signal, stack) File "/home/erp_user/openerp/production/server/openerp/workflow/workitem.py", line 176, in _split_test _join_test(cr, t[0], t[1], ident, stack) File "/home/erp_user/openerp/production/server/openerp/workflow/workitem.py", line 184, in _join_test create(cr,[activity], inst_id, ident, stack) File "/home/erp_user/openerp/production/server/openerp/workflow/workitem.py", line 41, in create process(cr, res, ident, stack=stack) File "/home/erp_user/openerp/production/server/openerp/workflow/workitem.py", line 61, in process ok = _split_test(cr, workitem, activity['split_mode'], ident, signal, stack) File "/home/erp_user/openerp/production/server/openerp/workflow/workitem.py", line 176, in _split_test _join_test(cr, t[0], t[1], ident, stack) File "/home/erp_user/openerp/production/server/openerp/workflow/workitem.py", line 184, in _join_test create(cr,[activity], inst_id, ident, stack) File "/home/erp_user/openerp/production/server/openerp/workflow/workitem.py", line 41, in create process(cr, res, ident, stack=stack) File "/home/erp_user/openerp/production/server/openerp/workflow/workitem.py", line 53, in process result = _execute(cr, workitem, activity, ident, stack) File "/home/erp_user/openerp/production/server/openerp/workflow/workitem.py", line 128, in _execute id_new = wkf_expr.execute(cr, ident, workitem, activity) File "/home/erp_user/openerp/production/server/openerp/workflow/wkf_expr.py", line 68, in execute return _eval_expr(cr, ident, workitem, activity['action']) File "/home/erp_user/openerp/production/server/openerp/workflow/wkf_expr.py", line 58, in _eval_expr ret = eval(line, env, nocopy=True) File "/home/erp_user/openerp/production/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/erp_user/openerp/production/server/openerp/osv/orm.py", line 368, in function_proxy return attr(self._cr, self._uid, [self._id], *args, *kwargs) File "/home/erpuser/openerp/production/server/openerp/addons/purchase/purchase.py", line 504, in actionpickingcreate pickingids.extend(self.createpickings(cr, uid, order, order.orderline, None, context=context)) File "/home/erpuser/openerp/production/server/openerp/addons/purchase/purchase.py", line 496, in createpickings stockmove.actionconfirm(cr, uid, todomoves) File "/home/erpuser/openerp/production/server/openerp/addons/stock/stock.py", line 1974, in actionconfirm self.createchainedpicking(cr, uid, moves, context) File "/home/erpuser/openerp/production/server/openerp/addons/stock/stock.py", line 1965, in createchainedpicking newmoves += self.createchainedpicking(cr, uid, newmoves, context) File "/home/erpuser/openerp/production/server/openerp/addons/stock/stock.py", line 1965, in createchainedpicking newmoves += self.createchainedpicking(cr, uid, newmoves, context) File "/home/erpuser/openerp/production/server/openerp/addons/stock/stock.py", line 1965, in createchainedpicking .... ....

new_moves += self.create_chained_picking(cr, uid, new_moves, context)

File "/home/erpuser/openerp/production/server/openerp/addons/stock/stock.py", line 1963, in createchainedpicking wfservice.trgvalidate(uid, 'stock.picking', pickid, 'buttonconfirm', cr) File "/home/erpuser/openerp/production/server/openerp/workflow/wkfservice.py", line 124, in trgvalidate res2 = instance.validate(cr, id, ident, signal) File "/home/erpuser/openerp/production/server/openerp/workflow/instance.py", line 48, in validate workitem.process(cr, witem, ident, signal, forcerunning, stack=stack) File "/home/erpuser/openerp/production/server/openerp/workflow/workitem.py", line 61, in process ok = splittest(cr, workitem, activity['splitmode'], ident, signal, stack) File "/home/erpuser/openerp/production/server/openerp/workflow/workitem.py", line 176, in splittest jointest(cr, t[0], t[1], ident, stack) File "/home/erpuser/openerp/production/server/openerp/workflow/workitem.py", line 184, in _jointest create(cr,[activity], instid, ident, stack) File "/home/erpuser/openerp/production/server/openerp/workflow/workitem.py", line 41, in create process(cr, res, ident, stack=stack) File "/home/erpuser/openerp/production/server/openerp/workflow/workitem.py", line 53, in process result = _execute(cr, workitem, activity, ident, stack) File "/home/erpuser/openerp/production/server/openerp/workflow/workitem.py", line 107, in execute returnedaction = wkfexpr.execute(cr, ident, workitem, activity) File "/home/erpuser/openerp/production/server/openerp/workflow/wkfexpr.py", line 68, in execute return _evalexpr(cr, ident, workitem, activity['action']) File "/home/erpuser/openerp/production/server/openerp/workflow/wkfexpr.py", line 58, in evalexpr ret = eval(line, env, nocopy=True) File "/home/erpuser/openerp/production/server/openerp/tools/safeeval.py", line 241, in safeeval return eval(testexpr(expr,SAFEOPCODES, mode=mode), globalsdict, localsdict) File "", line 1, in <module> File "/home/erpuser/openerp/production/server/openerp/osv/orm.py", line 368, in functionproxy return attr(self.cr, self.uid, [self.id], *args, **kwargs) File "/home/erpuser/openerp/production/server/openerp/addons/stock/stock.py", line 722, in actionconfirm for r in picking.movelines: File "/home/erpuser/openerp/production/server/openerp/osv/orm.py", line 476, in getattr return self[name] File "/home/erpuser/openerp/production/server/openerp/osv/orm.py", line 391, in getitem fieldvalues = self.table.read(self.cr, self.uid, ids, fieldnames, context=self.context, load="classicwrite") File "/home/erpuser/openerp/production/server/openerp/osv/orm.py", line 3416, in read result = self.readflat(cr, user, select, fields, context, load) File "/home/erpuser/openerp/production/server/openerp/osv/orm.py", line 3539, in readflat res2 = self.columns[f].get(cr, self, ids, f, user, context=context, values=res) File "/home/erpuser/openerp/production/server/openerp/osv/fields.py", line 551, in get ids2 = obj.pool.get(self.obj).search(cr, user, self.domain + [(self.fieldsid, 'in', ids)], limit=self.limit, context=context) File "/home/erpuser/openerp/production/server/openerp/osv/orm.py", line 2245, in search return self.search(cr, user, args, offset=offset, limit=limit, order=order, context=context, count=count) File "/home/erpuser/openerp/production/server/openerp/osv/orm.py", line 4580, in search self.checkread(cr, accessrightsuid or user) File "/home/erpuser/openerp/production/server/openerp/osv/orm.py", line 3661, in checkread return self.checkaccessrights(cr, uid, 'read', raiseexception) File "/home/erpuser/openerp/production/server/openerp/osv/orm.py", line 3655, in checkaccessrights return self.pool.get('ir.model.access').check(cr, uid, self.name, operation, raiseexception) File "/home/erpuser/openerp/production/server/openerp/tools/cache.py", line 18, in lookup r = self.lookup(self2, cr, *args) File "/home/erpuser/openerp/production/server/openerp/tools/cache.py", line 41, in lookup r = d[key] File "/home/erpuser/openerp/production/server/openerp/tools/func.py", line 35, in wrapper return func(self, *args, **kwargs) File "/home/erpuser/openerp/production/server/openerp/tools/lru.py", line 38, in getitem self[a[0]] = a[1] File "/home/erpuser/openerp/production/server/openerp/tools/func.py", line 35, in wrapper return func(self, *args, **kwargs) File "/home/erpuser/openerp/production/server/openerp/tools/lru.py", line 44, in setitem del self[obj] File "/home/erpuser/openerp/production/server/openerp/tools/func.py", line 37, in wrapper lock.release() File "/usr/lib/python2.6/threading.py", line 147, in release self.note("%s.release(): non-final release", self) RuntimeError: maximum recursion depth exceeded

I wonder if you have a production situation. If so you where in serious trouble. If you solved it yourself please post an answer on your own question.

ton123
on 2/28/13, 2:53 PM
0
Flyguy
On 7/8/13, 11:41 AM

You probably have an automated chained flow in an endless loop.

If a product arrives in A, push it to B. If a product arrives in B, push it to A. If a product arrives in A, push it to B. If a product arrives in B, push it to A. ...

So after a while the max recursion depth is exceeded. =>Remove the chained link and you should be fine.

Your Answer

Please try to give a substantial answer. If you wanted to comment on the question or answer, just use the commenting tool. Please remember that you can always revise your answers - no need to answer the same question twice. Also, please don't forget to vote - it really helps to select the best questions and answers!

About This Community

This community is for professionals and enthusiasts of our products and services. Read Guidelines

Question tools

1 follower(s)

Stats

Asked: 2/9/13, 3:15 PM
Seen: 3052 times
Last updated: 3/16/15, 8:10 AM