When trying to authenticate using mod_auth_ldap in Apache 2.0.45 it causes the child pid to die and returns a signal bus error (10) in the error_log [Fri May 09 15:57:54 2003] [notice] child pid 1402 exit signal Bus error (10) [Fri May 09 15:57:54 2003] [notice] child pid 1401 exit signal Bus error (10) For informational purposes, the build process was as follows: 1. Installed Solaris 8 and added recommended patch cluster (v.19) 2. Built BerkeleyDB 4.1.25 using the following commands $ cd db-4.1.25/build_unix $ ../dist/configure $ make $ make install 3. I then built openldap 2.1.17 $ cd openldap-2.1.17 $ CPPFLAGS="-I/usr/local/BerkeleyDB.4.1/include" LDFALGS="- L/usr/local/BerkeleyDB.4.1/lib" ./configure --prefix=/usr/local/openldap-2.1.17 $ make $ make install 4. I built apache_2.0.45 using the following configure commands: ./configure \ --prefix=/usr/local/apache_2.0.45 \ --with-mpm=worker \ --enable-dav=static \ --enable-dav_fs=static \ --with-ldap=yes \ --with-ldap-include=/usr/local/openldap-2.1.17/include \ --with-ldap-lib=/usr/local/openldap-2.1.17/lib \ --enable-ldap=static \ --enable-auth_ldap=static \ Once I have successfully built apache, I use the following virtual host: <VirtualHost *:8080> ServerAdmin admin@ngfl.gov.uk DocumentRoot /usr/local/apache/htdocs ServerName testserver.mydomain.com <Directory /usr/local/apache/htdocs> Options FollowSymLinks Indexes AuthName "test mendeleev" AuthType Basic AuthLDAPEnabled On AuthLDAPURL ldap://doesntexist.ngfl.gov.uk/o=ngfl?uid?one AuthLDAPAuthoritative On require valid-user </Directory> </VirtualHost> When I try to access the page, it will display the standard login box and when i enter in any details it will return the signal bus error. I have tried the above on Redhat Linux 9 and it works fine. It would appear to be a problem in Solaris 8. I am more than willing to run debug if someone can tell me how (im not a developer!) Thanks, Tim.
Can you get a coredump and backtrace? Assuming you're starting Apache as root, here is the normal mumbo-jumbo on Solaris: 1) use Apache CoredumpDirectory directive to point to directory that web user id can write to 2) use Solaris coreadm command to allow setuid programs to write coredumps 3) recreate problem, then use Solaris pstack command against coredump to get backtraces, then post the backtraces to the PR Thanks!
Hi, Here is the backtrace you have requested. The process ID 1780 matches the signal bus error reported in the apache logs. hth Tim. core 'core' of 1780: /usr/local/apache_2.0.45/bin/httpd -k start ----------------- lwp# 4 / thread# 6 -------------------- 0002a384 util_ald_create_cache (bd400, 29cc0, 29cd4, 29a70, 29b80, fe8058d4) + 180 0002a894 util_ald_create_caches (c9840, 1577f8, 11e398, fef20398, 11e368, bb000) + 28 00029318 util_ldap_cache_checkuserid (0, 11e2d8, 1, 157840, 0, 157848) + 468 0002b2c8 mod_auth_ldap_check_user_id (fe805a34, 8f800, ffffdfe8, 2, 1, 159e60) + 190 0008353c ap_process_request_internal (19c4e8, 0, ffffffff, fee70020, fee70020, 0) + 340 00039b48 ap_process_request (19c4e8, b9800, 4, 19c4e8, 1905f0, a1f28) + e0 00034bc0 ap_process_http_connection (190598, 15a118, bafb0, 1, 34ac8, 1) + f8 0007791c ap_process_connection (190598, 0, 1904b8, 1, 190590, 15db68) + f0 0006ab70 worker_thread (190598, 1, bb400, bb400, ba000, bb400) + 228 ff2542d0 dummy_worker (11fe10, feee5d10, 0, 5, 1, fe401000) + c fef0b728 _thread_start (11fe10, 0, 0, 0, 0, 0) + 40 ----------------- lwp# 1 / thread# 1 -------------------- ff01e52c _read (1, 69cb4, 0, fef1e000, 69c00, 110c65) + c 00069490 child_main (b8800, 69064, fef1ef98, 0, 0, fef1efb8) + 3a4 0006859c make_child (0, 0, 6, fee70020, 0, 0) + 84 0006800c ap_mpm_run (b8800, 103a50, bb400, c8518, 7c, 1c8) + 424 00070ce0 main (c39d0, c5958, ffbefa0c, bb060, 0, 0) + 878 00027708 _start (0, 0, 0, 0, 0, 0) + 5c ----------------- lwp# 2 / thread# 2 -------------------- ff01ea6c _signotifywait (fef1e000, ff245ec0, ffbef6ec, 8e5fc04, 0, ff3e7d60) + 8 fef02030 thr_yield (0, 0, 0, 0, 0, 0) + 8c ----------------- lwp# 3 / thread# 30 -------------------- ff01bd40 _so_accept (fc407bec, c3d40, 18e408, 0, 11fd10, 11000) + 8 00086ec4 unixd_accept (fc407c64, c3cd8, 18e408, 7ffffffe, 0, b8c00) + 10 0006a3c8 listener_thread (c3cd8, 0, 4c00, 86eb4, 0, bb400) + 16c ff2542d0 dummy_worker (120110, feee5d10, 0, 5, 1, fe401000) + c fef0b728 _thread_start (120110, 0, 0, 0, 0, 0) + 40 -------------------------- thread# 3 -------------------- feefddbc _reap_wait (fef229e0, 20520, 0, fef1e000, 0, 0) + 38 feefdb14 _reaper (fef1ee30, fef24740, fef229e0, fef1ee08, 1, fe401000) + 38 fef0b728 _thread_start (0, 0, 0, 0, 0, 0) + 40 -------------------------- thread# 4 -------------------- fef0b6e0 _restorefsr (11fb10, 0, 0, 0, 0, 0) + 8 -------------------------- thread# 5 -------------------- feef826c cond_wait (fe909d70, 0, 0, fef1e000, 0, 11fb50) + 13c feef8110 pthread_cond_wait (11fb90, 11fb50, 0, 11fb50, fee70020, 0) + 8 0006adb4 ap_queue_pop (11fb30, fe909c8c, fe909c88, 0, 18e518, 15bb60) + a0 0006aa18 worker_thread (b8800, 0, bb400, bb400, ba000, bb400) + d0 ff2542d0 dummy_worker (11fdf0, feee5d10, 1, fef2ad8c, 0, 2) + c fef0b728 _thread_start (11fdf0, 0, 0, 0, 0, 0) + 40 -------------------------- thread# 7 -------------------- feef826c cond_wait (fe705d70, 0, 0, fef1e000, 0, 11fb50) + 13c feef8110 pthread_cond_wait (11fb90, 11fb50, 0, 11fb50, 0, 0) + 8 0006adb4 ap_queue_pop (11fb30, fe705c8c, fe705c88, 0, 0, 0) + a0 0006aa18 worker_thread (b8800, 2, bb400, bb400, ba000, bb400) + d0 ff2542d0 dummy_worker (11fe30, feee5d10, 0, 5, 1, fe401000) + c fef0b728 _thread_start (11fe30, 0, 0, 0, 0, 0) + 40 -------------------------- thread# 8 -------------------- feef826c cond_wait (fe603d70, 0, 0, fef1e000, 0, 11fb50) + 13c feef8110 pthread_cond_wait (11fb90, 11fb50, 0, 11fb50, 0, 0) + 8 0006adb4 ap_queue_pop (11fb30, fe603c8c, fe603c88, 0, 0, 0) + a0 0006aa18 worker_thread (b8800, 3, bb400, bb400, ba000, bb400) + d0 ff2542d0 dummy_worker (11fe50, feee5d10, 0, 5, 1, fe401000) + c fef0b728 _thread_start (11fe50, 0, 0, 0, 0, 0) + 40 -------------------------- thread# 9 -------------------- feef826c cond_wait (fe501d70, 0, 0, fef1e000, 0, 11fb50) + 13c feef8110 pthread_cond_wait (11fb90, 11fb50, 0, 11fb50, 0, 0) + 8 0006adb4 ap_queue_pop (11fb30, fe501c8c, fe501c88, 0, 0, 0) + a0 0006aa18 worker_thread (b8800, 4, bb400, bb400, ba000, bb400) + d0 ff2542d0 dummy_worker (11fe70, feee5d10, 0, 5, 1, fe401000) + c fef0b728 _thread_start (11fe70, 0, 0, 0, 0, 0) + 40 -------------------------- thread# 10 -------------------- feef826c cond_wait (fe00fd70, 0, 0, fef1e000, 0, 11fb50) + 13c feef8110 pthread_cond_wait (11fb90, 11fb50, 0, 11fb50, 0, 0) + 8 0006adb4 ap_queue_pop (11fb30, fe00fc8c, fe00fc88, 0, 0, 0) + a0 0006aa18 worker_thread (b8800, 5, bb400, bb400, ba000, bb400) + d0 ff2542d0 dummy_worker (11fe90, feee5d10, 0, 5, 1, fe401000) + c fef0b728 _thread_start (11fe90, 0, 0, 0, 0, 0) + 40 -------------------------- thread# 11 -------------------- feef826c cond_wait (fdf0dd70, 0, 0, fef1e000, 0, 11fb50) + 13c feef8110 pthread_cond_wait (11fb90, 11fb50, 0, 11fb50, 0, 0) + 8 0006adb4 ap_queue_pop (11fb30, fdf0dc8c, fdf0dc88, 0, 0, 0) + a0 0006aa18 worker_thread (b8800, 6, bb400, bb400, ba000, bb400) + d0 ff2542d0 dummy_worker (11feb0, feee5d10, 0, 5, 1, fe401000) + c fef0b728 _thread_start (11feb0, 0, 0, 0, 0, 0) + 40 -------------------------- thread# 12 -------------------- feef826c cond_wait (fde0bd70, 0, 0, fef1e000, 0, 11fb50) + 13c feef8110 pthread_cond_wait (11fb90, 11fb50, 0, 11fb50, 0, 0) + 8 0006adb4 ap_queue_pop (11fb30, fde0bc8c, fde0bc88, 0, 0, 0) + a0 0006aa18 worker_thread (b8800, 7, bb400, bb400, ba000, bb400) + d0 ff2542d0 dummy_worker (11fed0, feee5d10, 0, 5, 1, fe401000) + c fef0b728 _thread_start (11fed0, 0, 0, 0, 0, 0) + 40 -------------------------- thread# 13 -------------------- feef826c cond_wait (fdd09d70, 0, 0, fef1e000, 0, 11fb50) + 13c feef8110 pthread_cond_wait (11fb90, 11fb50, 0, 11fb50, 0, 0) + 8 0006adb4 ap_queue_pop (11fb30, fdd09c8c, fdd09c88, 0, 0, 0) + a0 0006aa18 worker_thread (b8800, 8, bb400, bb400, ba000, bb400) + d0 ff2542d0 dummy_worker (11fef0, feee5d10, 0, 5, 1, fe401000) + c fef0b728 _thread_start (11fef0, 0, 0, 0, 0, 0) + 40 -------------------------- thread# 14 -------------------- feef826c cond_wait (fdc07d70, 0, 0, fef1e000, 0, 11fb50) + 13c feef8110 pthread_cond_wait (11fb90, 11fb50, 0, 11fb50, 0, 0) + 8 0006adb4 ap_queue_pop (11fb30, fdc07c8c, fdc07c88, 0, 0, 0) + a0 0006aa18 worker_thread (b8800, 9, bb400, bb400, ba000, bb400) + d0 ff2542d0 dummy_worker (11ff10, feee5d10, 0, 5, 1, fe401000) + c fef0b728 _thread_start (11ff10, 0, 0, 0, 0, 0) + 40 -------------------------- thread# 15 -------------------- feef826c cond_wait (fdb05d70, 0, 0, fef1e000, 0, 11fb50) + 13c feef8110 pthread_cond_wait (11fb90, 11fb50, 0, 11fb50, 0, 0) + 8 0006adb4 ap_queue_pop (11fb30, fdb05c8c, fdb05c88, 0, 0, 0) + a0 0006aa18 worker_thread (b8800, a, bb400, bb400, ba000, bb400) + d0 ff2542d0 dummy_worker (11ff30, feee5d10, 0, 5, 1, fe401000) + c fef0b728 _thread_start (11ff30, 0, 0, 0, 0, 0) + 40 -------------------------- thread# 16 -------------------- feef826c cond_wait (fda03d70, 0, 0, fef1e000, 0, 11fb50) + 13c feef8110 pthread_cond_wait (11fb90, 11fb50, 0, 11fb50, 0, 0) + 8 0006adb4 ap_queue_pop (11fb30, fda03c8c, fda03c88, 0, 0, 0) + a0 0006aa18 worker_thread (b8800, b, bb400, bb400, ba000, bb400) + d0 ff2542d0 dummy_worker (11ff50, feee5d10, 0, 5, 1, fe401000) + c fef0b728 _thread_start (11ff50, 0, 0, 0, 0, 0) + 40 -------------------------- thread# 17 -------------------- feef826c cond_wait (fd901d70, 0, 0, fef1e000, 0, 11fb50) + 13c feef8110 pthread_cond_wait (11fb90, 11fb50, 0, 11fb50, 0, 0) + 8 0006adb4 ap_queue_pop (11fb30, fd901c8c, fd901c88, 0, 0, 0) + a0 0006aa18 worker_thread (b8800, c, bb400, bb400, ba000, bb400) + d0 ff2542d0 dummy_worker (11ff70, feee5d10, 0, 5, 1, fe401000) + c fef0b728 _thread_start (11ff70, 0, 0, 0, 0, 0) + 40 -------------------------- thread# 18 -------------------- feef826c cond_wait (fd40fd70, 0, 0, fef1e000, 0, 11fb50) + 13c feef8110 pthread_cond_wait (11fb90, 11fb50, 0, 11fb50, 0, 0) + 8 0006adb4 ap_queue_pop (11fb30, fd40fc8c, fd40fc88, 0, 0, 0) + a0 0006aa18 worker_thread (b8800, d, bb400, bb400, ba000, bb400) + d0 ff2542d0 dummy_worker (11ff90, feee5d10, 0, 5, 1, fe401000) + c fef0b728 _thread_start (11ff90, 0, 0, 0, 0, 0) + 40 -------------------------- thread# 19 -------------------- feef826c cond_wait (fd30dd70, 0, 0, fef1e000, 0, 11fb50) + 13c feef8110 pthread_cond_wait (11fb90, 11fb50, 0, 11fb50, 0, 0) + 8 0006adb4 ap_queue_pop (11fb30, fd30dc8c, fd30dc88, 0, 0, 0) + a0 0006aa18 worker_thread (b8800, e, bb400, bb400, ba000, bb400) + d0 ff2542d0 dummy_worker (11ffb0, feee5d10, 0, 5, 1, fe401000) + c fef0b728 _thread_start (11ffb0, 0, 0, 0, 0, 0) + 40 -------------------------- thread# 20 -------------------- feef826c cond_wait (fd20bd70, 0, 0, fef1e000, 0, 11fb50) + 13c feef8110 pthread_cond_wait (11fb90, 11fb50, 0, 11fb50, 0, 0) + 8 0006adb4 ap_queue_pop (11fb30, fd20bc8c, fd20bc88, 0, 0, 0) + a0 0006aa18 worker_thread (b8800, f, bb400, bb400, ba000, bb400) + d0 ff2542d0 dummy_worker (11ffd0, feee5d10, 0, 5, 1, fe401000) + c fef0b728 _thread_start (11ffd0, 0, 0, 0, 0, 0) + 40 -------------------------- thread# 21 -------------------- feef826c cond_wait (fd109d70, 0, 0, fef1e000, 0, 11fb50) + 13c feef8110 pthread_cond_wait (11fb90, 11fb50, 0, 11fb50, 0, 0) + 8 0006adb4 ap_queue_pop (11fb30, fd109c8c, fd109c88, 0, 0, 0) + a0 0006aa18 worker_thread (b8800, 10, bb400, bb400, ba000, bb400) + d0 ff2542d0 dummy_worker (11fff0, feee5d10, 0, 5, 1, fe401000) + c fef0b728 _thread_start (11fff0, 0, 0, 0, 0, 0) + 40 -------------------------- thread# 22 -------------------- feef826c cond_wait (fd007d70, 0, 0, fef1e000, 0, 11fb50) + 13c feef8110 pthread_cond_wait (11fb90, 11fb50, 0, 11fb50, 0, 0) + 8 0006adb4 ap_queue_pop (11fb30, fd007c8c, fd007c88, 0, 0, 0) + a0 0006aa18 worker_thread (b8800, 11, bb400, bb400, ba000, bb400) + d0 ff2542d0 dummy_worker (120010, feee5d10, 0, 5, 1, fe401000) + c fef0b728 _thread_start (120010, 0, 0, 0, 0, 0) + 40 -------------------------- thread# 23 -------------------- feef826c cond_wait (fcf05d70, 0, 0, fef1e000, 0, 11fb50) + 13c feef8110 pthread_cond_wait (11fb90, 11fb50, 0, 11fb50, 0, 0) + 8 0006adb4 ap_queue_pop (11fb30, fcf05c8c, fcf05c88, 0, 0, 0) + a0 0006aa18 worker_thread (b8800, 12, bb400, bb400, ba000, bb400) + d0 ff2542d0 dummy_worker (120030, feee5d10, 0, 5, 1, fe401000) + c fef0b728 _thread_start (120030, 0, 0, 0, 0, 0) + 40 -------------------------- thread# 24 -------------------- feef826c cond_wait (fce03d70, 0, 0, fef1e000, 0, 11fb50) + 13c feef8110 pthread_cond_wait (11fb90, 11fb50, 0, 11fb50, 0, 0) + 8 0006adb4 ap_queue_pop (11fb30, fce03c8c, fce03c88, 0, 0, 0) + a0 0006aa18 worker_thread (b8800, 13, bb400, bb400, ba000, bb400) + d0 ff2542d0 dummy_worker (120050, feee5d10, 0, 5, 1, fe401000) + c fef0b728 _thread_start (120050, 0, 0, 0, 0, 0) + 40 -------------------------- thread# 25 -------------------- feef826c cond_wait (fcd01d70, 0, 0, fef1e000, 0, 11fb50) + 13c feef8110 pthread_cond_wait (11fb90, 11fb50, 0, 11fb50, 0, 0) + 8 0006adb4 ap_queue_pop (11fb30, fcd01c8c, fcd01c88, 0, 0, 0) + a0 0006aa18 worker_thread (b8800, 14, bb400, bb400, ba000, bb400) + d0 ff2542d0 dummy_worker (120070, feee5d10, 0, 5, 1, fe401000) + c fef0b728 _thread_start (120070, 0, 0, 0, 0, 0) + 40 -------------------------- thread# 26 -------------------- feef826c cond_wait (fc80fd70, 0, 0, fef1e000, 0, 11fb50) + 13c feef8110 pthread_cond_wait (11fb90, 11fb50, 0, 11fb50, 0, 0) + 8 0006adb4 ap_queue_pop (11fb30, fc80fc8c, fc80fc88, 0, 0, 0) + a0 0006aa18 worker_thread (b8800, 15, bb400, bb400, ba000, bb400) + d0 ff2542d0 dummy_worker (120090, feee5d10, 0, 5, 1, fe401000) + c fef0b728 _thread_start (120090, 0, 0, 0, 0, 0) + 40 -------------------------- thread# 27 -------------------- feef826c cond_wait (fc70dd70, 0, 0, fef1e000, 0, 11fb50) + 13c feef8110 pthread_cond_wait (11fb90, 11fb50, 0, 11fb50, 0, 0) + 8 0006adb4 ap_queue_pop (11fb30, fc70dc8c, fc70dc88, 0, 0, 0) + a0 0006aa18 worker_thread (b8800, 16, bb400, bb400, ba000, bb400) + d0 ff2542d0 dummy_worker (1200b0, feee5d10, 0, 5, 1, fe401000) + c fef0b728 _thread_start (1200b0, 0, 0, 0, 0, 0) + 40 -------------------------- thread# 28 -------------------- feef826c cond_wait (fc60bd70, 0, 0, fef1e000, 0, 11fb50) + 13c feef8110 pthread_cond_wait (11fb90, 11fb50, 0, 11fb50, 0, 0) + 8 0006adb4 ap_queue_pop (11fb30, fc60bc8c, fc60bc88, 0, 0, 0) + a0 0006aa18 worker_thread (b8800, 17, bb400, bb400, ba000, bb400) + d0 ff2542d0 dummy_worker (1200d0, feee5d10, 0, 5, 1, fe401000) + c fef0b728 _thread_start (1200d0, 0, 0, 0, 0, 0) + 40 -------------------------- thread# 29 -------------------- feef826c cond_wait (fc509d70, 0, 0, fef1e000, 0, 11fb50) + 13c feef8110 pthread_cond_wait (11fb90, 11fb50, 0, 11fb50, 0, 0) + 8 0006adb4 ap_queue_pop (11fb30, fc509c8c, fc509c88, 0, 0, 0) + a0 0006aa18 worker_thread (b8800, 18, bb400, bb400, ba000, bb400) + d0 ff2542d0 dummy_worker (1200f0, feee5d10, 0, 5, 1, fe401000) + c fef0b728 _thread_start (1200f0, 0, 0, 0, 0, 0) + 40
I have tested the same server configuration and it returns the same on Solaris 9. I have successfully built and used the same configuration on Redhat Linux v9 and works fine.
util_ldap_cache_mgr.c is buggy: return (void *)apr_rmm_addr_get(util_ldap_rmm, apr_rmm_calloc(util_ldap_rmm, size)); needs to check for apr_rmm_calloc returning 0 when the shm segment is full, likewise in the _strdup case. The LDAP caching code is likely to die horribly once the cache fills up.
*** This bug has been marked as a duplicate of 18756 ***