Uploaded image for project: 'HPCC'
  1. HPCC
  2. HPCC-28937

Regression query external.ecl failing on Thor in a containerized environment.

    XMLWordPrintable

Details

    • Bug
    • Status: Resolved
    • Not specified
    • Resolution: Fixed
    • 8.12.0
    • 8.10.28, 8.12.6
    • cloud, Regression Suite
    • None
    • K8s

    Description

      The external.ecl failed in regression testing on Thor In Minikube with and error message:

      System error: 10001: Graph graph2[4], Missing logical file file::127.0.0.1::var::lib::^h^p^c^c^systems::mydropzonew20230213-135858external1 

      The problem is missing "::" after "mydropzone"

      To reproduce the problem here is a simple ECL code

      import Std.File;
      dropzonePath := File.GetDefaultDropZone() +'/' : STORED('dropzonePath');
      
      string getFName(string ext) := FUNCTION
       RETURN File.ExternalLogicalFileName('localhost', dropzonePath)  + WORKUNIT + 'external' + ext;
      END;
      
      external1 := getFName('1');
      external2 := getFName('2');
      
      SEQUENTIAL(
      OUTPUT(dropzonePath, NAMED('dropzonePath')),
      OUTPUT(File.ExternalLogicalFileName('localhost', dropzonePath), NAMED('ExternalLogicalFileName')),
      OUTPUT(external1, NAMED('external1')),
      OUTPUT(external2, NAMED('external2')),
      ); 

      executed in Bare-metal/VM environment, it generates this result:

      <Dataset name='dropzonePath'>
       <Row><dropzonePath>/var/lib/HPCCSystems/mydropzone/</dropzonePath></Row>
      </Dataset>
      <Dataset name='ExternalLogicalFileName'>
       <Row><ExternalLogicalFileName>~file::127.0.0.1::var::lib::^h^p^c^c^systems::mydropzone::</ExternalLogicalFileName></Row>
      </Dataset>
      <Dataset name='external1'>
       <Row><external1>~file::127.0.0.1::var::lib::^h^p^c^c^systems::mydropzone::W20230213-193818external1</external1></Row>
      </Dataset>
      <Dataset name='external2'>
       <Row><external2>~file::127.0.0.1::var::lib::^h^p^c^c^systems::mydropzone::W20230213-193818external2</external2></Row>
      </Dataset> 

      The at the end of the dropzonePath, there is a '/' and the ExternalLogicalFileName() add "::" to the generated filename. So the external1 and external2 contain correct path.

       

      Same code executed on Containerized environment (Minikube), the result is:

      <Dataset name='dropzonePath'>
      <Row><dropzonePath>/var/lib/HPCCSystems/mydropzone/</dropzonePath></Row>
      </Dataset>
      <Dataset name='ExternalLogicalFileName'>
       <Row><ExternalLogicalFileName>~file::127.0.0.1::var::lib::^h^p^c^c^systems::mydropzone</ExternalLogicalFileName></Row>
      </Dataset>
      <Dataset name='external1'>
       <Row><external1>~file::127.0.0.1::var::lib::^h^p^c^c^systems::mydropzoneW20230213-195119external1</external1></Row>
      </Dataset>
      <Dataset name='external2'>
       <Row><external2>~file::127.0.0.1::var::lib::^h^p^c^c^systems::mydropzoneW20230213-195119external2</external2></Row>
      </Dataset>
      

      The at the end of the dropzonePath, there is a '/', but the ExternalLogicalFileName() doesn't add "::" to the end of the generated filename. So the external1 and external2 are incorrect.

       

      FYI jakesmith, ghalliday, shamser 

      Attachments

        Issue Links

          Activity

            People

              jakesmith Jake Smith
              attilavamos Attila Vamos
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: