From: Austin S. <te...@of...> - 2003-08-26 06:09:07
|
On Mon, Aug 25, 2003 at 07:26:27AM -0500, Rogaski, Mark, ALABS wrote: > I suspect that you are closing the file handles elsewhere in your > program, and Expect is simply carping because the handles it wants to > clean up and close are missing. I had thought that might be the case too, but now I'm thinking that probably isn't the case. It doesn't make sense that closing the associated handle would somehow make a reference no longer point to a glob. I'm thinking it's probably something like a bug in perl's reference counter, or something like that. If you modify the code to test if each reference isa() GLOB before the problematic parts, that might be a bandaid. Ugly, but I'm not sure what else could be done. If you go down that road please let us know what worked. Austin > I've attached a "cosmetic" patch to get > rid of the error message (as always, use at your own risk). But, you > may want to figure out whether the file handles are being closed nicely. > > Mark > > -- > Mark Rogaski "Computers save time like kudzu > prevents > Multi-service Data Field Support soil erosion." -- Al Castanoli > > email: ro...@at... voice: +1-732-885-7534 > pager: +1-888-858-7243 p: 200853 or 20...@pa... > > -----Original Message----- > From: Sayre Swarztrauber [mailto:sa...@qu...] > Sent: Friday, August 22, 2003 3:53 PM > To: Rogaski, Mark, ALABS > Cc: Expectperl-Discuss (E-mail) > Subject: Re: [Expectperl-discuss] Problem with GLOB Reference in > Expect.pm > > > I am creating it with exp_init(). > > Rogaski, Mark, ALABS wrote: > > > It looks like the filehandle is disappearing before the Expect > > destructor is called. Are you creating the Expect object with spawn() > > or exp_init()? > > > > Mark > > > > -- > > Mark Rogaski "Computers save time like kudzu > > prevents > > Multi-service Data Field Support soil erosion." -- Al Castanoli > > email: ro...@at... voice: +1-732-885-7534 > > pager: +1-888-858-7243 p: 200853 or 20...@pa... > > > > > > -----Original Message----- > > From: Sayre Swarztrauber [ mailto:sa...@qu...] > > Sent: Friday, August 22, 2003 2:07 PM > > To: Expectperl-Discuss (E-mail) > > Subject: Re: [Expectperl-discuss] Problem with GLOB Reference in > > Expect.pm > > > > > > I have a similar problem **whenever** my program exits: > > > > (in cleanup) Not a GLOB reference at > > /usr/lib/perl5/site_perl/5.8.0/Expect.pm line 1572. > > > > I am also interested in a way to stop that from happening. > > > > Thank you. > > > > > > Sayre Swarztrauber > > Quadlogic > > New York > > > > > > Kemp, Donald wrote: > > > > > > Hi, > > I am intermittently getting the following message .... > > Not a GLOB reference at > > /usr/local/lib/perl5/site_perl/5.6.1/Expect.pm line 256. > > This happens on a Solaris 8 system running Perl 5.6.1 and Expect 1.15. > > > > The > > > > problem is occurring on a production system that has multiple fast > > processors and a very large amount of memory. It seems to be occurring > > > > more > > > > often as the number of users on the system that are using my code > > > > increases. > > > > I do not see the problem on my "slower" test system running the same > > > > level > > > > of software. Does anyone have any idea what may be triggering this > > > > error? > > > > What can I do to try an isolate what the cause of the problem may be?? > > > > Best Regards, > > Donald.E.S.Kemp > > AT&T > > Network Management Solutions, > > Building 6000, Langstone Technology Park, > > Langstone Road, Havant, Hampshire, > > United Kingdom, > > PO9 1SA > > Phone: +44(0)23 9222 8424 > > email: dk...@em... > > > > This message and any attachments to it contain confidential business > > information exclusively intended for the recipients. Please do not > > > > forward > > > > or distribute it to anyone else. If you have received this e-mail in > > > > error, > > > > please call [+44 (0)23 92228424] to report the error and then delete > > > > this > > > > message from your system. > > > > > > > > > > > > > > > > ------------------------------------------------------- > > This SF.net email is sponsored by: VM Ware > > With VMware you can run multiple operating systems on a single machine. > > WITHOUT REBOOTING! Mix Linux / Windows / Novell virtual machines > > at the same time. Free trial click > > > > here: http://www.vmware.com/wl/offer/358/0 > > > > _______________________________________________ > > Expectperl-discuss mailing list > > Exp...@li... > > https://lists.sourceforge.net/lists/listinfo/expectperl-discuss > > > > > > > > > > > > > > ------------------------------------------------------- > > This SF.net email is sponsored by: VM Ware > > With VMware you can run multiple operating systems on a single machine. > > WITHOUT REBOOTING! Mix Linux / Windows / Novell virtual machines > > at the same time. Free trial click > > here: http://www.vmware.com/wl/offer/358/0 > > _______________________________________________ > > Expectperl-discuss mailing list > > Exp...@li... > > https://lists.sourceforge.net/lists/listinfo/expectperl-discuss > > > > > > ------------------------------------------------------- > > This SF.net email is sponsored by: VM Ware > > With VMware you can run multiple operating systems on a single machine. > > WITHOUT REBOOTING! Mix Linux / Windows / Novell virtual machines > > at the same time. Free trial click here: > http://www.vmware.com/wl/offer/358/0 > > _______________________________________________ > > Expectperl-discuss mailing list > > Exp...@li... > > https://lists.sourceforge.net/lists/listinfo/expectperl-discuss > > > Content-Description: Expect_pm_globref_patch.txt > *** /usr/local/lib/perl5/site_perl/5.6.1/Expect.pm Tue Mar 19 06:59:29 2002 > --- Expect.pm Fri Aug 22 15:12:39 2003 > *************** > *** 1569,1578 **** > # clean up child processes > sub DESTROY { > my $self = shift; > ! if (${*$self}{exp_Do_Soft_Close}) { > ! $self->soft_close(); > } > - $self->hard_close(); > } > > 1; > --- 1569,1580 ---- > # clean up child processes > sub DESTROY { > my $self = shift; > ! if (defined $self->fileno()) { > ! if (${*$self}{exp_Do_Soft_Close}) { > ! $self->soft_close(); > ! } > ! $self->hard_close(); > } > } > > 1; |