¡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.

Esta pregunta ha sido marcada
1 Responder
1078 Vistas

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
Descartar

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!

Autor

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`.

Autor

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
Descartar
Autor

Hola,

Gracias por contestar

gevent==20.9.0

greenlet==2.0.2

estas son las versiones instaladas.

Gracias

Su respuesta

Intente dar una respuesta sustancial. Si desea hacer un comentario sobre la pregunta o la respuesta, utilice la herramienta de comentarios. Recuerde que siempre puede revisar sus respuestas, no es necesario responder dos veces a la misma pregunta. No olvide votar, ayuda a seleccionar las mejores preguntas y respuestas