¡Bienvenido a los foros Aeodoo!

Somos la comunidad de Odoo internacional hispanohablante.
Estos foros son para compartir y debatir dudas técnicas, funcionales y mejores prácticas para Odoo. Recuerda que no están permitidos los insultos, descalificaciones o spam, cualquier conducta reprobable supondrá el baneo del usuario.

This question has been flagged
1 Reply
1080 Views

Hola a todos,

En un odoo v16 CE, montado con docker, en un ubuntu 22.04 , en un VPS con 2 gigas de RAM y un core y que ha sido montado con el fichero de docker compose oficial de odoo, con el workers = 2 , con la única modidicación de exponer el puerto 8072, me ocurre lo siguiente:

Da este error y el procesador se pone al 100%

Traceback (most recent call last):
File "/usr/bin/odoo", line 5, in
import odoo
File "/usr/lib/python3/dist-packages/odoo/__init__\.py",\ line\ 28,\ in\
\ \ \ \ import\ gevent\.monkey
\ \ File\ "/usr/lib/python3/dist\-packages/gevent/__init__\.py",\ line\ 86,\ in\
\ \ \ \ from\ gevent\._hub_local\ import\ get_hub
\ \ File\ "/usr/lib/python3/dist\-packages/gevent/_hub_local\.py",\ line\ 101,\ in\
\ \ \ \ import_c_accel\(globals\(\),\ 'gevent\.__hub_local'\)
\ \ File\ "/usr/lib/python3/dist\-packages/gevent/_util\.py",\ line\ 148,\ in\ import_c_accel
\ \ \ \ mod\ =\ importlib\.import_module\(cname\)
\ \ File\ "/usr/lib/python3\.9/importlib/__init__\.py",\ line\ 127,\ in\ import_module
\ \ \ \ return\ _bootstrap\._gcd_import\(name\[level:\],\ package,\ level\)
\ \ File\ "src/gevent/_hub_local.py", line 1, in init gevent._gevent_c_hub_local
ValueError: greenlet.greenlet size changed, may indicate binary incompatibility. Expected 152 from C header, got 40 from PyObject

Entiendo que workers = 2 y un solo procesador no es un problema.

Yo por mi no ponía workers , pero ocurre que en v15 si me funciona el longpolling poniendo 3 workers, parece ser que para que funcione el chat los workers tienen que ser mayor que uno.

¿Alguien sabe como arreglar esto?

Saludos y gracias.

Avatar
Discard

En ese caso, para la vesrion gevent 20.9.0 instala la version greenlet==0.4.17

Prueba pip install greenlet=0.4.17, para que seas compatible con gevent 20.9.0

Pruebalo y avisame!

Author

Hola, muchas gracias

Lo he probado y he cambiado la version de greenlet
el procesador ya no sopla y no da ese error, ahora da otro

esult = endpoint(self, *args, **params_ok)
File "/usr/lib/python3/dist-packages/odoo/addons/bus/controllers/websocket.py", line 23, in websocket
return WebsocketConnectionHandler.open_connection(request)
File "/usr/lib/python3/dist-packages/odoo/addons/bus/websocket.py", line 817, in open_connection
Websocket(request.httprequest.environ['socket'], request.session),
KeyError: 'socket'
2023-10-05 10:51:44,847 16 INFO teslaspain werkzeug: 79.117.130.249 - - [05/Oct/2023 10:51:44] "GET /websocket HTTP/1.1" 500 - 1 0.000 0.005
2023-10-05 10:51:51,715 17 INFO teslaspain werkzeug: 172.19.0.1 - - [05/Oct/2023 10:51:51] "GET /websocket HTTP/1.1" 400 - 1 0.001 0.004
2023-10-05 10:52:01,915 21 INFO teslaspain odoo.addons.base.models.ir_cron: Starting job `Jobs Garbage Collector`.

Author

Despues de hacer una modificación en el proxy , ya no da ese error, ahora ya estaría bien.

Muchas gracias

Que buena noticia! Recuerda marcar como solucion mi respuesta anterior! Saludos cordiales.

Hola! No parece ser un problema de workers, sino de compatibilidad de paquetes. Tienen que ser compatibles gevent y greenlet.

Tienes que versión de estos paquetes es instalada?


Avatar
Discard
Author

Hola,

Gracias por contestar

gevent==20.9.0

greenlet==2.0.2

estas son las versiones instaladas.

Gracias

Your Answer

Please try to give a substantial answer. If you wanted to comment on the question or answer, just use the commenting tool. Please remember that you can always revise your answers - no need to answer the same question twice. Also, please don't forget to vote - it really helps to select the best questions and answers!