Hi, everyone. Please, help me in solving my problem. We use Odoo 8. On Ubuntu server. When I open a Product list, no matter in which view (tree, canban or form), I see this Odoo Server Error:
Traceback (most recent call last): File "/opt/odoo/odoo/openerp/http.py", line 530, in _handle_exception return super(JsonRequest, self)._handle_exception(exception) File "/opt/odoo/odoo/openerp/http.py", line 567, in dispatch result = self._call_function(**self.params) File "/opt/odoo/odoo/openerp/http.py", line 303, in _call_function return checked_call(self.db, *args, **kwargs) File "/opt/odoo/odoo/openerp/service/model.py", line 113, in wrapper return f(dbname, *args, **kwargs) File "/opt/odoo/odoo/openerp/http.py", line 300, in checked_call return self.endpoint(*a, **kw) File "/opt/odoo/odoo/openerp/http.py", line 796, in __call__ return self.method(*args, **kw) File "/opt/odoo/odoo/openerp/http.py", line 396, in response_wrap response = f(*args, **kw) File "/opt/odoo/odoo/addons/web/controllers/main.py", line 876, in search_read return self.do_search_read(model, fields, offset, limit, domain, sort) File "/opt/odoo/odoo/addons/web/controllers/main.py", line 897, in do_search_read request.context) File "/opt/odoo/odoo/openerp/http.py", line 900, in proxy result = meth(cr, request.uid, *args, **kw) File "/opt/odoo/odoo/openerp/api.py", line 241, in wrapper return old_api(self, *args, **kwargs) File "/opt/odoo/odoo/openerp/models.py", line 5127, in search_read result = self.read(cr, uid, record_ids, fields, context=read_ctx) File "/opt/odoo/odoo/openerp/api.py", line 241, in wrapper return old_api(self, *args, **kwargs) File "/opt/odoo/odoo/openerp/models.py", line 3125, in read result = BaseModel.read(records, fields, load=load) File "/opt/odoo/odoo/openerp/api.py", line 239, in wrapper return new_api(self, *args, **kwargs) File "/opt/odoo/odoo/openerp/models.py", line 3160, in read self._read_from_database(stored, inherited) File "/opt/odoo/odoo/openerp/api.py", line 239, in wrapper return new_api(self, *args, **kwargs) File "/opt/odoo/odoo/openerp/models.py", line 3325, in _read_from_database res2 = self._columns[fs[0]].get(cr, self._model, ids, fs, user, context=context, values=result) File "/opt/odoo/odoo/openerp/osv/fields.py", line 1446, in get result = self._fnct(obj, cr, uid, ids, name, self._arg, context) File "/opt/odoo/odoo/addons/stock/product.py", line 340, in _product_available variant_available= self.pool['product.product']._product_available(cr, uid, var_ids, context=context) File "/opt/odoo/odoo/openerp/api.py", line 241, in wrapper return old_api(self, *args, **kwargs) File "/opt/odoo/odoo/addons/stock/product.py", line 153, in _product_available moves_in = self.pool.get('stock.move').read_group(cr, uid, domain_move_in, ['product_id', 'product_qty'], ['product_id'], context=context) File "/opt/odoo/odoo/openerp/api.py", line 241, in wrapper return old_api(self, *args, **kwargs) File "/opt/odoo/odoo/openerp/models.py", line 2071, in read_group query = self._where_calc(cr, uid, domain, context=context) File "/opt/odoo/odoo/openerp/api.py", line 241, in wrapper return old_api(self, *args, **kwargs) File "/opt/odoo/odoo/openerp/models.py", line 4444, in _where_calc e = expression.expression(cr, user, domain, self, context) File "/opt/odoo/odoo/openerp/osv/expression.py", line 643, in __init__ self.expression = distribute_not(normalize_domain(exp)) File "/opt/odoo/odoo/openerp/osv/expression.py", line 305, in distribute_not return [domain[0]] + distribute_not(domain[1:]) File "/opt/odoo/odoo/openerp/osv/expression.py", line 305, in distribute_not return [domain[0]] + distribute_not(domain[1:]) File "/opt/odoo/odoo/openerp/osv/expression.py", line 305, in distribute_not return [domain[0]] + distribute_not(domain[1:]) File "/opt/odoo/odoo/openerp/osv/expression.py", line 305, in distribute_not return [domain[0]] + distribute_not(domain[1:])
...
File "/opt/odoo/odoo/openerp/osv/expression.py", line 299, in distribute_negate done1, todo1 = distribute_negate(domain[1:]) File "/opt/odoo/odoo/openerp/osv/expression.py", line 299, in distribute_negate done1, todo1 = distribute_negate(domain[1:]) File "/opt/odoo/odoo/openerp/osv/expression.py", line 299, in distribute_negate done1, todo1 = distribute_negate(domain[1:]) File "/opt/odoo/odoo/openerp/osv/expression.py", line 292, in distribute_negate if is_leaf(domain[0]): File "/opt/odoo/odoo/openerp/osv/expression.py", line 400, in is_leaf return (isinstance(element, tuple) or isinstance(element, list)) \RuntimeError: maximum recursion depth exceeded while calling a Python object
What is very strangely, because I don't see any reason for this error - nobody nothing was doing with this or any others modules for last time.
Thanks, Ayman Mohamed Adam, for quick answering. Code of what have I to share? Product module includes many xml files. I also updated Product module, but there is no result.