Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.

Bug 641822

Summary: qpid-winsdk's qpid-perftest sometimes refuses to report throughput and end with 'Controller exception: Bad report: 1.#INF' for small message count (--count)
Product: Red Hat Enterprise MRG Reporter: Frantisek Reznicek <freznice>
Component: qpid-cppAssignee: Chuck Rolke <crolke>
Status: CLOSED ERRATA QA Contact: Petra Svobodová <psvobodo>
Severity: medium Docs Contact:
Priority: medium    
Version: DevelopmentCC: esammons, gsim, iboverma, jneedle
Target Milestone: 2.0   
Target Release: ---   
Hardware: All   
OS: Windows   
Whiteboard:
Fixed In Version: 1.3.8.1 Doc Type: Bug Fix
Doc Text:
Cause: On windows platforms qpid-perftest sometime measures test intervals as zero seconds. Consequence: The statistics generation fails with an obscure error message. Fix: Check for a test interval of zero seconds and if seen fail with a message identifying the zero second elapsed time interval Result: The customer sees a message that plainly explains why the test failed.
Story Points: ---
Clone Of: Environment:
Last Closed: 2011-06-23 15:46:55 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Frantisek Reznicek 2010-10-11 07:47:56 UTC
Description of problem:

qpid-perftest from qpid-winsdk sometimes refuses to report throughput and end with 'Controller exception: Bad report: 1.#INF'.

C:\qpid>bin\qpid-perftest.exe --broker mrg-qe-01... --count 10 -s
Controller exception: Bad report: 1.#INF

The issue has been detected on Win Server 2003 (32+64) and Win XP (64bit).
The smaller --count argument perftest gets (2-9) the biggest probability I can get that exception message.


Version-Release number of selected component (if applicable):
qpid-cpp-x*-0.7.946106-15-1.3.0.15.zip

How reproducible:
30 - 80% depends on OS

Steps to Reproduce:
1. install the winsdk
2. run 'qpid-perftest.exe --broker <host> --count 10 -s' in loop
  
Actual results:
qpid-perftest ends with exception.

Expected results:
qpid-perftest should not end with exception.

Additional info:

C:\qpid>bin\qpid-perftest.exe --broker mrg-qe-01... --count
10 -s
Controller exception: Bad report: 1.#INF

C:\qpid>bin\qpid-perftest.exe --broker mrg-qe-01... --count
10 -s
Controller exception: Bad report: 1.#INF

C:\qpid>bin\qpid-perftest.exe --broker mrg-qe-01... --count
10 -s
Controller exception: Bad report: 1.#INF

C:\qpid>bin\qpid-perftest.exe --broker mrg-qe-01... --count
10 -s
Controller exception: Bad report: 1.#INF

C:\qpid>bin\qpid-perftest.exe --broker mrg-qe-01... --count
10 -s
213.333 45.7143 98.4615 0.0961538

Comment 1 Chuck Rolke 2011-01-06 21:35:41 UTC
The problem is that the test Start and End times are equal. Then the calculation of any message per second generate a divide by zero error and spit out the 1.#INF value.

Depending on system service or virtual machine activity Windows boxes are notorious for flaky timing results using cross-platform methods. 

A proposed solution is to detect that Start and End times are equal and throw a better message. I suggest "Timing error: test completed in zero seconds. Rerun the test with more messages to get better results."

Another alternative is to remove qpid-perftest from the WinSDK kits.

Comment 2 Chuck Rolke 2011-03-01 21:21:45 UTC
If I proceed with the proposed fix then the qpid-perftest will *STILL* exit with an exception. 

Internally if a start time and an end time are equal then there is no  messages-per-second calculation possible. The program cannot continue.

The user can correct this problem and get a meaningful performance test result by specifying a larger number of messages.

Comment 3 Chuck Rolke 2011-03-03 15:33:42 UTC
Add a check for test completing in zero elapsed time.

if (time <= 0.0) {
  throw Exception("ERROR: Test completed in zero seconds. Try again with a larger message count.");
		}
r1076652

Comment 5 Chuck Rolke 2011-03-15 15:24:44 UTC
    Technical note added. If any revisions are required, please edit the "Technical Notes" field
    accordingly. All revisions will be proofread by the Engineering Content Services team.
    
    New Contents:
Cause: On windows platforms qpid-perftest sometime measures test intervals as zero seconds.

Consequence: The statistics generation fails with an obscure error message.

Fix: Check for a test interval of zero seconds and if seen fail with a message identifying the zero second elapsed time interval

Result: The customer sees a message that plainly explains why the test failed.

Comment 7 Petra Svobodová 2011-05-18 08:00:46 UTC
The original exception message does not appear any more. If the test interval is zero seconds the "PublishThread" exception occurs and the appropriate message "Test completed in zero seconds. Try again with a larger message count." appears, which is expected.


Tested packages: qpid-cpp-x*-2.0.0.4.zip

--> VERIFIED

Comment 8 errata-xmlrpc 2011-06-23 15:46:55 UTC
An advisory has been issued which should help the problem
described in this bug report. This report is therefore being
closed with a resolution of ERRATA. For more information
on therefore solution and/or where to find the updated files,
please follow the link below. You may reopen this bug report
if the solution does not work for you.

http://rhn.redhat.com/errata/RHEA-2011-0890.html