← Back to team overview

openerp-india team mailing list archive

[Bug 899794] Re: [6.1] random requests fail with "TypeError: can't escape non-string object"

 

as described in bug: Bug #919982  by ruy medeiros


"
Hi,

I'm using Ubuntu 10.04 with Postgresql 8.4.10, psycopg 2.4.4, Openerp
6.1 RC1 and got struck with this error too. All forms with binary fields
in the model were causing this error.

After fiddling in google, I found this bug report
http://psycopg.lighthouseapp.com/projects/62710/tickets/51-typeerror-
cant-escape-unicode-to-binary-writing-unicode-into-bytea which made me
suspicious that openerp was trying to convert to binary the form field
as unicode, thus psycopg threw the error.

I have no idea if this is the right fix, but what I did to sort it out
was to cast the form field content as a string before the binary
conversion by psycopg in osv/fields.py the end result is:

_symbol_f = lambda symb: symb and Binary(str(symb)) or None

on line 296 of osv/fields.py

Again, I have no idea whatsoever if this is the right fix, I'm sure this
is where the problem is caused though.

Best regards,"

it was worked fine.!
but in my version it´s in line 332.
i don´t know how it affect the other fields.

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

Title:
  [6.1] random requests fail with "TypeError: can't escape non-string
  object"

Status in OpenERP Server:
  Incomplete

Bug description:
  from a virtual ubuntu 10.04 server installing OpenERP from trunk:
  OpenERP-server rev: 3848
  OpenERP-addons rev: 5861
  OpenERP-web rev: 1596
  using pip for installing essentially all software except python-ldap, postgresql. 

  0) Go to http://<virtualserver>:8069
  Create a new database without demo data
  This should automatically log you in as Admin with a screen to install modules

  1) Click "SETTINGS" 
  2) Click "Set Company Header and Footer"
  3) Click folder icon to add new logo
  4) Click "Save"

  Result is:
  OpenERP Server Error

  Client Traceback (most recent call last):
    File "/opt/openerp/openerp-web/addons/web/common/http.py", line 154, in dispatch
      response["result"] = method(controller, self, **self.params)
    File "/opt/openerp/openerp-web/addons/web/controllers/main.py", line 772, in save
      r = m.write([id], data, req.session.eval_context(req.context))
    File "/opt/openerp/openerp-web/addons/web/common/openerplib/main.py", line 429, in proxy
      *args)
    File "/opt/openerp/openerp-web/addons/web/common/openerplib/main.py", line 306, in proxy
      result = self.connector.send(self.service_name, method, *args)
    File "/opt/openerp/openerp-web/addons/web/common/openerplib/main.py", line 276, in send
      raise fault

  
  Server Traceback (most recent call last):
    File "/opt/openerp/openerp-web/addons/web/common/openerplib/main.py", line 257, in send
      result = openerp.netsvc.dispatch_rpc(service_name, method, args)
    File "/opt/openerp/openerp-server/openerp/netsvc.py", line 325, in dispatch_rpc
      result = ExportService.getService(service_name).dispatch(method, params)
    File "/opt/openerp/openerp-server/openerp/service/web_services.py", line 580, in dispatch
      res = fn(db, uid, *params)
    File "/opt/openerp/openerp-server/openerp/osv/osv.py", line 120, in wrapper
      return f(self, dbname, *args, **kwargs)
    File "/opt/openerp/openerp-server/openerp/osv/osv.py", line 172, in execute
      res = self.execute_cr(cr, uid, obj, method, *args, **kw)
    File "/opt/openerp/openerp-server/openerp/osv/osv.py", line 163, in execute_cr
      return getattr(object, method)(cr, uid, *args, **kw)
    File "/opt/openerp/openerp-server/openerp/addons/base/res/res_company.py", line 240, in write
      return super(res_company, self).write(cr, *args, **argv)
    File "/opt/openerp/openerp-server/openerp/osv/orm.py", line 3854, in write
      'where id IN %s', upd1 + [sub_ids])
    File "/opt/openerp/openerp-server/openerp/sql_db.py", line 153, in wrapper
      return f(self, *args, **kwargs)
    File "/opt/openerp/openerp-server/openerp/sql_db.py", line 215, in execute
      res = self._obj.execute(query, params)
  TypeError: can't escape non-string object

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


Follow ups