clelange / cms-tdr-diff-frontend

Frontend for cms-tdr-diff
GNU General Public License v3.0
0 stars 0 forks source link

Pipeline for paper diff craches #56

Open pkausw opened 1 year ago

pkausw commented 1 year ago

Dear Clemens,

first of all, thanks for providing and maintaining this tool - it's really cool and easy to use! I tried to create a diff for the note HIG-19-011, but the pipeline crashed (see the job here).

If I understand the output correctly, it can't produce the pdf(s) due to a limited stack size:

! TeX capacity exceeded, sorry [input stack size=5000].
\@makeother #1->\catcode `#1
                            12\relax 
l.573 ...Fadd{https://cds.cern.ch/record/2630438}}
                                                  {{\DIFadd{CMS}} \DIFadd{Co...
!  ==> Fatal error occurred, no output PDF file produced!
Transcript written on HIG-19-011_temp.log.
! TeX capacity exceeded, sorry [input stack size=5000].
!  ==> Fatal error occurred, no output PDF file produced!
! TeX capacity exceeded, sorry [input stack size=5000].
!  ==> Fatal error occurred, no output PDF file produced!

Did I understand this correctly? Is there a possibility to increase the stack size for the worker?

Please let me know if there is anything I can do on my end to resolve this issue. Thanks!

Cheers, Philip

clelange commented 1 year ago

Hi Philip,

Glad to hear you like it! Unfortunately, I think there isn't much one can do if this happens. The error is a but confusing, but it's most likely related to latexdiff creating an invalid document. This can have several reasons, a common one being that either of the two versions you're comparing with each other does actually not compile correctly. I've tried a lot of latexdiff options to make this robust, but there are a huge number of edge cases. For debugging, you can use the container at https://gitlab.cern.ch/clange/tdr-diff/container_registry/2805 and run the build.sh script (or parts of it).

pkausw commented 1 year ago

Great, thanks for the fast reply @clelange ! I'll try the container and will get back to you. Out of curiosity, are there some specific differences between creating the pdf with the tdr command and the latexdiff? I was pretty sure that both versions compile correctly with tdr (but I'll triple check again).

pkausw commented 1 year ago

Hi again, I tried using the docker image you pointed me to, but get the following access denied error:

docker run --rm -it --env-file .env -v $PWD:/home/cmsusr gitlab-registry.cern.ch/clange/tdr-diff bash
Unable to find image 'gitlab-registry.cern.ch/clange/tdr-diff:latest' locally
docker: Error response from daemon: Head "https://gitlab-registry.cern.ch/v2/clange/tdr-diff/manifests/latest": denied: access forbidden.

I'm using a gitlab token that I created within the api scope and included that in the .env file. Any ideas what I'm doing wrong?

clelange commented 1 year ago

Sorry, I gave you access, pulling should work now.

The tdr script basically just adds the "header" part of the LateX document so that it can be compiled with pdflatex. I don't know why they thought that it was a good idea a decade ago to start with broken/non-compilable TeX files and only make them compilable through this script. So what the build script roughly does is run the tdr script on the two versions to obtain compilable files, then run latexdiff on the output.