# [luatex] lualatex / includegraphics / open files

Knut Petersen Knut_Petersen at t-online.de
Fri Dec 1 13:49:04 CET 2017

Hi everybody!

Assume that the files testa.pdf, testb.pdf and testc.pdf exist.

Further assume there is a file mwe.tex:

\NeedsTeXFormat{LaTeX2e}
\documentclass[12pt]{letter}
\usepackage{shellesc,graphicx}
\begin{document}
\includegraphics{testa.pdf}\newpage
\includegraphics{testb.pdf}\newpage
\includegraphics{testc.pdf}\newpage
\immediate\write18{ lsof | grep latex | grep test | less -S }
\end{document}

If (on a linux system) you execute

lualatex --shell-escape mwe

and

xelatex --shell-escape mwe

you see a difference: the included pdf files are open if you use
lualatex, they are _not_open_ when xelatex is used.

That difference is not a problem if you want to include only a few
files, but it is a problem if you want to include a few thousands
of pdfs - on most sytems there is a limit of about 1024 open files.

That limit can be raised, but at least in my case that does
not really help: using write18 to start a program when many file
descriptors are open might expose a bug in the c++ library if "many"
is "more than 1023". If that child uses execve() to start another child,
that execve fails with a "*** buffer overflow detected ***" message.

Is this is a problem of luatex? I don't know, but I think it is.

Keeping all files that are included by \includegraphics open is a
wasteful use of limited system resources (file descriptors) , and xetex
demonstrates that it is not necessary.

BTW: In my tests xelatex fails to include more than 5005 pdfs correctly.
Pdfs 5005+ are read,  white space is reserved, but the actual content of
the included pdfs is missing. Nothing unusual is written to the log.

System used:

* Linux, 64bit (i4790K, 32GB)
* OpenSuSE Tumbleweed
* LuaTeX, Version 1.0.4 (TeX Live 2017/TeX Live for SUSE Linux)
* XeTeX 3.14159265-2.6-0.99998 (TeX Live 2017/TeX Live for SUSE Linux)

Knut

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://tug.org/pipermail/luatex/attachments/20171201/88642a0b/attachment.html>