Parallel checkout fails on systems with threading missing from the perl installation

Create issue
Issue #2060 closed
Peter Diener created an issue

One of the participants at the EinsteinToolkit workshop tried to checkout Cactus on a machine she had access to. Apparently threading was missing from the perl installation and checking out with --parallel failed with the error:

Can't call method "enqueue" on an undefined value at ./GetComponents line 1025.

Checking out serially works. This suggests that some check for the threading is missing or not taken into account properly.

Keyword: newuser
Keyword: backport

Comments (10)

  1. Steven R. Brandt
    • removed comment

    This seems to be fixed by uncommenting $PARALLEL=1 on line 60. Does anyone know why it was commented out?

  2. Roland Haas
    • changed status to open
    • removed comment

    I am very confused as to why setting $PARALLEL=1 helped. The code only enters the block that contains line 1025 if $PARALLEL==1. So the actual bug seems to be to blindly trust the user when --parallel is given and setting $PARALLEL=1. Instead I suggest to add a second variable $HAVE_PARALLEL that is only set to 1 if the test for the "threads" package around line 48 succeeds.

    To answer sbrandt's question: teh line was commented out when it was decided to not make --parallel the default behaviour of GetComponents.

    This pull request:

    https://github.com/gridaphobe/CRL/pull/5

    should fix this.

  3. Log in to comment