升级系统包后 Odoo 服务器崩溃

升级系统包后 Odoo 服务器崩溃

我遇到了大麻烦。我在同一台服务器上运行 Odoo 10、11、12、13 和 14 CE,使用 Postgresql 12 ubuntu 20.04 和 Nginx 作为反向代理。自上次系统升级以来,所有实例都运行良好。我用“apt upgrade”升级了我的服务器,它要求重新启动。我重新启动了服务器。现在我的所有实例都抛出了错误。有些是在运行数据库时,有些是在创建新数据库时。所有版本的错误都类似。每个错误都有 "Extra content at the end of the document, line 24, column 9" 类型问题。在 Odoo 13 和 Odoo 14 中创建数据库时出错

2021-07-01 21:25:13,774 392124 ERROR urdu odoo.modules.registry: Failed to load registry 
Traceback (most recent call last):
  File "/opt/odoo13/odoo/tools/convert.py", line 712, in parse
    self._tag_root(de)
  File "/opt/odoo13/odoo/tools/convert.py", line 674, in _tag_root
    f(rec)
  File "/opt/odoo13/odoo/tools/convert.py", line 577, in _tag_record
    record = model._load_records([data], self.mode == 'update')
  File "/opt/odoo13/odoo/models.py", line 4146, in _load_records
    records = self._load_records_create([data['values'] for data in to_create])
  File "/opt/odoo13/odoo/models.py", line 4060, in _load_records_create
    return self.create(values)
  File "<decorator-gen-32>", line 2, in create
  File "/opt/odoo13/odoo/api.py", line 336, in _model_create_multi
    return create(self, arg)
  File "/opt/odoo13/odoo/addons/base/models/ir_ui_view.py", line 475, in create
    return super(View, self).create(vals_list)
  File "<decorator-gen-3>", line 2, in create
  File "/opt/odoo13/odoo/api.py", line 336, in _model_create_multi
    return create(self, arg)
  File "/opt/odoo13/odoo/models.py", line 3821, in create
    fields[0].determine_inverse(batch_recs)
  File "/opt/odoo13/odoo/fields.py", line 1122, in determine_inverse
    getattr(records, self.inverse)()
  File "/opt/odoo13/odoo/addons/base/models/ir_ui_view.py", line 299, in _inverse_arch
    view.write(data)
  File "/opt/odoo13/odoo/addons/base/models/ir_ui_view.py", line 493, in write
    res = super(View, self).write(self._compute_defaults(vals))
  File "/opt/odoo13/odoo/models.py", line 3610, in write
    real_recs._validate_fields(set(vals) - set(inverse_fields))
  File "/opt/odoo13/odoo/models.py", line 1201, in _validate_fields
    check(self)
  File "/opt/odoo13/odoo/addons/base/models/ir_ui_view.py", line 385, in _check_xml
    view_arch = etree.fromstring(view.arch.encode('utf-8'))
  File "src/lxml/lxml.etree.pyx", line 3213, in lxml.etree.fromstring (src/lxml/lxml.etree.c:79003)
  File "src/lxml/parser.pxi", line 1848, in lxml.etree._parseMemoryDocument (src/lxml/lxml.etree.c:118334)
  File "src/lxml/parser.pxi", line 1736, in lxml.etree._parseDoc (src/lxml/lxml.etree.c:117014)
  File "src/lxml/parser.pxi", line 1102, in lxml.etree._BaseParser._parseDoc (src/lxml/lxml.etree.c:111258)
  File "src/lxml/parser.pxi", line 595, in lxml.etree._ParserContext._handleParseResultDoc (src/lxml/lxml.etree.c:105102)
  File "src/lxml/parser.pxi", line 706, in lxml.etree._handleParseResult (src/lxml/lxml.etree.c:106810)
  File "src/lxml/parser.pxi", line 635, in lxml.etree._raiseParseError (src/lxml/lxml.etree.c:105664)
  File "<string>", line 24
lxml.etree.XMLSyntaxError: Extra content at the end of the document, line 24, column 9

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/odoo13/odoo/modules/registry.py", line 86, in new
    odoo.modules.load_modules(registry._db, force_demo, status, update_module)
  File "/opt/odoo13/odoo/modules/loading.py", line 364, in load_modules
    report=report, models_to_check=models_to_check)
  File "/opt/odoo13/odoo/modules/loading.py", line 225, in load_module_graph
    load_data(cr, idref, mode, kind='data', package=package, report=report)
  File "/opt/odoo13/odoo/modules/loading.py", line 68, in load_data
    tools.convert_file(cr, package.name, filename, idref, mode, noupdate, kind, report)
  File "/opt/odoo13/odoo/tools/convert.py", line 736, in convert_file
    convert_xml_import(cr, module, fp, idref, mode, noupdate, report)
  File "/opt/odoo13/odoo/tools/convert.py", line 803, in convert_xml_import
    obj.parse(doc.getroot())
  File "/opt/odoo13/odoo/tools/convert.py", line 721, in parse
    exc_info[2]
  File "/opt/odoo13/odoo/tools/pycompat.py", line 13, in reraise
    raise value.with_traceback(tb)
  File "/opt/odoo13/odoo/tools/convert.py", line 712, in parse
    self._tag_root(de)
  File "/opt/odoo13/odoo/tools/convert.py", line 674, in _tag_root
    f(rec)
  File "/opt/odoo13/odoo/tools/convert.py", line 577, in _tag_record
    record = model._load_records([data], self.mode == 'update')
  File "/opt/odoo13/odoo/models.py", line 4146, in _load_records
    records = self._load_records_create([data['values'] for data in to_create])
  File "/opt/odoo13/odoo/models.py", line 4060, in _load_records_create
    return self.create(values)
  File "<decorator-gen-32>", line 2, in create
  File "/opt/odoo13/odoo/api.py", line 336, in _model_create_multi
    return create(self, arg)
  File "/opt/odoo13/odoo/addons/base/models/ir_ui_view.py", line 475, in create
    return super(View, self).create(vals_list)
  File "<decorator-gen-3>", line 2, in create
  File "/opt/odoo13/odoo/api.py", line 336, in _model_create_multi
    return create(self, arg)
  File "/opt/odoo13/odoo/models.py", line 3821, in create
    fields[0].determine_inverse(batch_recs)
  File "/opt/odoo13/odoo/fields.py", line 1122, in determine_inverse
    getattr(records, self.inverse)()
  File "/opt/odoo13/odoo/addons/base/models/ir_ui_view.py", line 299, in _inverse_arch
    view.write(data)
  File "/opt/odoo13/odoo/addons/base/models/ir_ui_view.py", line 493, in write
    res = super(View, self).write(self._compute_defaults(vals))
  File "/opt/odoo13/odoo/models.py", line 3610, in write
    real_recs._validate_fields(set(vals) - set(inverse_fields))
  File "/opt/odoo13/odoo/models.py", line 1201, in _validate_fields
    check(self)
  File "/opt/odoo13/odoo/addons/base/models/ir_ui_view.py", line 385, in _check_xml
    view_arch = etree.fromstring(view.arch.encode('utf-8'))
  File "src/lxml/lxml.etree.pyx", line 3213, in lxml.etree.fromstring (src/lxml/lxml.etree.c:79003)
  File "src/lxml/parser.pxi", line 1848, in lxml.etree._parseMemoryDocument (src/lxml/lxml.etree.c:118334)
  File "src/lxml/parser.pxi", line 1736, in lxml.etree._parseDoc (src/lxml/lxml.etree.c:117014)
  File "src/lxml/parser.pxi", line 1102, in lxml.etree._BaseParser._parseDoc (src/lxml/lxml.etree.c:111258)
  File "src/lxml/parser.pxi", line 595, in lxml.etree._ParserContext._handleParseResultDoc (src/lxml/lxml.etree.c:105102)
  File "src/lxml/parser.pxi", line 706, in lxml.etree._handleParseResult (src/lxml/lxml.etree.c:106810)
  File "src/lxml/parser.pxi", line 635, in lxml.etree._raiseParseError (src/lxml/lxml.etree.c:105664)
odoo.tools.convert.ParseError: "Extra content at the end of the document, line 24, column 9" while parsing /opt/odoo13/odoo/addons/base/data/ir_demo_data.xml:1, near
<odoo>
    <record model="ir.actions.act_window" id="demo_force_install_action">
        <field name="name">Load demo data</field>
        <field name="res_model">ir.demo</field>
        <field name="view_mode">form</field>
        <field name="target">new</field>
    </record>

    <record model="ir.ui.view" id="demo_force_install_form">
        <field name="name">ir.demo.form</field>
        <field name="model">ir.demo</field>
        <field name="arch" type="xml">
            <form>
                <div class="row container">
                    <div class="col-12 text-center">
                      <div class="card text-white bg-danger mb-3 w-75 ml64">
                        <div class="card-header">
                                <span class="fa fa-2x fa-warning" t-translation="off">&amp;nbsp;</span>
                                <span class="text-white text-uppercase">Danger Zone</span>
                        </div>
                        <div class="card-body bg-transparent text-center">
                          <p>Demo data should only be used on test databases!
                             Once they are loaded, they cannot be removed!</p>
                          <p>Please confirm that you want to <b>irreversibly</b> make this database a demo database.</p>
                        </div>
                      </div>
                    </div>
                </div>

                <footer>
                    <button special="cancel" string="Oops, no!" class="btn-primary"/>
                    <button name="install_demo" string="Yes, I understand the risks" type="object" class="btn-secondary"/>
                </footer>
            </form>
        </field>
    </record>
</odoo>
2021-07-01 21:25:13,818 392124 ERROR urdu odoo.service.db: CREATE DATABASE failed: 
Traceback (most recent call last):
  File "/opt/odoo13/odoo/tools/convert.py", line 712, in parse
    self._tag_root(de)
  File "/opt/odoo13/odoo/tools/convert.py", line 674, in _tag_root
    f(rec)
  File "/opt/odoo13/odoo/tools/convert.py", line 577, in _tag_record
    record = model._load_records([data], self.mode == 'update')
  File "/opt/odoo13/odoo/models.py", line 4146, in _load_records
    records = self._load_records_create([data['values'] for data in to_create])
  File "/opt/odoo13/odoo/models.py", line 4060, in _load_records_create
    return self.create(values)
  File "<decorator-gen-32>", line 2, in create
  File "/opt/odoo13/odoo/api.py", line 336, in _model_create_multi
    return create(self, arg)
  File "/opt/odoo13/odoo/addons/base/models/ir_ui_view.py", line 475, in create
    return super(View, self).create(vals_list)
  File "<decorator-gen-3>", line 2, in create
  File "/opt/odoo13/odoo/api.py", line 336, in _model_create_multi
    return create(self, arg)
  File "/opt/odoo13/odoo/models.py", line 3821, in create
    fields[0].determine_inverse(batch_recs)
  File "/opt/odoo13/odoo/fields.py", line 1122, in determine_inverse
    getattr(records, self.inverse)()
  File "/opt/odoo13/odoo/addons/base/models/ir_ui_view.py", line 299, in _inverse_arch
    view.write(data)
  File "/opt/odoo13/odoo/addons/base/models/ir_ui_view.py", line 493, in write
    res = super(View, self).write(self._compute_defaults(vals))
  File "/opt/odoo13/odoo/models.py", line 3610, in write
    real_recs._validate_fields(set(vals) - set(inverse_fields))
  File "/opt/odoo13/odoo/models.py", line 1201, in _validate_fields
    check(self)
  File "/opt/odoo13/odoo/addons/base/models/ir_ui_view.py", line 385, in _check_xml
    view_arch = etree.fromstring(view.arch.encode('utf-8'))
  File "src/lxml/lxml.etree.pyx", line 3213, in lxml.etree.fromstring (src/lxml/lxml.etree.c:79003)
  File "src/lxml/parser.pxi", line 1848, in lxml.etree._parseMemoryDocument (src/lxml/lxml.etree.c:118334)
  File "src/lxml/parser.pxi", line 1736, in lxml.etree._parseDoc (src/lxml/lxml.etree.c:117014)
  File "src/lxml/parser.pxi", line 1102, in lxml.etree._BaseParser._parseDoc (src/lxml/lxml.etree.c:111258)
  File "src/lxml/parser.pxi", line 595, in lxml.etree._ParserContext._handleParseResultDoc (src/lxml/lxml.etree.c:105102)
  File "src/lxml/parser.pxi", line 706, in lxml.etree._handleParseResult (src/lxml/lxml.etree.c:106810)
  File "src/lxml/parser.pxi", line 635, in lxml.etree._raiseParseError (src/lxml/lxml.etree.c:105664)
  File "<string>", line 24
lxml.etree.XMLSyntaxError: Extra content at the end of the document, line 24, column 9

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/odoo13/odoo/service/db.py", line 62, in _initialize_db
    registry = odoo.modules.registry.Registry.new(db_name, demo, None, update_module=True)
  File "/opt/odoo13/odoo/modules/registry.py", line 86, in new
    odoo.modules.load_modules(registry._db, force_demo, status, update_module)
  File "/opt/odoo13/odoo/modules/loading.py", line 364, in load_modules
    report=report, models_to_check=models_to_check)
  File "/opt/odoo13/odoo/modules/loading.py", line 225, in load_module_graph
    load_data(cr, idref, mode, kind='data', package=package, report=report)
  File "/opt/odoo13/odoo/modules/loading.py", line 68, in load_data
    tools.convert_file(cr, package.name, filename, idref, mode, noupdate, kind, report)
  File "/opt/odoo13/odoo/tools/convert.py", line 736, in convert_file
    convert_xml_import(cr, module, fp, idref, mode, noupdate, report)
  File "/opt/odoo13/odoo/tools/convert.py", line 803, in convert_xml_import
    obj.parse(doc.getroot())
  File "/opt/odoo13/odoo/tools/convert.py", line 721, in parse
    exc_info[2]
  File "/opt/odoo13/odoo/tools/pycompat.py", line 13, in reraise
    raise value.with_traceback(tb)
  File "/opt/odoo13/odoo/tools/convert.py", line 712, in parse
    self._tag_root(de)
  File "/opt/odoo13/odoo/tools/convert.py", line 674, in _tag_root
    f(rec)
  File "/opt/odoo13/odoo/tools/convert.py", line 577, in _tag_record
    record = model._load_records([data], self.mode == 'update')
  File "/opt/odoo13/odoo/models.py", line 4146, in _load_records
    records = self._load_records_create([data['values'] for data in to_create])
  File "/opt/odoo13/odoo/models.py", line 4060, in _load_records_create
    return self.create(values)
  File "<decorator-gen-32>", line 2, in create
  File "/opt/odoo13/odoo/api.py", line 336, in _model_create_multi
    return create(self, arg)
  File "/opt/odoo13/odoo/addons/base/models/ir_ui_view.py", line 475, in create
    return super(View, self).create(vals_list)
  File "<decorator-gen-3>", line 2, in create
  File "/opt/odoo13/odoo/api.py", line 336, in _model_create_multi
    return create(self, arg)
  File "/opt/odoo13/odoo/models.py", line 3821, in create
    fields[0].determine_inverse(batch_recs)
  File "/opt/odoo13/odoo/fields.py", line 1122, in determine_inverse
    getattr(records, self.inverse)()
  File "/opt/odoo13/odoo/addons/base/models/ir_ui_view.py", line 299, in _inverse_arch
    view.write(data)
  File "/opt/odoo13/odoo/addons/base/models/ir_ui_view.py", line 493, in write
    res = super(View, self).write(self._compute_defaults(vals))
  File "/opt/odoo13/odoo/models.py", line 3610, in write
    real_recs._validate_fields(set(vals) - set(inverse_fields))
  File "/opt/odoo13/odoo/models.py", line 1201, in _validate_fields
    check(self)
  File "/opt/odoo13/odoo/addons/base/models/ir_ui_view.py", line 385, in _check_xml
    view_arch = etree.fromstring(view.arch.encode('utf-8'))
  File "src/lxml/lxml.etree.pyx", line 3213, in lxml.etree.fromstring (src/lxml/lxml.etree.c:79003)
  File "src/lxml/parser.pxi", line 1848, in lxml.etree._parseMemoryDocument (src/lxml/lxml.etree.c:118334)
  File "src/lxml/parser.pxi", line 1736, in lxml.etree._parseDoc (src/lxml/lxml.etree.c:117014)
  File "src/lxml/parser.pxi", line 1102, in lxml.etree._BaseParser._parseDoc (src/lxml/lxml.etree.c:111258)
  File "src/lxml/parser.pxi", line 595, in lxml.etree._ParserContext._handleParseResultDoc (src/lxml/lxml.etree.c:105102)
  File "src/lxml/parser.pxi", line 706, in lxml.etree._handleParseResult (src/lxml/lxml.etree.c:106810)
  File "src/lxml/parser.pxi", line 635, in lxml.etree._raiseParseError (src/lxml/lxml.etree.c:105664)
odoo.tools.convert.ParseError: "Extra content at the end of the document, line 24, column 9" while parsing /opt/odoo13/odoo/addons/base/data/ir_demo_data.xml:1, near
<odoo>
    <record model="ir.actions.act_window" id="demo_force_install_action">
        <field name="name">Load demo data</field>
        <field name="res_model">ir.demo</field>
        <field name="view_mode">form</field>
        <field name="target">new</field>
    </record>

    <record model="ir.ui.view" id="demo_force_install_form">
        <field name="name">ir.demo.form</field>
        <field name="model">ir.demo</field>
        <field name="arch" type="xml">
            <form>
                <div class="row container">
                    <div class="col-12 text-center">
                      <div class="card text-white bg-danger mb-3 w-75 ml64">
                        <div class="card-header">
                                <span class="fa fa-2x fa-warning" t-translation="off">&amp;nbsp;</span>
                                <span class="text-white text-uppercase">Danger Zone</span>
                        </div>
                        <div class="card-body bg-transparent text-center">
                          <p>Demo data should only be used on test databases!
                             Once they are loaded, they cannot be removed!</p>
                          <p>Please confirm that you want to <b>irreversibly</b> make this database a demo database.</p>
                        </div>
                      </div>
                    </div>
                </div>

                <footer>
                    <button special="cancel" string="Oops, no!" class="btn-primary"/>
                    <button name="install_demo" string="Yes, I understand the risks" type="object" class="btn-secondary"/>
                </footer>
            </form>
        </field>
    </record>
</odoo>
2021-07-01 21:25:13,830 392124 DEBUG urdu odoo.modules.registry: Multiprocess load registry signaling: [Registry: 1] [Cache: 1] 
2021-07-01 21:25:13,834 392124 INFO urdu odoo.modules.loading: loading 1 modules... 
2021-07-01 21:25:13,834 392124 DEBUG urdu odoo.modules.loading: loading module base (1/1) 
2021-07-01 21:25:13,850 392124 INFO urdu odoo.modules.loading: 1 modules loaded in 0.02s, 0 queries 
2021-07-01 21:25:13,851 392124 ERROR urdu odoo.sql_db: bad query: SELECT * FROM ir_model WHERE state='manual'
ERROR: relation "ir_model" does not exist
LINE 1: SELECT * FROM ir_model WHERE state='manual'
                      ^
 
2021-07-01 21:25:13,853 392124 WARNING urdu odoo.modules.loading: Transient module states were reset 
2021-07-01 21:25:13,853 392124 ERROR urdu odoo.modules.registry: Failed to load registry 
Traceback (most recent call last):
  File "/opt/odoo13/odoo/modules/registry.py", line 60, in __new__
    return cls.registries[db_name]
  File "/opt/odoo13/odoo/tools/func.py", line 69, in wrapper
    return func(self, *args, **kwargs)
  File "/opt/odoo13/odoo/tools/lru.py", line 44, in __getitem__
    a = self.d[obj].me
KeyError: 'urdu'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/odoo13/odoo/modules/registry.py", line 86, in new
    odoo.modules.load_modules(registry._db, force_demo, status, update_module)
  File "/opt/odoo13/odoo/modules/loading.py", line 369, in load_modules
    registry.setup_models(cr)
  File "/opt/odoo13/odoo/modules/registry.py", line 249, in setup_models
    env['ir.model']._add_manual_models()
  File "/opt/odoo13/odoo/addons/base/models/ir_model.py", line 320, in _add_manual_models
    cr.execute('SELECT * FROM ir_model WHERE state=%s', ['manual'])
  File "/opt/odoo13/odoo/sql_db.py", line 173, in wrapper
    return f(self, *args, **kwargs)
  File "/opt/odoo13/odoo/sql_db.py", line 250, in execute
    res = self._obj.execute(query, params)
psycopg2.ProgrammingError: relation "ir_model" does not exist
LINE 1: SELECT * FROM ir_model WHERE state='manual'

Odoo 10 中的示例错误代码

2021-07-01 21:33:36,929 417046 ERROR munshi odoo.addons.website.models.ir_http: 500 Internal Server Error:

Traceback (most recent call last):
  File "/opt/munshi/addons/website/models/ir_http.py", line 274, in _handle_exception
    response = super(Http, cls)._handle_exception(exception)
  File "/opt/munshi/odoo/addons/base/ir/ir_http.py", line 169, in _handle_exception
    return request._handle_exception(exception)
  File "/opt/munshi/odoo/http.py", line 775, in _handle_exception
    return super(HttpRequest, self)._handle_exception(exception)
  File "/opt/munshi/odoo/addons/base/ir/ir_http.py", line 195, in _dispatch
    result = request.dispatch()
  File "/opt/munshi/odoo/http.py", line 834, in dispatch
    r = self._call_function(**self.params)
  File "/opt/munshi/odoo/http.py", line 334, in _call_function
    return checked_call(self.db, *args, **kwargs)
  File "/opt/munshi/odoo/service/model.py", line 101, in wrapper
    return f(dbname, *args, **kwargs)
  File "/opt/munshi/odoo/http.py", line 327, in checked_call
    result = self.endpoint(*a, **kw)
  File "/opt/munshi/odoo/http.py", line 942, in __call__
    return self.method(*args, **kw)
  File "/opt/munshi/odoo/http.py", line 507, in response_wrap
    response = f(*args, **kw)
  File "/opt/munshi/addons/website_forum/controllers/main.py", line 128, in questions
    Post._generate_order_by(sorting, None)
  File "/opt/munshi/odoo/models.py", line 4218, in _generate_order_by
    order_by_elements = self._generate_order_by_inner(self._table, order_spec, query)
  File "/opt/munshi/odoo/models.py", line 4172, in _generate_order_by_inner
    self._check_qorder(order_spec)
  File "/opt/munshi/odoo/models.py", line 4052, in _check_qorder
    raise UserError(_('Invalid "order" specified. A valid "order" specification is a comma-separated list of valid field names (optionally followed by asc/desc for the direction)'))
UserError: (u'Invalid "order" specified. A valid "order" specification is a comma-separated list of valid field names (optionally followed by asc/desc for the direction)', '')

2021-07-01 21:33:36,978 417046 INFO munshi werkzeug: 127.0.0.1 - - [01/Jul/2021 21:33:36] "GET /forum/help-1?filters=all&sorting=create_date%2Bdesc HTTP/1.0" 500 -
2021-07-01 21:33:36,982 417046 ERROR munshi werkzeug: Error on request:
Traceback (most recent call last):
  File "/opt/munshi/odoo-venv/lib/python2.7/site-packages/werkzeug/serving.py", line 193, in run_wsgi
    execute(self.server.app)
  File "/opt/munshi/odoo-venv/lib/python2.7/site-packages/werkzeug/serving.py", line 181, in execute
    application_iter = app(environ, start_response)
  File "/opt/munshi/odoo/service/wsgi_server.py", line 184, in application
    return werkzeug.contrib.fixers.ProxyFix(application_unproxied)(environ, start_response)
  File "/opt/munshi/odoo-venv/lib/python2.7/site-packages/werkzeug/contrib/fixers.py", line 152, in __call__
    return self.app(environ, start_response)
  File "/opt/munshi/odoo/service/wsgi_server.py", line 172, in application_unproxied
    result = handler(environ, start_response)
  File "/opt/munshi/odoo/http.py", line 1326, in __call__
    return self.dispatch(environ, start_response)
  File "/opt/munshi/odoo/http.py", line 1300, in __call__
    return self.app(environ, start_wrapped)
  File "/opt/munshi/odoo-venv/lib/python2.7/site-packages/werkzeug/wsgi.py", line 599, in __call__
    return self.app(environ, start_response)
  File "/opt/munshi/odoo/http.py", line 1499, in dispatch
    result = ir_http._dispatch()
  File "/opt/munshi/addons/website_sale/models/ir_http.py", line 15, in _dispatch
    return super(IrHttp, cls)._dispatch()
  File "/opt/munshi/addons/website/models/ir_http.py", line 219, in _dispatch
    resp = super(Http, cls)._dispatch()
  File "/opt/munshi/addons/web_editor/models/ir_http.py", line 21, in _dispatch
    return super(IrHttp, cls)._dispatch()
  File "/opt/munshi/addons/utm/models/ir_http.py", line 20, in _dispatch
    response = super(IrHttp, cls)._dispatch()
  File "/opt/munshi/odoo/addons/base/ir/ir_http.py", line 199, in _dispatch
    return cls._handle_exception(e)
  File "/opt/munshi/addons/website/models/ir_http.py", line 327, in _handle_exception
    html = request.env['ir.ui.view'].render_template('website.http_error', values)
  File "/opt/munshi/odoo/addons/base/ir/ir_ui_view.py", line 1049, in render_template
    return self.browse(self.get_view_id(template)).render(values, engine)
  File "/opt/munshi/addons/website/models/ir_ui_view.py", line 115, in render
    return super(View, self).render(values, engine=engine)
  File "/opt/munshi/addons/web_editor/models/ir_ui_view.py", line 26, in render
    return super(IrUiView, self).render(values=values, engine=engine)
  File "/opt/munshi/odoo/addons/base/ir/ir_ui_view.py", line 1069, in render
    return self.env[engine].render(self.id, qcontext)
  File "/opt/munshi/odoo/addons/base/ir/ir_qweb/ir_qweb.py", line 53, in render
    return super(IrQWeb, self).render(id_or_xml_id, values=values, **context)
  File "/opt/munshi/odoo/addons/base/ir/ir_qweb/qweb.py", line 248, in render
    self.compile(template, options)(self, body.append, values or {})
  File "/opt/munshi/odoo/addons/base/ir/ir_qweb/qweb.py", line 317, in _compiled_fn
    raise e
QWebException: None
Traceback (most recent call last):
  File "/opt/munshi/odoo/addons/base/ir/ir_qweb/qweb.py", line 341, in get_template
    document = options.get('load', self.load)(template, options)
  File "/opt/munshi/odoo/addons/base/ir/ir_qweb/ir_qweb.py", line 81, in load
    template = env['ir.ui.view'].read_template(name)
  File "/opt/munshi/odoo/addons/base/ir/ir_ui_view.py", line 944, in read_template
    return self._read_template(self.get_view_id(xml_id))
  File "<decorator-gen-9>", line 2, in _read_template
  File "/opt/munshi/odoo/tools/cache.py", line 87, in lookup
    value = d[key] = self.method(*args, **kwargs)
  File "/opt/munshi/odoo/addons/base/ir/ir_ui_view.py", line 935, in _read_template
    arch = self.browse(view_id).read_combined(['arch'])['arch']
  File "/opt/munshi/custom-addons/it-projects-llc/misc-addons/web_debranding/models/ir_ui_view.py", line 17, in read_combined
    res = super(View, self).read_combined(fields=fields)
  File "/opt/munshi/odoo/addons/base/ir/ir_ui_view.py", line 658, in read_combined
    view_arch = etree.fromstring(view_data['arch'].encode('utf-8'))
  File "src/lxml/lxml.etree.pyx", line 3213, in lxml.etree.fromstring (src/lxml/lxml.etree.c:82934)
  File "src/lxml/parser.pxi", line 1819, in lxml.etree._parseMemoryDocument (src/lxml/lxml.etree.c:124533)
  File "src/lxml/parser.pxi", line 1707, in lxml.etree._parseDoc (src/lxml/lxml.etree.c:123074)
  File "src/lxml/parser.pxi", line 1079, in lxml.etree._BaseParser._parseDoc (src/lxml/lxml.etree.c:117114)
  File "src/lxml/parser.pxi", line 573, in lxml.etree._ParserContext._handleParseResultDoc (src/lxml/lxml.etree.c:110510)
  File "src/lxml/parser.pxi", line 683, in lxml.etree._handleParseResult (src/lxml/lxml.etree.c:112276)
  File "src/lxml/parser.pxi", line 613, in lxml.etree._raiseParseError (src/lxml/lxml.etree.c:111124)
XMLSyntaxError: Extra content at the end of the document, line 112, column 13

load could not load template
Template: website.layout
2021-07-01 21:34:28,262 417050 DEBUG ? odoo.service.server: WorkerCron (417050) polling for jobs

我无法解决问题。请帮助我。我采取的步骤:我重新安装了所有依赖项。我使用以下命令在 odoo-venv 中为每个版本(Python 2.7、Python 3.6 Python 3.8 等)安装了 pip 依赖项

/path/to/odoo-venv/bin/pythonx -m pip install --no-cache-dir -r 要求.text

我配置了一个 VPS 来测试我的代码,我为 Odoo 10 迁移了所有代码,我在该 VPS 中使用了我服务器的所有配置(odoo.conf、systelctl 服务、自定义插件等)。我将其连接到我当前的 PostgreSQL 服务器,在 VPS 中没有问题,没有错误。然后我对每个版本都做了同样的事情,我发现我的代码、配置或数据库都没有问题。它与某些升级的软件包版本有关,但我找不到问题所在。

答案1

经过三天的努力,我成功找到了罪魁祸首依赖项。它是 LXML。我做了什么。

rm -rf venv
virtualenv -p pythonx venv
source venv/bin/activate
pip install -r requirements.txt
pip uninstall lxml
find .cache -name 'lxml*'
find .cache -name 'lxml*' -delete
pip install lxml

这里有什么区别?

这是xml文件,我使用的是 lxml-3.7.1,它导致了问题。我安装了最新版本并消除了错误。这可能是有风险的,也可能造成其他麻烦,因为 Odoo 建议 python < 3.7 使用 lxml-3.7.1,但目前,它解决了我的问题,这对我来说已经足够了。无论如何,感谢您关注这个问题。此外,你们任何人的任何改进方法都将很棒。

相关内容