See 
<https://ci-beam.apache.org/job/beam_PostCommit_XVR_Direct/3417/display/redirect?page=changes>

Changes:

[Robert Bradshaw] Add a portable runner that renders pipelines as a dot graph.

[Robert Bradshaw] Add basic tests for render runner.

[Robert Bradshaw] Add the ability to pass a pipeline proto directly.

[Robert Bradshaw] lint

[Valentyn Tymofieiev] Fix typo.

[Valentyn Tymofieiev] Serve the graph when output file is not specified.

[Valentyn Tymofieiev] Serve the graph when output file is not specified.

[Valentyn Tymofieiev] Fix parsing of standalone protos.

[Valentyn Tymofieiev] Support reading from GCS.

[Valentyn Tymofieiev] Add text logging.

[Valentyn Tymofieiev] fix typo.

[Valentyn Tymofieiev] Some lint and yapf.

[Robert Bradshaw] Fix dot detection logic.

[Robert Bradshaw] fix error detected by lint

[Robert Bradshaw] Make gcs an optional dependency.

[Robert Bradshaw] return rather than sys.exit

[Robert Bradshaw] lint

[noreply] Apply suggestions from code review

[Robert Bradshaw] More cleanup, mypy.

[Robert Bradshaw] lint


------------------------------------------
[...truncated 2.21 MB...]
        value: "ORtCGXXvfxExternal/Flatten.PCollections.out"
      >
      environment_id: "ORtCGXXvfxbeam:env:docker:v1"
    >
  >
  transforms: <
    key: "ORtCGXXvfxExternal-ProduceDefault"
    value: <
      unique_name: "External/ProduceDefault"
      subtransforms: "ORtCGXXvfxExternal-ProduceDefault-ParMultiDo-Anonymous-"
      inputs: <
        key: 
"org.apache.beam.sdk.values.PCollection.<init>:405#bbafda9391edc490"
        value: 
"ORtCGXXvfxExternal/CreateVoid/Read(CreateSource)/ParDo(BoundedSourceAsSDFWrapper)/ParMultiDo(BoundedSourceAsSDFWrapper).output"
      >
      inputs: <
        key: 
"org.apache.beam.sdk.values.PCollectionViews$SimplePCollectionView.<init>:1204#c6bc66e4fa08de96"
        value: 
"ORtCGXXvfxExternal/View.AsIterable/MapElements/Map/ParMultiDo(Anonymous).output"
      >
      outputs: <
        key: 
"org.apache.beam.sdk.values.PCollection.<init>:405#d13a61a003474bdc"
        value: "ORtCGXXvfxExternal/ProduceDefault/ParMultiDo(Anonymous).output"
      >
      display_data: <
        urn: "beam:display_data:labelled:v1"
        payload: "\n\022Transform 
Function\0221org.apache.beam.sdk.transforms.Combine$Globally$12\002fn:1org.apache.beam.sdk.transforms.ParDo$SingleOutput"
      >
    >
  >
  transforms: <
    key: "ORtCGXXvfxExternal-ProduceDefault-ParMultiDo-Anonymous-"
    value: <
      unique_name: "External/ProduceDefault/ParMultiDo(Anonymous)"
      spec: <
        urn: "beam:transform:pardo:v1"
        payload: 
"\n\261\027\n\025beam:dofn:javasdk:0.1\032\227\027\202SNAPPY\000\000\000\000\001\000\000\000\001\000\000\013\203\2241\360a\254\355\000\005sr\000?org.apache.beam.sdk.util.AutoValue_DoFnWithExecutionInformationM\317:\267s\240\324\316\002\000\004L\000\004doFnt\000%Lorg/a\005U\000/\001U</sdk/transforms/\001Q@;L\000\rmainOutputTag^8\000dvalues/TupleTag;L\000\021schemaI\031\206\010t\0006\216t\000\000S>8\000p;L\000\020sideInputMappingt\000\017Ljava/!\006
 
/Map;xr\0005b'\001\001\314^\035\001@\246\346sq\352j\213$\002\000\000xpsr\0001NF\0009\030\260.Combine$Globally$1\246\331\230\223\323\353\364\216\002\000\003L\000\006this$0t\0001Lorra\001>I\000\001\350(val$default%\327\010t\000\022\t\3508lang/Object;L\000\022\001(@maybeEmptyViewt\000,R^\001-\232(PCollection\001.!/\000#z\351\000!5\034\254D#\006\316\223\275\2351\035\000/z4\000>\324\000tI\\\247\017\207+\2630\002\000\005I\000\006fanoutZ\000\rinsertD\t\351\034L\000\002fnt\000>R\277\0009y10\020FnBas1\177\rp\000FA%@\rfnDisplayDatat\000=~Q\000\000d\t.\000/\03560$ItemSpec;L\000\nUu\014st\000\020)\207Eo\014List!A\000)z\r\001\004PTqN
 
A\304\261\202(\001L0\003Ad$x\000\000\000\000\001sr\000,z@\000PSum$SumLongFn]\022\334\276\"M\200\325!\212\010r\000:z;\000-\030\030$Binary\r\016\tI\034-\r\332\022\023\r\233\335\tI\0000\232I\000\rC$Fn\0374\302\263>\326\247\224\t?\000D\226?\000-\264\034Abstracti;\025S\034\246BY\340V\353\320\275\001Sa\202\000EzU\000-\270.\375\004)\312!\370\000_1\302@0\265\022S\304\321\372Q\002\000\007L\000\003key6L\003\020Strin\201\251L\005labelq\000~\000\031L\000\007linkUr\021\0170\tnamespacet\000\021I\002e\211\020ClassE#\010hori\252\001A(\tL\000\004typet\0009\316|\002\034Type;L\000\005e\263\005P\024xr\000;orF\374\005y\0265\r=\003U\305\034\014\207\007\255\341
 
)\005%Y\014t\000\tc\211\273\020Fnt\000\010-~\004rp\001\031Uf\014~r\0007\312q\000\001\272A\326\001\001\030\022\000\000xr\000\016\241\236\000.!-\020.Enum\001\031\001\001\001\0358pt\000\nJAVA_CLASSt\266\007\003\014sr\000]>\241\000|vendor.guava.v26_0_jre.com.googl\005\013\020mon.c\251\004$.Immutablea\3124$SerializedFor\025\252,\002\000\001[\000\010elemen\201\001\004\023[]\000\255\211\014xpur\021\031\t\354\r\031\034\220\316X\237\020s)l%y\001\370\000s2\022\001@Long;\213\344\220\314\217#\337\002\000\001J\000)\363\014xr\000\020974Number\206\254\225\035\013\224\340\213\025J\001\001\014sr\000A>\005\001\016\023\010E9\004s.:\354\005\034s$Simple:\027\000T\344\367\375
 
-\262\232\376\002\000\005L\000\005codert\000\"R\270\002\005\035\241\201$der;L\000\003tagA\237\034\002L\000\006viewAP\000'R9\000Y\250\000/\301v\245\247\030\017window\355\311\001<\000:~<\000\t2\020ing/W6<\000\016h\010\025\035(Strategyt\000.RQ\000)\036\rC\004in\0250\000;\205u\000'NQ\001\t\371\014.Var!\263\000C!\000\034\\l\326\303M\376Mi!\221\010r\000*j6\000$Structured\0059\034s\277\022\016\325\3246\021\t9\000
 
j9\000\005/\034C\335\325\211\256\274~\370\001/\241\025R\256\007\t\323\004.T\032w\tD\263\030yf[\300z\265\002\000\002Z\000\tgene!\022\024dL\000\002id!\261\030\031xp\001t\000^N{\000\rJ:$\002Z;\002t.<init>:1204#c6bc66e4fa08de96sZ\264\004^b\000\014Itera\214I!82\317<\372\313\031\343Qa\002\000\001L\000\026\241N<DescriptorSuppliA\250\000Dn\342\001B\305\000\201\237FF\000\341\303\000%N\014\001Y\266\000.\t\225\030\030\205>.\333V@\325\241\000!y\246\030invoke.\231DLLambdaoa\320\224,)6\205\002\000\nI\000\016a\177<MethodKind[\000\014capE\031\014Args!\231\014'L\000\016\t\024\014ingC\301]\001\026\030\032L\000\030fun\022\265\t(alInterface\025
 \014\031L\000\035J 
\000\tj\010Nam\305D\014\031L\000\"b%\000\020Signa\001\212\001o\014\031L\000\t\001\252.`\000\035\273\035Q\000\023\001'\tg>B\0000\026instantiated\t#!~\005`\000x\241\013\004\005u\001\014\000)\016\003\t\001\t\0207vr\000.\212\205\001\010$AsQ)\034\256|n4Q\032\304\230a\032\001C\014\021t\000BNk\013Iq\236\016\002(t\000\003gett\000\024()F\351\005\000te\260\000/\026\203\r&.\r\211\037\000/e\260\034t\000\030getEn\001\024\005\363Yq\020t\000-()n\261\002!\"\031/\000;\001\325\020Isr\000Vz\030\001\225\372*\n\t\000G\022\226\014\251'\000s2\016\000\265q\034\212i\261Kd
 
\214\374!@\004r\000\001\230B\\\016}\002\031e2[\000\032\377\014\ti\025[\034\274+\037=@'\344f\t[\0008\242\300\000:G\000\034?2\300\306\023[l6\205\004\024\017maxim\016\007\013
 
okbackt\000\030\001\2648/joda/time/Dura\016\331\014\251\311\000\026\001v\001\035\000.\001\035\000.\021\035\034\000\000\002?zQ\316\326\t\233\000\0376%\000
 
base.Base\035.\010Y\031:\016\323\r(\001J\000\007iMillisE\300\005\001^\275\013Is\000.\t\317\335cpQJ?v\267\2272\242\002\000\rZ\000\030allowedLateness\016o\014HifiedZ\000\ralreadyMerg\005\020\014mode\035
 
\000\032\001\323\020stamp\036\277\t\035\035\030\020trigge\031\023\010L\000\017:k\000AZTML\000\017closingBehaviort\000A%S>\340\002Y\007B\203\007\004$C6C\000\016*\020,environmentI\311p\010L\000\004\001\302\010t\000?R`\000)/F\222\007\034$Accumul%\3264Mode;L\000\016onTime\031\263\000@RS\000n\263\000\000O2B\000\016<\010BO\001\010t\000<\246W\000\001\2202\215\001\014;L\000\007-\205\010t\0002\252I\000)\271\020;L\000\010w\022\341\010\016\026\t\0003\246@\000Ip\000Fa\001\014\001\000\001\001\245Y\004Q~Z8\0229\"}\334\tB>\325\001E\354\004\000\000\022\266\013A;t\"t\000\021FIRE_IF_NON_EMPTYt\000\002go~r\000=aSIB&\245\022)\342\r_\000i&t\tB\342\001\001g\001\001\016!\014\rk,\026DISCARDING_\001v(D_PANES~r\000>Nk\000n\330\0006\372\001\001h\001\001\035lF\327\000\004~r\202e\017)\254\014ing.B\n\002\001_\001\001\035c<\rEND_OF_WINDOWsr\202i\r\031_\032)\021M'\034j\0236\321\212\026\213\037\211\312\0000\242\014\001\r?\034\276,k\267f\365\233\200\245]\014\013sub\r\030\205\035\000\020\022l\n\000\037\022\340\010\016\354\020\000.&7\022\004s$\022l\022\0163\r
 
z\270\027\264<\247\236\336\002\016\317\020\014sr\0006\242\204\0002D\006\034\212,\t\300\362\250U\214\001GZ5\nR\325\001\010Non\241!\010ingI\267$FnW\006\013g\323\356\250\253\tJ~\302\0239Y\021@\034\271`WL\363k\225Y\001@\000p%\t\0248\000t\000\006o\022\367\024\000s\206q\002\004Au.\207\025B\302\024
 
e&\353\2144\346\226\357\002\0163\r\000\021\032T\016\034Converte-y4L\000\025fieldAccess&\016\010\000tZ\t\004\026_\025\010s/FN5\000\016\333\n\0004z\225\001\016\337\023B\252\000\034_E\260N\317(\311J%\ta\210\000k^\317\013\r\200\035\373R\212\000\024\241U\217\001\004\025\016;\013\030\003Z\000\tall\005&\014sL\000\016\005\356\000s\t\357\000e\305/$\020L\000\024nested\t%.\034\000\004\004xZ\232\025\021\210\0053\t29=\034\3640\026\257j\305wA\005\317\245\027\001\320\000\036j\337\002(MapY6\024\205Z\334\347\320\0055\004srF0\r\000v\342p\020\020BiMapbq\020\0168\021\000\\>\266\001\346m\000nk\000\030\002[\000\004keyE\353\014'[\000\006\251\250!\361\010'xp6\242\013<:uq\000~\000)\000\000\000\001q\000~\0003\032\242\t\n^org.apache.beam.sdk.values.PCollectionViews$SimplePCollectionView.<init>:1204#c6bc66e4fa08de96\022\277\010\n\035\n\033beam:side_input:iterable:v1\022\321\005\n\027beam:viewfn:javasdk:0.1\032\265\005\202SNAPPY\000\000\000\000\001\000\000\000\001\000\000\002\241\350\010\360u\254\355\000\005sr\000;org.apache.beam.sdk.values.PCollectionViews$IterableViewFn2\317<\372\313\031\343Qa\002\000\001L\000\026typeDescriptorSuppliert\000DLorg/apache/\001c\020/sdk/\tc\000/Bc\000\004TyNF\000\020;xr\000%N\252\000,transforms.V\005\225\360a\030\205>.\333V@\275\002\000\000xpsr\000!java.lang.invoke.SerializedLambdaoa\320\224,)6\205\002\000\nI\000\016implMethodKind[\000\014capturedArgst\000\023[L\001Q\000/\001Q0/Object;L\000\016ca\001%,ingClasst\000\021L\031&\005\023\030;L\000\030fun%L(alInterface\005\034\010t\000\022\035/\004St\001H\014;L\000\035J0\000\t\232,Nameq\000~\000\007L\000\"b%\000\034Signatur\021*\020\timpl\005p\r;\035\353\035Q\000\023\001'\tg>B\0000\026instantiated\t#!\256\000q\001\212(xp\000\000\000\005ur\000\023[\005\314)r-!\034\220\316X\237\020s)l%\224\034\000\000\000\001sr\000'N\316\0018coders.VarLongC\001\016\034\\l\326\303M\376Mi\001<\010r\000*j6\000\020Struc\001\361\000d\0059\034s\277\022\016\325\3246\021\t9\000
 
j9\000\005/\034C\335\325\211\256\274~\370\001/\020pvr\000.N1\000:n\002\014$AsIm\022\034\256|n4Q\032\304\230\001?\010r\000)z=\000\010PTrM\267
 
A\304\261\202(\001L0\003A\257\024t\000Borg\372+\003(t\000\003gett\000\024()%\2122\253\002\000t%\tBb\000)x\000/%\t\034t\000\030getEn\001\024%\340\000Du\324\020t\000-()n\316\003A\017\031/\024;q\000~\000\027\032\311\002\n
 
beam:windowmappingfn:javasdk:0.1\032\244\002\202SNAPPY\000\000\000\000\001\000\000\000\001\000\000\001\020\241\003\360L\254\355\000\005sr\000Vorg.apache.beam.sdk.transforms.windowing.AutoValue_GlobalWindows_Glob\021\016\\MappingFn\212i\261Kd
 
\214\374\002\000\000xr\000L\242e\0002[\000\000$.\016\000\025[\034\274+\037=@'\344f\t[\0008\242[\000\t\260\025G|?2\300\306\023[l6\002\000\001L\000\017maximumLookbackt\000\030\001\264d/joda/time/Duration;xpsr\000\026\001v\001\035\000.\001\035\000.\021\035\034\000\000\002?zQ\316\326\t\233\000\0376%\000
 
base.Base\035.lY\031:\364\216\002\000\001J\000\007iMillisxp\000\000\000\000\000\000\000\000"
      >
      inputs: <
        key: 
"org.apache.beam.sdk.values.PCollection.<init>:405#bbafda9391edc490"
        value: 
"ORtCGXXvfxExternal/CreateVoid/Read(CreateSource)/ParDo(BoundedSourceAsSDFWrapper)/ParMultiDo(BoundedSourceAsSDFWrapper).output"
      >
      inputs: <
        key: 
"org.apache.beam.sdk.values.PCollectionViews$SimplePCollectionView.<init>:1204#c6bc66e4fa08de96"
        value: 
"ORtCGXXvfxExternal/View.AsIterable/MapElements/Map/ParMultiDo(Anonymous).output"
      >
      outputs: <
        key: "output"
        value: "ORtCGXXvfxExternal/ProduceDefault/ParMultiDo(Anonymous).output"
      >
      display_data: <
        urn: "beam:display_data:labelled:v1"
        payload: "\n\022Transform 
Function\0221org.apache.beam.sdk.transforms.Combine$Globally$12\002fn:0org.apache.beam.sdk.transforms.ParDo$MultiOutput"
      >
      environment_id: "ORtCGXXvfxbeam:env:docker:v1"
    >
  >
  transforms: <
    key: "ORtCGXXvfxExternal-Values"
    value: <
      unique_name: "External/Values"
      subtransforms: "ORtCGXXvfxExternal-Values-Values"
      inputs: <
        key: 
"org.apache.beam.sdk.values.PCollection.<init>:405#1abfe6cb40bcf2e7"
        value: 
"ORtCGXXvfxExternal/Combine.perKey(SumLong)/Combine.GroupedValues/ParDo(Anonymous)/ParMultiDo(Anonymous).output"
      >
      outputs: <
        key: 
"org.apache.beam.sdk.values.PCollection.<init>:405#a00997a449310e6c"
        value: 
"ORtCGXXvfxExternal/Values/Values/Map/ParMultiDo(Anonymous).output"
      >
    >
  >
  transforms: <
    key: "ORtCGXXvfxExternal-Values-Values"
    value: <
      unique_name: "External/Values/Values"
      subtransforms: "ORtCGXXvfxExternal-Values-Values-Map"
      inputs: <
        key: 
"org.apache.beam.sdk.values.PCollection.<init>:405#1abfe6cb40bcf2e7"
        value: 
"ORtCGXXvfxExternal/Combine.perKey(SumLong)/Combine.GroupedValues/ParDo(Anonymous)/ParMultiDo(Anonymous).output"
      >
      outputs: <
        key: 
"org.apache.beam.sdk.values.PCollection.<init>:405#a00997a449310e6c"
        value: 
"ORtCGXXvfxExternal/Values/Values/Map/ParMultiDo(Anonymous).output"
      >
      display_data: <
        urn: "beam:display_data:labelled:v1"
        payload: 
"\n\005class\022'org.apache.beam.sdk.transforms.Values$12\005class:*org.apache.beam.sdk.transforms.MapElements"
      >
    >
  >
  transforms: <
    key: "ORtCGXXvfxExternal-Values-Values-Map"
    value: <
      unique_name: "External/Values/Values/Map"
      subtransforms: 
"ORtCGXXvfxExternal-Values-Values-Map-ParMultiDo-Anonymous-"
      inputs: <
        key: 
"org.apache.beam.sdk.values.PCollection.<init>:405#1abfe6cb40bcf2e7"
        value: 
"ORtCGXXvfxExternal/Combine.perKey(SumLong)/Combine.GroupedValues/ParDo(Anonymous)/ParMultiDo(Anonymous).output"
      >
      outputs: <
        key: 
"org.apache.beam.sdk.values.PCollection.<init>:405#a00997a449310e6c"
        value: 
"ORtCGXXvfxExternal/Values/Values/Map/ParMultiDo(Anonymous).output"
      >
      display_data: <
        urn: "beam:display_data:labelled:v1"
        payload: 
"\n\005class\022'org.apache.beam.sdk.transforms.Values$12\005class:*org.apache.beam.sdk.transforms.MapElements"
      >
      display_data: <
        urn: "beam:display_data:labelled:v1"
        payload: "\n\022Transform 
Function\022,org.apache.beam.sdk.transforms.MapElements$12\002fn:1org.apache.beam.sdk.transforms.ParDo$SingleOutput"
      >
    >
  >
  transforms: <
    key: "ORtCGXXvfxExternal-Values-Values-Map-ParMultiDo-Anonymous-"
    value: <
      unique_name: "External/Values/Values/Map/ParMultiDo(Anonymous)"
      spec: <
        urn: "beam:transform:pardo:v1"
        payload: 
"\n\340\013\n\025beam:dofn:javasdk:0.1\032\306\013\202SNAPPY\000\000\000\000\001\000\000\000\001\000\000\005\262\206\027\360a\254\355\000\005sr\000?org.apache.beam.sdk.util.AutoValue_DoFnWithExecutionInformationM\317:\267s\240\324\316\002\000\004L\000\004doFnt\000%Lorg/a\005U\000/\001U</sdk/transforms/\001Q@;L\000\rmainOutputTag^8\000dvalues/TupleTag;L\000\021schemaI\031\206\010t\0006\216t\000\000S>8\000p;L\000\020sideInputMappingt\000\017Ljava/!\006
 
/Map;xr\0005b'\001\001\314^\035\001@\246\346sq\352j\213$\002\000\000xpsr\000,NF\0009\030\220.MapElements$1\016\005I\036\364\204\215\260\002\000\001L\000\006this$0t\000,~\350\000\035D\001\271\000#zs\000\001\277\034\254D#\006\316\223\275\235\021\247\000*z4\000\035c\034\323`I\346\251\221h\301\005\245\024\002fnt\000+~\241\000$Contextful\001\240\000)zl\000\004PTQ7
 
A\304\261\202(\001L0\003!M\010xsr\202;\000\031i\\\346\"j\\\317\324\323\375\002\000\002L\000\007closuret\000\022)\350Plang/Object;L\000\014requir)\206\010t\000-~\317\000\000R\035/\000;%\346\000!A>\000.\001V\360F.invoke.SerializedLambdaoa\320\224,)6\205\002\000\nI\000\016implMethodKind[\000\014capturedArgst\000\023[N\247\000\000\016\t%(ingClasst\000\021\035&\005\023X;L\000\030functionalInterface\005\0346\374\000\004St\001H\014;L\000\035J0\000\000M\005\232,Nameq\000~\000\026L\000\"b%\000\034Signatur\021*\020\timpl\005p\r;\035\353\035Q\000\023\001'\tg>B\0000\026instantiated\t#\010Typ\t`\034xp\000\000\000\006ur1!)r-\310\034\220\316X\237\020s)lE\323\034\000\000\000\001sr\000'zk\002\205\355(s$1^D\027\037\246\227\367\376E\324uy\000'~\t\002\t?A\324\000-zi\000\000S\001\361\004eF-\234\034\340XCU8\022\002\023\005oeC\0005~k\000QP\004ab\031G\001y\0000zy\000\020Infer.5\000\034Bw\367\371]+V\310\031|\0000~|\000\030Process\021\276\014;xpp\201\333\000%z{\000)\036\034\317\267i\224\253EA\010!\227\030q\000~\000\rxv\001\007\004\017t\245\033\000/\311\210R3\006y\3158$Fnt\000\005applyt\000\\(]\367-\374~\302\0002K\000\000$\r\016\004;)FI\000\000t\205c\226\226\000\014t\000\024le\334P$fn$36334a93$1t\000\214(LorrE\000>R\001F\211\000~B\000\r\304\004fu!\035n\322\000!m\020&sr\000+z\256\001.\325\004\034>!\232Y\035z0fE$\004\ns\361.\014st\000\026\t\252\345(\020Colle\205l\251\005\000\037\245\005\001\033\000.\031\033Hs$EmptyListz\270\027\264<\247\236\336A\nA@R\250\006\351\373\000.\361\373H\263\030yf[\300z\265\002\000\002Z\000\tgener\201\030\020L\000\002id\001\332\201\023\014t\000\006o\022R\010\014sr\000>z\346\0006\342\010B\035\010\034e&\353\2144\346\226\357\3056\004\021e\351\2310Converterst\000\020=\000\001\324(;L\000\025fieldAca#0Descriptort\0003R\303\001\026\310\010\010s/FN5\000a\321\0004z\302\000\341\276B\270\000\034_E\260N\317(\311J%[!\030\020.sr\000;NJ\000\r\200=\tR\212\000@\241U\217\001\004\025@\275\002\000\003Z\000\tall\005&\014sL\000\016\005\356\000s\t\357\000e%\204$3L\000\024nested\t%.\034\000\020\004xr\0001n\210\000\0053\t29=\034\3640\026\257j\305wA\005\317\000\001\021\320\000\036j`\002(MapY6\024\205Z\334\347\320\0055\014sr\000\\>w\000|vendor.guava.v26_0_jre.com.googl\005\013\024mon.coE\331\024.Immut\241<\014Map$\261\201\030edForm\000\r\001
 
\002\000\002[\000\004key\305\360\014\024[\000\006I\301\001\264\014\024xpu\001\0108\030\000\000\000\000uq\000~\000\030\000\000\000\000"
      >
      inputs: <
        key: 
"org.apache.beam.sdk.values.PCollection.<init>:405#1abfe6cb40bcf2e7"
        value: 
"ORtCGXXvfxExternal/Combine.perKey(SumLong)/Combine.GroupedValues/ParDo(Anonymous)/ParMultiDo(Anonymous).output"
      >
      outputs: <
        key: "output"
        value: 
"ORtCGXXvfxExternal/Values/Values/Map/ParMultiDo(Anonymous).output"
      >
      display_data: <
        urn: "beam:display_data:labelled:v1"
        payload: 
"\n\005class\022'org.apache.beam.sdk.transforms.Values$12\005class:*org.apache.beam.sdk.transforms.MapElements"
      >
      display_data: <
        urn: "beam:display_data:labelled:v1"
        payload: "\n\022Transform 
Function\022,org.apache.beam.sdk.transforms.MapElements$12\002fn:0org.apache.beam.sdk.transforms.ParDo$MultiOutput"
      >
      environment_id: "ORtCGXXvfxbeam:env:docker:v1"
    >
  >
  transforms: <
    key: "ORtCGXXvfxExternal-View-AsIterable"
    value: <
      unique_name: "External/View.AsIterable"
      subtransforms: "ORtCGXXvfxExternal-View-AsIterable-MapElements"
      inputs: <
        key: 
"org.apache.beam.sdk.values.PCollection.<init>:405#a00997a449310e6c"
        value: 
"ORtCGXXvfxExternal/Values/Values/Map/ParMultiDo(Anonymous).output"
      >
      outputs: <
        key: 
"org.apache.beam.sdk.values.PCollectionViews$SimplePCollectionView.<init>:1204#c6bc66e4fa08de96"
        value: 
"ORtCGXXvfxExternal/View.AsIterable/MapElements/Map/ParMultiDo(Anonymous).output"
      >
    >
  >
  transforms: <
    key: "ORtCGXXvfxExternal-View-AsIterable-MapElements"
    value: <
      unique_name: "External/View.AsIterable/MapElements"
      subtransforms: "ORtCGXXvfxExternal-View-AsIterable-MapElements-Map"
      inputs: <
        key: 
"org.apache.beam.sdk.values.PCollection.<init>:405#a00997a449310e6c"
        value: 
"ORtCGXXvfxExternal/Values/Values/Map/ParMultiDo(Anonymous).output"
      >
      outputs: <
        key: 
"org.apache.beam.sdk.values.PCollection.<init>:405#6929f09b03d242ca"
        value: 
"ORtCGXXvfxExternal/View.AsIterable/MapElements/Map/ParMultiDo(Anonymous).output"
      >
      display_data: <
        urn: "beam:display_data:labelled:v1"
        payload: 
"\n\005class\0220org.apache.beam.sdk.transforms.View$AsIterable$12\005class:*org.apache.beam.sdk.transforms.MapElements"
      >
    >
  >
  transforms: <
    key: "ORtCGXXvfxExternal-View-AsIterable-MapElements-Map"
    value: <
      unique_name: "External/View.AsIterable/MapElements/Map"
      subtransforms: 
"ORtCGXXvfxExternal-View-AsIterable-MapElements-Map-ParMultiDo-Anonymous-"
      inputs: <
        key: 
"org.apache.beam.sdk.values.PCollection.<init>:405#a00997a449310e6c"
        value: 
"ORtCGXXvfxExternal/Values/Values/Map/ParMultiDo(Anonymous).output"
      >
      outputs: <
        key: 
"org.apache.beam.sdk.values.PCollection.<init>:405#6929f09b03d242ca"
        value: 
"ORtCGXXvfxExternal/View.AsIterable/MapElements/Map/ParMultiDo(Anonymous).output"
      >
      display_data: <
        urn: "beam:display_data:labelled:v1"
        payload: 
"\n\005class\0220org.apache.beam.sdk.transforms.View$AsIterable$12\005class:*org.apache.beam.sdk.transforms.MapElements"
      >
      display_data: <
        urn: "beam:display_data:labelled:v1"
        payload: "\n\022Transform 
Function\022,org.apache.beam.sdk.transforms.MapElements$12\002fn:1org.apache.beam.sdk.transforms.ParDo$SingleOutput"
      >
    >
  >
  transforms: <
    key: 
"ORtCGXXvfxExternal-View-AsIterable-MapElements-Map-ParMultiDo-Anonymous-"
    value: <
      unique_name: 
"External/View.AsIterable/MapElements/Map/ParMultiDo(Anonymous)"
      spec: <
        urn: "beam:transform:pardo:v1"
        payload: 
"\n\301\014\n\025beam:dofn:javasdk:0.1\032\247\014\202SNAPPY\000\000\000\000\001\000\000\000\001\000\000\006\023\364\030\360a\254\355\000\005sr\000?org.apache.beam.sdk.util.AutoValue_DoFnWithExecutionInformationM\317:\267s\240\324\316\002\000\004L\000\004doFnt\000%Lorg/a\005U\000/\001U</sdk/transforms/\001Q@;L\000\rmainOutputTag^8\000dvalues/TupleTag;L\000\021schemaI\031\206\010t\0006\216t\000\000S>8\000p;L\000\020sideInputMappingt\000\017Ljava/!\006
 
/Map;xr\0005b'\001\001\314^\035\001@\246\346sq\352j\213$\002\000\000xpsr\000,NF\0009\030\220.MapElements$1\016\005I\036\364\204\215\260\002\000\001L\000\006this$0t\000,~\350\000\035D\001\271\000#zs\000\001\277\034\254D#\006\316\223\275\235\021\247\000*z4\000\035c\034\323`I\346\251\221h\301\005\245\024\002fnt\000+~\241\000$Contextful\001\240\000)zl\000\004PTQ7
 
A\304\261\202(\001L0\003!M\010xsr\202;\000\031i\\\346\"j\\\317\324\323\375\002\000\002L\000\007closuret\000\022)\350Plang/Object;L\000\014requir)\206\010t\000-~\317\000\000R\035/\000;%\346\000!A>\000.\001V\360F.invoke.SerializedLambdaoa\320\224,)6\205\002\000\nI\000\016implMethodKind[\000\014capturedArgst\000\023[N\247\000\000\016\t%(ingClasst\000\021\035&\005\023X;L\000\030functionalInterface\005\0346\374\000\004St\001H\014;L\000\035J0\000\000M\005\232,Nameq\000~\000\026L\000\"b%\000\034Signatur\021*\020\timpl\005p\r;\035\353\035Q\000\023\001'\tg>B\0000\026instantiated\t#\010Typ\t`\034xp\000\000\000\006ur1!)r-\310\034\220\316X\237\020s)lE\323\034\000\000\000\001sr\0000zk\002`View$AsIterable$1\220\177&\317\252\262\350IE\335u\202\0000~\022\002:H\000A\346\000-z{\000\000S!\003\004eF-\256\034\340XCU8\022\002\023\005xeU\0005~t\000Qb\001\271\021G\001y~\364\000\010Inf\t\356\0215\034Bw\367\371]+V\310\031|\202\360\000\030Process\021B\014;xpp%\361\000\023%\2400q\000~\000\030\000\000\000\000vr\000.z\007\001::\001\034\256|n4Q\032\304\230!\305\001G\024\rt\0003orrZ\006N\010\001,$
 TEST_EXIT_CODE=0
$ cd ../..
$ exit 1
$ exit 1

The message received from the daemon indicates that the daemon has disappeared.
Build request sent: Build{id=b1bb5501-dff5-4316-b89f-fdc33db0c238, 
currentDir=<https://ci-beam.apache.org/job/beam_PostCommit_XVR_Direct/ws/src}>
Attempting to read last messages from the daemon log...
Daemon pid: 220639
  log file: /home/jenkins/.gradle/daemon/7.5.1/daemon-220639.out.log
----- Last  20 lines from daemon log file - daemon-220639.out.log -----
        urn: "beam:display_data:labelled:v1"
        payload: 
"\n\005class\0220org.apache.beam.sdk.transforms.View$AsIterable$12\005class:*org.apache.beam.sdk.transforms.MapElements"
      >
      display_data: <
        urn: "beam:display_data:labelled:v1"
        payload: "\n\022Transform 
Function\022,org.apache.beam.sdk.transforms.MapElements$12\002fn:1org.apache.beam.sdk.transforms.ParDo$SingleOutput"
      >
    >
  >
  transforms: <
    key: 
"ORtCGXXvfxExternal-View-AsIterable-MapElements-Map-ParMultiDo-Anonymous-"
    value: <
      unique_name: 
"External/View.AsIterable/MapElements/Map/ParMultiDo(Anonymous)"
      spec: <
        urn: "beam:transform:pardo:v1"
        payload: 
"\n\301\014\n\025beam:dofn:javasdk:0.1\032\247\014\202SNAPPY\000\000\000\000\001\000\000\000\001\000\000\006\023\364\030\360a\254\355\000\005sr\000?org.apache.beam.sdk.util.AutoValue_DoFnWithExecutionInformationM\317:\267s\240\324\316\002\000\004L\000\004doFnt\000%Lorg/a\005U\000/\001U</sdk/transforms/\001Q@;L\000\rmainOutputTag^8\000dvalues/TupleTag;L\000\021schemaI\031\206\010t\0006\216t\000\000S>8\000p;L\000\020sideInputMappingt\000\017Ljava/!\006
 
/Map;xr\0005b'\001\001\314^\035\001@\246\346sq\352j\213$\002\000\000xpsr\000,NF\0009\030\220.MapElements$1\016\005I\036\364\204\215\260\002\000\001L\000\006this$0t\000,~\350\000\035D\001\271\000#zs\000\001\277\034\254D#\006\316\223\275\235\021\247\000*z4\000\035c\034\323`I\346\251\221h\301\005\245\024\002fnt\000+~\241\000$Contextful\001\240\000)zl\000\004PTQ7
 
A\304\261\202(\001L0\003!M\010xsr\202;\000\031i\\\346\"j\\\317\324\323\375\002\000\002L\000\007closuret\000\022)\350Plang/Object;L\000\014requir)\206\010t\000-~\317\000\000R\035/\000;%\346\000!A>\000.\001V\360F.invoke.SerializedLambdaoa\320\224,)6\205\002\000\nI\000\016implMethodKind[\000\014capturedArgst\000\023[N\247\000\000\016\t%(ingClasst\000\021\035&\005\023X;L\000\030functionalInterface\005\0346\374\000\004St\001H\014;L\000\035J0\000\000M\005\232,Nameq\000~\000\026L\000\"b%\000\034Signatur\021*\020\timpl\005p\r;\035\353\035Q\000\023\001'\tg>B\0000\026instantiated\t#\010Typ\t`\034xp\000\000\000\006ur1!)r-\310\034\220\316X\237\020s)lE\323\034\000\000\000\001sr\0000zk\002`View$AsIterable$1\220\177&\317\252\262\350IE\335u\202\0000~\022\002:H\000A\346\000-z{\000\000S!\003\004eF-\256\034\340XCU8\022\002\023\005xeU\0005~t\000Qb\001\271\021G\001y~\364\000\010Inf\t\356\0215\034Bw\367\371]+V\310\031|\202\360\000\030Process\021B\014;xpp%\361\000\023%\2400q\000~\000\030\000\000\000\000vr\000.z\007\001::\001\034\256|n4Q\032\304\230!\305\001G\024\rt\0003orrZ\006N\010\001,$
 TEST_EXIT_CODE=0
$ cd ../..
$ exit 1
$ exit 1
Daemon vm is shutting down... The daemon has exited normally or was terminated 
in response to a user interrupt.
----- End of the daemon log -----


FAILURE: Build failed with an exception.

* What went wrong:
Gradle build daemon disappeared unexpectedly (it may have been killed or may 
have crashed)

* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.

* Get more help at https://help.gradle.org
Build step 'Invoke Gradle script' changed build result to FAILURE
Build step 'Invoke Gradle script' marked build as failure

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to