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.
In reply to Re^8: Is this absurd, or have I not RTFM?
by petermogensen
in thread Is this absurd, or have I not RTFM?
by petermogensen
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |