On 15.04.2011 01:55, Jeff Trawick wrote:
Tarballs/zipballs are at http://apr.apache.org/dev/dist/.  I
anticipate that we will release this, or its replacement if flawed, in
conjunction with the upcoming apr 1.4 release.  Hopefully we will be
ready for T&R of that soon :)

  +/-1
  [+1]  Release apr-util 1.3.10 as GA

Sorry for voting late, but I was on vacation :)

+1 although there are still two problems on Solaris 10 for test_reslist, but not a regression.

I built and made check on the following platforms:

- Solaris 8 + 10, Sparc
- SuSE Linux Enterprise 10 32 and 64 Bit
- RedHat Enterprise Linux 5, 64 Bit

Using all combinations of:

apr 1.3.12 / 1.4.2
expat builtin / 2.0.1
dso disable / enable
Berkeley DB 4.8.30 5.0.26 5.1.19
sqlite 3.7.2
mysql 6.0.2 (only Solaris)
oracle 10.2.0.4.0 (only Solaris)

All builds suceeded, all make check ran fine, except for two cases on Solaris 10 (this time not Niagara, but instead old sun4u - V240 with 2 CPUs).

I reran the tests and couldn't reproduce the problem, so it is not deterministic. Out of 48 build combinations on Solaris 10, only three had a problem. This is similar to 1.3.10, but it is not always the same combinations. Like for 1.3.10 problem happens on Solaris 10 but not on Solaris 8.

Details on Solaris 10 test failures

- only in testreslist
- two types of failures:
  - twice crashes (segmentation fault)
  - once non-terminating loop
- Crashes seem not really related to used apr version (one for 1.3 and one for 1.4)


1) Segmentation Fault
=====================

pstack for the testall core shows

-----------------  lwp# 1 / thread# 1  --------------------
 fdb4c56c __pollsys (ffbff0d0, 0, ffbff138, 0, 0, 0) + 8
 fdae7e68 pselect  (ffbff0d0, fdbb4678, fdbb4678, 0, ffbff138, 0) + 1c8
 fdae81e0 select   (0, 0, 0, 0, ffbff1a0, 386a0) + a0
 fefff920 apr_sleep (0, 61a8, ffffffff, fffffff8, ffffffe0, 0) + 4c
 000189f0 my_constructor (0, 385c0, 38298, 1c00, 0, 382d8) + 30
 ff377238 create_resource (385f0, ffbff2fc, 0, 0, 38648, 0) + 1c
 ff377480 reslist_maint (385f0, 38298, 38298, 38620, 38618, 18a04) + 10c
 ff377628 apr_reslist_create (0, 3, a, 14, 0, 88b8) + 108
 00018c0c test_reslist (135030, 0, d9d88, 13590, 0, 2710) + c8
 000139e0 abts_run_test (135030, 18b44, 0, 0, fdfd2a00, 38280) + 48
 00018ef8 testreslist (2f670, 1ae68, 0, 4, fdfd2a00, 18ec4) + 34
 00014168 main     (1, 2e9cc, ffbff8d4, 2ef80, fdfd0200, 0) + 11c
 00013414 _start   (0, 0, 0, 0, 0, 0) + 5c


-----------------  lwp# 28 / thread# 28  --------------------
 feff41c4 apr_palloc (38390, 383b8, 38350, 4, 1c00, 1d3c) + 1d4
 ff378a20 thread_pool_func (38548, 382d8, 0, 0, fd2b1a00, 1) + 3a0
 feffef70 dummy_worker (38548, fcf7c000, 0, 0, feffef64, 1) + c
 fdb48c9c _lwp_start (0, 0, 0, 0, 0, 0)


All other threads are either zombies or sit in __lwp_park(...).


GDB says:

(gdb) bt full
#0  apr_palloc (pool=0x38390, in_size=230328) at memory/unix/apr_pools.c:252
        active = (apr_memnode_t *) 0x383b8
        node = (apr_memnode_t *) 0x383c0
        mem = (void *) 0x5c74
        size = 24
        free_index = 23668
#1 0xff378a28 in thread_pool_func (t=0x38548, param=0x382d8) at /shared/build/dev/httpd/sources/apr-util/1.3.x/1.3.11/apr-util-1.3.11/misc/apr_thread_pool.c:213
        task = (apr_thread_pool_task_t *) 0x0
        wait = 988804550754308
#2 0xfeffef78 in dummy_worker (opaque=0x38548) at threadproc/unix/thread.c:142
No locals.
#3  0xfdb48ca4 in _lwp_start () from /lib/libc.so.1
No symbol table info available.
#4  0xfdb48ca4 in _lwp_start () from /lib/libc.so.1
No symbol table info available.
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

The pool passed to palloc is:

(gdb) print *(apr_pool_t *)0x38390
$3 = {parent = 0x38368, child = 0x38378, sibling = 0xfeff341c, ref = 0xfeff519c, cleanups = 0x383a0, free_cleanups = 0x383a0, allocator = 0x383a8, subprocesses = 0x383a8, abort_fn = 0x383b0, user_data = 0x383b0, tag = 0x383b8 "", active = 0x383b8, self = 0x5c74, self_first_avail = 0xff038670 "\200\215@\024\002\200", pre_cleanups = 0x0,
  free_pre_cleanups = 0xfd2b1a00}


The crash is not a regression, the same was observed for apr-util 1.3.10 (and probably before).


2) Unterminated loop
====================

-----------------  lwp# 1 / thread# 1  --------------------
 feff5774 apr_pool_cleanup_kill (38298, 382d8, ff3798e0, f9, 1, 38aa0) + 20
 00018c9c test_reslist (135030, 0, d9d88, 1358c, 0, 3a98) + 15c
 000139dc abts_run_test (135030, 18b40, 0, 0, fefb2a00, 38280) + 48
 00018ef4 testreslist (2f670, 1ae68, 0, 4, fefb2a00, 18ec0) + 34
 00014164 main     (1, 2e9cc, ffbff4d4, 2ef80, fefb0200, 0) + 11c
 00013410 _start   (0, 0, 0, 0, 0, 0) + 5c

[Switching to Thread 1 (LWP 1)]
0xfeff5774 in apr_pool_cleanup_kill (p=0x38298, data=0x382d8, cleanup_fn=0xff3798e0 <thread_pool_cleanup>) at memory/unix/apr_pools.c:2232
2232    memory/unix/apr_pools.c: No such file or directory.
        in memory/unix/apr_pools.c
(gdb) bt full
#0 0xfeff5774 in apr_pool_cleanup_kill (p=0x38298, data=0x382d8, cleanup_fn=0xff3798e0 <thread_pool_cleanup>) at memory/unix/apr_pools.c:2232
        c = (cleanup_t *) 0x385c0
        lastp = (cleanup_t **) 0x383c0
#1 0xfeff5890 in apr_pool_cleanup_run (p=0x38298, data=0x382d8, cleanup_fn=0xff3798e0 <thread_pool_cleanup>) at memory/unix/apr_pools.c:2298
No locals.
#2 0x00018ca4 in test_reslist (tc=0x135030, data=0x0) at /shared/build/dev/httpd/sources/apr-util/1.3.x/1.3.11/apr-util-1.3.11/test/testreslist.c:252
        i = 25
        rv = -13133600
        rl = (apr_reslist_t *) 0x385d8
        params = (my_parameters_t *) 0x38590
        thrp = (apr_thread_pool_t *) 0x382d8
thread_info = {{tid = 0, tc = 0x135030, reslist = 0x385d8, work_delay_sleep = 15000}, {tid = 1, tc = 0x135030, reslist = 0x385d8, work_delay_sleep = 15000}, { tid = 2, tc = 0x135030, reslist = 0x385d8, work_delay_sleep = 15000}, {tid = 3, tc = 0x135030, reslist = 0x385d8, work_delay_sleep = 15000}, {tid = 4, tc = 0x135030, reslist = 0x385d8, work_delay_sleep = 15000}, {tid = 5, tc = 0x135030, reslist = 0x385d8, work_delay_sleep = 15000}, {tid = 6, tc = 0x135030, reslist = 0x385d8, work_delay_sleep = 15000}, {tid = 7, tc = 0x135030, reslist = 0x385d8, work_delay_sleep = 15000}, {tid = 8, tc = 0x135030, reslist = 0x385d8, work_delay_sleep = 15000}, {tid = 9, tc = 0x135030, reslist = 0x385d8, work_delay_sleep = 15000}, {tid = 10, tc = 0x135030, reslist = 0x385d8, work_delay_sleep = 15000}, {tid = 11, tc = 0x135030, reslist = 0x385d8, work_delay_sleep = 15000}, {tid = 12, tc = 0x135030, reslist = 0x385d8, work_delay_sleep = 15000}, {tid = 13, tc = 0x135030, reslist = 0x385d8, work_delay_sleep = 15000}, {tid = 14, tc = 0x135030, reslist = 0x385d8, work_delay_sleep = 15000}, {tid = 15, tc = 0x135030, reslist = 0x385d8, work_delay_sleep = 15000}, {tid = 16, tc = 0x135030, reslist = 0x385d8, work_delay_sleep = 15000}, {tid = 17, tc = 0x135030, reslist = 0x385d8, work_delay_sleep = 15000}, {tid = 18, tc = 0x135030, reslist = 0x385d8, work_delay_sleep = 15000}, {tid = 19, tc = 0x135030, reslist = 0x385d8, work_delay_sleep = 15000}, {tid = 20, tc = 0x135030, reslist = 0x385d8, work_delay_sleep = 15000}, {tid = 21, tc = 0x135030, reslist = 0x385d8, work_delay_sleep = 15000}, {tid = 22, tc = 0x135030, reslist = 0x385d8, work_delay_sleep = 15000}, {tid = 23, tc = 0x135030, reslist = 0x385d8, work_delay_sleep = 15000}, {tid = 24, tc = 0x135030, reslist = 0x385d8,
    work_delay_sleep = 15000}}
#3 0x000139e4 in abts_run_test (ts=0x135030, f=0x18b40 <test_reslist>, value=0x0) at /shared/build/dev/httpd/sources/apr-util/1.3.x/1.3.11/apr-util-1.3.11/test/abts.c:169
        tc = (abts_case *) 0x135030
        ss = (sub_suite *) 0x310e8
#4 0x00018efc in testreslist (suite=0x2f670) at /shared/build/dev/httpd/sources/apr-util/1.3.x/1.3.11/apr-util-1.3.11/test/testreslist.c:271
No locals.
#5 0x0001416c in main (argc=1, argv=0x2e9cc) at /shared/build/dev/httpd/sources/apr-util/1.3.x/1.3.11/apr-util-1.3.11/test/abts.c:411
        i = 17
        list_provided = 0
        suite = (abts_suite *) 0x2f670
(gdb) print *c
$1 = {next = 0x384f8, data = 0x383c0, plain_cleanup_fn = 0x38550, child_cleanup_fn = 0}
(gdb) print *p
$2 = {parent = 0x34288, child = 0x5a328, sibling = 0x36290, ref = 0x3428c, cleanups = 0x38790, free_cleanups = 0x0, allocator = 0x34200, subprocesses = 0x0, abort_fn = 0, user_data = 0x0, tag = 0x1ae68 "apr-util global test pool", active = 0x60328, self = 0x38280, self_first_avail = 0x382d8 "", pre_cleanups = 0x0}

Also no regression.

Rainer

Reply via email to