forwarded 575731 te...@tug.org thanks Dear Karl, dear all @tex-k
here a quite detailed bug report about parallel calls to pdftex and -recorder. Any comments? On Mo, 29 Mär 2010, Kirill Smelkov wrote: > Package: texlive-binaries > Version: 2009-5 > Severity: normal > File: /usr/bin/pdftex > > Hello, > > I use -recorder option in my TeX makefile in order to automatically > generate TeX dependencies (a-la gcc -MD) and discovered that -recorder > does not work correctly for parallel TeX runs. Look e.g. here: > > $ cat 1.tex > Hello World > \end > > $ strace tex -recorder 1.tex 2>&1 | grep fls > open("tex.fls", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 4 > rename("tex.fls", "1.fls") = 0 > > $ strace pdftex -recorder 1.tex 2>&1 | grep fls > open("pdftex.fls", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 4 > rename("pdftex.fls", "1.fls") = 0 > > > As can bee seen both tex/pdftex first use intermediate temporary file > (tex.fls / pdftex.fls) and only then rename it to $(jobname).fls > > So the problem here is that when I try to compile both 1.tex and 2.tex > _simultaneously_ (e.g. through make -j2) there is a good chance that > both tex runs will open the same pdftex.fls and then oops, resulting > .fls will be wrong. > > texk/web2c/lib/openclose.c suggests mkstemp would be a better option > instead of using intermediate <program>.fls : > > /* Helpers for the filename recorder... */ > /* Start the recorder */ > static void > recorder_start(void) > { > /* Alas, while we might want to use mkstemp it is not portable. > So we have to be content with using a default name... */ > string cwd; > > recorder_name = (string)xmalloc(strlen(kpse_program_name)+5); > strcpy(recorder_name, kpse_program_name); > strcat(recorder_name, ".fls"); > > ... > > > /* Change the name of the recorder file. */ > void > recorder_change_filename (string new_name) > { > if (!recorder_file) > return; > rename(recorder_name, new_name); > free(recorder_name); > recorder_name = xstrdup(new_name); > } > > > but I wonder, why use intermediate file for recorder at all? Why not to > open $(jobname).fls in the first place? > > > Thanks, > Kirill Best wishes Norbert ------------------------------------------------------------------------ Norbert Preining prein...@{jaist.ac.jp, logic.at, debian.org} JAIST, Japan TU Wien, Austria Debian TeX Task Force DSA: 0x09C5B094 fp: 14DF 2E6C 0307 BE6D AD76 A9C0 D2BF 4AA3 09C5 B094 ------------------------------------------------------------------------ GLORORUM (n.) One who takes pleasure in informing others about their bowel movements. --- Douglas Adams, The Meaning of Liff -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org