Perlbug Database - v2.36


BugIDVersionCreatedFixed In
  20010116.003   (1 msg)   5.00503   2001-01-16 14:25:59    
Status:
open  
Category:
core  
Severity:
low  
OS:
linux  
Sourceaddr: Dave  
Subject: blessed object lost in anon sub from 'C' call  
Administrators: richardf  
Parent IDs: 0  Child IDs: 0  
Message IDs: 12778  
This is a bug report for perl from [email protected],
generated with the help of perlbug 1.26 running under perl 5.00503.


-----------------------------------------------------------------
[Please enter your report here]

I have a bug that I managed to isolate to these conditions:

1)  C code starts a perl interpretor that blesses an object
2)  C code calls a perl function that creates an anon sub that
    refers to the blessed object.
3)  C code calls a perl function that calls the anon sub.

Depending on where and how the blessed object was referred to in
the code *around* the anon sub, it can become undefined in the anon sub.

For example, if the blessed variable isn't mentioned except in
the sub, it will get "lost" (and have an undef value in the sub).

If you just refer to it, then it won't get lost, and sometimes this
fixes other creation of anon subs.  It has weird behavior, but it
is reproducible.  Calling a subroutine (other than a builtin like
print) inside the anon sub fixes the problem as well.

I tried to run it on perl 5.6.0, but my 5.6 is threaded, and
that's another problem..

Here's the tar of my makefile, the C code and the perl code

begin 640 foo.tz.uu
M'XL(`"3&9#H``^U7;6_B.!#F:_,K1BFZAI:7$$J18'LZ#M(6'7T14.FDMJ(A
M,6W:$$>)T^V*Y7[[C6U2J':KO:N.[H?S\R&)QS/C\4S\V)Y2:E5RFX5I[IN-
MNHEOTZI9=?XVJ_ORO43.;%BU:G6_AJHYLVH>-.HYJ&\X+H$T84X,D)LYGI_0
M\$T]$MY]1#@?C2FO_ZGS2*9^0#8T!M;3/-A_L_[5:MU:U;^&\JI5JQWDP-Q0
M/*_P/Z]_USYJ7_9'<`CX)VA:YZC7MX>'>>.S'WBN$WNP6W;=@G:^E,^E0A.%
MAV6ZX`;]]O$0S4LNY(W>6:=_V;6'!:V?R?-&O_?[H#WHH11*0<(\=V]/VX:.
M$^XP2!,"[)Z`7NI.*`T.W7LGUJ$$]R1T>8^?0'H7^"%)$NW"'O3'+^/=1B0.
MH'1J/[-+Y@=)LVG/)L2#$H$=UZ412UH0Q7[(0+\.]=8.?(5$=NM)96VT2D6_
ME:[[_\!UX''/MYJ&"2C3IK:5-SJ=`DY2QL6_UL+$YB=-RQO+)!>:V"TS67B5
ME\Q-B<)*^97N6H#"5'YI6[]MKPPTS0V($V)0\0Q*\73=EU.F*0.7Q@0+2D'3
MDA0G^;;^]?8N[/[UK9E'(A)Z:#)#RI"-];*+1(B8-2QQ]QS.SD?0M?OVR-9^
M]I^N\#T(_I\Y?H@_]*;&^!'_'U@O^[_5,!N<_ZN*_S\&VW[H!JE'X)-/$Q83
M9U:^_U5;2>T_1_;@[+6,T^-K";*Z3[E(JU2@]*_!K2XXYR:$I=$[?6`=F>\*
M/[V0D3B*"3YAEU-GB_?&;,PC-SCKPV[BQG[$"C#7`*3$B>^2JQOD_[FN%V7W
MHH6]&(Z(2VQ48FN@DP?B,G"0_#!C'OBAZ),V:,&'1#]<=^P$`76-`G<DVBX-
M,<^IRP2GK^21$R=$R(IP=MG'9ZT(/"397"G&:9B9XOZ+!"QG)6<B-#SRW1&F
M,2%KEAX=NQC<TC"KP$/ZD,+,N?/=QR:*O>%%2^,SNAR>G+8'?QA)5!`".1>T
M'T=/ALX_]"(<C[N]8:<]Z'X]'I^=MP>X18FAWOU3C'`FN/UXY)TN^/;/R<W@
M'YA,M[BL-2_VTTN#A$\13P/.:^T_T9$;RU&@BPR^9.L_::RJ)EK//C.J,E4?
MO?X%_\N);FR,'Y[_D>PS_J\=U#C_HZ+B_X\`/X`C6_@NPV4]^P)Y)Z1ABY\/
M)S#"LVFGW6\/8`Z\:X*<5C5;R'DLC4.8!'@JA^O\I`4+H7]DCSHGJ+OL+Y7R
M\_SXRKQ99`K#T?G`7BEDW;"'UX3Q5?6&ZXD@&*[[EL9\(C^+L,-7\4X1+,M:
MQNG2%-?T(9@MX9JO+4%D_A2,O;VL&P.6_`;2$Y^!Q=?<`DB0<-V5II5IXN6$
MSF8$I>("$I)G!OP.`OPPS$D_)#[R?0P\5\!'_TSCQV0U2FMK&P9DBAJ,BIU!
MI`IO$,N-PYCZSR21N1:1%Z2M:!\*C_/L\G)"OC2E5WZ-`;$C+9;S7,5>RV+_
M92Z\+"2S?*NX_Y*.]P]6?VLP?"Q+V[!^"ILI*"@H*"@H*"@H*"@H*"@H*"@H
-*"AD^!LFL2<\`"@`````
`
end


[Please do not change anything below this line]
-----------------------------------------------------------------

---
Site configuration information for perl 5.00503:

Configured by root at Mon Aug 30 23:08:56 EDT 1999.

Summary of my perl5 (5.0 patchlevel 5 subversion 3) configuration:
  Platform:
    osname=linux, osvers=2.2.5-22smp, archname=i386-linux
    uname='linux porky.devel.redhat.com 2.2.5-22smp #1 smp wed jun 2 09:11:51 edt 1999 i686 unknown '
    hint=recommended, useposix=true, d_sigaction=define
    usethreads=undef useperlio=undef d_sfio=undef
  Compiler:
    cc='cc', optimize='-O2', gccversion=egcs-2.91.66 19990314/Linux (egcs-1.1.2 release)
    cppflags='-Dbool=char -DHAS_BOOL -I/usr/local/include'
    ccflags ='-Dbool=char -DHAS_BOOL -I/usr/local/include'
    stdchar='char', d_stdstdio=undef, usevfork=false
    intsize=4, longsize=4, ptrsize=4, doublesize=8
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12
    alignbytes=4, usemymalloc=n, prototype=define
  Linker and Libraries:
    ld='cc', ldflags =' -L/usr/local/lib'
    libpth=/usr/local/lib /lib /usr/lib
    libs=-lnsl -ldl -lm -lc -lposix -lcrypt
    libc=, so=so, useshrplib=false, libperl=libperl.a
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-rdynamic'
    cccdlflags='-fpic', lddlflags='-shared -L/usr/local/lib'

Locally applied patches:
    

---
@INC for perl 5.00503:
    /usr/lib/perl5/5.00503/i386-linux
    /usr/lib/perl5/5.00503
    /usr/lib/perl5/site_perl/5.005/i386-linux
    /usr/lib/perl5/site_perl/5.005
    .

---
Environment for perl 5.00503:
    HOME=/home/madison
    LANG (unset)
    LANGUAGE (unset)
    LD_LIBRARY_PATH (unset)
    LOGDIR (unset)
    PATH=/home/madison/bin/i386-linux-libc6:/home/madison/bin:/usr/local/bin/i386-linux-libc6:/usr/local/bin:/usr/local/contrib/bin:/bin:/usr/bin:/usr/X11R6/bin:.:/proj/validation/bin/i386-linux-libc6:/proj/validation/bin:/proj/hw/bin/i386-linux-libc6:/proj/hw/bin:/proj/sw/r5/fred/i386-linux-libc6/bin:/cad/polaris/current/exe:/cad/innologic/current/scripts:/cad/scripts:/cad/ssi/current/bin/:/usr/local/lsf/bin:/usr/local/contrib/bin
    PERL_BADLANG (unset)
    SHELL=/bin/tcsh




Search Help Spec Overview Administrators Groups
  Perlbug source Perlbug database Email interface Maintainer (TODO)
 Powered by Apache Driven by MySQL Hosted by Linux Scriven in Perl