9b1292002a4ede647cfea3d0a357c184d6fe557a
angie
  Wed Sep 14 08:31:30 2022 -0700
SARS-CoV-2 protobuf size is now larger than BIGNUM; use BIGLONGLONG to avoid cryptic error.  refs #29994

diff --git src/hg/hgPhyloPlace/parsimonyProto.c src/hg/hgPhyloPlace/parsimonyProto.c
index a55ab68..adaad5c 100644
--- src/hg/hgPhyloPlace/parsimonyProto.c
+++ src/hg/hgPhyloPlace/parsimonyProto.c
@@ -239,34 +239,35 @@
 struct protobufFieldDef condLeavesField = { NULL, "condensed_leaves", 2, pbdtString, NULL, TRUE };
 struct protobufFieldDef nodeNameField = { &condLeavesField, "node_name", 1, pbdtString, NULL, FALSE};
 struct protobufDef condNodeDef = { NULL, "condensed_node", &nodeNameField };
 // message data {
 //     string newick = 1;
 //     repeated mutation_list node_mutations = 2; 
 //     repeated condensed_node condensed_nodes = 3;
 // }
 struct protobufFieldDef condNodeField = { NULL, "condensed_nodes", 3, pbdtEmbedded, &condNodeDef,
                                           TRUE };
 struct protobufFieldDef nodeMutsField = { &condNodeField, "node_mutations", 2, pbdtEmbedded,
                                           &mutListDef, TRUE };
 struct protobufFieldDef newickField = { &nodeMutsField, "newick", 1, pbdtString, NULL, FALSE };
 struct protobufDef def = { NULL, "data", &newickField };
 // Parse the protobuf file into protobuf data structures
-long long bytesLeft = BIGNUM;
+long long bytesLeft = BIGLONGLONG;
 struct protobuf *data = protobufParse(f, &def, &bytesLeft);
 if (fgetc(f) != EOF)
-    errAbort("Why did we not get EOF starting out with BIGNUM?");
+    errAbort("Protobuf size exceeded %lx bytes, please report this error to "
+             "genome-www@soe.ucsc.edu.", BIGLONGLONG);
 carefulClose(&f);
 // Convert the protobuf data structures into friendlier data structures
 struct parsimonyData *parData = parsimonyDataFromProtobuf(data);
 if (parData == NULL)
     return NULL;
 struct mutationAnnotatedTree *tree;
 AllocVar(tree);
 tree->tree = phyloParseString(parData->newick);
 // Annotate the tree (->priv) with parsimonious assignments and single-nucleotide changes.
 tree->nodeHash = hashNew(digitsBaseTwo(parData->nodeCount) + 1);
 int nodeNum = 0, iNodeNum = 1;
 treeAddVariants(tree->tree, parData->nodeMutations, parData->nodeCount, &nodeNum, &iNodeNum,
                 tree->nodeHash);
 tree->condensedNodes = parData->condensedNodes;
 // Mem leak since we don't free up protobuf data or packaging of singleNucChanges,