:date: 2019-09-24 =========================== Tuesday, September 24, 2019 =========================== Così ==== I opened and did :ticket:`3222` (:class:`lino_xl.lib.ledger.JournalsOverview`), and I copied the Estonian name generator from the :manage:`garble_persons` :term:`django-admin command` to a :fixture:`demo2` fixture for :mod:`lino_xl.lib.contacts` (needed for :ticket:`3221`). Both changes are in preparation of a public demo in Märjamaa planned for Saturday. I pushed above changes to master without waiting for the end of the test run, then pushed another commit for adapting the book tests. Avanti ====== I released Avanti 19.9.1, Lino XL 19.9.6 and Lino 19.9.1 for the :term:`site upgrade` of the :ref:`avanti` preview site. Welfare ======= Back to work on :ticket:`3095` (move weleup to new server). I released :ref:`welfare` 19.9.1 and :ref:`weleup` 19.9.1. Logging messages ================ I use to have :envvar:`LINO_LOGLEVEL` set to ``DEBUG`` when running a :manage:`runserver` because the debug messages generated by Lino are useful when running manual tests. With newer Django versions I have the same problem as reported on `30554 `__. To "fix" this, the :meth:`lino.core.site.Site.setup_logging` method now sets the level for Django's ``django.utils.autoreload`` logger to ``INFO`` . Unknown callback '7f1d8ad5a39' ============================== Lino's callback system doesn't work ATM on our sites running under nginx because callbacks require a unique :attr:`Kernel.pending_threads` where all unanswered callback questions are stored. It is currently impossible to delete e.g. a calendar entry on such a Lino site. nginx creates separate worker processes that run in completely different processes and cannot share data between them. "Nginx uses only asynchronous I/O, which makes blocking a non-issue. The only reason nginx uses multiple processes, is to make full use of multi-core, multi-CPU and hyper-threading systems. Even with SMP support, the kernel cannot schedule a single thread of execution over multiple CPU" I changed the ``worker_processes`` value in the :file:`nginx/prjname_uwsgi.ini` file from 10 to 1 and voilà. Of course we need to keep an eye on performance. If needed I'd consider redis for storing the callbacks and user preferences and all those things. Sources: - https://stackoverflow.com/questions/4764731/nginx-its-multithreaded-but-uses-multiple-processes - https://www.nginx.com/blog/inside-nginx-how-we-designed-for-performance-scale - https://nginx.org/en/docs/ngx_core_module.html?&_ga=2.30660287.1891405285.1569342613-901822152.1569342613#worker_processes