problem with Apache apreq2 on SLES 12 SP1

André Warnier (tomcat/perl) <[email protected]>
Newsgroups gmane.comp.apache.mod-perl
Message-ID <[email protected]>
Hi.

Since the following is quite long, here is the question :
does the following ring any bell to anyone here ?

Thanks in advance.
André

Description:

We get the following issue on a customer system on which we install an application.
The system was initially installed by the customer's own IT specialists.

The OS version is SLES 12 SP1 (Suse).

Initial versions:

     Information for package apache2:
     --------------------------------
     Repository: SLES12-SP1-Updates
     Name: apache2
     Version: 2.4.16-19.1
     Arch: x86_64
     Vendor: SUSE LLC <https://www.suse.com/>

     Information for package apache2-mod_perl:
     -----------------------------------------
     Repository: SLES12-SP1-Pool
     Name: apache2-mod_perl
     Version: 2.0.8-11.43
     Arch: x86_64
     Vendor: SUSE LLC <https://www.suse.com/>

Generally-speaking, mod_perl and the application are working, but
when trying to access a specific Template::Toolkit controlled page, we got an error in the 
Apache log, that Apache2::Cookie is missing. Trying to install it via cpan failed, due to 
a missing apxs binary. That is in apache2-devel, but no -devel packages where available
on the system initially.

That was changed via

     SUSEConnect -p sle-sdk/12.1/x86_64 # "sdk" contains the -devel packages
     zypper install apache2-devel

     Information for package apache2-devel:
     --------------------------------------
     Repository: SLE-SDK12-SP1-Updates
     Name: apache2-devel
     Version: 2.4.16-19.1
     Arch: x86_64
     Vendor: SUSE LLC <https://www.suse.com/>


Other packages that where at some point installed, I'm not quite sure on the
order:


     Information for package libapr1:
     --------------------------------
     Repository: SLES12-SP1-Pool
     Name: libapr1
     Version: 1.5.1-2.7
     Arch: x86_64
     Vendor: SUSE LLC <https://www.suse.com/>

     Information for package libapr1-devel:
     --------------------------------------
     Repository: SLE-SDK12-SP1-Pool
     Name: libapr1-devel
     Version: 1.5.1-2.7
     Arch: x86_64
     Vendor: SUSE LLC <https://www.suse.com/>

     Information for package libapr-util1:
     -------------------------------------
     Repository: SLES12-SP1-Pool
     Name: libapr-util1
     Version: 1.5.3-1.77
     Arch: x86_64
     Vendor: SUSE LLC <https://www.suse.com/>

     Information for package libapr-util1-devel:
     -------------------------------------------
     Repository: SLE-SDK12-SP1-Pool
     Name: libapr-util1-devel
     Version: 1.5.3-1.77
     Arch: x86_64
     Vendor: SUSE LLC <https://www.suse.com/>

Installing Apache2::Cookie still failed with:

 
/root/.cpanm/work/1590841954.10393/libapreq2-2.13/glue/perl/xsbuilder/apreq_xs_postperl.h:22:34: 
fatal error: modperl_perl_unembed.h: No such file or directory

The missing file is in mod_perl-devel, which doesn't exist in SLES12 SP1,
but I found a matching version here, which I donwnloaded an installed:

 
http://download.takehoa.org/SLES/12.4/SDK/DVD1/suse/x86_64/apache2-mod_perl-devel-2.0.8-11.43.x86_64.rpm

     Information for package apache2-mod_perl-devel:
     -----------------------------------------------
     Repository: @System
     Name: apache2-mod_perl-devel
     Version: 2.0.8-11.43
     Arch: x86_64
     Vendor: SUSE LLC <https://www.suse.com/>


Installing Apache2::Cookie now worked. build.log is attached.


But with this :

     LoadModule perl_module /usr/lib64/apache2/mod_perl.so
     LoadModule apreq2_module /usr/lib64/apache2/mod_apreq2.so

in the httpd config, httpd doesn't start with:

     httpd-prefork: Syntax error in -C/-c directive: Syntax error on line 26 of 
/etc/apache2/sysconfig.d/loadmodule.conf: Can't locate API module structure 
`apreq2_module' in file /usr/lib64/apache2/mod_apreq2.so: 
/usr/lib64/apache2/mod_apreq2.so: undefined symbol: apreq2_module

With only:

     LoadModule perl_module /usr/lib64/apache2/mod_perl.so

httpd does start, but upon accessing a page, which results in the usage of 
Apache2::Cookie, we get :

     /usr/sbin/httpd-prefork: symbol lookup error: 
/usr/lib/perl5/site_perl/5.18.2/x86_64-linux-thread-multi/auto/APR/Request/Apache2/Apache2.so: 
undefined symbol: apreq_handle_apache2

Maybe also relevant:

# ldd -r /usr/lib64/apache2/mod_perl.so
           linux-vdso.so.1 (0x00007ffe9ebe7000)
           libperl.so => /usr/lib/perl5/5.18.2/x86_64-linux-thread-multi/CORE/libperl.so 
(0x00007f24397dd000)
           libdl.so.2 => /lib64/libdl.so.2 (0x00007f24395d9000)
           libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f24393bc000)
           libc.so.6 => /lib64/libc.so.6 (0x00007f2439014000)
           libm.so.6 => /lib64/libm.so.6 (0x00007f2438d13000)
           libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007f2438ad8000)
           /lib64/ld-linux-x86-64.so.2 (0x00007f2439db1000)
undefined symbol: apr_bucket_shared_split       (/usr/lib64/apache2/mod_perl.so)
undefined symbol: apr_bucket_shared_copy        (/usr/lib64/apache2/mod_perl.so)
undefined symbol: ap_server_config_defines      (/usr/lib64/apache2/mod_perl.so)
undefined symbol: apr_bucket_free       (/usr/lib64/apache2/mod_perl.so)
undefined symbol: apr_bucket_type_eos   (/usr/lib64/apache2/mod_perl.so)
undefined symbol: ap_server_root        (/usr/lib64/apache2/mod_perl.so)
undefined symbol: apr_pool_cleanup_null (/usr/lib64/apache2/mod_perl.so)
undefined symbol: core_module   (/usr/lib64/apache2/mod_perl.so)
undefined symbol: ap_add_input_filter   (/usr/lib64/apache2/mod_perl.so)
undefined symbol: apr_bucket_type_flush (/usr/lib64/apache2/mod_perl.so)
undefined symbol: ap_add_output_filter  (/usr/lib64/apache2/mod_perl.so)
undefined symbol: ap_register_auth_provider     (/usr/lib64/apache2/mod_perl.so)
undefined symbol: apr_array_make        (/usr/lib64/apache2/mod_perl.so)
undefined symbol: apr_pmemdup   (/usr/lib64/apache2/mod_perl.so)
undefined symbol: apr_table_addn        (/usr/lib64/apache2/mod_perl.so)
undefined symbol: ap_scan_script_header_err_strs        (/usr/lib64/apache2/mod_perl.so)
undefined symbol: ap_hook_access_checker        (/usr/lib64/apache2/mod_perl.so)
undefined symbol: apr_pstrmemdup        (/usr/lib64/apache2/mod_perl.so)
undefined symbol: apr_pool_tag  (/usr/lib64/apache2/mod_perl.so)
undefined symbol: apr_hash_set  (/usr/lib64/apache2/mod_perl.so)
undefined symbol: apr_array_copy        (/usr/lib64/apache2/mod_perl.so)
undefined symbol: ap_hook_handler       (/usr/lib64/apache2/mod_perl.so)
undefined symbol: ap_hook_header_parser (/usr/lib64/apache2/mod_perl.so)
undefined symbol: ap_getword_nc (/usr/lib64/apache2/mod_perl.so)
undefined symbol: ap_merge_per_dir_configs      (/usr/lib64/apache2/mod_perl.so)
undefined symbol: ap_get_server_banner  (/usr/lib64/apache2/mod_perl.so)
undefined symbol: apr_cpystrn   (/usr/lib64/apache2/mod_perl.so)
undefined symbol: ap_hook_open_logs     (/usr/lib64/apache2/mod_perl.so)
undefined symbol: apr_table_set (/usr/lib64/apache2/mod_perl.so)
undefined symbol: apr_bucket_transient_create   (/usr/lib64/apache2/mod_perl.so)
undefined symbol: apr_pool_create_ex    (/usr/lib64/apache2/mod_perl.so)
undefined symbol: apr_env_get   (/usr/lib64/apache2/mod_perl.so)
undefined symbol: apr_table_get (/usr/lib64/apache2/mod_perl.so)
undefined symbol: apr_pool_clear        (/usr/lib64/apache2/mod_perl.so)
undefined symbol: apr_table_compress    (/usr/lib64/apache2/mod_perl.so)
undefined symbol: apr_threadkey_private_set     (/usr/lib64/apache2/mod_perl.so)
undefined symbol: ap_pcfg_open_custom   (/usr/lib64/apache2/mod_perl.so)
undefined symbol: ap_hook_pre_config    (/usr/lib64/apache2/mod_perl.so)
undefined symbol: ap_walk_config        (/usr/lib64/apache2/mod_perl.so)
undefined symbol: apr_table_elts        (/usr/lib64/apache2/mod_perl.so)
undefined symbol: ap_add_common_vars    (/usr/lib64/apache2/mod_perl.so)
undefined symbol: ap_hook_type_checker  (/usr/lib64/apache2/mod_perl.so)
undefined symbol: ap_internal_redirect_handler  (/usr/lib64/apache2/mod_perl.so)
undefined symbol: apr_table_unset       (/usr/lib64/apache2/mod_perl.so)
undefined symbol: ap_hook_post_config   (/usr/lib64/apache2/mod_perl.so)
undefined symbol: apr_pool_cleanup_register     (/usr/lib64/apache2/mod_perl.so)
undefined symbol: apr_table_overlap     (/usr/lib64/apache2/mod_perl.so)
undefined symbol: ap_get_brigade        (/usr/lib64/apache2/mod_perl.so)
undefined symbol: apr_palloc    (/usr/lib64/apache2/mod_perl.so)
undefined symbol: apr_brigade_destroy   (/usr/lib64/apache2/mod_perl.so)
undefined symbol: ap_hook_map_to_storage        (/usr/lib64/apache2/mod_perl.so)
undefined symbol: ap_get_input_filter_handle    (/usr/lib64/apache2/mod_perl.so)
undefined symbol: apr_pool_userdata_get (/usr/lib64/apache2/mod_perl.so)
undefined symbol: ap_hook_pre_connection        (/usr/lib64/apache2/mod_perl.so)
undefined symbol: apr_vsnprintf (/usr/lib64/apache2/mod_perl.so)
undefined symbol: apr_bucket_free       (/usr/lib64/apache2/mod_perl.so)
undefined symbol: apr_brigade_flatten   (/usr/lib64/apache2/mod_perl.so)
undefined symbol: ap_cfg_getline        (/usr/lib64/apache2/mod_perl.so)
undefined symbol: apr_brigade_create    (/usr/lib64/apache2/mod_perl.so)
undefined symbol: ap_hook_post_read_request     (/usr/lib64/apache2/mod_perl.so)
undefined symbol: apr_file_read (/usr/lib64/apache2/mod_perl.so)
undefined symbol: ap_hook_child_init    (/usr/lib64/apache2/mod_perl.so)
undefined symbol: ap_hook_insert_filter (/usr/lib64/apache2/mod_perl.so)
undefined symbol: ap_register_input_filter      (/usr/lib64/apache2/mod_perl.so)
undefined symbol: ap_log_error_ (/usr/lib64/apache2/mod_perl.so)
undefined symbol: ap_single_module_configure    (/usr/lib64/apache2/mod_perl.so)
undefined symbol: apr_table_setn        (/usr/lib64/apache2/mod_perl.so)
undefined symbol: apr_uuid_get  (/usr/lib64/apache2/mod_perl.so)
undefined symbol: apr_file_close        (/usr/lib64/apache2/mod_perl.so)
undefined symbol: apr_pstrdup   (/usr/lib64/apache2/mod_perl.so)
undefined symbol: ap_build_config       (/usr/lib64/apache2/mod_perl.so)
undefined symbol: ap_hook_log_transaction       (/usr/lib64/apache2/mod_perl.so)
undefined symbol: apr_table_merge       (/usr/lib64/apache2/mod_perl.so)
undefined symbol: ap_cfg_closefile      (/usr/lib64/apache2/mod_perl.so)
undefined symbol: ap_create_per_dir_config      (/usr/lib64/apache2/mod_perl.so)
undefined symbol: ap_register_output_filter     (/usr/lib64/apache2/mod_perl.so)
undefined symbol: apr_hash_make (/usr/lib64/apache2/mod_perl.so)
undefined symbol: apr_snprintf  (/usr/lib64/apache2/mod_perl.so)
undefined symbol: ap_remove_loaded_module       (/usr/lib64/apache2/mod_perl.so)
undefined symbol: apr_psprintf  (/usr/lib64/apache2/mod_perl.so)
undefined symbol: apr_bucket_flush_create       (/usr/lib64/apache2/mod_perl.so)
undefined symbol: apr_os_thread_current (/usr/lib64/apache2/mod_perl.so)
undefined symbol: ap_reserve_module_slots_directive     (/usr/lib64/apache2/mod_perl.so)
undefined symbol: apr_threadkey_private_create  (/usr/lib64/apache2/mod_perl.so)
undefined symbol: ap_add_version_component      (/usr/lib64/apache2/mod_perl.so)
undefined symbol: apr_bucket_pool_make  (/usr/lib64/apache2/mod_perl.so)
undefined symbol: apr_brigade_cleanup   (/usr/lib64/apache2/mod_perl.so)
undefined symbol: apr_bucket_alloc      (/usr/lib64/apache2/mod_perl.so)
undefined symbol: ap_hook_process_connection    (/usr/lib64/apache2/mod_perl.so)
undefined symbol: apr_table_copy        (/usr/lib64/apache2/mod_perl.so)
undefined symbol: apr_table_overlay     (/usr/lib64/apache2/mod_perl.so)
undefined symbol: apr_table_clear       (/usr/lib64/apache2/mod_perl.so)
undefined symbol: ap_hook_fixups        (/usr/lib64/apache2/mod_perl.so)
undefined symbol: ap_getword    (/usr/lib64/apache2/mod_perl.so)
undefined symbol: apr_array_push        (/usr/lib64/apache2/mod_perl.so)
undefined symbol: apr_pool_destroy      (/usr/lib64/apache2/mod_perl.so)
undefined symbol: ap_str_tolower        (/usr/lib64/apache2/mod_perl.so)
undefined symbol: apr_stat      (/usr/lib64/apache2/mod_perl.so)
undefined symbol: ap_hook_check_user_id (/usr/lib64/apache2/mod_perl.so)
undefined symbol: apr_file_open (/usr/lib64/apache2/mod_perl.so)
undefined symbol: ap_hook_create_request        (/usr/lib64/apache2/mod_perl.so)
undefined symbol: ap_add_cgi_vars       (/usr/lib64/apache2/mod_perl.so)
undefined symbol: apr_bucket_shared_make        (/usr/lib64/apache2/mod_perl.so)
undefined symbol: apr_table_make        (/usr/lib64/apache2/mod_perl.so)
undefined symbol: ap_log_rerror_        (/usr/lib64/apache2/mod_perl.so)
undefined symbol: apr_pool_userdata_set (/usr/lib64/apache2/mod_perl.so)
undefined symbol: apr_pstrcat   (/usr/lib64/apache2/mod_perl.so)
undefined symbol: apr_bucket_eos_create (/usr/lib64/apache2/mod_perl.so)
undefined symbol: apr_dynamic_fn_register       (/usr/lib64/apache2/mod_perl.so)
undefined symbol: ap_hook_auth_checker  (/usr/lib64/apache2/mod_perl.so)
undefined symbol: apr_pstrndup  (/usr/lib64/apache2/mod_perl.so)
undefined symbol: ap_hook_translate_name        (/usr/lib64/apache2/mod_perl.so)
undefined symbol: ap_get_output_filter_handle   (/usr/lib64/apache2/mod_perl.so)
undefined symbol: ap_mpm_query  (/usr/lib64/apache2/mod_perl.so)
undefined symbol: apr_initialize        (/usr/lib64/apache2/mod_perl.so)
undefined symbol: apr_is_empty_table    (/usr/lib64/apache2/mod_perl.so)
undefined symbol: apr_threadkey_private_get     (/usr/lib64/apache2/mod_perl.so)
undefined symbol: apr_file_write        (/usr/lib64/apache2/mod_perl.so)
undefined symbol: ap_pass_brigade       (/usr/lib64/apache2/mod_perl.so)
undefined symbol: apr_strerror  (/usr/lib64/apache2/mod_perl.so)
undefined symbol: apr_bucket_shared_destroy     (/usr/lib64/apache2/mod_perl.so)
undefined symbol: apr_file_printf       (/usr/lib64/apache2/mod_perl.so)
undefined symbol: apr_filepath_merge    (/usr/lib64/apache2/mod_perl.so)
undefined symbol: apr_uuid_format       (/usr/lib64/apache2/mod_perl.so)
undefined symbol: apr_threadkey_private_delete  (/usr/lib64/apache2/mod_perl.so)
undefined symbol: apr_hash_get  (/usr/lib64/apache2/mod_perl.so)
undefined symbol: apr_pool_pre_cleanup_register (/usr/lib64/apache2/mod_perl.so)
undefined symbol: ap_check_cmd_context  (/usr/lib64/apache2/mod_perl.so)
undefined symbol: ap_add_loaded_module  (/usr/lib64/apache2/mod_perl.so)

# ldd -r /usr/lib64/apache2/mod_apreq2.so
           linux-vdso.so.1 (0x00007ffdcd29a000)
           libapreq2.so.3 => /usr/lib/libapreq2.so.3 (0x00007f5b6c6f3000)
           librt.so.1 => /lib64/librt.so.1 (0x00007f5b6c4eb000)
           libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f5b6c2ce000)
           libdl.so.2 => /lib64/libdl.so.2 (0x00007f5b6c0ca000)
           libexpat.so.1 => /usr/lib64/libexpat.so.1 (0x00007f5b6bea0000)
           libapr-1.so.0 => /usr/lib64/libapr-1.so.0 (0x00007f5b6bc6c000)
           libaprutil-1.so.0 => /usr/lib64/libaprutil-1.so.0 (0x00007f5b6ba43000)
           libc.so.6 => /lib64/libc.so.6 (0x00007f5b6b69b000)
           /lib64/ld-linux-x86-64.so.2 (0x00007f5b6cb08000)
           libuuid.so.1 => /usr/lib64/libuuid.so.1 (0x00007f5b6b496000)
           libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007f5b6b25b000)
undefined symbol: ap_hook_post_config   (/usr/lib64/apache2/mod_apreq2.so)
undefined symbol: ap_get_brigade        (/usr/lib64/apache2/mod_apreq2.so)
undefined symbol: ap_register_input_filter      (/usr/lib64/apache2/mod_apreq2.so)
undefined symbol: ap_log_error_ (/usr/lib64/apache2/mod_apreq2.so)
undefined symbol: ap_remove_input_filter        (/usr/lib64/apache2/mod_apreq2.so)
undefined symbol: ap_add_version_component      (/usr/lib64/apache2/mod_apreq2.so)
undefined symbol: ap_log_rerror_        (/usr/lib64/apache2/mod_apreq2.so)
undefined symbol: ap_add_input_filter   (/usr/lib64/apache2/mod_apreq2.so)
undefined symbol: ap_check_cmd_context  (/usr/lib64/apache2/mod_apreq2.so)
build.log (text/x-c, 101.6 KB) - not displayed
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.