bugPSPP - Bugs: bug #65892, pspp-output under some...

 
 

bug #65892: pspp-output under some circumstances creates endless stream of files

Submitter:  None
Submitted:  Wed 19 Jun 2024 08:05:56 AM UTC
   
 
Category:  None Severity:  5 - Average
Status:  None Assigned to:  None
Open/Closed:  Open Release:  None
Effort:  0.00
* Mandatory Fields

Add a New Comment Rich Markup
   

Wed 19 Jun 2024 03:58:59 PM UTC, comment #2: 

Thanks for the prompt reply! If I can assist with more information, feel free to ask :)

Marian Buschsieweke <maribu>
Wed 19 Jun 2024 03:21:48 PM UTC, comment #1: 

Thanks for the detailed report! I appreciate it. I haven't had much time for PSPP recently but I will definitely look into this when some time frees up.

Ben Pfaff <blp>
Group administrator
Wed 19 Jun 2024 08:05:56 AM UTC, original submission:  

When I tried to update the pspp package on Alpine, building the tool locally on the host system worked just fine. But in the CI [1] the generation of the images for the documentation fails:


    LANG=C LSAN_OPTIONS="suppressions=/builds/maribu/aports/testing/pspp/src/pspp-2.0.1/tests/lsan.supp:print_suppressions=0:$LSAN_OPTIONS" utilities/pspp-output convert doc/pspp-figures/flip.spv doc/pspp-figures/flip.png -O trim=true -O left-margin=0in -O right-margin=0in -O top-margin=0in -O bottom-margin=0in -O paper-size=7.5x99in --table-look=./doc/tutorial.stt
    LANG=C LSAN_OPTIONS="suppressions=/builds/maribu/aports/testing/pspp/src/pspp-2.0.1/tests/lsan.supp:print_suppressions=0:$LSAN_OPTIONS" utilities/pspp-output convert doc/pspp-figures/frequencies.spv doc/pspp-figures/frequencies.png -O trim=true -O left-margin=0in -O right-margin=0in -O top-margin=0in -O bottom-margin=0in -O paper-size=7.5x99in --table-look=./doc/tutorial.stt
    LANG=C LSAN_OPTIONS="suppressions=/builds/maribu/aports/testing/pspp/src/pspp-2.0.1/tests/lsan.supp:print_suppressions=0:$LSAN_OPTIONS" utilities/pspp-output convert doc/pspp-figures/matrix-print.spv doc/pspp-figures/matrix-print.png -O trim=true -O left-margin=0in -O right-margin=0in -O top-margin=0in -O bottom-margin=0in -O paper-size=7.5x99in --table-look=./doc/tutorial.stt
    doc/pspp-figures/chisquare.png: error while writing to output stream
    doc/pspp-figures/chisquare.png-2: error while writing to output stream
    doc/pspp-figures/chisquare.png-3: error while writing to output stream
    doc/pspp-figures/chisquare.png-4: error while writing to output stream
    doc/pspp-figures/chisquare.png-5: error while writing to output stream
    doc/pspp-figures/chisquare.png-6: error while writing to output stream
    doc/pspp-figures/chisquare.png-7: error while writing to output stream
    doc/pspp-figures/chisquare.png-8: error while writing to output stream
    doc/pspp-figures/chisquare.png-9: error while writing to output stream
    doc/pspp-figures/chisquare.png-10: error while writing to output stream
    doc/pspp-figures/chisquare.png-11: error while writing to output stream
    doc/pspp-figures/chisquare.png-12: error while writing to output stream
    doc/pspp-figures/chisquare.png-13: error while writing to output stream
    doc/pspp-figures/chisquare.png-14: error while writing to output stream
    doc/pspp-figures/chisquare.png-15: error while writing to output stream
    doc/pspp-figures/chisquare.png-16: error while writing to output stream
    doc/pspp-figures/chisquare.png-17: error while writing to output stream

As you can see, some of the images are `pspp-output convert` invocations actually succeed. But randomly the command fails, in which case it won't recover and just keeps creating new files in an endless loop.

Yesterday, I was able to reliably trigger the issue when run in a container using:

    $ podman run --rm --tty -i alpine:edge
    # From now on inside container:
    $ apk upgrade
    $ apk add alpine-sdk git doas-sudo-shim
    $ echo "permit persist :wheel" >> /etc/doas.conf
    $ adduser test              # password may be empty here
    $ adduser test abuild
    $ adduser test wheel
    $ su test
    $ abuild-keygen -ian        # password may be empty here
    $ git clone --depth 1 https://gitlab.alpinelinux.org/maribu/aports.git
    # we'll need to build spread-sheet-widget first
    $ cd ~/aports/testing/spread-sheet-widget/
    $ abuild -r
    # finally, we can build PSPP
    $ cd ~/aports/testing/pspp/
    $ abuild -r

It did reliably succeed when I build it locally on the host. I compared the generated ELF files and couldn't spot any difference other than time stamps and debug info. I even copied the whole folder of the host system (including the build ELF files) to the container, ran `make generate-pngs` (or something along the line) and that directly entered the error state again, using the exact same ELF files of the host system (note: I had to create a folder with the exact same path as on the host system for this to work). Today, I no longer can reproduce the issue on my machine (both on host and inside a container).

So: I believe there is a race condition that was triggered in the container due to different timing.

[1]: https://gitlab.alpinelinux.org/maribu/aports/-/jobs/1423933

Anonymous

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach Files:
   
   
Comment:
   

No files currently attached

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -email is unavailable- added by maribu (Posted a comment)
  • -email is unavailable- added by blp (Posted a comment)
  •  

    There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.

    Only logged-in users can vote.

     

    No changes have been made to this item

    Back to the top

    Powered by Savane 3.13-3dd8.
    Corresponding source code