2016-11-10 13 views
0

我们在服务器上安装了odoo v8并为大文件执行导入过程,这些过程至少需要15分钟,但是几分钟后的大部分时间我们都会得到这个错误。Odoo - 大进程总是最终转向InternalError

Odoo Server Error 

Traceback (most recent call last): 
    File "/opt/odoo/odoo/openerp/http.py", line 537, in _handle_exception 
    return super(JsonRequest, self)._handle_exception(exception) 
    File "/opt/odoo/odoo/openerp/http.py", line 574, in dispatch 
    result = self._call_function(**self.params) 
    File "/opt/odoo/odoo/openerp/http.py", line 310, in _call_function 
    return checked_call(self.db, *args, **kwargs) 
    File "/opt/odoo/odoo/openerp/service/model.py", line 118, in wrapper 
    return f(dbname, *args, **kwargs) 
    File "/opt/odoo/odoo/openerp/http.py", line 307, in checked_call 
    return self.endpoint(*a, **kw) 
    File "/opt/odoo/odoo/openerp/http.py", line 803, in __call__ 
    return self.method(*args, **kw) 
    File "/opt/odoo/odoo/openerp/http.py", line 403, in response_wrap 
    response = f(*args, **kw) 
    File "/opt/odoo/odoo/addons/web/controllers/main.py", line 948, in call_button 
    action = self._call_kw(model, method, args, {}) 
    File "/opt/odoo/odoo/addons/web/controllers/main.py", line 936, in _call_kw 
    return getattr(request.registry.get(model), method)(request.cr, request.uid, *args, **kwargs) 
    File "/opt/odoo/odoo/openerp/api.py", line 250, in wrapper 
    return old_api(self, *args, **kwargs) 
    File "/opt/odoo/odoo/openerp/api.py", line 372, in old_api 
    result = method(recs, *args, **kwargs) 
    File "/opt/odoo/emipro_custom_modules/reorder_calculation_ept/wizard/import_forecasted_sale.py", line 204, in do_import 
    self.create_log(str(e),log_id) 
    File "/opt/odoo/odoo/openerp/api.py", line 248, in wrapper 
    return new_api(self, *args, **kwargs) 
    File "/opt/odoo/emipro_custom_modules/reorder_calculation_ept/wizard/import_forecasted_sale.py", line 112, in create_log 
    'log_type':log_type, 
    File "/opt/odoo/odoo/openerp/api.py", line 248, in wrapper 
    return new_api(self, *args, **kwargs) 
    File "/opt/odoo/odoo/openerp/models.py", line 4092, in create 
    record = self.browse(self._create(old_vals)) 
    File "/opt/odoo/odoo/openerp/api.py", line 248, in wrapper 
    return new_api(self, *args, **kwargs) 
    File "/opt/odoo/odoo/openerp/api.py", line 481, in new_api 
    result = method(self._model, cr, uid, *args, **kwargs) 
    File "/opt/odoo/odoo/openerp/models.py", line 4230, in _create 
    tuple([u[2] for u in updates if len(u) > 2]) 
    File "/opt/odoo/odoo/openerp/sql_db.py", line 158, in wrapper 
    return f(self, *args, **kwargs) 
    File "/opt/odoo/odoo/openerp/sql_db.py", line 234, in execute 
    res = self._obj.execute(query, params) 
InternalError: current transaction is aborted, commands ignored until end of transaction block 

多工人已经对服务器进行配置,这样可能是一个问题 (不知道)。并且我没有针对该进程启动任何查询,所以这不是 与查询失败问题有关(我在许多问题上阅读的问题是 相关的不是滚动支持失败的查询),但是在那种情况下没有查询,我 只需将xls文件读入字典,然后处理该字典即可。

配置文件

db_maxconn = 500 
max_cron_threads=20 
osv_memory_age_limit = 1.0 
osv_memory_count_limit = False 
data_dir = /opt/odoo/file_store 
logfile = /opt/odoo/log/odoo.log 
logrotate = True 
workers = 17 
limit_time_cpu = 15300 
;limit_time_cpu = 6000 
;limit_time_real = 3000 
limit_time_real = 17500 
;limit_memory_soft = 1810720000 
;limit_memory_hard = 2177721600 
bin_path=/usr/local/bin 

这些将与这将需要更多的时间做业务的诸多工序发生。任何人都可以引导我们吗?

回答

1

在启用worker的情况下,您应该尝试使用config参数limit-time-cpu和limit-time-real进行操作。这些默认情况下设置为60秒,所以在这段时间后,进程将被终止,而没有任何警告。也许配置设置limit-memory- *在这里也很有趣。

+0

我已经添加了我到目前为止尝试过的配置文件参数。 –

+0

这些值看起来足够高。对不起,我没有其他的想法: - / – CZoellner