Upgrade Notes

This page documents upgrading caveats for users that switch from the (old) version 2.7.6 to (new) version 2.8.0. Please look elsewhere for help with selecting the right release for your task.

Information on this page is based on comparison between old and new workload files that are distributed with Web Polygraph and on real user experiences. Please let us know if you run into any important undocumented caveats.

1. HTTP versions

Old Polygraph agents always used HTTP/1.0 in request start lines and response status lines (while supporting most of the HTTP/1.1 features such as persistent connections). With an addition of chunked transfer-coding support, new agents use HTTP/1.1 by default. Old standard workloads have been adjusted to overwrite that default.

New agents can emit a configurable mix of HTTP/1.0 and HTTP/1.1 responses. See Agent's http_versions selector.

Server S = {
    ...
    http_versions = [ "1.0": 10%, "1.1" ];
};
Robot R = {
    ...
    http_versions = [ "1.0": 30%, "1.1" ];
};

Note that declared agent version does not affect default setting for persistent connections (which is to use no persistent connections). There is probably no simple/general enough default that we could use for HTTP/1.1 so we decided to stick with the simple and one-for-all no-persistency default. Agent version may affect connection management on the device under test.

2. Robot interests

The public_interest field of a Robot PGL type got replaced with a more general interests field. Please see fields documentation for details.

Robot R = {
    ...
    // public_interest = 75%;
    interests = [ "public": 75%, "private" ];
};

2.1 Phase synchronization

Due to phase synchronization algorithm changes, it is not possible to have no public interest and phase synchronization at the same time. Phase synchronization algorithm does not get a chance to work and your test gets stuck in the first phase requiring synchronization, even if you have just one client and server process. Polygraph does not know about this limitation and, hence, does not warn you.

You probably need phase synchronization so it is enabled by default. If you do not need phase synchronization, and your robots have no public interests, disable phase synchronization. Specifying little (e.g., 1%) public interest helps in other cases. Standard workloads use relatively large public interest (e.g., 50%) so they are not affected by this caveat.

It should be sufficient for at least one active Robot in each polyclt process to have positive public interest.