Mailing List Archive

problem with Apache apreq2 on SLES 12 SP1
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)