<html>
    <head>
      <base href="https://bugs.documentfoundation.org/">
    </head>
    <body><table border="1" cellspacing="0" cellpadding="8">
        <tr>
          <th>Bug ID</th>
          <td><a class="bz_bug_link 
          bz_status_UNCONFIRMED "
   title="UNCONFIRMED - CPU / Memory burn ..."
   href="https://bugs.documentfoundation.org/show_bug.cgi?id=131985">131985</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>CPU / Memory burn ...
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>LibreOffice Online
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>unspecified
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>All
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>All
          </td>
        </tr>

        <tr>
          <th>Status</th>
          <td>UNCONFIRMED
          </td>
        </tr>

        <tr>
          <th>Severity</th>
          <td>critical
          </td>
        </tr>

        <tr>
          <th>Priority</th>
          <td>medium
          </td>
        </tr>

        <tr>
          <th>Component</th>
          <td>LibreOffice
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>libreoffice-bugs@lists.freedesktop.org
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>michael.meeks@collabora.com
          </td>
        </tr></table>
      <p>
        <div>
        <pre>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 =)</pre>
        </div>
      </p>


      <hr>
      <span>You are receiving this mail because:</span>

      <ul>
          <li>You are the assignee for the bug.</li>
      </ul>
    </body>
</html>