Project

General

Profile

Bug #18387

UPS 6: "slf7.x86_64.e14.debug directory not found: SETUP ABORTED"

Added by Gianluca Petrillo over 3 years ago. Updated over 3 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Target version:
-
Start date:
11/28/2017
Due date:
% Done:

100%

Estimated time:
Experiment:
Co-Assignees:
Duration:

Description

Affects: UPS v6_0_6

Steps to reproduce on woof.fnal.gov:

source /cvmfs/fermilab.opensciencegrid.org/products/larsoft/setup
source /cvmfs/dune.opensciencegrid.org/products/dune/setup
setup dunetpc v06_57_00 -q e14:debug

will output:
/cvmfs/dune.opensciencegrid.org/products/dune/duneutil/v06_57_00/slf7.x86_64.e14.debug directory not found: SETUP ABORTED

UPS 5.2.0 instead correctly sets dunetpc up (see for example the inclusion of /cvmfs/dune.opensciencegrid.org/products/dune/dunetpc/v06_57_00/job in the FHICL_FILE_PATH path).

Background information:
  • dunetpc is a UPS product built under MRB, which has an optional dependency on duneutil
  • woof.fnal.gov is a SLF7 machine
  • dunetpc v06_57_00 is distributed in DUNE CVMFS for SLF6 and SLF7
  • duneutil v06_57_00 is distributed in DUNE CVMFS only for SLF6

History

#1 Updated by Gianluca Petrillo over 3 years ago

Additional information:

$ which ups
/cvmfs/fermilab.opensciencegrid.org/products/larsoft/ups/v6_0_6/Linux64bit+3.10-2.17/bin/ups
$ tr ':' '\n' <<< "$PRODUCTS" 
/cvmfs/dune.opensciencegrid.org/products/dune
/cvmfs/fermilab.opensciencegrid.org/products/larsoft

#2 Updated by Lynn Garren over 3 years ago

  • Status changed from New to Assigned
  • Assignee set to Lynn Garren
  • Priority changed from Normal to High

Thanks for reporting this. I will investigate.

#3 Updated by Lynn Garren over 3 years ago

  • Assignee changed from Lynn Garren to Marc Mengel
  • Priority changed from High to Normal

You are attempting to setup a release which does not exist:

$ ups list -aK+  dunetpc v06_57_00
"dunetpc" "v06_57_00" "Linux64bit+2.6-2.12" "debug:e14" "" 
"dunetpc" "v06_57_00" "Linux64bit+2.6-2.12" "e14:prof" "" 
"dunetpc" "v06_57_00" "Linux64bit+3.10-2.17" "debug:e14" "" 
"dunetpc" "v06_57_00" "Linux64bit+3.10-2.17" "e14:prof" "" 
$ ups list -aK+  duneutil v06_57_00
"duneutil" "v06_57_00" "Linux64bit+2.6-2.12" "debug:e14" "" 
"duneutil" "v06_57_00" "Linux64bit+2.6-2.12" "e14:prof" "" 

A simple pullProducts of dune-v06_57_00 for slf7 should resolve the problem. However, as you say, the setup of duneutil is optional. The bug needs to be fixed, but the workaround for now is to make sure duneutil is also installed.

#4 Updated by Marc Mengel over 3 years ago

  • Status changed from Assigned to Feedback

This error message is coming from the product table file:

ups  list -l  duneutil v06_57_00 -q e14:debug
[...]
        Action=GetFQDir
            if ( printenv CET_SUBDIR > /dev/null )
            envSet( ${UPS_PROD_NAME_UC}_FQ_DIR, ${${UPS_PROD_NAME_UC}_DIR}/${CET_SUBDIR}.e14.debug )
            else()
            envSet( ${UPS_PROD_NAME_UC}_FQ_DIR, ${${UPS_PROD_NAME_UC}_DIR}/`get-directory-name subdir`.e14.debug )
            endif ( printenv CET_SUBDIR > /dev/null )
            fileTest( ${${UPS_PROD_NAME_UC}_FQ_DIR}, -d, "${${UPS_PROD_NAME_UC}_FQ_DIR} directory not found: SETUP ABORTED")

The error in question comes from that last line. This is nothing to do with the internals of ups, it is how someone wrote the table file.

#5 Updated by Gianluca Petrillo over 3 years ago

The project duneutil is using cetbuildtools to build the table file automagically, so it's more like a something than a someone.
Should the issue be moved to cetbuildtools?

Also, I feel like making a silly point: with UPS 5.2.0 it works as expected. Are there backward-incompatible changes? or was the check in that table file never meant to work?

#6 Updated by Lynn Garren over 3 years ago

  • Project changed from ups to cetbuildtools
  • Status changed from Feedback to Accepted
  • Assignee deleted (Marc Mengel)

I see that the fileTest line was added as of cetbuildtools v4_14_02, which means the fileTest line will be found in many product releases. It is unclear why it now causes a problem, but the workaround remains the same.

I am reassigning this issue to cetbuildtools for now.

Use of ups v6 is meant to be a transparent change. Note that we have dealt with setupOptional any number of times during our testing of ups v6 without seeing any problems. We also made ups v6 available for testing and explicitly asked larsoft users to test it.

#7 Updated by Lynn Garren over 3 years ago

  • Project changed from cetbuildtools to ups
  • Status changed from Accepted to Assigned
  • Assignee set to Marc Mengel

Bouncing this back to ups.

ups v6_0_6 is attempting to make an incorrect match with the SLF6 product instance of duneutil. The fileTest line then acts as designed and complains that you are attempting to use the wrong flavor. ups v5_2_0 does not make a match with the SLF6 product instance on a SL7 machine.

#8 Updated by Lynn Garren over 3 years ago

  • Status changed from Assigned to Resolved
  • % Done changed from 0 to 100

Marc Mengel has provided ups v6_0_7, which resolves the problem when strict matching is enabled. In practice, this means that "setup -B" should be used. This can be accomplished by:

export UPS_OVERRIDE="-B" 

#9 Updated by Lynn Garren over 3 years ago

  • Status changed from Resolved to Closed

Also available in: Atom PDF