[Koha-bugs] [Bug 27756] New: background_jobs_worker.pl is memory inefficient

bugzilla-daemon at bugs.koha-community.org bugzilla-daemon at bugs.koha-community.org
Tue Feb 23 00:11:16 CET 2021


https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=27756

            Bug ID: 27756
           Summary: background_jobs_worker.pl is memory inefficient
 Change sponsored?: ---
           Product: Koha
           Version: master
          Hardware: All
                OS: All
            Status: NEW
          Severity: enhancement
          Priority: P5 - low
         Component: Architecture, internals, and plumbing
          Assignee: koha-bugs at lists.koha-community.org
          Reporter: dcook at prosentient.com.au
        QA Contact: testopia at bugs.koha-community.org

Once Perl allocates memory, it doesn't return that memory to the Operating
System for the life of that Perl process. If memory is freed within a Perl
program (nullifying a variable, for instance), that memory will be re-used
within the Perl program, but it will not return the memory. This can cause
unexpected excessive memory consumption for long-running Perl programs.

misc/background_jobs_worker.pl runs all its code within the same process, so it
will never return allocated memory. This means that 1 large background import
could cause background_jobs_worker.pl to permanently use a large amount of
memory (until it is restarted). 

The solution is to do the background work within a forked process. I was
reminded of this when I read "The worker process will fork a new process for
every job that is being processed. This allows for resources such as memory to
be returned to the operating system once a job is finished. Perl fork is very
fast, so don't worry about the overhead" at
https://docs.mojolicious.org/Minion. 

It's the same premise as bug 27267.

-- 
You are receiving this mail because:
You are the assignee for the bug.
You are watching all bug changes.


More information about the Koha-bugs mailing list