Bug 50617 - Monitor Results legend show "dead" server although values from the server are retrieved
Monitor Results legend show "dead" server although values from the server are...
Status: RESOLVED FIXED
Product: JMeter
Classification: Unclassified
Component: Main
2.5
All All
: P2 normal (vote)
: ---
Assigned To: JMeter issues mailing list
:
Depends on:
Blocks:
  Show dependency tree
 
Reported: 2011-01-19 08:42 UTC by danimni
Modified: 2011-09-19 00:31 UTC (History)
2 users (show)



Attachments
Screenshot of my issue (60.01 KB, image/png)
2011-01-19 08:42 UTC, danimni
Details
Fix to the issue (840 bytes, patch)
2011-09-18 21:00 UTC, Philippe Mouawad
Details | Diff
Test plan that shows the issue (9.25 KB, application/xml)
2011-09-18 21:04 UTC, Philippe Mouawad
Details

Note You need to log in before you can comment on or make changes to this bug.
Description danimni 2011-01-19 08:42:10 UTC
Created attachment 26515 [details]
Screenshot of my issue

My configuration:
Jboss as the app server

My Steps:
1. Created 'Monitor Results' as explain it the manual. Since i am working with jboss, the URL for the data is 'http://<IP>:8080/status?XML=true'
2. ran the test
3. look the 'Monitor Results'

There are two tabs:
'Health' tab and 'Performance' tab.
The 'Health' tab shows the server name and besides it, a black dot, indicating "Dead" server. On the other hand, the left pane is active. It shows the load colours from green to red. In my case, it changes from green to yellow and vice versa.

The 'Performance' tab shows the following graphs:
Load, Memory and Thread. The 'Health' green line is not drawn.

see attached file - 'Bug Screenshot.png'
Comment 1 Philippe Mouawad 2011-09-18 21:00:44 UTC
Created attachment 27529 [details]
Fix to the issue

Hello,
Issue was due to the fact that if cntr.getThreadInfo().getCurrentThreadsBusy() returns 0, the server is considered as dead because we enter last condition:
            int max = cntr.getThreadInfo().getMaxThreads();
            int current = cntr.getThreadInfo().getCurrentThreadsBusy();
            // int spare = cntr.getThreadInfo().getMaxSpareThreads();
            double per = (double) current / (double) max;
            if (per > WARNING_PER) {
                return WARNING;
            } else if (per >= ACTIVE_PER && per <= WARNING_PER) {
                return ACTIVE;
            } else if (per < ACTIVE_PER && per > HEALTHY_PER) {
                return HEALTHY;
            } else {
                return DEAD;
            }


This case can happen if for example, connectorPrefix is set to http-8443 while load test is on port 8080, then first connector will really have 0 busy threads but it will be alive.

Regards
Philippe
Comment 2 Philippe Mouawad 2011-09-18 21:04:03 UTC
Created attachment 27530 [details]
Test plan that shows the issue

In this example I monitor http-8443 and see it reproduces the bug mentionned.
Comment 3 Sebb 2011-09-19 00:31:14 UTC
Thanks, applied:

URL: http://svn.apache.org/viewvc?rev=1172398&view=rev
Log:
Bug 50617 - Monitor Results legend show "dead" server although values from the server are retrieved

Modified:
   jakarta/jmeter/trunk/src/monitor/components/org/apache/jmeter/monitor/util/Stats.java
   jakarta/jmeter/trunk/xdocs/changes.xml