Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Possible buffer overrun in threads #6781

Closed
p5pRT opened this issue Sep 22, 2003 · 5 comments
Closed

Possible buffer overrun in threads #6781

p5pRT opened this issue Sep 22, 2003 · 5 comments

Comments

@p5pRT
Copy link

p5pRT commented Sep 22, 2003

Migrated from rt.perl.org#23963 (status was 'rejected')

Searchable as RT23963$

@p5pRT
Copy link
Author

p5pRT commented Sep 22, 2003

From DavidBuckley@bigfoot.com

Created by DavidBuckley@bigfoot.com

This is, unfortunately, an apparently unreproducible bug.

I have a CGI backend running for scripts that will potentially take
a while to run, hence I have several threads. These initialise
themselves on as as-needed basis. My problem lies on the fact that,
at random (apparently), one of the threads (it always /seems/ to be
the final one) is corrupting a string. I'm receiving the following
error​:

thread failed to start​: Holy crap on a stick, my transport module fucked up (Can't locate object method "g.pm" via package "SiteEng​::Transport​::HTTP" at ./SiteEng.pm line 107.
)! at ./SiteEng.pm line 125.

(The bit in brackets is of course what Perl gives me)

Line 125 is simply the tail-end of my own exception catching routine,
which throws a fatal and logs to various places. Line 107 is​:

%Param = $Transport->Parameters();

$Transport is global to this source file; it's initialised in an
'unless' clause above (so it's definately initialised to something,
or the script wouldn't have got this far; more evidence is in the
fact that Perl knew the package the error resulted from).

At the point of execution, the system isn't very far through
initialisation​: It's loaded the main module, and just loaded the
transport module for the purposes of initialising $Transport.

You're free to ask for the source code in question, but be warned
that it's under development, big, and not all that tidy.

The method name that I get errors for is not always 'g.pm'; I've had
a range of different things, including some apparently random binary
data (at least, as far as I recall). Note that g.pm is the end of
the filename that the statement resides in.

I'm running Debian unstable's Perl 5.8.0 (with threads).

Perl Info

Flags:
    category=core
    severity=medium

Site configuration information for perl v5.8.0:

Configured by Debian Project at Wed Jul 30 11:30:19 EST 2003.

Summary of my perl5 (revision 5.0 version 8 subversion 0) configuration:
  Platform:
    osname=linux, osvers=2.4.21-xfs+ti1211, archname=i386-linux-thread-multi
    uname='linux kosh 2.4.21-xfs+ti1211 #1 sat jul 12 10:35:04 est 2003 i686 gnulinux '
    config_args='-Dusethreads -Duselargefiles -Dccflags=-DDEBIAN -Dcccdlflags=-fPIC -Darchname=i386-linux -Dprefix=/usr -Dprivlib=/usr/share/perl/5.8.0 -Darchlib=/usr/lib/perl/5.8.0 -Dvendorprefix=/usr -Dvendorlib=/usr/share/perl5 -Dvendorarch=/usr/lib/perl5 -Dsiteprefix=/usr/local -Dsitelib=/usr/local/share/perl/5.8.0 -Dsitearch=/usr/local/lib/perl/5.8.0 -Dman1dir=/usr/share/man/man1 -Dman3dir=/usr/share/man/man3 -Dman1ext=1 -Dman3ext=3perl -Dpager=/usr/bin/sensible-pager -Uafs -Ud_csh -Uusesfio -Uusenm -Duseshrplib -Dlibperl=libperl.so.5.8.0 -Dd_dosuid -des'
    hint=recommended, useposix=true, d_sigaction=define
    usethreads=define use5005threads=undef useithreads=define usemultiplicity=define
    useperlio=define d_sfio=undef uselargefiles=define usesocks=undef
    use64bitint=undef use64bitall=undef uselongdouble=undef
    usemymalloc=n, bincompat5005=undef
  Compiler:
    cc='cc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fno-strict-aliasing -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
    optimize='-O3',
    cppflags='-D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fno-strict-aliasing'
    ccversion='', gccversion='3.3.1 20030722 (Debian prerelease)', gccosandvers=''
    intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12
    ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
    alignbytes=4, prototype=define
  Linker and Libraries:
    ld='cc', ldflags =' -L/usr/local/lib'
    libpth=/usr/local/lib /lib /usr/lib
    libs=-lgdbm -ldb -ldl -lm -lpthread -lc -lcrypt
    perllibs=-ldl -lm -lpthread -lc -lcrypt
    libc=/lib/libc-2.3.1.so, so=so, useshrplib=true, libperl=libperl.so.5.8.0
    gnulibc_version='2.3.1'
  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 v5.8.0:
    /etc/perl
    /usr/local/lib/perl/5.8.0
    /usr/local/share/perl/5.8.0
    /usr/lib/perl5
    /usr/share/perl5
    /usr/lib/perl/5.8.0
    /usr/share/perl/5.8.0
    /usr/local/lib/site_perl
    .


Environment for perl v5.8.0:
    HOME=/home/bucko
    LANG=en_GB
    LANGUAGE (unset)
    LD_LIBRARY_PATH (unset)
    LOGDIR (unset)
    PATH=/home/bucko/bin:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
    PERL_BADLANG (unset)
    SHELL=/bin/bash


@p5pRT
Copy link
Author

p5pRT commented May 27, 2013

From @jkeenan

On Mon Sep 22 09​:36​:41 2003, DavidBuckley@​bigfoot.com wrote​:

This is a bug report for perl from DavidBuckley@​bigfoot.com,
generated with the help of perlbug 1.34 running under perl v5.8.0.

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

This is, unfortunately, an apparently unreproducible bug.

I have a CGI backend running for scripts that will potentially take
a while to run, hence I have several threads. These initialise
themselves on as as-needed basis. My problem lies on the fact that,
at random (apparently), one of the threads (it always /seems/ to be
the final one) is corrupting a string. I'm receiving the following
error​:

thread failed to start​: Holy crap on a stick, my transport module
fucked up (Can't locate object method "g.pm" via package
"SiteEng​::Transport​::HTTP" at ./SiteEng.pm line 107.
)! at ./SiteEng.pm line 125.

(The bit in brackets is of course what Perl gives me)

Line 125 is simply the tail-end of my own exception catching routine,
which throws a fatal and logs to various places. Line 107 is​:

%Param = $Transport->Parameters();

$Transport is global to this source file; it's initialised in an
'unless' clause above (so it's definately initialised to something,
or the script wouldn't have got this far; more evidence is in the
fact that Perl knew the package the error resulted from).

At the point of execution, the system isn't very far through
initialisation​: It's loaded the main module, and just loaded the
transport module for the purposes of initialising $Transport.

You're free to ask for the source code in question, but be warned
that it's under development, big, and not all that tidy.

The method name that I get errors for is not always 'g.pm'; I've had
a range of different things, including some apparently random binary
data (at least, as far as I recall). Note that g.pm is the end of
the filename that the statement resides in.

I'm running Debian unstable's Perl 5.8.0 (with threads).

Reviewing older tickets this morning, I came across this one.

Original poster​: Do you still need assistance with this problem?

If not, I think we should close this ticket, as the bug was described as
non-reproducible.

Thank you very much.
Jim Keenan

@p5pRT
Copy link
Author

p5pRT commented May 27, 2013

The RT System itself - Status changed from 'new' to 'open'

@p5pRT
Copy link
Author

p5pRT commented Jul 5, 2016

From @dcollinsn

On Mon May 27 05​:53​:56 2013, jkeenan wrote​:

Reviewing older tickets this morning, I came across this one.

Original poster​: Do you still need assistance with this problem?

If not, I think we should close this ticket, as the bug was described as
non-reproducible.

Thank you very much.
Jim Keenan

I agree.

@p5pRT
Copy link
Author

p5pRT commented Jul 5, 2016

@dcollinsn - Status changed from 'open' to 'rejected'

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant