You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@httpd.apache.org by Anurag Chourasia <an...@gmail.com> on 2010/11/21 21:22:01 UTC

[users@httpd] Apache Startup Problems with mod_wsgi : Missing Symbols ap_cleanup_scoreboard and ap_accept_lock_mech

All,

I hope you could help me with a mod_wsgi load error upon startup of apache.
This is affecting one of our site Go Live and I would appreciate any help
offered in this regard.

The error upon startup of Apache is as follows

root [zibal]% ./usr/local/apache2/bin/apachectl restart
httpd: Syntax error on line 53 of /usr/local/apache2/conf/httpd.conf:
Cannot load /usr/local/apache2/modules/mod_wsgi.so into server:
rtld:0712-001 Symbol ap_cleanup_scoreboard was referenced from module
/usr/local/apache2/modules/mod_wsgi.so(), but a runtime definition of the
symbol was not found.
rtld: 0712-001 Symbol ap_accept_lock_mech was referenced from module
/usr/local/apache2/modules/mod_wsgi.so(), but a runtime definition of the
symbol was not found.


I am pasting the output of nm command on the apache executable and those
symbols seem to exist.

root [zibal]% nm ./usr/local/apache2/bin/httpd | grep  ap_accept_lock_mech
ap_accept_lock_mech  D   536880332
ap_accept_lock_mech  d   536900392           4
ap_accept_lock_mech:G879 -           0

root [zibal]% nm ./usr/local/apache2/bin/httpd | grep ap_cleanup_scoreboard
.ap_cleanup_scoreboard T   268613428         212
ap_cleanup_scoreboard D   536890068
ap_cleanup_scoreboard d   536890068          12
ap_cleanup_scoreboard d   536899972           4
ap_cleanup_scoreboard:F385 -        2976


I am wondering if there is a way to statically link mod_wsgi into apache?
Please guide.

I built Apache 2.2.17 and Mod_Wsgi 3.3 using the source and the compiler was
gcc-4.2.


Here is the Apache Build Information
=====================================

root [zibal]% ./usr/local/apache2/bin/httpd -V
Server version: Apache/2.2.17 (Unix)
Server built:   Nov 18 2010 05:04:25
Server's Module Magic Number: 20051115:25
Server loaded:  APR 1.4.2, APR-Util 1.3.10
Compiled using: APR 1.4.2, APR-Util 1.3.10
Architecture:   32-bit
Server MPM:     Prefork
 threaded:     no
   forked:     yes (variable process count)
Server compiled with....
 -D APACHE_MPM_DIR="server/mpm/prefork"
 -D APR_HAS_SENDFILE
 -D APR_HAS_MMAP
 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
 -D APR_USE_SYSVSEM_SERIALIZE
 -D APR_USE_PTHREAD_SERIALIZE
 -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
 -D APR_HAS_OTHER_CHILD
 -D AP_HAVE_RELIABLE_PIPED_LOGS
 -D DYNAMIC_MODULE_LIMIT=128
 -D HTTPD_ROOT="/usr/local/apache2"
 -D SUEXEC_BIN="/usr/local/apache2/bin/suexec"
 -D DEFAULT_PIDLOG="logs/httpd.pid"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_LOCKFILE="logs/accept.lock"
 -D DEFAULT_ERRORLOG="logs/error_log"
 -D AP_TYPES_CONFIG_FILE="conf/mime.types"
 -D SERVER_CONFIG_FILE="conf/httpd.conf"

Contents of config.nice file are as follows

++++++++++++++++++++++++
#! /bin/sh
#
# Created by configure

CC="gcc"; export CC
"./configure" \
"CC=gcc" \
"$@"
++++++++++++++++++++++++



Information about Apache Modules Loaded
=======================================

 root [zibal]% ./usr/local/apache2/bin/httpd -l
Compiled in modules:
 core.c
 mod_authn_file.c
 mod_authn_default.c
 mod_authz_host.c
 mod_authz_groupfile.c
 mod_authz_user.c
 mod_authz_default.c
 mod_auth_basic.c
 mod_include.c
 mod_filter.c
 mod_log_config.c
 mod_env.c
 mod_setenvif.c
 mod_version.c
 prefork.c
 http_core.c
 mod_mime.c
 mod_status.c
 mod_autoindex.c
 mod_asis.c
 mod_cgi.c
 mod_negotiation.c
 mod_dir.c
 mod_actions.c
 mod_userdir.c
 mod_alias.c
 mod_so.c


In httpd.conf, i only have the following LoadModule Statement
=============================================================
LoadModule wsgi_module modules/mod_wsgi.so

Information about Global Accept Mutex
=====================================
Valid accept mutexes for this platform and MPM are: default, fcntl,
sysvsem, posixsem, pthread.

Alo, here is my build session transcript while building mod_wsgi.....There
was absolutely no error during build.

root [zibal]% make
         /usr/local/apache2/bin/apxs -c -I/usr/local/include/python2.6
-DNDEBUG   mod_wsgi.c -L/usr/local/lib -L/usr/local/lib/python2.6/config
 -lpython2.6 -ldl -lm
/usr/local/apache2/build/libtool --silent --mode=compile gcc -prefer-pic
-U__STR__ -D_THREAD_SAFE -D_USE_IRS -D_LARGEFILE64_SOURCE -g -O2 -pthread
-I/usr/local/apache2/include  -I/usr/local/apache2/include
-I/usr/local/apache2/include -I/usr/local/include
-I/usr/local/include/python2.6 -DNDEBUG  -c -o mod_wsgi.lo mod_wsgi.c &&
touch mod_wsgi.slo
/usr/local/apache2/build/libtool --silent --mode=link gcc -o
mod_wsgi.la -rpath /usr/local/apache2/modules -module -avoid-version
-Wl,-brtl
 mod_wsgi.lo -L/usr/local/lib -L/usr/local/lib/python2.6/config -lpython2.6
-ldl -lm
Target "all" is up to date.
root [zibal]% make install
        /usr/local/apache2/bin/apxs -i -S
LIBEXECDIR=/usr/local/apache2/modules -n 'mod_wsgi' mod_wsgi.la
/usr/local/apache2/build/instdso.sh
SH_LIBTOOL='/usr/local/apache2/build/libtool'
mod_wsgi.la/usr/local/apache2/modules
rm -f /usr/local/apache2/modules/mod_wsgi.so
/usr/local/apache2/build/libtool --mode=install cp
mod_wsgi.la/usr/local/apache2/modules/
cp .libs/mod_wsgi.so /usr/local/apache2/modules/mod_wsgi.so
cp .libs/mod_wsgi.lai /usr/local/apache2/modules/mod_wsgi.la
cp .libs/mod_wsgi.a /usr/local/apache2/modules/mod_wsgi.a
chmod 644 /usr/local/apache2/modules/mod_wsgi.a
ranlib /usr/local/apache2/modules/mod_wsgi.a
----------------------------------------------------------------------
Libraries have been installed in:
   /usr/local/apache2/modules

If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
   - add LIBDIR to the `LIBPATH' environment variable
     during execution
   - use the
`-Wl,-blibpath:LIBDIR:/opt/freeware/lib/gcc/powerpc-ibm-aix5.3.0.0/4.2.4:/opt/freeware/lib/gcc/powerpc-ibm-aix5.3.0.0/4.2.4/../../..:/usr/lib:/lib
' linker flag

See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
chmod 755 /usr/local/apache2/modules/mod_wsgi.so

Please let me know if I should provide some additional information.

Regards,
Anurag

Re: [users@httpd] Apache Startup Problems with mod_wsgi : Missing Symbols ap_cleanup_scoreboard and ap_accept_lock_mech

Posted by Jeff Trawick <tr...@gmail.com>.
On Sun, Nov 21, 2010 at 4:49 PM, Anurag Chourasia
<an...@gmail.com> wrote:
> Hi Jeff,
> Your solution helped me overcome 1 of those 2 missing symbol reference but 1
> still remains. Could you please guide me for this one too.
> This is the error now.
> httpd: Syntax error on line 53 of /usr/local/apache2/conf/httpd.conf: Cannot
> load /usr/local/apache2/modules/mod_wsgi.so into server: rtld: 0712-001
> Symbol ap_accept_lock_mech was referenced from module
> /usr/local/apache2/modules/mod_wsgi.so(), but a runtime definition of the
> symbol was not found.
> Here is the mpm_common.h for me
>   +300  #ifdef AP_MPM_WANT_SET_ACCEPT_LOCK_MECH
>   +301  AP_DECLARE_DATA extern apr_lockmech_e ap_accept_lock_mech;
>   +302  extern const char ap_valid_accept_mutex_string[];
>   +303  const char *ap_mpm_set_accept_lock_mech(cmd_parms *cmd, void *dummy,
>   +304                                          const char *arg);
> Thanks again for your help on this.

I don't know why that isn't working.

Try this:  Edit server/httpd.exp and add a line for
ap_accept_lock_mech at the bottom, remove httpd, and run make again.
Maybe httpd will then export that symbol as well.

Assuming this gets you to a working state:  The root cause is that
mod_wsgi is using symbols from httpd that are intentionally not
exported.  mod_wsgi devs should come chat at dev@httpd on the need for
those symbols.


> Regards,
> Anurag
> On Mon, Nov 22, 2010 at 2:36 AM, Jeff Trawick <tr...@gmail.com> wrote:
>>
>> On Sun, Nov 21, 2010 at 3:22 PM, Anurag Chourasia
>> <an...@gmail.com> wrote:
>> > All,
>> > I hope you could help me with a mod_wsgi load error upon startup of
>> > apache.
>> > This is affecting one of our site Go Live and I would appreciate any
>> > help
>> > offered in this regard.
>> > The error upon startup of Apache is as follows
>> > root [zibal]% ./usr/local/apache2/bin/apachectl restart
>> > httpd: Syntax error on line 53 of /usr/local/apache2/conf/httpd.conf:
>> > Cannot load /usr/local/apache2/modules/mod_wsgi.so into server:
>> > rtld:0712-001 Symbol ap_cleanup_scoreboard was referenced from module
>> > /usr/local/apache2/modules/mod_wsgi.so(), but a runtime definition of
>> > the
>> > symbol was not found.
>> > rtld: 0712-001 Symbol ap_accept_lock_mech was referenced from module
>> > /usr/local/apache2/modules/mod_wsgi.so(), but a runtime definition of
>> > the
>> > symbol was not found.
>>
>> those two functions aren't APIs (not expected to be called by
>> modules), so maybe they aren't visible?
>>
>> perhaps there are special instructions *somewhere* from someone who
>> has gotten mod_wsgi to work on AIX, as it is not supposed to work
>>
>> patch httpd with this, rebuild completely, and see if that gets you
>> going; the two missing symbols should be exported with this patch
>>
>> Index: include/mpm_common.h
>> ===================================================================
>> --- include/mpm_common.h        (revision 1034992)
>> +++ include/mpm_common.h        (working copy)
>> @@ -298,7 +298,7 @@
>>  * The system mutex implementation to use for the accept mutex.
>>  */
>>  #ifdef AP_MPM_WANT_SET_ACCEPT_LOCK_MECH
>> -extern apr_lockmech_e ap_accept_lock_mech;
>> +AP_DECLARE_DATA extern apr_lockmech_e ap_accept_lock_mech;
>>  extern const char ap_valid_accept_mutex_string[];
>>  const char *ap_mpm_set_accept_lock_mech(cmd_parms *cmd, void *dummy,
>>                                         const char *arg);
>> Index: include/scoreboard.h
>> ===================================================================
>> --- include/scoreboard.h        (revision 1034992)
>> +++ include/scoreboard.h        (working copy)
>> @@ -178,7 +178,7 @@
>>  apr_status_t ap_reopen_scoreboard(apr_pool_t *p, apr_shm_t **shm, int
>> detached);
>>  void ap_init_scoreboard(void *shared_score);
>>  AP_DECLARE(int) ap_calc_scoreboard_size(void);
>> -apr_status_t ap_cleanup_scoreboard(void *d);
>> +AP_DECLARE(apr_status_t) ap_cleanup_scoreboard(void *d);
>>
>>  AP_DECLARE(void) ap_create_sb_handle(ap_sb_handle_t **new_sbh, apr_pool_t
>> *p,
>>                                      int child_num, int thread_num);
>>
>>
>> >
>> > I am pasting the output of nm command on the apache executable and those
>> > symbols seem to exist.
>> > root [zibal]% nm ./usr/local/apache2/bin/httpd | grep
>> >  ap_accept_lock_mech
>> > ap_accept_lock_mech  D   536880332
>> > ap_accept_lock_mech  d   536900392           4
>> > ap_accept_lock_mech:G879 -           0
>> > root [zibal]% nm ./usr/local/apache2/bin/httpd | grep
>> > ap_cleanup_scoreboard
>> > .ap_cleanup_scoreboard T   268613428         212
>> > ap_cleanup_scoreboard D   536890068
>> > ap_cleanup_scoreboard d   536890068          12
>> > ap_cleanup_scoreboard d   536899972           4
>> > ap_cleanup_scoreboard:F385 -        2976
>> >
>> > I am wondering if there is a way to statically link mod_wsgi into
>> > apache?
>> > Please guide.
>> > I built Apache 2.2.17 and Mod_Wsgi 3.3 using the source and the compiler
>> > was
>> > gcc-4.2.
>> >
>> > Here is the Apache Build Information
>> > =====================================
>> > root [zibal]% ./usr/local/apache2/bin/httpd -V
>> > Server version: Apache/2.2.17 (Unix)
>> > Server built:   Nov 18 2010 05:04:25
>> > Server's Module Magic Number: 20051115:25
>> > Server loaded:  APR 1.4.2, APR-Util 1.3.10
>> > Compiled using: APR 1.4.2, APR-Util 1.3.10
>> > Architecture:   32-bit
>> > Server MPM:     Prefork
>> >  threaded:     no
>> >    forked:     yes (variable process count)
>> > Server compiled with....
>> >  -D APACHE_MPM_DIR="server/mpm/prefork"
>> >  -D APR_HAS_SENDFILE
>> >  -D APR_HAS_MMAP
>> >  -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
>> >  -D APR_USE_SYSVSEM_SERIALIZE
>> >  -D APR_USE_PTHREAD_SERIALIZE
>> >  -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
>> >  -D APR_HAS_OTHER_CHILD
>> >  -D AP_HAVE_RELIABLE_PIPED_LOGS
>> >  -D DYNAMIC_MODULE_LIMIT=128
>> >  -D HTTPD_ROOT="/usr/local/apache2"
>> >  -D SUEXEC_BIN="/usr/local/apache2/bin/suexec"
>> >  -D DEFAULT_PIDLOG="logs/httpd.pid"
>> >  -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
>> >  -D DEFAULT_LOCKFILE="logs/accept.lock"
>> >  -D DEFAULT_ERRORLOG="logs/error_log"
>> >  -D AP_TYPES_CONFIG_FILE="conf/mime.types"
>> >  -D SERVER_CONFIG_FILE="conf/httpd.conf"
>> > Contents of config.nice file are as follows
>> > ++++++++++++++++++++++++
>> > #! /bin/sh
>> > #
>> > # Created by configure
>> > CC="gcc"; export CC
>> > "./configure" \
>> > "CC=gcc" \
>> > "$@"
>> > ++++++++++++++++++++++++
>> >
>> >
>> > Information about Apache Modules Loaded
>> > =======================================
>> > root [zibal]% ./usr/local/apache2/bin/httpd -l
>> > Compiled in modules:
>> >  core.c
>> >  mod_authn_file.c
>> >  mod_authn_default.c
>> >  mod_authz_host.c
>> >  mod_authz_groupfile.c
>> >  mod_authz_user.c
>> >  mod_authz_default.c
>> >  mod_auth_basic.c
>> >  mod_include.c
>> >  mod_filter.c
>> >  mod_log_config.c
>> >  mod_env.c
>> >  mod_setenvif.c
>> >  mod_version.c
>> >  prefork.c
>> >  http_core.c
>> >  mod_mime.c
>> >  mod_status.c
>> >  mod_autoindex.c
>> >  mod_asis.c
>> >  mod_cgi.c
>> >  mod_negotiation.c
>> >  mod_dir.c
>> >  mod_actions.c
>> >  mod_userdir.c
>> >  mod_alias.c
>> >  mod_so.c
>> >
>> > In httpd.conf, i only have the following LoadModule Statement
>> > =============================================================
>> > LoadModule wsgi_module modules/mod_wsgi.so
>> > Information about Global Accept Mutex
>> > =====================================
>> > Valid accept mutexes for this platform and MPM are: default, fcntl,
>> > sysvsem, posixsem, pthread.
>> > Alo, here is my build session transcript while building
>> > mod_wsgi.....There
>> > was absolutely no error during build.
>> > root [zibal]% make
>> >         /usr/local/apache2/bin/apxs -c -I/usr/local/include/python2.6
>> > -DNDEBUG   mod_wsgi.c -L/usr/local/lib -L/usr/local/lib/python2.6/config
>> >  -lpython2.6 -ldl -lm
>> > /usr/local/apache2/build/libtool --silent --mode=compile gcc -prefer-pic
>> > -U__STR__ -D_THREAD_SAFE -D_USE_IRS -D_LARGEFILE64_SOURCE -g -O2
>> > -pthread
>> > -I/usr/local/apache2/include  -I/usr/local/apache2/include
>> > -I/usr/local/apache2/include -I/usr/local/include
>> > -I/usr/local/include/python2.6 -DNDEBUG  -c -o mod_wsgi.lo mod_wsgi.c &&
>> > touch mod_wsgi.slo
>> > /usr/local/apache2/build/libtool --silent --mode=link gcc -o mod_wsgi.la
>> >  -rpath /usr/local/apache2/modules -module -avoid-version  -Wl,-brtl
>> >  mod_wsgi.lo -L/usr/local/lib -L/usr/local/lib/python2.6/config
>> > -lpython2.6
>> > -ldl -lm
>> > Target "all" is up to date.
>> > root [zibal]% make install
>> >         /usr/local/apache2/bin/apxs -i -S
>> > LIBEXECDIR=/usr/local/apache2/modules -n 'mod_wsgi' mod_wsgi.la
>> > /usr/local/apache2/build/instdso.sh
>> > SH_LIBTOOL='/usr/local/apache2/build/libtool' mod_wsgi.la
>> > /usr/local/apache2/modules
>> > rm -f /usr/local/apache2/modules/mod_wsgi.so
>> > /usr/local/apache2/build/libtool --mode=install cp mod_wsgi.la
>> > /usr/local/apache2/modules/
>> > cp .libs/mod_wsgi.so /usr/local/apache2/modules/mod_wsgi.so
>> > cp .libs/mod_wsgi.lai /usr/local/apache2/modules/mod_wsgi.la
>> > cp .libs/mod_wsgi.a /usr/local/apache2/modules/mod_wsgi.a
>> > chmod 644 /usr/local/apache2/modules/mod_wsgi.a
>> > ranlib /usr/local/apache2/modules/mod_wsgi.a
>> > ----------------------------------------------------------------------
>> > Libraries have been installed in:
>> >    /usr/local/apache2/modules
>> > If you ever happen to want to link against installed libraries
>> > in a given directory, LIBDIR, you must either use libtool, and
>> > specify the full pathname of the library, or use the `-LLIBDIR'
>> > flag during linking and do at least one of the following:
>> >    - add LIBDIR to the `LIBPATH' environment variable
>> >      during execution
>> >    - use the
>> >
>> > `-Wl,-blibpath:LIBDIR:/opt/freeware/lib/gcc/powerpc-ibm-aix5.3.0.0/4.2.4:/opt/freeware/lib/gcc/powerpc-ibm-aix5.3.0.0/4.2.4/../../..:/usr/lib:/lib
>> > ' linker flag
>> > See any operating system documentation about shared libraries for
>> > more information, such as the ld(1) and ld.so(8) manual pages.
>> > ----------------------------------------------------------------------
>> > chmod 755 /usr/local/apache2/modules/mod_wsgi.so
>> > Please let me know if I should provide some additional information.
>> > Regards,
>> > Anurag
>>
>>
>>
>> --
>> Born in Roswell... married an alien...
>>
>> ---------------------------------------------------------------------
>> The official User-To-User support forum of the Apache HTTP Server Project.
>> See <URL:http://httpd.apache.org/userslist.html> for more info.
>> To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
>>   "   from the digest: users-digest-unsubscribe@httpd.apache.org
>> For additional commands, e-mail: users-help@httpd.apache.org
>>
>
>



-- 
Born in Roswell... married an alien...

---------------------------------------------------------------------
The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:http://httpd.apache.org/userslist.html> for more info.
To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
   "   from the digest: users-digest-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-help@httpd.apache.org


Re: [users@httpd] Apache Startup Problems with mod_wsgi : Missing Symbols ap_cleanup_scoreboard and ap_accept_lock_mech

Posted by Anurag Chourasia <an...@gmail.com>.
Hi Jeff,

Your solution helped me overcome 1 of those 2 missing symbol reference but 1
still remains. Could you please guide me for this one too.

This is the error now.

httpd: Syntax error on line 53 of /usr/local/apache2/conf/httpd.conf: Cannot
load /usr/local/apache2/modules/mod_wsgi.so into server: rtld: 0712-001
Symbol ap_accept_lock_mech was referenced from module
/usr/local/apache2/modules/mod_wsgi.so(), but a runtime definition of the
symbol was not found.

Here is the mpm_common.h for me

  +300  #ifdef AP_MPM_WANT_SET_ACCEPT_LOCK_MECH
  +301  AP_DECLARE_DATA extern apr_lockmech_e ap_accept_lock_mech;
  +302  extern const char ap_valid_accept_mutex_string[];
  +303  const char *ap_mpm_set_accept_lock_mech(cmd_parms *cmd, void *dummy,
  +304                                          const char *arg);

Thanks again for your help on this.

Regards,
Anurag

On Mon, Nov 22, 2010 at 2:36 AM, Jeff Trawick <tr...@gmail.com> wrote:

> On Sun, Nov 21, 2010 at 3:22 PM, Anurag Chourasia
> <an...@gmail.com> wrote:
> > All,
> > I hope you could help me with a mod_wsgi load error upon startup of
> apache.
> > This is affecting one of our site Go Live and I would appreciate any help
> > offered in this regard.
> > The error upon startup of Apache is as follows
> > root [zibal]% ./usr/local/apache2/bin/apachectl restart
> > httpd: Syntax error on line 53 of /usr/local/apache2/conf/httpd.conf:
> > Cannot load /usr/local/apache2/modules/mod_wsgi.so into server:
> > rtld:0712-001 Symbol ap_cleanup_scoreboard was referenced from module
> > /usr/local/apache2/modules/mod_wsgi.so(), but a runtime definition of the
> > symbol was not found.
> > rtld: 0712-001 Symbol ap_accept_lock_mech was referenced from module
> > /usr/local/apache2/modules/mod_wsgi.so(), but a runtime definition of the
> > symbol was not found.
>
> those two functions aren't APIs (not expected to be called by
> modules), so maybe they aren't visible?
>
> perhaps there are special instructions *somewhere* from someone who
> has gotten mod_wsgi to work on AIX, as it is not supposed to work
>
> patch httpd with this, rebuild completely, and see if that gets you
> going; the two missing symbols should be exported with this patch
>
> Index: include/mpm_common.h
> ===================================================================
> --- include/mpm_common.h        (revision 1034992)
> +++ include/mpm_common.h        (working copy)
> @@ -298,7 +298,7 @@
>  * The system mutex implementation to use for the accept mutex.
>  */
>  #ifdef AP_MPM_WANT_SET_ACCEPT_LOCK_MECH
> -extern apr_lockmech_e ap_accept_lock_mech;
> +AP_DECLARE_DATA extern apr_lockmech_e ap_accept_lock_mech;
>  extern const char ap_valid_accept_mutex_string[];
>  const char *ap_mpm_set_accept_lock_mech(cmd_parms *cmd, void *dummy,
>                                         const char *arg);
> Index: include/scoreboard.h
> ===================================================================
> --- include/scoreboard.h        (revision 1034992)
> +++ include/scoreboard.h        (working copy)
> @@ -178,7 +178,7 @@
>  apr_status_t ap_reopen_scoreboard(apr_pool_t *p, apr_shm_t **shm, int
> detached);
>  void ap_init_scoreboard(void *shared_score);
>  AP_DECLARE(int) ap_calc_scoreboard_size(void);
> -apr_status_t ap_cleanup_scoreboard(void *d);
> +AP_DECLARE(apr_status_t) ap_cleanup_scoreboard(void *d);
>
>  AP_DECLARE(void) ap_create_sb_handle(ap_sb_handle_t **new_sbh, apr_pool_t
> *p,
>                                      int child_num, int thread_num);
>
>
> >
> > I am pasting the output of nm command on the apache executable and those
> > symbols seem to exist.
> > root [zibal]% nm ./usr/local/apache2/bin/httpd | grep
>  ap_accept_lock_mech
> > ap_accept_lock_mech  D   536880332
> > ap_accept_lock_mech  d   536900392           4
> > ap_accept_lock_mech:G879 -           0
> > root [zibal]% nm ./usr/local/apache2/bin/httpd | grep
> ap_cleanup_scoreboard
> > .ap_cleanup_scoreboard T   268613428         212
> > ap_cleanup_scoreboard D   536890068
> > ap_cleanup_scoreboard d   536890068          12
> > ap_cleanup_scoreboard d   536899972           4
> > ap_cleanup_scoreboard:F385 -        2976
> >
> > I am wondering if there is a way to statically link mod_wsgi into apache?
> > Please guide.
> > I built Apache 2.2.17 and Mod_Wsgi 3.3 using the source and the compiler
> was
> > gcc-4.2.
> >
> > Here is the Apache Build Information
> > =====================================
> > root [zibal]% ./usr/local/apache2/bin/httpd -V
> > Server version: Apache/2.2.17 (Unix)
> > Server built:   Nov 18 2010 05:04:25
> > Server's Module Magic Number: 20051115:25
> > Server loaded:  APR 1.4.2, APR-Util 1.3.10
> > Compiled using: APR 1.4.2, APR-Util 1.3.10
> > Architecture:   32-bit
> > Server MPM:     Prefork
> >  threaded:     no
> >    forked:     yes (variable process count)
> > Server compiled with....
> >  -D APACHE_MPM_DIR="server/mpm/prefork"
> >  -D APR_HAS_SENDFILE
> >  -D APR_HAS_MMAP
> >  -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
> >  -D APR_USE_SYSVSEM_SERIALIZE
> >  -D APR_USE_PTHREAD_SERIALIZE
> >  -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
> >  -D APR_HAS_OTHER_CHILD
> >  -D AP_HAVE_RELIABLE_PIPED_LOGS
> >  -D DYNAMIC_MODULE_LIMIT=128
> >  -D HTTPD_ROOT="/usr/local/apache2"
> >  -D SUEXEC_BIN="/usr/local/apache2/bin/suexec"
> >  -D DEFAULT_PIDLOG="logs/httpd.pid"
> >  -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
> >  -D DEFAULT_LOCKFILE="logs/accept.lock"
> >  -D DEFAULT_ERRORLOG="logs/error_log"
> >  -D AP_TYPES_CONFIG_FILE="conf/mime.types"
> >  -D SERVER_CONFIG_FILE="conf/httpd.conf"
> > Contents of config.nice file are as follows
> > ++++++++++++++++++++++++
> > #! /bin/sh
> > #
> > # Created by configure
> > CC="gcc"; export CC
> > "./configure" \
> > "CC=gcc" \
> > "$@"
> > ++++++++++++++++++++++++
> >
> >
> > Information about Apache Modules Loaded
> > =======================================
> > root [zibal]% ./usr/local/apache2/bin/httpd -l
> > Compiled in modules:
> >  core.c
> >  mod_authn_file.c
> >  mod_authn_default.c
> >  mod_authz_host.c
> >  mod_authz_groupfile.c
> >  mod_authz_user.c
> >  mod_authz_default.c
> >  mod_auth_basic.c
> >  mod_include.c
> >  mod_filter.c
> >  mod_log_config.c
> >  mod_env.c
> >  mod_setenvif.c
> >  mod_version.c
> >  prefork.c
> >  http_core.c
> >  mod_mime.c
> >  mod_status.c
> >  mod_autoindex.c
> >  mod_asis.c
> >  mod_cgi.c
> >  mod_negotiation.c
> >  mod_dir.c
> >  mod_actions.c
> >  mod_userdir.c
> >  mod_alias.c
> >  mod_so.c
> >
> > In httpd.conf, i only have the following LoadModule Statement
> > =============================================================
> > LoadModule wsgi_module modules/mod_wsgi.so
> > Information about Global Accept Mutex
> > =====================================
> > Valid accept mutexes for this platform and MPM are: default, fcntl,
> > sysvsem, posixsem, pthread.
> > Alo, here is my build session transcript while building
> mod_wsgi.....There
> > was absolutely no error during build.
> > root [zibal]% make
> >         /usr/local/apache2/bin/apxs -c -I/usr/local/include/python2.6
> > -DNDEBUG   mod_wsgi.c -L/usr/local/lib -L/usr/local/lib/python2.6/config
> >  -lpython2.6 -ldl -lm
> > /usr/local/apache2/build/libtool --silent --mode=compile gcc -prefer-pic
> > -U__STR__ -D_THREAD_SAFE -D_USE_IRS -D_LARGEFILE64_SOURCE -g -O2 -pthread
> > -I/usr/local/apache2/include  -I/usr/local/apache2/include
> > -I/usr/local/apache2/include -I/usr/local/include
> > -I/usr/local/include/python2.6 -DNDEBUG  -c -o mod_wsgi.lo mod_wsgi.c &&
> > touch mod_wsgi.slo
> > /usr/local/apache2/build/libtool --silent --mode=link gcc -o mod_wsgi.la
> >  -rpath /usr/local/apache2/modules -module -avoid-version  -Wl,-brtl
> >  mod_wsgi.lo -L/usr/local/lib -L/usr/local/lib/python2.6/config
> -lpython2.6
> > -ldl -lm
> > Target "all" is up to date.
> > root [zibal]% make install
> >         /usr/local/apache2/bin/apxs -i -S
> > LIBEXECDIR=/usr/local/apache2/modules -n 'mod_wsgi' mod_wsgi.la
> > /usr/local/apache2/build/instdso.sh
> > SH_LIBTOOL='/usr/local/apache2/build/libtool' mod_wsgi.la
> > /usr/local/apache2/modules
> > rm -f /usr/local/apache2/modules/mod_wsgi.so
> > /usr/local/apache2/build/libtool --mode=install cp mod_wsgi.la
> > /usr/local/apache2/modules/
> > cp .libs/mod_wsgi.so /usr/local/apache2/modules/mod_wsgi.so
> > cp .libs/mod_wsgi.lai /usr/local/apache2/modules/mod_wsgi.la
> > cp .libs/mod_wsgi.a /usr/local/apache2/modules/mod_wsgi.a
> > chmod 644 /usr/local/apache2/modules/mod_wsgi.a
> > ranlib /usr/local/apache2/modules/mod_wsgi.a
> > ----------------------------------------------------------------------
> > Libraries have been installed in:
> >    /usr/local/apache2/modules
> > If you ever happen to want to link against installed libraries
> > in a given directory, LIBDIR, you must either use libtool, and
> > specify the full pathname of the library, or use the `-LLIBDIR'
> > flag during linking and do at least one of the following:
> >    - add LIBDIR to the `LIBPATH' environment variable
> >      during execution
> >    - use the
> >
> `-Wl,-blibpath:LIBDIR:/opt/freeware/lib/gcc/powerpc-ibm-aix5.3.0.0/4.2.4:/opt/freeware/lib/gcc/powerpc-ibm-aix5.3.0.0/4.2.4/../../..:/usr/lib:/lib
> > ' linker flag
> > See any operating system documentation about shared libraries for
> > more information, such as the ld(1) and ld.so(8) manual pages.
> > ----------------------------------------------------------------------
> > chmod 755 /usr/local/apache2/modules/mod_wsgi.so
> > Please let me know if I should provide some additional information.
> > Regards,
> > Anurag
>
>
>
> --
> Born in Roswell... married an alien...
>
> ---------------------------------------------------------------------
> The official User-To-User support forum of the Apache HTTP Server Project.
> See <URL:http://httpd.apache.org/userslist.html> for more info.
> To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
>   "   from the digest: users-digest-unsubscribe@httpd.apache.org
> For additional commands, e-mail: users-help@httpd.apache.org
>
>

Re: [users@httpd] Apache Startup Problems with mod_wsgi : Missing Symbols ap_cleanup_scoreboard and ap_accept_lock_mech

Posted by Jeff Trawick <tr...@gmail.com>.
On Sun, Nov 21, 2010 at 3:22 PM, Anurag Chourasia
<an...@gmail.com> wrote:
> All,
> I hope you could help me with a mod_wsgi load error upon startup of apache.
> This is affecting one of our site Go Live and I would appreciate any help
> offered in this regard.
> The error upon startup of Apache is as follows
> root [zibal]% ./usr/local/apache2/bin/apachectl restart
> httpd: Syntax error on line 53 of /usr/local/apache2/conf/httpd.conf:
> Cannot load /usr/local/apache2/modules/mod_wsgi.so into server:
> rtld:0712-001 Symbol ap_cleanup_scoreboard was referenced from module
> /usr/local/apache2/modules/mod_wsgi.so(), but a runtime definition of the
> symbol was not found.
> rtld: 0712-001 Symbol ap_accept_lock_mech was referenced from module
> /usr/local/apache2/modules/mod_wsgi.so(), but a runtime definition of the
> symbol was not found.

those two functions aren't APIs (not expected to be called by
modules), so maybe they aren't visible?

perhaps there are special instructions *somewhere* from someone who
has gotten mod_wsgi to work on AIX, as it is not supposed to work

patch httpd with this, rebuild completely, and see if that gets you
going; the two missing symbols should be exported with this patch

Index: include/mpm_common.h
===================================================================
--- include/mpm_common.h	(revision 1034992)
+++ include/mpm_common.h	(working copy)
@@ -298,7 +298,7 @@
  * The system mutex implementation to use for the accept mutex.
  */
 #ifdef AP_MPM_WANT_SET_ACCEPT_LOCK_MECH
-extern apr_lockmech_e ap_accept_lock_mech;
+AP_DECLARE_DATA extern apr_lockmech_e ap_accept_lock_mech;
 extern const char ap_valid_accept_mutex_string[];
 const char *ap_mpm_set_accept_lock_mech(cmd_parms *cmd, void *dummy,
                                         const char *arg);
Index: include/scoreboard.h
===================================================================
--- include/scoreboard.h	(revision 1034992)
+++ include/scoreboard.h	(working copy)
@@ -178,7 +178,7 @@
 apr_status_t ap_reopen_scoreboard(apr_pool_t *p, apr_shm_t **shm, int
detached);
 void ap_init_scoreboard(void *shared_score);
 AP_DECLARE(int) ap_calc_scoreboard_size(void);
-apr_status_t ap_cleanup_scoreboard(void *d);
+AP_DECLARE(apr_status_t) ap_cleanup_scoreboard(void *d);

 AP_DECLARE(void) ap_create_sb_handle(ap_sb_handle_t **new_sbh, apr_pool_t *p,
                                      int child_num, int thread_num);


>
> I am pasting the output of nm command on the apache executable and those
> symbols seem to exist.
> root [zibal]% nm ./usr/local/apache2/bin/httpd | grep  ap_accept_lock_mech
> ap_accept_lock_mech  D   536880332
> ap_accept_lock_mech  d   536900392           4
> ap_accept_lock_mech:G879 -           0
> root [zibal]% nm ./usr/local/apache2/bin/httpd | grep ap_cleanup_scoreboard
> .ap_cleanup_scoreboard T   268613428         212
> ap_cleanup_scoreboard D   536890068
> ap_cleanup_scoreboard d   536890068          12
> ap_cleanup_scoreboard d   536899972           4
> ap_cleanup_scoreboard:F385 -        2976
>
> I am wondering if there is a way to statically link mod_wsgi into apache?
> Please guide.
> I built Apache 2.2.17 and Mod_Wsgi 3.3 using the source and the compiler was
> gcc-4.2.
>
> Here is the Apache Build Information
> =====================================
> root [zibal]% ./usr/local/apache2/bin/httpd -V
> Server version: Apache/2.2.17 (Unix)
> Server built:   Nov 18 2010 05:04:25
> Server's Module Magic Number: 20051115:25
> Server loaded:  APR 1.4.2, APR-Util 1.3.10
> Compiled using: APR 1.4.2, APR-Util 1.3.10
> Architecture:   32-bit
> Server MPM:     Prefork
>  threaded:     no
>    forked:     yes (variable process count)
> Server compiled with....
>  -D APACHE_MPM_DIR="server/mpm/prefork"
>  -D APR_HAS_SENDFILE
>  -D APR_HAS_MMAP
>  -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
>  -D APR_USE_SYSVSEM_SERIALIZE
>  -D APR_USE_PTHREAD_SERIALIZE
>  -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
>  -D APR_HAS_OTHER_CHILD
>  -D AP_HAVE_RELIABLE_PIPED_LOGS
>  -D DYNAMIC_MODULE_LIMIT=128
>  -D HTTPD_ROOT="/usr/local/apache2"
>  -D SUEXEC_BIN="/usr/local/apache2/bin/suexec"
>  -D DEFAULT_PIDLOG="logs/httpd.pid"
>  -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
>  -D DEFAULT_LOCKFILE="logs/accept.lock"
>  -D DEFAULT_ERRORLOG="logs/error_log"
>  -D AP_TYPES_CONFIG_FILE="conf/mime.types"
>  -D SERVER_CONFIG_FILE="conf/httpd.conf"
> Contents of config.nice file are as follows
> ++++++++++++++++++++++++
> #! /bin/sh
> #
> # Created by configure
> CC="gcc"; export CC
> "./configure" \
> "CC=gcc" \
> "$@"
> ++++++++++++++++++++++++
>
>
> Information about Apache Modules Loaded
> =======================================
> root [zibal]% ./usr/local/apache2/bin/httpd -l
> Compiled in modules:
>  core.c
>  mod_authn_file.c
>  mod_authn_default.c
>  mod_authz_host.c
>  mod_authz_groupfile.c
>  mod_authz_user.c
>  mod_authz_default.c
>  mod_auth_basic.c
>  mod_include.c
>  mod_filter.c
>  mod_log_config.c
>  mod_env.c
>  mod_setenvif.c
>  mod_version.c
>  prefork.c
>  http_core.c
>  mod_mime.c
>  mod_status.c
>  mod_autoindex.c
>  mod_asis.c
>  mod_cgi.c
>  mod_negotiation.c
>  mod_dir.c
>  mod_actions.c
>  mod_userdir.c
>  mod_alias.c
>  mod_so.c
>
> In httpd.conf, i only have the following LoadModule Statement
> =============================================================
> LoadModule wsgi_module modules/mod_wsgi.so
> Information about Global Accept Mutex
> =====================================
> Valid accept mutexes for this platform and MPM are: default, fcntl,
> sysvsem, posixsem, pthread.
> Alo, here is my build session transcript while building mod_wsgi.....There
> was absolutely no error during build.
> root [zibal]% make
>         /usr/local/apache2/bin/apxs -c -I/usr/local/include/python2.6
> -DNDEBUG   mod_wsgi.c -L/usr/local/lib -L/usr/local/lib/python2.6/config
>  -lpython2.6 -ldl -lm
> /usr/local/apache2/build/libtool --silent --mode=compile gcc -prefer-pic
> -U__STR__ -D_THREAD_SAFE -D_USE_IRS -D_LARGEFILE64_SOURCE -g -O2 -pthread
> -I/usr/local/apache2/include  -I/usr/local/apache2/include
> -I/usr/local/apache2/include -I/usr/local/include
> -I/usr/local/include/python2.6 -DNDEBUG  -c -o mod_wsgi.lo mod_wsgi.c &&
> touch mod_wsgi.slo
> /usr/local/apache2/build/libtool --silent --mode=link gcc -o mod_wsgi.la
>  -rpath /usr/local/apache2/modules -module -avoid-version  -Wl,-brtl
>  mod_wsgi.lo -L/usr/local/lib -L/usr/local/lib/python2.6/config -lpython2.6
> -ldl -lm
> Target "all" is up to date.
> root [zibal]% make install
>         /usr/local/apache2/bin/apxs -i -S
> LIBEXECDIR=/usr/local/apache2/modules -n 'mod_wsgi' mod_wsgi.la
> /usr/local/apache2/build/instdso.sh
> SH_LIBTOOL='/usr/local/apache2/build/libtool' mod_wsgi.la
> /usr/local/apache2/modules
> rm -f /usr/local/apache2/modules/mod_wsgi.so
> /usr/local/apache2/build/libtool --mode=install cp mod_wsgi.la
> /usr/local/apache2/modules/
> cp .libs/mod_wsgi.so /usr/local/apache2/modules/mod_wsgi.so
> cp .libs/mod_wsgi.lai /usr/local/apache2/modules/mod_wsgi.la
> cp .libs/mod_wsgi.a /usr/local/apache2/modules/mod_wsgi.a
> chmod 644 /usr/local/apache2/modules/mod_wsgi.a
> ranlib /usr/local/apache2/modules/mod_wsgi.a
> ----------------------------------------------------------------------
> Libraries have been installed in:
>    /usr/local/apache2/modules
> If you ever happen to want to link against installed libraries
> in a given directory, LIBDIR, you must either use libtool, and
> specify the full pathname of the library, or use the `-LLIBDIR'
> flag during linking and do at least one of the following:
>    - add LIBDIR to the `LIBPATH' environment variable
>      during execution
>    - use the
> `-Wl,-blibpath:LIBDIR:/opt/freeware/lib/gcc/powerpc-ibm-aix5.3.0.0/4.2.4:/opt/freeware/lib/gcc/powerpc-ibm-aix5.3.0.0/4.2.4/../../..:/usr/lib:/lib
> ' linker flag
> See any operating system documentation about shared libraries for
> more information, such as the ld(1) and ld.so(8) manual pages.
> ----------------------------------------------------------------------
> chmod 755 /usr/local/apache2/modules/mod_wsgi.so
> Please let me know if I should provide some additional information.
> Regards,
> Anurag



-- 
Born in Roswell... married an alien...

---------------------------------------------------------------------
The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:http://httpd.apache.org/userslist.html> for more info.
To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
   "   from the digest: users-digest-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-help@httpd.apache.org


Re: [users@httpd] Apache Startup Problems with mod_wsgi : Missing Symbols ap_cleanup_scoreboard and ap_accept_lock_mech

Posted by Anurag Chourasia <an...@gmail.com>.
Hi Jeroen,

Thanks for your response.

>From the build transcript provided in the earlier email, the mod_wsgi module
make step is as follows and i see that apxs was used(and apxs internally
used gcc)

Please see the make step below. Please let me know if this seems ok to you
and what else could be the problem?

root [zibal]% make
        /usr/local/apache2/bin/apxs -c -I/usr/local/include/python2.6
-DNDEBUG   mod_wsgi.c -L/usr/local/lib -L/usr/local/lib/python2.6/config
 -lpython2.6 -ldl -lm
/usr/local/apache2/build/libtool --silent --mode=compile gcc -prefer-pic
-U__STR__ -D_THREAD_SAFE -D_USE_IRS -D_LARGEFILE64_SOURCE -g -O2 -pthread
-I/usr/local/apache2/include  -I/usr/local/apache2/include
-I/usr/local/apache2/include -I/usr/local/include
-I/usr/local/include/python2.6 -DNDEBUG  -c -o mod_wsgi.lo mod_wsgi.c &&
touch mod_wsgi.slo
/usr/local/apache2/build/libtool --silent --mode=link gcc -o
mod_wsgi.la  -rpath
/usr/local/apache2/modules -module -avoid-version  -Wl,-brtl  mod_wsgi.lo
-L/usr/local/lib -L/usr/local/lib/python2.6/config -lpython2.6 -ldl -lm
Target "all" is up to date.

Regards,
Anurag

On Mon, Nov 22, 2010 at 1:55 AM, Jeroen Geilman <je...@adaptr.nl> wrote:

> On 11/21/2010 09:22 PM, Anurag Chourasia wrote:
>
>> All,
>>
>> I hope you could help me with a mod_wsgi load error upon startup of
>> apache. This is affecting one of our site Go Live and I would appreciate any
>> help offered in this regard.
>>
>> The error upon startup of Apache is as follows
>>
>> root [zibal]% ./usr/local/apache2/bin/apachectl restart
>> httpd: Syntax error on line 53 of /usr/local/apache2/conf/httpd.conf:
>> Cannot load /usr/local/apache2/modules/mod_wsgi.so into server:
>> rtld:0712-001 Symbol ap_cleanup_scoreboard was referenced from module
>> /usr/local/apache2/modules/mod_wsgi.so(), but a runtime definition of the
>> symbol was not found.
>> rtld: 0712-001 Symbol ap_accept_lock_mech was referenced from module
>> /usr/local/apache2/modules/mod_wsgi.so(), but a runtime definition of the
>> symbol was not found.
>>
>>
> Apxs
>
>
>  I built Apache 2.2.17 and Mod_Wsgi 3.3 using the source and the compiler
>> was gcc-4.2.
>>
>
> But not with apxs.
> You MUST build apache modules with apxs.
>
> --
> J.
>
>
> ---------------------------------------------------------------------
> The official User-To-User support forum of the Apache HTTP Server Project.
> See <URL:http://httpd.apache.org/userslist.html> for more info.
> To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
>  "   from the digest: users-digest-unsubscribe@httpd.apache.org
> For additional commands, e-mail: users-help@httpd.apache.org
>
>

Re: [users@httpd] Apache Startup Problems with mod_wsgi : Missing Symbols ap_cleanup_scoreboard and ap_accept_lock_mech

Posted by Jeroen Geilman <je...@adaptr.nl>.
On 11/21/2010 09:22 PM, Anurag Chourasia wrote:
> All,
>
> I hope you could help me with a mod_wsgi load error upon startup of 
> apache. This is affecting one of our site Go Live and I would 
> appreciate any help offered in this regard.
>
> The error upon startup of Apache is as follows
>
> root [zibal]% ./usr/local/apache2/bin/apachectl restart
> httpd: Syntax error on line 53 of /usr/local/apache2/conf/httpd.conf:
> Cannot load /usr/local/apache2/modules/mod_wsgi.so into server:
> rtld:0712-001 Symbol ap_cleanup_scoreboard was referenced from module 
> /usr/local/apache2/modules/mod_wsgi.so(), but a runtime definition of 
> the symbol was not found.
> rtld: 0712-001 Symbol ap_accept_lock_mech was referenced from module 
> /usr/local/apache2/modules/mod_wsgi.so(), but a runtime definition of 
> the symbol was not found.
>

Apxs

> I built Apache 2.2.17 and Mod_Wsgi 3.3 using the source and the 
> compiler was gcc-4.2.

But not with apxs.
You MUST build apache modules with apxs.

-- 
J.


---------------------------------------------------------------------
The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:http://httpd.apache.org/userslist.html> for more info.
To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
   "   from the digest: users-digest-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-help@httpd.apache.org