copr icon indicating copy to clipboard operation
copr copied to clipboard

The `resalloc/pools` page returns error 500 again

Open praiskup opened this issue 1 year ago • 4 comments

https://copr-be.cloud.fedoraproject.org/resalloc/pools

praiskup avatar Apr 03 '24 13:04 praiskup

Nooo, not again.

FrostyX avatar Apr 03 '24 19:04 FrostyX

There is the following traceback in /var/log/lighttpd/breakage.log

[2024-04-03 19:48:27,474] ERROR in app: Exception on /pools [GET]
Traceback (most recent call last):
  File "/usr/lib/python3.12/site-packages/flask/app.py", line 2529, in wsgi_app
    response = self.full_dispatch_request()
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/site-packages/flask/app.py", line 1825, in full_dispatch_request
    rv = self.handle_user_exception(e)
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/site-packages/flask/app.py", line 1823, in full_dispatch_request
    rv = self.dispatch_request()
         ^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/site-packages/flask/app.py", line 1799, in dispatch_request
    return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/site-packages/resallocwebui/app.py", line 41, in pools
    _, pools_config = reload_config()
                      ^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/site-packages/resallocserver/manager.py", line 159, in reload_config
    pool.from_dict(config[pool_id])
  File "/usr/lib/python3.12/site-packages/resallocserver/manager.py", line 646, in from_dict
    app.log.warning("Setting max_prealloc=0 for on-demand pool %s",
    ^^^^^^^
  File "/usr/lib/python3.12/site-packages/resallocserver/app.py", line 38, in __getattr__
    setattr(self, key, getattr(self, "instantiate_{}".format(key))())
                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/site-packages/resallocserver/app.py", line 48, in instantiate_log
    return get_logger("resallocserver")
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/site-packages/resallocserver/log.py", line 34, in get_logger
    main_file = logging.FileHandler(logfile)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib64/python3.12/logging/__init__.py", line 1231, in __init__
    StreamHandler.__init__(self, self._open())
                                 ^^^^^^^^^^^^
  File "/usr/lib64/python3.12/logging/__init__.py", line 1263, in _open
    return open_func(self.baseFilename, self.mode,
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
PermissionError: [Errno 13] Permission denied: '/var/log/resallocserver/main.log'

FrostyX avatar Apr 03 '24 19:04 FrostyX

Thank you for the traceback, I did this work-around then:

--- /usr/lib/python3.12/site-packages/resallocserver/manager.py 2024-03-15 00:00:00.000000000 +0000
+++ /usr/lib/python3.12/site-packages/resallocserver/manager.py 2024-04-04 08:02:46.355468553 +0000
@@ -643,8 +643,8 @@
                 normalize_tags(obj)
 
         if self.tags_on_demand and self.max_prealloc != 0:
-            app.log.warning("Setting max_prealloc=0 for on-demand pool %s",
-                            self.name)
+            #app.log.warning("Setting max_prealloc=0 for on-demand pool %s",
+            #                self.name)
             self.max_prealloc = 0
 
     def _too_soon(self):

praiskup avatar Apr 04 '24 08:04 praiskup

We should use a separate log file for webserver vs. resalloc manager.

praiskup avatar Apr 10 '24 12:04 praiskup

Deployed on both Fedora Copr and Red Hat Copr.

praiskup avatar Apr 25 '24 09:04 praiskup