ae082c232f3bf6ef30c9993e7c4ee1b7256c2f57
max
  Thu Mar 26 05:39:42 2015 -0700
the measureTiming for the cart must be the first call in the function.
I got that wrong when I added the bottleneck measureTiming call.

diff --git src/hg/hgTracks/hgTracks.c src/hg/hgTracks/hgTracks.c
index f1b097d..b14538c 100644
--- src/hg/hgTracks/hgTracks.c
+++ src/hg/hgTracks/hgTracks.c
@@ -5767,43 +5767,41 @@
 char *cookieName = hUserCookie();
 char *sessionId = cgiOptionalString(cartSessionVarName());
 char *userId = findCookieData(cookieName);
 struct cart *oldCart = cartNew(userId, sessionId, NULL, NULL);
 cartRemoveExcept(oldCart, except);
 cartCheckout(&oldCart);
 cgiVarExcludeExcept(except);
 }
 
 void doMiddle(struct cart *theCart)
 /* Print the body of an html file.   */
 {
 cart = theCart;
 measureTiming = hPrintStatus() && isNotEmpty(cartOptionalString(cart, "measureTiming"));
 if (measureTiming)
-    measureTime("Startup");
+    measureTime("Get cart of %d for user:%u session:%u", theCart->hash->elCount,
+	    theCart->userId, theCart->sessionId);
 
 hgBotDelay();
 if (measureTiming)
     measureTime("Bottleneck delay");
 
 char *debugTmp = NULL;
 /* Uncomment this to see parameters for debugging. */
 /* struct dyString *state = NULL; */
 /* Initialize layout and database. */
-if (measureTiming)
-    measureTime("Get cart of %d for user:%u session:%u", theCart->hash->elCount,
-	    theCart->userId, theCart->sessionId);
 /* #if 1 this to see parameters for debugging. */
 /* Be careful though, it breaks if custom track
  * is more than 4k */
 #if  0
 state = cgiUrlString();
 printf("State: %s\n", state->string);
 #endif
 
 getDbAndGenome(cart, &database, &organism, oldVars);
 
 protDbName = hPdbFromGdb(database);
 debugTmp = cartUsualString(cart, "hgDebug", "off");
 if(sameString(debugTmp, "on"))
     hgDebug = TRUE;
 else