You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by Hans Schmid <Ha...@einsurance.de> on 2002/02/13 10:16:06 UTC

Loadbalancer problems in mod_jk 4.0.3 [was Native Connector problems]

Hi,

regarding to my loadbalancer problem mentioned before, here the relevant
parts of my mod_jk.log.


The initialisation phase (reading the workers seems identical)

apachectl graceful..

mod_jk.log 4.0.2 distribution  and 3.3

[Tue Feb 12 15:26:45 2002]  [jk_uri_worker_map.c (383)]:
jk_uri_worker_map_t::uri_worker_map_open, rule map size is 12
[Tue Feb 12 15:26:45 2002]  [jk_uri_worker_map.c (308)]: Into
jk_uri_worker_map_t::uri_worker_map_open, match rule
/einsurance/=loadbalancer was added
[Tue Feb 12 15:26:45 2002]  [jk_uri_worker_map.c (170)]: Into
jk_uri_worker_map_t::uri_worker_map_alloc
[Tue Feb 12 15:26:45 2002]  [jk_uri_worker_map.c (362)]: Into
jk_uri_worker_map_t::uri_worker_map_open
[Tue Feb 12 15:26:45 2002]  [jk_uri_worker_map.c (332)]: Into
jk_uri_worker_map_t::uri_worker_map_open, exact rule
/einsurance=loadbalancer was added

... (another 10 workers of type ajp13)

here the initialisation:  Loadbalancer loadbalances ajp13-01 and ajp13-02

[Tue Feb 12 15:26:45 2002]  [jk_uri_worker_map.c (395)]: Into
jk_uri_worker_map_t::uri_worker_map_open, there are 12 rules
[Tue Feb 12 15:26:45 2002]  [jk_uri_worker_map.c (409)]:
jk_uri_worker_map_t::uri_worker_map_open, done
[Tue Feb 12 15:26:45 2002]  [jk_worker.c (88)]: Into wc_open
[Tue Feb 12 15:26:45 2002]  [jk_worker.c (222)]: Into build_worker_map,
creating 8 workers
[Tue Feb 12 15:26:45 2002]  [jk_worker.c (228)]: build_worker_map, creating
worker loadbalancer
[Tue Feb 12 15:26:45 2002]  [jk_worker.c (148)]: Into wc_create_worker
[Tue Feb 12 15:26:45 2002]  [jk_worker.c (162)]: wc_create_worker, about to
create instance loadbalancer of lb
[Tue Feb 12 15:26:45 2002]  [jk_lb_worker.c (540)]: Into lb_worker_factory
[Tue Feb 12 15:26:45 2002]  [jk_worker.c (171)]: wc_create_worker, about to
validate and init loadbalancer
[Tue Feb 12 15:26:45 2002]  [jk_lb_worker.c (411)]: Into
jk_worker_t::validate
[Tue Feb 12 15:26:45 2002]  [jk_worker.c (148)]: Into wc_create_worker
[Tue Feb 12 15:26:45 2002]  [jk_worker.c (162)]: wc_create_worker, about to
create instance ajp13-01 of ajp13
[Tue Feb 12 15:26:45 2002]  [jk_ajp13_worker.c (108)]: Into
ajp13_worker_factory
[Tue Feb 12 15:26:45 2002]  [jk_worker.c (171)]: wc_create_worker, about to
validate and init ajp13-01
[Tue Feb 12 15:26:45 2002]  [jk_ajp_common.c (1174)]: Into
jk_worker_t::validate
[Tue Feb 12 15:26:45 2002]  [jk_ajp_common.c (1194)]: In
jk_worker_t::validate for worker ajp13-01 contact is tomcathost:9009
[Tue Feb 12 15:26:45 2002]  [jk_ajp_common.c (1222)]: Into jk_worker_t::init
[Tue Feb 12 15:26:45 2002]  [jk_worker.c (187)]: wc_create_worker, done
[Tue Feb 12 15:26:45 2002]  [jk_worker.c (187)]: wc_create_worker, done
[Tue Feb 12 15:26:45 2002]  [jk_worker.c (148)]: Into wc_create_worker
[Tue Feb 12 15:26:45 2002]  [jk_worker.c (162)]: wc_create_worker, about to
create instance ajp13-02 of ajp13
[Tue Feb 12 15:26:45 2002]  [jk_ajp13_worker.c (108)]: Into
ajp13_worker_factory
[Tue Feb 12 15:26:45 2002]  [jk_worker.c (171)]: wc_create_worker, about to
validate and init ajp13-02
[Tue Feb 12 15:26:45 2002]  [jk_ajp_common.c (1174)]: Into
jk_worker_t::validate
[Tue Feb 12 15:26:45 2002]  [jk_ajp_common.c (1194)]: In
jk_worker_t::validate for worker ajp13-02 contact is tomcathost:9019
[Tue Feb 12 15:26:45 2002]  [jk_ajp_common.c (1222)]: Into jk_worker_t::init
[Tue Feb 12 15:26:45 2002]  [jk_worker.c (187)]: wc_create_worker, done
[Tue Feb 12 15:26:45 2002]  [jk_worker.c (187)]: wc_create_worker, done
[Tue Feb 12 15:26:45 2002]  [jk_worker.c (238)]: build_worker_map, removing
old loadbalancer worker
[Tue Feb 12 15:26:45 2002]  [jk_worker.c (228)]: build_worker_map, creating
worker ajp12-01
[Tue Feb 12 15:26:45 2002]  [jk_worker.c (148)]: Into wc_create_worker
[Tue Feb 12 15:26:45 2002]  [jk_worker.c (162)]: wc_create_worker, about to
create instance ajp12-01 of ajp12
[Tue Feb 12 15:26:45 2002]  [jk_ajp12_worker.c (268)]: Into
ajp12_worker_factory
[Tue Feb 12 15:26:45 2002]  [jk_worker.c (171)]: wc_create_worker, about to
validate and init ajp12-01
[Tue Feb 12 15:26:45 2002]  [jk_ajp12_worker.c (185)]: Into
jk_worker_t::validate
[Tue Feb 12 15:26:45 2002]  [jk_ajp12_worker.c (197)]: In
jk_worker_t::validate for worker ajp12-01 contact is tomcathost:9007
[Tue Feb 12 15:26:45 2002]  [jk_worker.c (187)]: wc_create_worker, done


This was the initialisation and now the difference when I access it:


3.3 version of mod_jk:

[Tue Feb 12 15:28:32 2002]  [jk_uri_worker_map.c (368)]: Attempting to map
URI '/einsurance/doEntry.do'
[Tue Feb 12 15:28:32 2002]  [jk_uri_worker_map.c (391)]:
jk_uri_worker_map_t::map_uri_to_worker, Found a context match loadbalan
cer -> /einsurance/
[Tue Feb 12 15:28:32 2002]  [jk_worker.c (123)]: Into wc_get_worker_for_name
loadbalancer
[Tue Feb 12 15:28:32 2002]  [jk_worker.c (127)]: wc_get_worker_for_name,
done  found a worker
[Tue Feb 12 15:28:32 2002]  [jk_lb_worker.c (471)]: Into
jk_worker_t::get_endpoint
[Tue Feb 12 15:28:32 2002]  [jk_lb_worker.c (300)]: Into
jk_endpoint_t::service
[Tue Feb 12 15:28:32 2002]  [jk_ajp13_worker.c (865)]: Into
jk_worker_t::get_endpoint
[Tue Feb 12 15:28:32 2002]  [jk_ajp13_worker.c (775)]: Into
jk_endpoint_t::service
[Tue Feb 12 15:28:32 2002]  [jk_ajp13.c (403)]: Into ajp13_marshal_into_msgb
[Tue Feb 12 15:28:32 2002]  [jk_ajp13.c (537)]: ajp13_marshal_into_msgb -
Done
[Tue Feb 12 15:28:32 2002]  [jk_connect.c (108)]: Into jk_open_socket
[Tue Feb 12 15:28:32 2002]  [jk_connect.c (115)]: jk_open_socket, try to
connect socket = 38
[Tue Feb 12 15:28:32 2002]  [jk_connect.c (124)]: jk_open_socket, after
connect ret = 0
[Tue Feb 12 15:28:32 2002]  [jk_connect.c (132)]: jk_open_socket, set
TCP_NODELAY to on
[Tue Feb 12 15:28:32 2002]  [jk_connect.c (140)]: jk_open_socket, return, sd
= 38
[Tue Feb 12 15:28:32 2002]  [jk_ajp13_worker.c (189)]: In
jk_endpoint_t::connect_to_tomcat, connected sd = 38
[Tue Feb 12 15:28:32 2002]  [jk_ajp13_worker.c (206)]: sending to ajp13 #436
[Tue Feb 12 15:28:32 2002]  [jk_ajp13_worker.c (645)]: send_request 2:
request body to send 0 - request body to resend 0
[Tue Feb 12 15:28:34 2002]  [jk_ajp13_worker.c (258)]: received from ajp13
#82



4.0.2 version of mod_jk:

[Tue Feb 12 15:27:02 2002]  [jk_uri_worker_map.c (464)]: Attempting to map
URI '/einsurance/doEntry.do'
[Tue Feb 12 15:27:02 2002]  [jk_uri_worker_map.c (489)]:
jk_uri_worker_map_t::map_uri_to_worker, Found a context match
loadbalancer -> /einsurance/
[Tue Feb 12 15:27:02 2002]  [jk_worker.c (132)]: Into wc_get_worker_for_name
loadbalancer
[Tue Feb 12 15:27:02 2002]  [jk_worker.c (136)]: wc_get_worker_for_name,
done  found a worker
[Tue Feb 12 15:27:02 2002]  [jk_lb_worker.c (487)]: Into
jk_worker_t::get_endpoint
[Tue Feb 12 15:27:02 2002]  [jk_lb_worker.c (306)]: Into
jk_endpoint_t::service
[Tue Feb 12 15:27:02 2002]  [jk_ajp_common.c (1345)]: Into
jk_worker_t::get_endpoint
[Tue Feb 12 15:27:02 2002]  [jk_ajp_common.c (1075)]: Into
jk_endpoint_t::service
[Tue Feb 12 15:27:02 2002]  [jk_ajp_common.c (280)]: Into
ajp_marshal_into_msgb
[Tue Feb 12 15:27:02 2002]  [jk_uri_worker_map.c (447)]: Into
jk_uri_worker_map_t::map_uri_to_worker
[Tue Feb 12 15:27:02 2002]  [jk_uri_worker_map.c (464)]: Attempting to map
URI '/einsurance/doEntry.do'
[Tue Feb 12 15:27:02 2002]  [jk_uri_worker_map.c (489)]:
jk_uri_worker_map_t::map_uri_to_worker, Found a context match
loadbalancer -> /einsurance/
[Tue Feb 12 15:27:02 2002]  [jk_worker.c (132)]: Into wc_get_worker_for_name
loadbalancer
[Tue Feb 12 15:27:02 2002]  [jk_worker.c (136)]: wc_get_worker_for_name,
done  found a worker
[Tue Feb 12 15:27:02 2002]  [jk_lb_worker.c (487)]: Into
jk_worker_t::get_endpoint
[Tue Feb 12 15:27:02 2002]  [jk_lb_worker.c (306)]: Into
jk_endpoint_t::service
[Tue Feb 12 15:27:02 2002]  [jk_ajp_common.c (1345)]: Into
jk_worker_t::get_endpoint
[Tue Feb 12 15:27:02 2002]  [jk_ajp_common.c (1075)]: Into
jk_endpoint_t::service
[Tue Feb 12 15:27:02 2002]  [jk_ajp_common.c (280)]: Into
ajp_marshal_into_msgb
[Tue Feb 12 15:27:02 2002]  [jk_uri_worker_map.c (447)]: Into
jk_uri_worker_map_t::map_uri_to_worker
[Tue Feb 12 15:27:02 2002]  [jk_uri_worker_map.c (464)]: Attempting to map
URI '/einsurance/doEntry.do'
[Tue Feb 12 15:27:02 2002]  [jk_uri_worker_map.c (489)]:
jk_uri_worker_map_t::map_uri_to_worker, Found a context match
loadbalancer -> /einsurance/
[Tue Feb 12 15:27:02 2002]  [jk_worker.c (132)]: Into wc_get_worker_for_name
loadbalancer
[Tue Feb 12 15:27:02 2002]  [jk_worker.c (136)]: wc_get_worker_for_name,
done  found a worker
[Tue Feb 12 15:27:02 2002]  [jk_lb_worker.c (487)]: Into
jk_worker_t::get_endpoint
[Tue Feb 12 15:27:02 2002]  [jk_lb_worker.c (306)]: Into
jk_endpoint_t::service
[Tue Feb 12 15:27:02 2002]  [jk_ajp_common.c (1345)]: Into
jk_worker_t::get_endpoint
[Tue Feb 12 15:27:02 2002]  [jk_ajp_common.c (1075)]: Into
jk_endpoint_t::service
[Tue Feb 12 15:27:02 2002]  [jk_ajp_common.c (280)]: Into
ajp_marshal_into_msgb
[Tue Feb 12 15:27:02 2002]  [jk_uri_worker_map.c (447)]: Into
jk_uri_worker_map_t::map_uri_to_worker


Thanks a lot for looking into this,

Best Regards,
Hans





-----Ursprungliche Nachricht-----
Von: Hans Schmid [mailto:hans@mega-schmid.de]
Gesendet: Mittwoch, 13. Februar 2002 08:23
An: Tomcat Developers List
Betreff: AW: Native Connector problems


Hi,

I just ran into a problem with the loadbalancing stuff.

I built mod_jk.so from the 4.0.2 connector package and replaced my
mod_jk.so (TC3.3 Version) with this one in apache/libexec (1.3.19).

By just changing a link back and forth between the two versions, I tested
our TC3.3 based application against the two versions of mod_jk.
If this is not enough and I am missing something, please let me know.
Otherwise exactly the same setup

All works perfectly with the new mod_jk when I use normal ajp13 workers
(one webapp), but fails when I use a loadbalancing worker pointing to
another webapp on a different Tomcat instance.

I do not have the mod_jk.log here at home. Will send it in a couple of
hours when I am in the office.

What else would be required for debugging?


Note, We use the loadbalancer just for switching tomcats. Only one
instance of the two loadbalanced Tomcats is active most of the time.
(by changing the lbvalue)

Thanks,
Hans



> -----Ursprungliche Nachricht-----
> Von: Mike Anderson [mailto:MMANDERS@novell.com]
> Gesendet: Mittwoch, 13. Februar 2002 02:17
> An: tomcat-dev@jakarta.apache.org
> Betreff: RE: Native Connector problems
>
>
> The problem is that the default cache size is one and in the ajp_init
> function
> in jk_ajp_common.c we return from inside of an if when we initialize
> the cache
> so the secrect member of the structure never gets initialized.  This
> caused
> some GPFs in certain cases on some of my builds.
>
> I've checked in the fix.  All I did was move the line that initializes
> secret up above
> the if statement.
>
> Remy, would it be possible to relabel jk_ajp_common.c
> rev. 1.24 as the rev for tomcat_402?  I've built and tested this fix on
> NetWare
> and the resolved my GPFs and bad behavior talking to older
> installations
> of Tomcat (i.e. 3.3).  I was able to use the same module to talk to
> Tomcat 4.0.2 and Tomcat 3.3 from the same instance of the web server.
> I love it when a plan comes together :-)
>
> Mike Anderson
>
>
> >>> hgomez@slib.fr 02/12/02 05:19PM >>>
> >One of the last changes on the connector ( the secret )
> >introduced a bug,
> >when worker_cache is enabled. The secret will not be initialized, and
>
> >that may creates all kind of serious problems.
>
> Could you detail the problem ?
>
> --
> To unsubscribe, e-mail:
> <ma...@jakarta.apache.org>
> For additional commands, e-mail:
> <ma...@jakarta.apache.org>
>
>
> --
> To unsubscribe, e-mail:
> <ma...@jakarta.apache.org>
> For additional commands, e-mail:
> <ma...@jakarta.apache.org>
>
>


--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>