I'm writing an ext for Apples OpenDirectory (directory services) API and it
makes heavy use of registering resources in the zend internal list. I'm also
new to the Zend API.


As of now I have about 4 resource types so far. In Short, my resource life
span goes like:
1. zend_register_list_destructors_ex(... for each resource in
ZEND_MINIT_FUNCTION()
2. register a resource and return it, RETURN_RESOURCE(zend_list_insert(rsrc,
le_rsrc));
3. upon user destruction function, zend_list_delete(Z_LVAL_P(z_rsrc));
4. resource destructor is called when deleted from the internal list, frees
all assoc memory allocated/closes any connections then uses efree to free up
memory alloced to the resource with emalloc.

My problem is, all my resources get deleted from the list and my destructors
are called an exit properly but at the end of my php script, while testing,
I get a bus error on the very last line. The backtrace boils down to
shutdown_memory_manager. My thoughts are that I must have something wrong in
the destruction of resources, does anyone know what would cause the bus
error in shutdown_memory_manager? A backtrace is below, I can also provide
more detailed code snippets.

$ php -v
PHP 4.3.0 (cli) (built: Dec 27 2002 20:26:15)
Copyright (c) 1997-2002 The PHP Group
Zend Engine v1.3.0, Copyright (c) 1998-2002 Zend Technologies
$ tail ~/Library/Logs/CrashReporter/php.crash.log
**********

Date/Time:  2003-08-11 09:25:46 -0400
OS Version: 10.2.5 (Build 6L29)
Host:       128kb.com

Command:    php
PID:        12508

Exception:  EXC_BAD_ACCESS (0x0001)
Codes:      KERN_PROTECTION_FAILURE (0x0002) at 0x00000000

Thread 0 Crashed:
 #0   0x0018aeb0 in shutdown_memory_manager
 #1   0x0015e354 in php_request_shutdown
 #2   0x001c25c0 in main
 #3   0x00001d24 in _start
 #4   0x00001b54 in start

PPC Thread State:
  srr0: 0x0018aeb0 srr1: 0x0200f030                vrsave: 0x00000000
   xer: 0x00000000   lr: 0x0018aee0  ctr: 0x90003da0   mq: 0x00000000
    r0: 0x008a931b   r1: 0xbfffdf50   r2: 0x00000000   r3: 0x005bf010
    r4: 0x008b43a0   r5: 0x0000000c   r6: 0x002c6100   r7: 0x00000000
    r8: 0x005bf010   r9: 0x00000000  r10: 0x00000002  r11: 0x008b43a0
   r12: 0x90003da0  r13: 0x00000000  r14: 0x00000000  r15: 0x00000000
   r16: 0x00000000  r17: 0x00000000  r18: 0x00000000  r19: 0x00000000
   r20: 0x00000000  r21: 0x00000000  r22: 0x00000000  r23: 0x00000000
   r24: 0x00000000  r25: 0x00000000  r26: 0xbffff968  r27: 0x00000010
   r28: 0x00000003  r29: 0xbffff97c  r30: 0xbfffdf50  r31: 0x0018ade8


--
Justin Hannus




-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to