1

I am in serious trouble. I am running Odoo 10, 11, 12, 13, and 14 CE on the same server with Postgresql 12 ubuntu 20.04 and Nginx as a reverse proxy. All instances were working fine since the last system upgrade. I upgraded my server with "apt upgrade", it asked for a reboot. I rebooted the server. Now all my instances are throwing errors. Some on running databases, some on during the creation of new databases. Errors are similar on all versions. Every error has "Extra content at the end of the document, line 24, column 9" type issues. An error during database creation in Odoo 13 and 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'

Sample error code in 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

I failed to troubleshoot it. Please help me. Steps I taken: I reinstalled all dependencies. I installed pip dependencies in odoo-venv for each version (Python 2.7, Python 3.6 Python 3.8 etc) with below command

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

I configured a VPS to test my codes, I migrated all my code for Odoo 10, I used all configurations from my server in that VPS (odoo.conf, systelctl service, custom addons, etc). I connected it to my current PostgreSQL server, in VPS there is no issue, no error. I did the same then for every version and I found out that there is nothing wrong with my code or configuration or with databases. It is something related to some upgraded package version but I could not find the issue.

2
  • Can you restore the server from the last HDD image? First save any recent changes, then revert to the old image. BTW, you can have a second PC, or a virtual PC, running all those Odoo versions, and test changes on that before applying them to the production server. Commented Jul 2, 2021 at 18:13
  • unfortunately, I did not have a full HDD backup. But I have all the major files and databases backed up. Actually, there is nothing wrong with ODOO code or any custom module code, there is nothing wrong with databases, even the Postgresql server is working fine. Nginx is working fine. I tested without Nginx, same error on the ODOO default port. There were no errors during the "apt upgrade". I am trying to find a culprit dependency that is generating this error. I don't know which packages provide the facility to generate xml from python in ODOO.
    – Faheem
    Commented Jul 2, 2021 at 18:20

1 Answer 1

0

After 3 days of struggle, I successfully found the culprit dependency. It was LXML. What I did.

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

What was the difference here.

It was the version of lxml, I had lxml-3.7.1, it was causing issues. I installed the latest version and it removed the error. It may be risky or may cause other troubles because Odoo recommends lxml-3.7.1 for python < 3.7 but at the moment, it solved my issue and that is enough for me for now. anyways, thanks for giving attention to this question. Furthermore, any improved approach by any of you will be great.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .