[Libreoffice-bugs] [Bug 131985] New: CPU / Memory burn ...

bugzilla-daemon at bugs.documentfoundation.org bugzilla-daemon at bugs.documentfoundation.org
Wed Apr 8 13:20:19 UTC 2020


https://bugs.documentfoundation.org/show_bug.cgi?id=131985

            Bug ID: 131985
           Summary: CPU / Memory burn ...
           Product: LibreOffice Online
           Version: unspecified
          Hardware: All
                OS: All
            Status: UNCONFIRMED
          Severity: critical
          Priority: medium
         Component: LibreOffice
          Assignee: libreoffice-bugs at lists.freedesktop.org
          Reporter: michael.meeks at collabora.com

Sometimes we have documents that burn lots of CPU & Memory; interestingly their
main-loops are still running:

5456  clock_gettime(CLOCK_PROCESS_CPUTIME_ID, {tv_sec=80195,
tv_nsec=502097667}) = 0
5456 
access("/opt/collaboraoffice6.2/share/fonts/truetype/LiberationSans-Bold.ttf",
R_OK) = 0
5456 
access("/opt/collaboraoffice6.2/share/fonts/truetype/LiberationSans-Regular.ttf",
R_OK) = 0
5456  access("/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf", R_OK) = 0
5456  access("/opt/collaboraoffice6.2/share/fonts/truetype/DejaVuSans.ttf",
R_OK) = 0
5456  access("/opt/collaboraoffice6.2/share/fonts/truetype/opens___.ttf", R_OK)
= 0
5456 
access("/opt/collaboraoffice6.2/share/fonts/truetype/LiberationSans-Bold.ttf",
R_OK) = 0
5456 
access("/opt/collaboraoffice6.2/share/fonts/truetype/LiberationSans-Regular.ttf",
R_OK) = 0
5456  access("/opt/collaboraoffice6.2/share/fonts/truetype/opens___.ttf", R_OK)
= 0
5456  access("/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf", R_OK) = 0
5456 
access("/opt/collaboraoffice6.2/share/fonts/truetype/LiberationSerif-Bold.ttf",
R_OK) = 0
5456  access("/opt/collaboraoffice6.2/share/fonts/truetype/DejaVuSans.ttf",
R_OK) = 0
5456  access("/opt/collaboraoffice6.2/share/fonts/truetype/opens___.ttf", R_OK)
= 0

        + did something here [!] ...

5456  write(14, "w", 1)                 = -1 EAGAIN (Ressource temporairement
non disponible)
5456 
access("/opt/collaboraoffice6.2/share/fonts/truetype/LiberationSans-Bold.ttf",
R_OK) = 0
5456  clock_gettime(CLOCK_PROCESS_CPUTIME_ID, {tv_sec=80195,
tv_nsec=648905941}) = 0
5456  write(14, "w", 1)                 = -1 EAGAIN (Ressource temporairement
non disponible)
5456  clock_gettime(CLOCK_PROCESS_CPUTIME_ID, {tv_sec=80196,
tv_nsec=300254527}) = 0

        + 761 of these ... (happens each time)

5456  clock_gettime(CLOCK_PROCESS_CPUTIME_ID, {tv_sec=80197, tv_nsec=38938770})
= 0
5456 
access("/opt/collaboraoffice6.2/share/fonts/truetype/LiberationSans-Bold.ttf",
R_OK) = 0
5456 
access("/opt/collaboraoffice6.2/share/fonts/truetype/LiberationSans-Regular.ttf",
R_OK) = 0
5456  access("/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf", R_OK) = 0
5456  access("/opt/collaboraoffice6.2/share/fonts/truetype/DejaVuSans.ttf",
R_OK) = 0
5456  access("/opt/collaboraoffice6.2/share/fonts/truetype/opens___.ttf", R_OK)
= 0
5456 
access("/opt/collaboraoffice6.2/share/fonts/truetype/LiberationSans-Bold.ttf",
R_OK) = 0
5456 
access("/opt/collaboraoffice6.2/share/fonts/truetype/LiberationSans-Regular.ttf",
R_OK) = 0
5456  access("/opt/collaboraoffice6.2/share/fonts/truetype/opens___.ttf", R_OK)
= 0
5456  access("/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf", R_OK) = 0
5456 
access("/opt/collaboraoffice6.2/share/fonts/truetype/LiberationSerif-Bold.ttf",
R_OK) = 0
5456  access("/opt/collaboraoffice6.2/share/fonts/truetype/DejaVuSans.ttf",
R_OK) = 0
5456  access("/opt/collaboraoffice6.2/share/fonts/truetype/opens___.ttf", R_OK)
= 0
5456  write(14, "w", 1)                 = -1 EAGAIN (Ressource temporairement
non disponible)
5456 
access("/opt/collaboraoffice6.2/share/fonts/truetype/LiberationSans-Bold.ttf",
R_OK) = 0
5456  clock_gettime(CLOCK_PROCESS_CPUTIME_ID, {tv_sec=80197,
tv_nsec=186801155}) = 0
5456  write(14, "w", 1)                 = -1 EAGAIN (Ressource temporairement
non disponible)
5456  clock_gettime(CLOCK_PROCESS_CPUTIME_ID, {tv_sec=80197,
tv_nsec=852122768}) = 0

and some repeat of this. The wakeup pipe is full, so it is clear that we never
get to the poll.

We are clearly getting stuck here:

bool SvpSalInstance::DoYield(bool bWait, bool bHandleAllCurrentEvents)
{
    // first, process current user events
    bool bEvent = DispatchUserEvents(bHandleAllCurrentEvents);
    if (!bHandleAllCurrentEvents && bEvent)

** Either we bail out here - and never get the poll

        return true;

    bEvent = CheckTimeout() || bEvent;

** Or we have a very short timeout that we always take - setting bEvent to true

    SvpSalYieldMutex *const
pMutex(static_cast<SvpSalYieldMutex*>(GetYieldMutex()));

    if (IsMainThread())
    {
        if (bWait && ! bEvent)
        {
... call back to the kit poll() ...

** Or we are in a 'Yield' loop where bWait is always false - so we never get

More details on that much appreciated =)

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/libreoffice-bugs/attachments/20200408/e09bc7ca/attachment-0001.htm>


More information about the Libreoffice-bugs mailing list