speedata / publisher

speedata Publisher - a professional database Publishing system
https://www.speedata.de/
GNU Affero General Public License v3.0
302 stars 36 forks source link

Out of memory error when <SetGrid width="1pt" height="1pt"/> with documents over 250 pages #164

Closed ghost closed 6 years ago

ghost commented 6 years ago

The margin error in #163 caused me to adjust my margins slightly and also to adjust the SetGrid element to a finer granularity so that I could accommodate the margin concern.

However, when I set the grid granularity to 1pt Speedata fails in my use case for documents over several hundred pages long. However, it worked fine for smaller documents with SetGrid at 1pt. So it would seem that there is some sort of memory leakage related to the grid per page that causes an out of memory error for very large documents.

I can provide an example if needed.

ghost commented 6 years ago

I have since modified my strategy to use SetGrid width="4.5pt" height="4.5pt" and now I am able to process 1,000 page plus documents. This is further evidence that there is a memory leak because the finer grained Grid must use more memory that is not properly released from page to page.

pgundlach commented 6 years ago

I'd assume that the grid itself is not problematic. For example the following layout works fine:

<Layout xmlns:sd="urn:speedata:2009/publisher/functions/en"
  xmlns="urn:speedata.de:2009/publisher/en" >

  <SetGrid height="1pt" width="1pt"></SetGrid>

  <Record element="data">
    <Loop select="500">
      <PlaceObject>
        <Textblock>
          <Paragraph><Value>Hello world!</Value></Paragraph>
        </Textblock>
      </PlaceObject>
      <NewPage/>
    </Loop>
  </Record>
</Layout>

So I guess there must be something else that causes the problem. Can you track down a minimal file?

pgundlach commented 6 years ago

I think I will provide luajittex and regular luatex binaries in the future. There was no problem running with a non-jit LuaTeX.