(sorry, I've deleted my previous message because I have more detailed information).
Thank you for pointing that out, I had seen that issue but I missed out that I had to use Scheduler(..., with_spawn=True) so I did that change and, apparently, scheduler is stable (hasn't crashed so far). However, since that change, all the tasks that are from a different app that the one from where the scheduler was run, fail with this traceback: Traceback (most recent call last): File "/home/limon/medios/gluon/scheduler.py", line 494, in executor functions = current._scheduler.tasks AttributeError: '_thread._local' object has no attribute '_scheduler' Let me explain a bit more: I have one web2py instance with several applications, each one with its own database. One of these apps is the main one and the scheduler connects to its database. ...web2py/applications/main/... ...web2py/applications/app1/... ...web2py/applications/app2/... I run three scheduler workers for the main app with this command: /opt/virtualenvs/py39/bin/python /home/limon/web2py/web2py.py -K main,main,main In applications/main/models/scheduler.py I instantiate the Scheduler like this: scheduler = Scheduler(db, max_empty_runs=0, heartbeat=5, use_spawn=True) And then, from several parts of my application I queue tasks. Some of these tasks are defined in the "main" application, but some others are defined in "app1" or "app2". Well, since the change to Scheduler(..., use_spawn=True) all the tasks within "main" application run ok, but all the other ones fail with the traceback I showed before. Notice I run the three scheduler workers for "main" application, I'm not sure if that has something to do with the issue. But I can confirm all this setup was working smoothly before use_spawn=True. What could be happening? Any help will be much appreciated. I'll keep investigating and post here if I find something. Thanks! El miércoles, 21 de junio de 2023 a la(s) 07:08:37 UTC-3, Massimiliano escribió: > There was an issue but should be fixed now. > > https://github.com/web2py/web2py/issues/1999 > > > Il giorno lun 19 giu 2023 alle ore 20:57 Lisandro <rostagno...@gmail.com> > ha scritto: > >> I've recently upgraded to web2py Version >> 2.24.1-stable+timestamp.2023.03.23.05.07.17 >> It's running on python 3.9.14, Rocky Linux RHEL9, using PostgreSQL 15.2 >> for database. >> >> Since I did the upgrade, the scheduler fails from time to time with this >> traceback: >> >> ERROR:web2py.scheduler.main#1531711: error storing result >> Traceback (most recent call last): >> File "/var/www/medios/gluon/scheduler.py", line 1077, in >> wrapped_report_task >> self.report_task(task, task_report) >> File "/var/www/medios/gluon/scheduler.py", line 1101, in report_task >> db(sr.id == task.run_id).update( >> File "/var/www/medios/gluon/packages/dal/pydal/objects.py", line 2789, >> in update >> ret = db._adapter.update(table, self.query, row.op_values()) >> File "/var/www/medios/gluon/packages/dal/pydal/adapters/base.py", line >> 586, in update >> raise e >> File "/var/www/medios/gluon/packages/dal/pydal/adapters/base.py", line >> 581, in update >> self.execute(sql) >> File "/var/www/medios/gluon/packages/dal/pydal/adapters/__init__.py", >> line 69, in wrap >> return f(*args, **kwargs) >> File "/var/www/medios/gluon/packages/dal/pydal/adapters/base.py", line >> 468, in execute >> rv = self.cursor.execute(command, *args[1:], **kwargs) >> psycopg2.OperationalError: server closed the connection unexpectedly >> This probably means the server terminated abnormally >> before or while processing the request. >> Traceback (most recent call last): >> File "/var/www/medios/gluon/scheduler.py", line 1077, in >> wrapped_report_task >> self.report_task(task, task_report) >> File "/var/www/medios/gluon/scheduler.py", line 1101, in report_task >> db(sr.id == task.run_id).update( >> File "/var/www/medios/gluon/packages/dal/pydal/objects.py", line 2789, >> in update >> ret = db._adapter.update(table, self.query, row.op_values()) >> File "/var/www/medios/gluon/packages/dal/pydal/adapters/base.py", line >> 586, in update >> raise e >> File "/var/www/medios/gluon/packages/dal/pydal/adapters/base.py", line >> 581, in update >> self.execute(sql) >> File "/var/www/medios/gluon/packages/dal/pydal/adapters/__init__.py", >> line 69, in wrap >> return f(*args, **kwargs) >> File "/var/www/medios/gluon/packages/dal/pydal/adapters/base.py", line >> 468, in execute >> rv = self.cursor.execute(command, *args[1:], **kwargs) >> psycopg2.OperationalError: server closed the connection unexpectedly >> This probably means the server terminated abnormally >> before or while processing the request. >> During handling of the above exception, another exception occurred: >> Traceback (most recent call last): >> File "/var/www/medios/gluon/shell.py", line 321, in run >> exec(python_code, _env) >> File "<string>", line 1, in <module> >> File "/var/www/medios/gluon/scheduler.py", line 949, in loop >> self.wrapped_report_task(task, self.execute(task)) >> File "/var/www/medios/gluon/scheduler.py", line 1082, in >> wrapped_report_task >> db.rollback() >> File "/var/www/medios/gluon/packages/dal/pydal/base.py", line 825, in >> rollback >> self._adapter.rollback() >> File "/var/www/medios/gluon/packages/dal/pydal/adapters/__init__.py", >> line 57, in wrap >> return f(*args, **kwargs) >> File "/var/www/medios/gluon/packages/dal/pydal/adapters/base.py", line >> 1012, in rollback >> return self.connection.rollback() >> psycopg2.InterfaceError: connection already closed >> >> >> I've checked PostgreSQL logs but there is no error or apparent problem at >> the time scheduler fails. The database instance has several databases and >> no error log is reported, everything runs smoothly. It's just the scheduler >> that reports that error (and after it, it doesn't run anymore). Where else >> should I look? >> >> Any help will be much appreciated. >> Warm regards, >> Lisandro >> >> -- >> Resources: >> - http://web2py.com >> - http://web2py.com/book (Documentation) >> - http://github.com/web2py/web2py (Source code) >> - https://code.google.com/p/web2py/issues/list (Report Issues) >> --- >> You received this message because you are subscribed to the Google Groups >> "web2py-users" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to web2py+un...@googlegroups.com. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/web2py/9ffdc6f1-8448-4784-a344-7f176545e9d9n%40googlegroups.com >> >> <https://groups.google.com/d/msgid/web2py/9ffdc6f1-8448-4784-a344-7f176545e9d9n%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> > > > -- > Massimiliano > -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- You received this message because you are subscribed to the Google Groups "web2py-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to web2py+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/web2py/07c8843d-7a78-48f9-bc97-aad5d343e672n%40googlegroups.com.