Hello List!
after some configuration work, i finally managed to get mod_backhand up
and running.
Unfortunately, two problems still remain, and I have no idea how to
investigate any further:
The first one are occasionaly dying processes at the machine working as
proxy. Currently, this
machine handles approx. a few requests a second or less, so load should
not be a problem. But in
the apache error log looks like this:
<snip>
[Sat Feb 3 10:13:01 2001] [notice] child pid 15606 exit signal
Segmentation fault (11)
[Sat Feb 3 11:10:33 2001] [notice] child pid 15609 exit signal
Segmentation fault (11)
[Sat Feb 3 11:16:59 2001] [notice] child pid 15598 exit signal
Segmentation fault (11)
[Sat Feb 3 11:17:01 2001] [notice] child pid 16828 exit signal
Segmentation fault (11)
[Sat Feb 3 11:30:37 2001] [notice] child pid 16947 exit signal
Segmentation fault (11)
[Sat Feb 3 11:31:01 2001] [notice] child pid 16130 exit signal
Segmentation fault (11)
[Sat Feb 3 11:47:19 2001] [notice] child pid 16685 exit signal
Segmentation fault (11)
[Sat Feb 3 11:58:51 2001] [notice] child pid 16885 exit signal
Segmentation fault (11)
[Sat Feb 3 12:04:46 2001] [notice] child pid 17381 exit signal
Segmentation fault (11)
[Sat Feb 3 12:13:21 2001] [notice] child pid 16273 exit signal
Segmentation fault (11)
[Sat Feb 3 12:16:04 2001] [notice] child pid 16971 exit signal
Segmentation fault (11)
[Sat Feb 3 12:41:11 2001] [notice] child pid 17856 exit signal
Segmentation fault (11)
[Sat Feb 3 12:46:22 2001] [notice] child pid 17897 exit signal
Segmentation fault (11)
[Sat Feb 3 13:16:06 2001] [notice] child pid 15600 exit signal
Segmentation fault (11)
[Sat Feb 3 13:16:10 2001] [notice] child pid 18133 exit signal
Segmentation fault (11)
[Sat Feb 3 13:32:37 2001] [notice] child pid 18913 exit signal
Segmentation fault (11)
[Sat Feb 3 13:32:43 2001] [notice] child pid 16331 exit signal
Segmentation fault (11)
[Sat Feb 3 13:46:44 2001] [notice] child pid 17036 exit signal
Segmentation fault (11)
[Sat Feb 3 13:59:15 2001] [notice] child pid 19322 exit signal
Segmentation fault (11)
[Sat Feb 3 13:59:15 2001] [notice] child pid 19321 exit signal
Segmentation fault (11)
[Sat Feb 3 13:59:15 2001] [notice] child pid 19320 exit signal
Segmentation fault (11)
[Sat Feb 3 13:59:15 2001] [notice] child pid 18893 exit signal
Segmentation fault (11)
<snip>
This segfaulting did not occur before i installed mod_backhand. It only
happens at the server
answering the requests from remote, those working as proxies on other
machines are perfectly
fine.
I'm not an expert in debugging running applications, so any hint how to
receive more information
about the dying processes would be appreciated.
Second: It seems that mod_backhand gets sometimes confused about the
clients' IP adresses.
If I reload repeatedly the /backhand/ status handler, it sometimes
(approx 10%) reports
the wrong REMOTE_ADDR. Same happens to php-scripts echoing or processing
the REMOTE_ADDR.
These wrong addresses usually belong to clients who are at the same
time making requests to the system. As we do things like content
customisation on an clients IP address
base, this is no good (Even the logging at the proxy-servers shows the
wrong adresses, while the external
server logs the right one)
Here's the setup:
(fake official IPs and domain names)
machine(n)
eth0: 1.2.3.21(n) 1.2.3.0/24
eth1: 192.168.14.4(n) 192.168.14.0/24
Multicast not explicitly bound to an interface via route, but tcpdump
shows the traffic at eth0, no traffic at eth1.
Linux version 2.2.16-SMP (root@SMP_X86.suse.de) (gcc version 2.95.2
19991024 (release))
2 CPUs, 2GB RAM, HW-Raid UW-SCSI drives, 100BaseT 3Com network adaptors.
One more machine (similar configuration) working as log server via
spread
Apache 1.3.14 with PHP 4.04RC6, mod_backhand 1.1.1p2, mod_log_spread
PHP is commonly used at most pages, Session management is active and
vital, PHPSESSID is processed as described in README.bySession.
php makes connections to Postgres (local and remote) and Oracle (remote)
Databases.
Excerpts from configuration:
(...)
LoadModule vhost_alias_module libexec/mod_vhost_alias.so
LoadModule env_module libexec/mod_env.so
LoadModule define_module libexec/mod_define.so
LoadModule config_log_module libexec/mod_log_config.so
LoadModule mime_module libexec/mod_mime.so
LoadModule negotiation_module libexec/mod_negotiation.so
LoadModule status_module libexec/mod_status.so
LoadModule info_module libexec/mod_info.so
LoadModule includes_module libexec/mod_include.so
LoadModule autoindex_module libexec/mod_autoindex.so
LoadModule dir_module libexec/mod_dir.so
LoadModule cgi_module libexec/mod_cgi.so
LoadModule asis_module libexec/mod_asis.so
LoadModule imap_module libexec/mod_imap.so
LoadModule action_module libexec/mod_actions.so
LoadModule alias_module libexec/mod_alias.so
LoadModule access_module libexec/mod_access.so
LoadModule auth_module libexec/mod_auth.so
LoadModule anon_auth_module libexec/mod_auth_anon.so
LoadModule dbm_auth_module libexec/mod_auth_dbm.so
LoadModule db_auth_module libexec/mod_auth_db.so
LoadModule digest_module libexec/mod_digest.so
LoadModule expires_module libexec/mod_expires.so
LoadModule headers_module libexec/mod_headers.so
LoadModule unique_id_module libexec/mod_unique_id.so
LoadModule setenvif_module libexec/mod_setenvif.so
LoadModule php4_module libexec/libphp4.so
LoadModule backhand_module libexec/mod_backhand.so
LoadModule log_spread_module libexec/mod_log_spread.so
(..)
<IfModule mod_backhand.c>
UnixSocketDir /var/state/backhand
MulticastStats 192.168.14.40 225.220.221.20:4445,1
AcceptStats 192.168.14.0/24
AcceptStats 1.2.3.0/24 <-- Without this line the 192.168.14.4x
servers do not see each other - strange
<Location "/backhand/">
SetHandler backhand-handler
</Location>
#BackhandLogLevel +dcsnall
#BackhandLogLevel +mbcsall
BackhandSelfRedirect On
</IfModule>
(..)
Listen 1.2.3.210:80
NameVirtualHost 1.2.3.210:80
Listen 192.168.14.40:80
NameVirtualHost 192.168.14.40:80
<VirtualHost 1.2.3.210:80>
ServerName www.domain.de
DocumentRoot /home/customer/domain/htdocs
ErrorLog /home/customer/logs/domain.de-error.log
CustomLog /home/customer/logs/domain.de-access.log combined
ErrorDocument 404 /bin/error.html
<IfModule mod_log_spread.c>
CustomLog $#vhost combined
</IfModule>
AliasMatch ^/([^/\.]+)[/]*$ /home/customer/domain/htdocs/$1.html
(... some more alias matches and <File> directives ...)
Redirect /index_d.html http://www.domain.de/
Redirect /index_e.html http://www.domain.de/
<Directory /home/customer/domain/htdocs>
(..)
<IfModule mod_php4.c>
php_admin_flag safe_mode off
php_value include_path .:/home/dmag/php
php_value auto_prepend_file /home/kunden/dmag/php/prepend.php3
php_value gpc_order PGC
</IfModule>
<IfModule mod_backhand.c>
Backhand byAge
Backhand byLoad
Backhand bySession
</IfModule>
</Directory>
</VirtualHost>
(Following identical setup for virtual server listening on
192.168.14.40)
(...)
Same configuration applies to the other machines, with external and
internal adresses incremented +1
(currently 1 more machine, as we are in evaluation phase, we plan to set
up 7 servers with DNS round robin to
the external virtual servers)
Thank you in advance!
Tilman
after some configuration work, i finally managed to get mod_backhand up
and running.
Unfortunately, two problems still remain, and I have no idea how to
investigate any further:
The first one are occasionaly dying processes at the machine working as
proxy. Currently, this
machine handles approx. a few requests a second or less, so load should
not be a problem. But in
the apache error log looks like this:
<snip>
[Sat Feb 3 10:13:01 2001] [notice] child pid 15606 exit signal
Segmentation fault (11)
[Sat Feb 3 11:10:33 2001] [notice] child pid 15609 exit signal
Segmentation fault (11)
[Sat Feb 3 11:16:59 2001] [notice] child pid 15598 exit signal
Segmentation fault (11)
[Sat Feb 3 11:17:01 2001] [notice] child pid 16828 exit signal
Segmentation fault (11)
[Sat Feb 3 11:30:37 2001] [notice] child pid 16947 exit signal
Segmentation fault (11)
[Sat Feb 3 11:31:01 2001] [notice] child pid 16130 exit signal
Segmentation fault (11)
[Sat Feb 3 11:47:19 2001] [notice] child pid 16685 exit signal
Segmentation fault (11)
[Sat Feb 3 11:58:51 2001] [notice] child pid 16885 exit signal
Segmentation fault (11)
[Sat Feb 3 12:04:46 2001] [notice] child pid 17381 exit signal
Segmentation fault (11)
[Sat Feb 3 12:13:21 2001] [notice] child pid 16273 exit signal
Segmentation fault (11)
[Sat Feb 3 12:16:04 2001] [notice] child pid 16971 exit signal
Segmentation fault (11)
[Sat Feb 3 12:41:11 2001] [notice] child pid 17856 exit signal
Segmentation fault (11)
[Sat Feb 3 12:46:22 2001] [notice] child pid 17897 exit signal
Segmentation fault (11)
[Sat Feb 3 13:16:06 2001] [notice] child pid 15600 exit signal
Segmentation fault (11)
[Sat Feb 3 13:16:10 2001] [notice] child pid 18133 exit signal
Segmentation fault (11)
[Sat Feb 3 13:32:37 2001] [notice] child pid 18913 exit signal
Segmentation fault (11)
[Sat Feb 3 13:32:43 2001] [notice] child pid 16331 exit signal
Segmentation fault (11)
[Sat Feb 3 13:46:44 2001] [notice] child pid 17036 exit signal
Segmentation fault (11)
[Sat Feb 3 13:59:15 2001] [notice] child pid 19322 exit signal
Segmentation fault (11)
[Sat Feb 3 13:59:15 2001] [notice] child pid 19321 exit signal
Segmentation fault (11)
[Sat Feb 3 13:59:15 2001] [notice] child pid 19320 exit signal
Segmentation fault (11)
[Sat Feb 3 13:59:15 2001] [notice] child pid 18893 exit signal
Segmentation fault (11)
<snip>
This segfaulting did not occur before i installed mod_backhand. It only
happens at the server
answering the requests from remote, those working as proxies on other
machines are perfectly
fine.
I'm not an expert in debugging running applications, so any hint how to
receive more information
about the dying processes would be appreciated.
Second: It seems that mod_backhand gets sometimes confused about the
clients' IP adresses.
If I reload repeatedly the /backhand/ status handler, it sometimes
(approx 10%) reports
the wrong REMOTE_ADDR. Same happens to php-scripts echoing or processing
the REMOTE_ADDR.
These wrong addresses usually belong to clients who are at the same
time making requests to the system. As we do things like content
customisation on an clients IP address
base, this is no good (Even the logging at the proxy-servers shows the
wrong adresses, while the external
server logs the right one)
Here's the setup:
(fake official IPs and domain names)
machine(n)
eth0: 1.2.3.21(n) 1.2.3.0/24
eth1: 192.168.14.4(n) 192.168.14.0/24
Multicast not explicitly bound to an interface via route, but tcpdump
shows the traffic at eth0, no traffic at eth1.
Linux version 2.2.16-SMP (root@SMP_X86.suse.de) (gcc version 2.95.2
19991024 (release))
2 CPUs, 2GB RAM, HW-Raid UW-SCSI drives, 100BaseT 3Com network adaptors.
One more machine (similar configuration) working as log server via
spread
Apache 1.3.14 with PHP 4.04RC6, mod_backhand 1.1.1p2, mod_log_spread
PHP is commonly used at most pages, Session management is active and
vital, PHPSESSID is processed as described in README.bySession.
php makes connections to Postgres (local and remote) and Oracle (remote)
Databases.
Excerpts from configuration:
(...)
LoadModule vhost_alias_module libexec/mod_vhost_alias.so
LoadModule env_module libexec/mod_env.so
LoadModule define_module libexec/mod_define.so
LoadModule config_log_module libexec/mod_log_config.so
LoadModule mime_module libexec/mod_mime.so
LoadModule negotiation_module libexec/mod_negotiation.so
LoadModule status_module libexec/mod_status.so
LoadModule info_module libexec/mod_info.so
LoadModule includes_module libexec/mod_include.so
LoadModule autoindex_module libexec/mod_autoindex.so
LoadModule dir_module libexec/mod_dir.so
LoadModule cgi_module libexec/mod_cgi.so
LoadModule asis_module libexec/mod_asis.so
LoadModule imap_module libexec/mod_imap.so
LoadModule action_module libexec/mod_actions.so
LoadModule alias_module libexec/mod_alias.so
LoadModule access_module libexec/mod_access.so
LoadModule auth_module libexec/mod_auth.so
LoadModule anon_auth_module libexec/mod_auth_anon.so
LoadModule dbm_auth_module libexec/mod_auth_dbm.so
LoadModule db_auth_module libexec/mod_auth_db.so
LoadModule digest_module libexec/mod_digest.so
LoadModule expires_module libexec/mod_expires.so
LoadModule headers_module libexec/mod_headers.so
LoadModule unique_id_module libexec/mod_unique_id.so
LoadModule setenvif_module libexec/mod_setenvif.so
LoadModule php4_module libexec/libphp4.so
LoadModule backhand_module libexec/mod_backhand.so
LoadModule log_spread_module libexec/mod_log_spread.so
(..)
<IfModule mod_backhand.c>
UnixSocketDir /var/state/backhand
MulticastStats 192.168.14.40 225.220.221.20:4445,1
AcceptStats 192.168.14.0/24
AcceptStats 1.2.3.0/24 <-- Without this line the 192.168.14.4x
servers do not see each other - strange
<Location "/backhand/">
SetHandler backhand-handler
</Location>
#BackhandLogLevel +dcsnall
#BackhandLogLevel +mbcsall
BackhandSelfRedirect On
</IfModule>
(..)
Listen 1.2.3.210:80
NameVirtualHost 1.2.3.210:80
Listen 192.168.14.40:80
NameVirtualHost 192.168.14.40:80
<VirtualHost 1.2.3.210:80>
ServerName www.domain.de
DocumentRoot /home/customer/domain/htdocs
ErrorLog /home/customer/logs/domain.de-error.log
CustomLog /home/customer/logs/domain.de-access.log combined
ErrorDocument 404 /bin/error.html
<IfModule mod_log_spread.c>
CustomLog $#vhost combined
</IfModule>
AliasMatch ^/([^/\.]+)[/]*$ /home/customer/domain/htdocs/$1.html
(... some more alias matches and <File> directives ...)
Redirect /index_d.html http://www.domain.de/
Redirect /index_e.html http://www.domain.de/
<Directory /home/customer/domain/htdocs>
(..)
<IfModule mod_php4.c>
php_admin_flag safe_mode off
php_value include_path .:/home/dmag/php
php_value auto_prepend_file /home/kunden/dmag/php/prepend.php3
php_value gpc_order PGC
</IfModule>
<IfModule mod_backhand.c>
Backhand byAge
Backhand byLoad
Backhand bySession
</IfModule>
</Directory>
</VirtualHost>
(Following identical setup for virtual server listening on
192.168.14.40)
(...)
Same configuration applies to the other machines, with external and
internal adresses incremented +1
(currently 1 more machine, as we are in evaluation phase, we plan to set
up 7 servers with DNS round robin to
the external virtual servers)
Thank you in advance!
Tilman