OCA / l10n-italy

Odoo Italian localization
https://www.odoo-italia.org
GNU Affero General Public License v3.0
154 stars 305 forks source link

I file XML passivi più grandi di 900kb non vengono salvati #2929

Closed maurobraggio closed 2 years ago

maurobraggio commented 2 years ago

Module

l10n_it_fatturapa_in

Describe the bug

I file XML passivi più grandi di 900kb non vengono salvati in piattaforma, ritorna un errore di connessione

To Reproduce

14.0

Steps to reproduce the behavior:

  1. Entrare in File e-fatture in ingresso
  2. Cliccare su Crea
  3. Cliccare su Carica File
  4. selezionare un file più grande di 900kb

Expected behavior Dovrebbe caricare il file , ma ci comunica un interruzione di Connessione con Odoo

matteoopenf commented 2 years ago

oltre perdere la connessione, sui log dice altro? puoi caricarne una versione anonimizzata dell'xml per provarla su altre istanze?

maurobraggio commented 2 years ago

No, non da nessun errore bigfile.txt

lo stesso file, ma con un allegato più piccolo funziona

matteoopenf commented 2 years ago

momento non è che il problema è l'attachment pdf?

matteoopenf commented 2 years ago

No, non da nessun errore bigfile.txt

lo stesso file, ma con un allegato più piccolo funziona

Ma anche se vai su runboat hai il medesimo problema?

tafaRU commented 2 years ago

Ho provato ad importare il file che hai allegato sull’ultima istanza di runboat disponbile: http://oca-l10n-italy-14-0-c9d568c3eb0c.runboat.odoo-community.org/

Provando ad importarlo ottengo il seg. errore:

Error:
Odoo Server Error

Traceback (most recent call last):
  File "/opt/odoo/odoo/addons/base/models/ir_http.py", line 237, in _dispatch
    result = request.dispatch()
  File "/opt/odoo/odoo/http.py", line 683, in dispatch
    result = self._call_function(**self.params)
  File "/opt/odoo/odoo/http.py", line 359, in _call_function
    return checked_call(self.db, *args, **kwargs)
  File "/opt/odoo/odoo/service/model.py", line 94, in wrapper
    return f(dbname, *args, **kwargs)
  File "/opt/odoo/odoo/http.py", line 347, in checked_call
    result = self.endpoint(*a, **kw)
  File "/opt/odoo/odoo/http.py", line 912, in __call__
    return self.method(*args, **kw)
  File "/opt/odoo/odoo/http.py", line 531, in response_wrap
    response = f(*args, **kw)
  File "/opt/odoo/addons/web/controllers/main.py", line 1394, in call_button
    action = self._call_kw(model, method, args, kwargs)
  File "/opt/odoo/addons/web/controllers/main.py", line 1382, in _call_kw
    return call_kw(request.env[model], method, args, kwargs)
  File "/opt/odoo/odoo/api.py", line 399, in call_kw
    result = _call_kw_multi(method, model, args, kwargs)
  File "/opt/odoo/odoo/api.py", line 386, in _call_kw_multi
    result = method(recs, *args, **kwargs)
  File "/mnt/data/odoo-addons-dir/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py", line 1736, in importFatturaPA
    fatt = self.get_invoice_obj(fatturapa_attachment)
  File "/mnt/data/odoo-addons-dir/l10n_it_fatturapa_in/wizard/wizard_import_fatturapa.py", line 1662, in get_invoice_obj
    xml_string = fatturapa_attachment.get_xml_string()
  File "/mnt/data/odoo-addons-dir/l10n_it_fatturapa_in/models/attachment.py", line 90, in get_xml_string
    return self.ir_attachment_id.get_xml_string()
  File "/mnt/data/odoo-addons-dir/l10n_it_fatturapa/models/ir_attachment.py", line 100, in get_xml_string
    return self.cleanup_xml(data)
  File "/mnt/data/odoo-addons-dir/l10n_it_fatturapa/models/ir_attachment.py", line 70, in cleanup_xml
    xml_string = self.remove_xades_sign(xml_string)
  File "/mnt/data/odoo-addons-dir/l10n_it_fatturapa/models/ir_attachment.py", line 52, in remove_xades_sign
    root = ET.XML(xml, parser=recovering_parser)
  File "src/lxml/lxml.etree.pyx", line 3192, in lxml.etree.XML (src/lxml/lxml.etree.c:78756)
  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)
Exception

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/opt/odoo/odoo/http.py", line 639, in _handle_exception
    return super(JsonRequest, self)._handle_exception(exception)
  File "/opt/odoo/odoo/http.py", line 315, in _handle_exception
    raise exception.with_traceback(None) from new_cause
  File "<string>", line 1
lxml.etree.XMLSyntaxError: Document is empty, line 1, column 1

Puoi verificare che il contenuto del file sia corretto?

TheMule71 commented 2 years ago

Non si tratta di un problema del modulo. Dalla sessione runboat: image

Si tratta di un'impostazione di nginx, la richiesta manco arriva a odoo. Vd. https://blog.hubspot.com/website/413-request-entity-too-large

Si potrebbe sostenere che odoo dovrebbe accorgersi dell'errore e visualizzarlo, ma quello è un bug da aprire ad odoo.

@tafaRU L'errore che vedi in un certo senso è successivo, a seguito del mancato caricamento del file allegato. Comunque nel file il codice fiscale e la piva sono sbagliati e anche il base64 dell'allegato non decodifica correttamente.

xmlschema.validators.exceptions.XMLSchemaValidationError: failed validating '1230122' with XsdPatternFacets(['[A-Z0-9]{11,16}']):

Reason: value doesn't match any pattern of ['[A-Z0-9]{11,16}']

Quindi anche fixando la parte nginx / apache, il file non caricherebbe.

tafaRU commented 2 years ago

Riapri pure nel caso il problema dovesse riproporsi.