← Back to team overview

openerp-india team mailing list archive

[Bug 921442] Re: [6.0/trunk] Encoding trouble in mail_message parsing and base_action_rule processing

 

Dear OpenERP Team,


I can understand you need merge proposal and test case to handle your
stuff. Sometimes, it is not that easy to write a proper one in Yaml,
especially here. Can I just remind you gently  that you never write one
test for this module as well ?! This is just because we can't actualy do
it, or we will just spend weeks on it. Code a mail sending test and I
will include my test case in it I promise !


I try a last time to convince you here by proposing a patch and instructions to reproduce the bug  :

1 ) Install a fresh OpenERP DB

2) Install and configure the CRM + mail interface

3) Setup an Incoming mail server on any test mail account you have
(let's say test@xxxxxxxxxxx)

4) Send an email @ test@xxxxxxxxxxx

5) Apply the "reproduce.patch" on the server and restart it

6) Ask to fetch the email through : Settings -> Configuration -> Email
-> Incoming Mail Server by clicking the "Fetch Now" button

You'll have an error raised by Postgres cause of UTF-8 decoding trouble (here a copy of postgres logs: 
ERROR:  invalid byte sequence for encoding "UTF8": 0xff
ERROR:  current transaction is aborted, commands ignored until end of transaction block
)

Now you can retry the same procedure with my second patch
"reproduce_fixed.patch" (that include my fix) and you'll see you're not
gonna have this crash anymore.

Now, I take the time to discuss the trouble, I even provide a patch on a
feature that is quite important and crucial (even for your own
infrastructure, as you also use the CRM for OPW support case).

You now have the possibility to reproduce it... Take your own decision.
I have taken my own and committed my patch in our Camptocamp's branch.
You can merge it if you want, but I won't request a merge myself for
that case :

bzr merge -c6589 https://code.launchpad.net/~c2c/openobject-addons/6.1
-c2c-official


Regards,


Joël

-- 
You received this bug notification because you are a member of OpenERP
Indian Team, which is subscribed to OpenERP Addons.
https://bugs.launchpad.net/bugs/921442

Title:
  [6.0/trunk] Encoding trouble in mail_message parsing and
  base_action_rule processing

Status in OpenERP Addons (modules):
  Fix Committed
Status in OpenERP Addons 6.0 series:
  Fix Committed
Status in OpenERP Addons 6.1 series:
  New
Status in OpenERP Addons trunk series:
  Fix Committed

Bug description:
  hi,

  
  We've got an issue with encoding in the crm part. This will be difficult to reproduce.. :( So, please look at the code to understand the problem..

  First bug part : Parsing the rules (base_action_rule) breaks if the
  regexp or the name of the resource (model) has some non-string char.
  In the function do_chek you have :

  if reg_name:
              ptrn = re.compile(str(reg_name))
              _result = ptrn.search(str(obj.name))

  Calling str() method here breaks if some unknown char are present in
  the object name or in the regexp name it-self.

  See my patch, I suggest to just remove that call to str() as both are
  already in unicode which is perfect => no need to convert with str().

  
  Second part: Fetching mail when some character are broken in the body_html part. It could happend that you receive an email with broking characters in it, you should not block everything because of that. Currently, if it happend, no other mail are fetched, and you got an PostgreSQL error when trying to write it in DB : invalid byte sequence for encoding "UTF8": 0xe96ce9

  In the parse_message of mail_message.py, you make everything to take
  care of the coding, nothing to improve there I think. But, if the
  message (body_html) contain broken char (I mean non-valid one, not a
  coding trouble, like in this example : unicode('abcdef' + chr(255))),
  then it breaks the mail fetching.

  As body_text is encoded in unicode, I suggest the same in my patch,
  but with the option errors=ignore. This way we skip all non-conform
  char, and ensure the write method will only write valid char in DB.

  The provided patch worked on more than 900 mails, so I think it's
  good.

  Thanks for your consideration,

  Regards,

  
  Joël

  
  Ref: http://docs.python.org/howto/unicode.html

To manage notifications about this bug go to:
https://bugs.launchpad.net/openobject-addons/+bug/921442/+subscriptions


References