apr-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Rainer Jung <rainer.j...@kippdata.de>
Subject Re: [Vote] Release apr-util 1.3.11
Date Tue, 26 Apr 2011 19:41:39 GMT
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

Mime
View raw message