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

Crash in CSV read if upstream activity calls input after stop. CHOOSEN could cause that to happen.

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 6.0.8
    • Fix Version/s: 6.4.2
    • Component/s: Thor
    • Labels:
      None
    • Environment:
      #1: 6.4.2-rc2; single node, two virtual slaves (tested problem with two process slaves as well)

      #2: community_6.4.2-rc2Debug[community_6.4.2-rc2-3-g2a502c]; single node, four virtual slaves

      Description

      Demonstration code:

      DailyUnShipped := RECORD
          STRING ECM_ORD_ID;
          STRING PTNR_ORD_ID;
          STRING PTNR;
          STRING PTNR_DESC;
          STRING ORD_DT;
          STRING ORD_TS;
          STRING SKU_ID;
          STRING SKU_DESC;
          STRING FULFILL_TYPE;
          STRING STAT_DT;
          STRING STAT_DESC;
          STRING CNCL_REAS_CDE;
          STRING ORIG_QTY;
          STRING QTY;
          STRING PRC;
          STRING TOTAL_PRC;
          STRING SHP_CHRG;
          STRING TOTAL_PAID;
          STRING SHP_NODE_ID;
      END;
      
      rsDailyUnShipped := DATASET
          (
              '~b2s.txt',
              DailyUnShipped,
              CSV(SEPARATOR('\t'), HEADING(1), QUOTE('"'), UNICODE)
          );
      
      ds := CHOOSEN(rsDailyUnShipped, 459);
      OUTPUT(ds(ECM_ORD_ID='BBY01-790979002650'));
      

      This code uses the enclosed file as a data source. It should be sprayed as a tab-delimited Unicode file. The second argument to CHOOSEN() is the key to causing the MP Link Error.

      On system #1, with two slaves, there will be two file parts. The first file part has one header line and (on the test system) 918 data lines. The second part had 920 lines. On that system, setting CHOOSEN(918) worked fine. Setting CHOOSEN(919) caused an MP Link Error.

      On system #2, with four slaves, there will be four file parts. The first part has one header line and (on the test system) 459 data lines. CHOOSEN(459) worked, CHOOSEN(460) caused the same MP Link Error.

      Note that in both cases, as soon as a record from the second file part was needed, the MP Link Error appeared.

      The slave log file from system#2 (with debugging) is enclosed.

        Attachments

        1. b2s.txt
          411 kB
        2. hpcc-18297-2.ecl
          0.3 kB
        3. thorslave.1.2017_09_19.log
          28 kB

          Issue Links

            Activity

              People

              • Assignee:
                jakesmith Jake Smith
                Reporter:
                dcamper Dan S. Camper
              • Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: