General

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

0

[16] Si pongo workers mayor que 1 odoo da error y el procesador se calienta

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.

4 Comentarios
Avatar
Descartar
Avatar
Sebastian de Durana
-

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!

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

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

Muchas gracias

Avatar
Sebastian de Durana
-

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

1 Respuesta
2
Mejor respuesta

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?


1 Comentario
Avatar
Descartar

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