在Odoo后端,有时窗口只会显示菜单项,屏幕的其余部分保持空白。单击此菜单中的任何一个都会将url更改为
https://my_服务器_ip/web?debug#菜单_id=68&action=唯一要改变的是menu_id的值,但action的值将保持为空。
起初,它认为是在刷新我已在的页面时。但是我不能一致地重现这个bug (一旦它发生了,它每次都会重现,但如果我清除了缓存/cookie,它们可以在一小段时间内解决问题,问题就会在某个时候重现,但我找不到一种行为来在我想要的时候重现它。它只会在某些时候发生随机点)。它只是在使用一段时间后发生,有时是几个小时后,有时是两个页面加载后。有时候,一天都没问题,但是明天第一次尝试,bug又出现了。
以下是尝试的相关解决方案:
ir_attachment其中包含web/content..。(正如在Odoo git问题上所建议的那样)。顺序相同:
后端_主题_v11
基础_位置
基础_位置_地理名称_导入
发送_短信
网站_响应式
odoo.conf的内容
; This is the password that allows database operations:
; admin_passwd = [admin_password]
db_host = False
db_port = False
db_user = odoo
db_password = [db_password]
addons_path = /usr/lib/python3/dist-packages/odoo/addons,/opt/odoo/modules
limit_memory_hard = 1677721600
limit_memory_soft = 629145600
limit_request = 8192
limit_time_cpu = 600
limit_time_real = 1200
max_cron_threads = 1
workers = 5
# HTTP CONFIG
proxy_mode = True
xmlrpc = True
xmlrpc_interface = 127.0.0.1
netrpc_interface = 127.0.0.1Https部署和长轮询部署本文档之后,我进行了Https和长轮询部署。
错误发生时在Odoo上生成的日志
2019-01-10 09:56:01,883 17076信息开发工具: 127.0.0.1 --10/Jan-2019 09:56:01"GET /web HTTP/1.0“200 -
2019-01-10 09:56:02,262 17076信息开发工具: 127.0.0.1 --10/Jan-2019 09:56:02"GET /web/image/ir.ui.menu/98/web_图标_数据HTTP/1.0“304 -
2019-01-10 09:56:02,294 17076信息开发工具: 127.0.0.1 --10/Jan-2019 09:56:02"GET /web/image/ir.ui.menu/103/web_图标_数据HTTP/1.0“304 -
2019-01-10 09:56:02,327 17076信息开发工具: 127.0.0.1 --10/Jan-2019 09:56:02"GET /web/image/ir.ui.menu/155/web_图标_数据HTTP/1.0“304 -
2019-01-10 09:56:02,360 17076信息开发工具: 127.0.0.1 --10/Jan-2019 09:56:02"GET /web/image/ir.ui.menu/68/web_图标_数据HTTP/1.0“304 -
2019-01-10 09:56:02,465 17076信息开发工具: 127.0.0.1 --10/Jan-2019 09:56:02"GET /web/image/ir.ui.menu/109/web_图标_数据HTTP/1.0“304 -
2019-01-10 09:56:02,523 17076信息开发工具: 127.0.0.1 --10/Jan-2019 09:56:02"GET /web/image/ir.ui.menu/133/web_图标_数据HTTP/1.0“304 -
2019-01-10 09:56:02,545 17075信息开发odoo.modules.registry:在数据库信令后使所有模型缓存无效。
2019-01-10 09:56:02,559 17075信息开发工具: 127.0.0.1 --10/Jan-2019 09:56:02"GET /web/image/ir.ui.menu/142/web_图标_数据HTTP/1.0“304 -
2019-01-10 09:56:02,595 17075信息开发工具: 127.0.0.1 --10/Jan-2019 09:56:02"GET /web/image/ir.ui.menu/140/web_图标_数据HTTP/1.0“304 -
2019-01-10 09:56:02,616 17073信息开发odoo.modules.registry:在数据库信令后使所有模型缓存无效。
2019-01-10 09:56:02,631 17073信息开发工具: 127.0.0.1 --10/Jan-2019 09:56:02"GET /web/image/ir.ui.menu/144/web_图标_数据HTTP/1.0“304 -
2019-01-10 09:56:02,653 17077信息开发odoo.modules.registry:在数据库信令后使所有模型缓存无效。
2019-01-10 09:56:02,668 17077信息开发工具: 127.0.0.1 --10/Jan-2019 09:56:02"GET /web/image/ir.ui.menu/129/web_图标_数据HTTP/1.0“200 -
2019-01-10 09:56:02,693 17074信息开发odoo.modules.registry:在数据库信令后使所有模型缓存无效。
2019-01-10 09:56:02,710 17075信息开发工具: 127.0.0.1 --10/Jan-2019 09:56:02"GET / web /webclient/qweb?mods=web,base,bus,web_旅游、邮件、销售_团队、日历、web_计划员、联系人、crm、备注、自定义_
module1,身份验证_注册,web_响应,后端_主题_v11,base_导入,基础_位置,基地_位置_地理名称_导入、iap、发送_sms、sms、web_图表,web_编辑器,web_看板_仪表盘,腹板_设置_仪表板,门户HTTP/1.0“304 -
2019-01-10 09:56:02,713 17074信息开发工具: 127.0.0.1 --10/Jan-2019 09:56:02"GET /web/image/ir.ui.menu/5/web_图标_数据HTTP/1.0“304 -
2019-01-10 09:56:02,715 17076信息开发工具: 127.0.0.1 --10/Jan-2019 09:56:02"POST /web/dataset/call_kw/res.users/读取HTTP/1.0“200 -
2019-01-10 09:56:02,747 17077信息开发工具: 127.0.0.1 --10/Jan-2019 09:56:02"GET /web/image/ir.ui.menu/4/web_图标_数据HTTP/1.0“200 -
2019-01-10 09:56:02,762 17073信息开发工具: 127.0.0.1 --10/Jan-2019 09:56:02"POST /web/dataset/call HTTP/1.0“200 -
2019-01-10 09:56:02,767 17077信息开发工具: 127.0.0.1 --10/Jan-2019 09:56:02"GET /dashboard HTTP/1.0“200 -
2019-01-10 09:56:03,059 17077信息开发工具: 127.0.0.1 --10/Jan-2019 09:56:03"POST /web/webclient/translations HTTP/1.0“200 -
2019-01-10 09:56:03,115 17077信息开发工具: 127.0.0.1 --10/Jan-2019 09:56:03"GET /web/webclient/locale/fr_
FR HTTP/1.0“200 -
2019-01-10 09:56:03,218 17077信息开发工具: 127.0.0.1 --10/Jan-2019 09:56:03"POST /mail/client_操作HTTP/1.0“200 -
2019-01-10 09:56:03,253 17076信息开发工具: 127.0.0.1 --10/Jan-2019 09:56:03"POST /web/dataset/call_
kw/res.users/读取HTTP/1.0“200 -
2019-01-10 09:56:03,265 17078信息开发odoo.modules.registry:在数据库信令后使所有模型缓存无效。
2019-01-10 09:56:03,279 17076信息开发工具: 127.0.0.1 --10/Jan-2019 09:56:03"POST /日历/通知HTTP/1.0“200 -
2019-01-10 09:56:03,302 17073信息开发工具: 127.0.0.1 --10/Jan-2019 09:56:03"GET /web/image?model=res.users&field=image_small&id=1超文本传输协议/1.0“304 -
2019-01-10 09:56:03,316 17077信息开发工具: 127.0.0.1 --10/Jan-2019 09:56:03"POST /web/action/load HTTP/1.0“200 -
2019-01-10 09:56:03,391 17075信息开发工具: 127.0.0.1 --10/Jan-2019 09:56:03"POST /web/dataset/call_kw/web.planner/搜索_阅读HTTP/1.0“200 -
2019-01-10 09:56:03,409 17074信息开发工具: 127.0.0.1 --10/Jan-2019 09:56:03"POST /web/dataset/call_kw/res.users/活动_用户_计数HTTP/1.0“200 -
2019-01-10 09:56:03,439 17076信息开发工具: 127.0.0.1 --10/Jan-2019 09:56:03"POST /web/dataset/call_
kw/mail.message/load_视图HTTP/1.0“200 -
2019-01-10 09:56:03,519 17074信息开发工具: 127.0.0.1 --10/Jan-2019 09:56:03"POST /web/dataset/call_kw/ir.filter/get_过滤器HTTP/1.0“200 -
2019-01-10 09:56:03,575 17074信息开发工具: 127.0.0.1 --10/Jan-2019 09:56:03"POST /web/dataset/call_
kw/mail.message/message_获取HTTP/1.0“200 -
*我们不知道nginx服务产生的日志是否与该bug有关
2019/01/10 11:52:37错误165#165:*10008从上游读取响应头时,上游过早关闭连接,客户端: 82.127.91.106,服务器:服务器_url,请求:"POST /longpolling/poll HTTP/1.1",上游:“http://127.0.0.1:8072/longpolling/poll,主机:服务器_url,推荐人:https://[server_url]/web?debug“
备注:
304错误。对于安装在Debian环境中的Odoo,我找不到任何解释。除了这个问题之外,这两个问题也可能发生在同一台服务器上
如果你在研究后发现了这个问题,这可能会对你有所帮助,但不适用于这个问题的规格
在windows安装中,有一个模块可以解决这个问题:网站_修复_空白_页面..。
在写这个问题的时候,这个问题只存在于V10,并且只修复了Odoo的操作系统相关问题,导致了空白页面错误。
由于4次尝试的解决方案都不起作用,并且我尝试了两个版本的夜间构建的odoo,3个月后,我希望问题来自于我的自定义模块。但这是成千上万的LOC。
是什么导致了这种情况,我怎样才能在所有这些文件中找到原因。
可能是别的原因?那会是什么呢?
我不能一个接一个地卸载我的模块,试图找出错误在哪个模块中,至少不是所有模块。出于两个原因:
似乎只有在向自定义控制器(和/web/session/authenticate)发出请求时,错误才会发生。
发布于 2019-08-11 08:20:38
我找到了导致这一切的原因。5个月了,仍然没有答案,所以我会在这里发布我的答案。
如果您的控制器中有自定义路由,此答案可能会对您有所帮助。
永远不要以直接的方式重新定义Response对象的任何属性。这意味着像这样的行Response.status = '400 Invalid credentials'将导致每次调用您拥有它的路由时都会发生此错误。
当你这样做的时候Response.status = '400 Bad request'您重新获得了对响应对象的控制,并中断了odoo的正常工作流程。因此,它不再能够正确使用它,并且任何odoo路由返回的每个响应都将具有最后定义的状态,直到您重新启动服务器(在本例中,400,因此每个请求都被视为BadRequest,导致空白页面并转移其他bug,但200也会做同样的事情,因为302是重定向所必需的)。
如果有人知道为什么Odoo没有重新获得对Response对象的控制,请随意编辑这个答案(请一定要这样做,这让我困扰了很长时间)。
快速浏览一下核心模块就能给出答案
raise werkzeug.exception.BadRequest("400 Invalid credentials")
请注意,默认情况下,您不能引发除400以外的任何其他错误。如果你想这样做,你必须修改odoo根目录中的http.py文件。但是请注意,这可能意味着您不理解HTTP协议,就像我做的那样。事实上,大多数时候你应该返回200,没有HTTP错误,所以请求是成功的。但是,您应该添加一个error属性设置为json,如果行为不是客户端所期望的(比如在connexion中输入了错误的密码)。
response = werkzeug.wrappers.Response(json.dumps({[your json dictionary]}), status="400 Invalid credentials")
return responsehttps://stackoverflow.com/questions/54129734
复制相似问题