This project is read-only.
Filing a Bug Against a Network Monitor Parser

If you believe you've found a bug in one of the parser code files, we'd like to know about it. That's a major reason we've moved to CodePlex. However, we please ask that you let us know with the following procedures.

Bug/Issue versus Feature
If your issue pertains to an incorrect or incomplete data parsing it is going to be classified as an "Issue" or bug. If you'd like
to suggest a new protocol for us to add or to submit your privately developed protocol, please see the Parser Development section instead.
If you're not sure where you Issue fits, use the following metric: If you are suggesting new functionality (be it a protocol or function we don't have, an underlying language change, a performance change, or a output display change) file your bug as a "Feature", otherwise and it most cases it should be filed as an "Issue," and you should proceed to the sections below.

First, please ensure the bug doesn't already exist in our Issue Tracker
  1. From the Issue Tracker Tab, use the Search Box on the Right to try and find the bug you're looking for.
  2. If the basic search doesn't work, try using the Advanced View link under the tab.
    1. The Advanced view can filter on open/closed issues as well as "Component" which will be the Protocol the bug would relate to.
    2. You can use this information to discover if an issue was already opened or not.
  3. If no issue currently exists for the bug you'd like to file, please proceed with the steps below.

Steps for filing issues or features against a parser
1. From Issue Track Tab, select Create New Item
2. (For CodePlex Project Members) On the Right side Work Item Details bar, please fill in the following information about the bug:
    a) Make sure Status is set to "Proposed" (this should be the default)
    b) Set Type to "Issue" for a bug or "Feature" for a new proposal, again reference the Parser Development section for more information
  • Use "Feature" for Display Updates or Performance Improvements
  • User "Issue" for general bugs or problems
    c) Set Impact based on the following (please base your estimate on the realization that everyone's issue is important)
  • High – Blocking further development, must fix immediately (< 1 week)
  • Medium – Incorrect parsing or incorrect comments leading to major confusion, should be evaluated frequently for a timely fix (< 1 month)
  • Low – Everything else, fix when there are no other higher priority bugs
&nbsp;&nbsp;&nbsp;&nbsp;d) Set Component to the name of the parser without the NPL extension. If the protocol is not in the list, and you can't use the add/delete link next to the Component box to add the protocol, just ensure the name of the protocol is in your title as described in the next step. If you are requesting a new protocol parser or submitting your own the "Parser Request" or "Parser Submission" components can be used, but again, please refer to the Parser Development guide first.
3. Type a Title that describes the issue or feature
  • You must include the name of the NPL file (without the extension) in the Title of your bug i.e. "HTTP: Title of Issue"
  • Use "Parser Request: ..." or "Parser Submission: ..." for the appropriate proposals instead of the NPL filename.
4. In the Description include the following sections.
&nbsp;&nbsp;&nbsp;&nbsp;a) Justification: What type of issue is this (bug/feature)? Why is this bug important? How crucial is it to be fixed?
&nbsp;&nbsp;&nbsp;&nbsp;b) Repro Steps, include trace and frame number. Provide cut/paste info from the UI of the frame in question.
&nbsp;&nbsp;&nbsp;&nbsp;c) Describe the current behavior.
&nbsp;&nbsp;&nbsp;&nbsp;d) Describe the expected behavior.
&nbsp;&nbsp;&nbsp;&nbsp;e) Provide pointers to documentation references that define the proper behavior .
5. Provide a capture file that contains an example of the problem (if available).
  • Note, your capture files will be publically available on the site, please ensure any sensitive information they contain is removed. You can specifically pick the frame which has the error in the Network Monitor UI and use the "Save As..." option to select "Selected Frame" to only save the frames with the parsing errors. Just be sure to check the saved trace to be sure all supporting frames are included.

Example Bug Report
Status -> Proposed
Type -> Issue
Impact -> Medium
Component -> HTTP (Italic items are only available to CodePlex project members)
Title -> HTTP: Cases where frame data is not parsed fully
Description ->
Justifications: Bug with HTTP.npl. It's currently not parsing correctly (see below). It's important to fix soon as the data provided currently is inaccurate.
Repro: See attached capture file, frame #5, HTTP frame parser is exiting while data still remains...
Current Behavior: Parser exits before all data is parsed
while [String(FrameData, FrameOffset, Ascii, 1) == " "
    || String(FrameData, FrameOffset, Ascii, 1) == "t"
    || String(FrameData, FrameOffset, Ascii, 1) == "\n"
    || String(FrameData, FrameOffset, Ascii, 1) == "\r"]
       {
           DynamicSwitch String(Ascii, 1)
           {
                default: struct{}
           };
       }

Expected Behavior: Parser continues to grab remaining string data after "t" characters
while [String(FrameData, FrameOffset, Ascii, 1) == " "
    || String(FrameData, FrameOffset, Ascii, 1) == "\t"
    || String(FrameData, FrameOffset, Ascii, 1) == "\n"
    || String(FrameData, FrameOffset, Ascii, 1) == "\r"]
       {
           DynamicSwitch String(Ascii, 1)
           {
                default: struct{}
           };
       }

References: See HTTP RFC 2616 http://www.w3.org/Protocols/rfc2616/rfc2616.html Section 3.6.1
(attached httpproblem.cap file)

Last edited Oct 27, 2008 at 6:59 PM by MichaelHawker, version 4

Comments

No comments yet.