Printer FriendlyEmail Article Link

Avalanche: Information on troubleshooting Avalanche event log parse errors ... UserInputError: BadUrlList thrown by UrlFileParser::ParseFile ...

Answer
  • Below is a list of the most common parser triggers to assist in debugging why this error is occurring at test start:
     
  • Please note that there are changes to the parser between releases which may cause previously working tests to now throw an error after an upgrade and import.
     
  • Reserved word(s) in use (There is a list of these words in the online help under 'reserved words' updated for each release).  If you are using a common name such as 'cookie' adding a number after helps quickly isolate if this is the issue (i.e. use cookie1)
     
  • Spaces in the wrong place, for example in some releases a POST action line does not allow a space between the end of the URI and the POST_FILE call.

     Example:
                     1 POST http://192.168.1.1/ <POST_FILE="httpcontent_filename" CONTENT_TYPE="txt/html">
                      vs.
                     1 POST http://192.168.1.1/<POST_FILE="httpcontent_filename" CONTENT_TYPE="txt/html">
 

  • Incorrect font for quotes (usually from a cut and paste from email)
    Example:
     “ (triggers parse error)
     " (does not trigger parse error)

    Tip: always cut and paste from email into notepad prior to pasting into the action list.
     
  • Special characters in the action list such as an unencoded ? with APPLY commands following.  To resolve this issue concatenate the URI into a single APPLY or multi APPLY statements with no ? between them.

    HTTP example:

    URI triggering parser error:
    1 GET https://www.somesite.com/collect?v=1&_v=j23&a=1747575115&t=pageview&_s=1&dl=http%3A%2F%2Fwww.spirent.com%2F&ul=en-us&de=UTF-8&dt=Spirent%20-%20A%20leader%20in%20test%2C%20measurement%20and%20service%20assurance%20solutions&sd=24-bit&sr=1920x1080&vp=1899x671&je=1&fl=14.0%20r0&_u=MEAAAAQ~&cid=1131410277.1403698476&tid=UA-8100834-6&z=1175551496 <ADDITIONAL_HEADER="Accept: image/webp,*/*;q=0.8"> <ADDITIONAL_HEADER="Accept-Encoding: gzip,deflate,sdch"> 
     
    1. Move URI tail into a variable:
    ASSIGN VARIABLE <myvar1 "collect?v=1&_v=j23&a=1747575115&t=pageview&_s=1&dl=http%3A%2F%2Fwww.spirent.com%2F&ul=en-us&de=UTF-8&dt=Spirent%20-%20A%20leader%20in%20test%2C%20measurement%20and%20service%20assurance%20solutions&sd=24-bit&sr=1920x1080&vp=1899x671&je=1&fl=14.0%20r0&_u=MEAAAAQ~&cid=1131410277.1403698476&tid=UA-8100834-6&z=1175551496">
     
    2. Update the action list to use the variable:
    1 GET https://www.somesite.com/<APPLY myvar1> <ADDITIONAL_HEADER="Accept: image/webp,*/*;q=0.8"> <ADDITIONAL_HEADER="Accept-Encoding: gzip,deflate,sdch">  

    3. Re-run and test should pass the parser and start without issue.
     
  • as:// URIs only allow a single APPLY as of the 4.10 release and should also concatenate variables to avoid the following error:

    UserInputError: BadUrlList thrown by UrlFileParser::ParseFile: User Profile [name]. Parsing error at line X: 'parse error, expecting `PROFILE''

    Adaptive Streaming variable concatenation example:

    ASSIGN VARIABLE <myip "192.168.1.1/">
    ASSIGN VARIABLE <asset UNIFORM 0 4000>
    ASSIGN VARIABLE <URItail "/index.m3u8">
    ASSIGN VARIABLE <myvar1 myip asset>
    ASSIGN VARIABLE <myvar2 myvar1 URItail> 

    as://<APPLY myvar2> profile="Apple_VoD"
  • Some protocals have limited support of the APPLY option others do not place FormsDB calls between < > For support syntax examples reference the online help accessed from the GUI 'Help' menu for each protocal.
     
  • Comments.  some releases do not allow in-line comments after a # character and must be moved to a separate line to avoid a parser trigger.
    Example:

                     1 GET http://192.168.1.1/index.html #Some comment here
                     vs
                     1 GET http://192.168.1.1/index.html 
                     #Some comment here

  • The Client/Actions list requires a prefix (1 or 2) prior to the HTTP command (GET, POST, PUT).
    Example:

                      Incorrect, will throw a parse error:
                      POST http://192.168.1.1 

                      Good Example:
                      1 POST http://192.168.1.1
 

  • Invalid configurations that call to a formsDB or http content file et al that do not exsist:
    Event log error: UserInputError: BadUrlList thrown by HttpContentField::HttpContentField : Error '/swat/tests/unit0/client-subtest_0/httpcontent/note.xml' can not parse xml.
  • While testing IPv6 you might get the error "Unknown Host thrown by HttpProtocolAction::ParseUrlString: Unable to resolve hostname". Make sure you insert square brackets while mentioning the IP addresses as below
1 get http://[2002::1:2]/index.html
 

Product : Avalanche