Mailing List Archive

[mod_backhand-users] Making current server work with mod_backhand
I successfuly compiled and installed
mod_backhand-1.1.0, and had it working in no time.
Then I tried to configure my current httpd so it will
use mod_backhand. I did this simply by adding the
appropriate AddModule/LoadModule to the DSO section,
and configuring the broadcast address/socket dir
exactly as I did on my original installation (which
worked).

Unfortunately, it doens't work. One of the processes
crashes and the module won't work. Checking the status
page shows no servers, so nothing happens.

Everything works fine if I remove mod_backhand.

I suspect it happens because of another module, but
have no idea which since I use many, and gave up on
trying to remove them one by one.

Any ideas?


Here's what I get at the log file:

[Sun Dec 17 14:37:01 2000] [notice] mod_backhand --
Multicast 225.225.225.255:4445 TTL[2] added
[Sun Dec 17 14:37:01 2000] [notice] mod_backhand --
Multicast accept 172.16.0.0/24
[Sun Dec 17 14:37:02 2000] [notice] mod_backhand --
UnixSocketDir set to /home/http/backhand/backhand
[Sun Dec 17 14:37:02 2000] [notice] mod_backhand --
Multicast 225.225.225.255:4445 TTL[2] added
[Sun Dec 17 14:37:02 2000] [notice] mod_backhand --
Multicast accept 172.16.0.0/24
[Sun Dec 17 14:37:03 2000] [notice]
backhand_init(8698) spawning stats things (PID 8711)
[Sun Dec 17 14:37:04 2000] [notice] Apache/1.3.12
(Unix) (SuSE/Linux) balanced_by_mod_backhand/1.1.0
configured -- resuming normal operations
[Sun Dec 17 14:37:04 2000] [notice] suEXEC mechanism
enabled (wrapper: /usr/sbin/suexec)
[Sun Dec 17 14:37:04 2000] [notice] child pid 8711
exit signal Segmentation fault (11)


And this is a list of the modules used:

ClearModuleList
AddModule mod_mmap_static.c
AddModule mod_vhost_alias.c
AddModule mod_env.c
AddModule mod_define.c
AddModule mod_log_config.c
AddModule mod_log_agent.c
AddModule mod_log_referer.c
AddModule mod_mime_magic.c
AddModule mod_mime.c
AddModule mod_negotiation.c
AddModule mod_status.c
AddModule mod_info.c
AddModule mod_include.c
AddModule mod_autoindex.c
AddModule mod_dir.c
AddModule mod_cgi.c
AddModule mod_asis.c
AddModule mod_imap.c
AddModule mod_actions.c
AddModule mod_speling.c
AddModule mod_userdir.c
AddModule mod_alias.c
AddModule mod_rewrite.c
AddModule mod_access.c
AddModule mod_auth.c
AddModule mod_auth_anon.c
AddModule mod_auth_dbm.c
AddModule mod_auth_db.c
AddModule mod_digest.c
AddModule mod_proxy.c
AddModule mod_cern_meta.c
AddModule mod_expires.c
AddModule mod_headers.c
AddModule mod_usertrack.c
AddModule mod_example.c
AddModule mod_unique_id.c
AddModule mod_so.c
AddModule mod_setenvif.c
<IfDefine SSL>
AddModule mod_ssl.c
</IfDefine>
<IfDefine PHP>
AddModule mod_php3.c
</IfDefine>
<IfDefine PHP4>
AddModule mod_php4.c
</IfDefine>
<IfDefine PERL>
AddModule mod_perl.c
</IfDefine>
<IfDefine DAV>
AddModule mod_dav.c
</IfDefine>
<IfDefine MODULES>
# AddModule mod_allowdev.c
AddModule mod_auth_cookie.c
AddModule mod_auth_cookie_file.c
AddModule mod_auth_external.c
AddModule mod_auth_inst.c
AddModule mod_auth_system.c
AddModule mod_eaccess.c
AddModule mod_bandwidth.c
AddModule mod_cache.c
AddModule mod_urlcount.c
AddModule mod_disallow_id.c
AddModule mod_lock.c
AddModule mod_peephole.c
AddModule mod_put.c
AddModule mod_qs2ssi.c
AddModule mod_session.c
AddModule mod_fastcgi.c
AddModule mod_cvs.c
AddModule mod_roaming.c
AddModule mod_ip_forwarding.c
AddModule mod_macro.c
AddModule mod_php3.c
</IfDefine>





__________________________________________________
Do You Yahoo!?
Yahoo! Shopping - Thousands of Stores. Millions of Products.
http://shopping.yahoo.com/
[mod_backhand-users] Making current server work with mod_backhand [ In reply to ]
gali_diamant@yahoo.com wrote:
> I successfuly compiled and installed
> mod_backhand-1.1.0, and had it working in no time.
> Then I tried to configure my current httpd so it will
> use mod_backhand. I did this simply by adding the
> appropriate AddModule/LoadModule to the DSO section,
> and configuring the broadcast address/socket dir
> exactly as I did on my original installation (which
> worked).

Are you saying that your original installation had mod_backhand and it worked,
but it doesn't work since upgrading to 1.1.0?

> Unfortunately, it doens't work. One of the processes
> crashes and the module won't work. Checking the status
> page shows no servers, so nothing happens.

That is no good at all :-(

> Everything works fine if I remove mod_backhand.

Everything should be working fine even with mod_backhand. The error you are
witnessing is a crashing of the mod_backhand moderator process seg faulting at
start up. This effectively cripples mod_backhand, but it shouldn't entirely
break you Apache instance.

> I suspect it happens because of another module, but
> have no idea which since I use many, and gave up on
> trying to remove them one by one.

Hmmm, I doesn't really interact with any other modules. It does most of its
work in the post_read_request phase which is before most other modules even
bother looking at a request. It does require shared memory to work and the
scoreboard to be available to work. You should get a pretty clear error
message if either of these were broken. The segfault is disturbing.

I have seen this many times when I have a mod_backhand.so that was compiled
against a different Apache (httpd).

Assuming you don't have mod_backhand statically compiled, try removing
mod_backhand.so and downloading the mod_backhand distribution and use the
./configure --with-apxs=/path/to/installed/apxs. Then copy the libbackhand.so
to mod_backhand.so to preserve your old naming (in the /path/to/apache/libexec
directory).

Two other things to check:
(1) make sure that /home/http/backhand/backhand exists and that the apache
user has read/write/execute access. And make sure it isn't NFS mounted --
that is just a scary thought.
(2) The email you sent didn't have an AddModule line for mod_backhand.c... I
put my right after mod_cgi.c and it seems to work all the time. This line
shouldn't effect the segfaulting though.

If you are skilled with GDB, feel free to send me a stack trace. If you don't
know how to use gdb on multiprocessed programs (its tricky,) run httpd with
strace -f and send me the output.

In one terminal:
strace -f /path/to/httpd <args if you have any> 2>&1 > httpd.strace

After a few seconds and the web servers starts, in another window:
killall httpd.

Then mail me (privately) the strace -- this *may* be enough info to track down
the problem.
--
Theo Schlossnagle
1024D/A8EBCF8F/13BD 8C08 6BE2 629A 527E 2DC2 72C2 AD05 A8EB CF8F
2047R/33131B65/71 F7 95 64 49 76 5D BA 3D 90 B9 9F BE 27 24 E7
[mod_backhand-users] Making current server work with mod_backhand [ In reply to ]
I doubled checked, and of course UnixSocketDir had the
wrong permissions. Fixed it, now it's working.

Thanks,
Gali


__________________________________________________
Do You Yahoo!?
Yahoo! Shopping - Thousands of Stores. Millions of Products.
http://shopping.yahoo.com/
[mod_backhand-users] Making current server work with mod_backhand [ In reply to ]
I am glad that solved your problem. A segmentation fault is not what I would
call a explanatory error or graceful error handling. I look into fixing it.

gali_diamant@yahoo.com wrote:
> I doubled checked, and of course UnixSocketDir had the
> wrong permissions. Fixed it, now it's working.

--
Theo Schlossnagle
1024D/A8EBCF8F/13BD 8C08 6BE2 629A 527E 2DC2 72C2 AD05 A8EB CF8F
2047R/33131B65/71 F7 95 64 49 76 5D BA 3D 90 B9 9F BE 27 24 E7