Description: QPainter together with QPrinter leaves a lot of temporary files in /tmp with every printout. That is a problem for embedded devices, which have not such a large /tmp-partition. We are using 80 MByte as tmpfs, i.e. in RAM. After some printounts cups deactivates the printer because there is no space to copy the temporary files to /tmp. What happened: In QPdfBaseEnginePrivate::openPrintDevice() noone remembers the file descriptor opened by tempFile() which is a call to the cups library to cupsTempFile() Later in closePrintDevice the check for fd<0 fails, so no one closes the file descriptor. If you later remove the file, the descriptor is still open and cannot removed until you close the application. If you print 20 times and more during your application is running and you print out large files (complicate forms with a lot of elements produces files with 3-4 MByte) your temporary file can be full, but you don't see (with ls) files in it. Bug: https://bugreports.qt.nokia.com/browse/QTBUG-14724 Author: Georg Scherzer --- src/gui/painting/qpdf.cpp | 1 + 1 file changed, 1 insertion(+) --- a/src/gui/painting/qpdf.cpp +++ b/src/gui/painting/qpdf.cpp @@ -1686,6 +1686,7 @@ bool QPdfBaseEnginePrivate::openPrintDev cupsTempFile = ret.second; outDevice = new QFile(); static_cast(outDevice)->open(ret.first, QIODevice::WriteOnly); + fd = ret.first; #endif #ifndef QT_NO_LPR } else {