2014/05/19-11:57:52 Server closing!
#### BEGIN DESTROY: 13138 : MyModule=HASH(0x1441b78) ####
SV = IV(0x190cba0) at 0x190cbb0
REFCNT = 1
FLAGS = (ROK,READONLY)
#### BEGIN DESTROY: 13138 : MyModule=HASH(0x1441b78) ####
SV = IV(0x190c810) at 0x190c820
REFCNT = 1
FLAGS = (ROK,READONLY)
RV = 0x1441b78
SV = PVHV(0x1448880) at 0x1441b78
REFCNT = 1
FLAGS = (OBJECT,SHAREKEYS)
STASH = 0x1460d40 "MyModule"
ARRAY = 0x1459360 (0:7, 1:1)
hash quality = 100.0%
KEYS = 1
FILL = 1
MAX = 7
RITER = -1
EITER = 0x0
Elt "$$" HASH = 0x7f8f5659
SV = IV(0x1460268) at 0x1460278
REFCNT = 1
FLAGS = (IOK,pIOK)
IV = 13137
###### END DESTROY: 13138 : MyModule=HASH(0x1441b78) ######
#### BEGIN DESTROY: 13137 : MyModule=HASH(0x1441b78) ####
SV = IV(0x150bd48) at 0x150bd58
REFCNT = 1
FLAGS = (ROK,READONLY)
RV = 0x1441b78
SV = PVHV(0x1448880) at 0x1441b78
REFCNT = 1
FLAGS = (OBJECT,SHAREKEYS)
STASH = 0x1460d40 "MyModule"
ARRAY = 0x1459360 (0:7, 1:1)
hash quality = 100.0%
KEYS = 1
FILL = 1
MAX = 7
RITER = -1
EITER = 0x0
Elt "$$" HASH = 0x7f8f5659
SV = IV(0x1460268) at 0x1460278
REFCNT = 1
FLAGS = (IOK,pIOK)
IV = 13137
###### END DESTROY: 13137 : MyModule=HASH(0x1441b78) ######
So ... as it shows process 13138 is calling DESTROY twice for the same object.
Apparently it gets interrupted by shutdown half way through the first invocation (but gets far enough to crash in other ways **).
What I'm wondering about is what makes Perl retry the DESTROY method for the object at a later time.
**: This means, that if the objects DESTROY method is an XS function you can manage to call free() on a C pointer during the first invocation before you get interrupted. ... and then calling free() again in the second invocation will cause glibc to complain loudly.
|