Bug #1715

mod_proxy round robin not working

Added by Anonymous about 6 years ago. Updated almost 6 years ago.

Status:FixedStart date:
Priority:NormalDue date:
Assignee:-% Done:

0%

Category:mod_proxy
Target version:1.4.21
Missing in 1.5.x:

Description

Hi,

recently I download the lasted stable version (1.4.19) and found that round robin on mod_proxy does not work as expected. After looping the first time the back-end selector always return the same back-end:

since the condition to assign a higher back-end is:

/* get next ndx */
if ((int)k > host->last_used_ndx) {

after the first loop and no reseting the "host->last_used_ndx" on back-ends (host) we always get the same back-end over and over again...

the solution is to reset all last_used_ndx on each "host" after a higher value of k is reached.

patch is attached.

Regards.
Ezequiel,

-- eziman

lighttpd-1.4.19.mod_proxy-rr-fix.patch Magnifier - -- eziman (1.13 KB) Anonymous, 2008-07-11 01:20

lighttpd-1.4.19.mod_proxy-rr-fix2.patch Magnifier - -- eziman (985 Bytes) Anonymous, 2008-07-11 12:14

History

#1 Updated by stbuehler about 6 years ago

Unreadable patch; use "diff -u". But i get the feeling that the code is really broken.

#2 Updated by Anonymous about 6 years ago

Replying to stbuehler:

Unreadable patch; use "diff -u". But i get the feeling that the code is really broken.

I have re-submitted the patch. The patch works fine for me on production environment...

-- eziman

#3 Updated by stbuehler about 6 years ago

  • Status changed from New to Fixed
  • Resolution set to fixed

Fixed in r2258

#4 Updated by stbuehler almost 6 years ago

Fixed missing index increment in r2335

Also available in: Atom