CyberFlood: Avalanche: Fixing event log parse error UserInputError: BadUrlList thrown by ... can not parse xml
Knowledge Base - FAQ
CyberFlood: Avalanche: Fixing event log parse error UserInputError: BadUrlList thrown by ... can not parse xml
On a CyberFlood or Avalanche test you may see an error in the event log similar to:
[5]: [2023/06/07 00:31:40] 10.70.1.5:cpu0: (7531) UserInputError: BadUrlList thrown by HttpContentField::HttpContentField : Error '/swat/tests/unit0/client-subtest_0_core0/httpcontent/ 1K_ae9f63fa50bb863b881727a6c631ca44.txt.xml' can not parse xml.: []
[5]: [2023/06/07 00:31:40] 10.70.1.5:cpu0: (7531) UserInputError: BadUrlList thrown by HttpContentField::HttpContentField : Error '/swat/tests/unit0/client-subtest_0_core0/httpcontent/ 1K_ae9f63fa50bb863b881727a6c631ca44.txt.xml' can not parse xml.: []
Note the space before "1K".
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.
Example of HTTP URI triggering parser error:
1 GET http://www.somesite.com/collect?v=1&_v=j23&a=1747575115&t=pageview&_s=1&dl=http%3A%2F%2Fwww.VIAVI.com%2F&ul=en-us&de=UTF-8&dt=VIAVI%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
Example of working POST
Note "CONTENT_TYPE" is required here
1 POST http://10.70.3.5:80/
Example of the use of variables
1. Move URI tail into a variable:
ASSIGN VARIABLE
2. Update the action list to use the variable:
1 GET http://www.somesite.com/
3. Re-run and test should pass the parser and start without issue.
Notes:
• Adaptive streaming
as:// URIs only allows 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
ASSIGN VARIABLE
ASSIGN VARIABLE
ASSIGN VARIABLE
ASSIGN VARIABLE
as:// 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
• Variable names should not include hyphen or else the parser will throw an error.
• Event log error:
UserInputError: BadUrlList thrown by UrlFileParser::ParseFile: User Profile URL File File. Parsing error at line 9: 'parse error, expecting `INTEGER''.
• You can assign the hyphen in the string that you’re assigning to the variable but the variable name is the one that should not have hyphen. Ex. ASSIGN VARIABLE