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

Crash during global destruction with Storable and threads #6776

Closed
p5pRT opened this issue Sep 21, 2003 · 7 comments
Closed

Crash during global destruction with Storable and threads #6776

p5pRT opened this issue Sep 21, 2003 · 7 comments

Comments

@p5pRT
Copy link

p5pRT commented Sep 21, 2003

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

Searchable as RT23907$

@p5pRT
Copy link
Author

p5pRT commented Sep 21, 2003

From frank.tolstrup@get2net.dk

Created by frank.tolstrup@get2net.dk

In trying to make Thread​::Tie and Thread​::Pool run under Windows 2000 I
found that the following code crashes during global destruction​:

use threads;
use Storable ();
sub freeze {
  return Storable​::freeze( \@​_ );
}
#{ my $u=freeze(undef);}
my $thr = threads->new( sub {my $undef=freeze(undef)} );
sleep 3;
exit;

The script runs fine if I uncomment the 6th line.

Perl Info

Flags:
    category=core
    severity=medium

Site configuration information for perl v5.8.1:
 
Configured by ft at Sat Sep 20 17:44:14 2003.
 
Summary of my perl5 (revision 5 version 8 subversion 1) configuration:
  Platform:
    osname=MSWin32, osvers=4.0, archname=MSWin32-x86-multi-thread
    uname=''
    config_args='undef'
    hint=recommended, useposix=true, d_sigaction=undef
    usethreads=undef 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='cl', ccflags ='-nologo -Gf -W3 -MD -DNDEBUG -O1 -DWIN32
-D_CONSOLE -DNO_STRICT -DHAVE_DES_FCRYPT  -DPERL_IMPLICIT_CONTEXT
-DPERL_IMPLICIT_SYS -DUSE_PERLIO -DPERL_MSVCRT_READFIX',
    optimize='-MD -DNDEBUG -O1',
    cppflags='-DWIN32'
    ccversion='', gccversion='', gccosandvers=''
    intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234
    d_longlong=undef, longlongsize=8, d_longdbl=define, longdblsize=10
    ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='__int64',
lseeksize=8
    alignbytes=8, prototype=define
  Linker and Libraries:
    ld='link', ldflags ='-nologo -nodefaultlib -release
-libpath:"G:\perl\5.8.1-RC4\lib\CORE"  -machine:x86'
    libpth="G:\Program Files\Microsoft Visual Studio .NET\VC7\lib"
    libs=  oldnames.lib kernel32.lib user32.lib gdi32.lib winspool.lib
comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib
netapi32.lib uuid.lib wsock32.lib mpr.lib winmm.lib  version.lib
odbc32.lib odbccp32.lib msvcrt.lib
    perllibs=  oldnames.lib kernel32.lib user32.lib gdi32.lib
winspool.lib  comdlg32.lib advapi32.lib shell32.lib ole32.lib
oleaut32.lib  netapi32.lib uuid.lib wsock32.lib mpr.lib winmm.lib
version.lib odbc32.lib odbccp32.lib msvcrt.lib
    libc=msvcrt.lib, so=dll, useshrplib=yes, libperl=perl58.lib
    gnulibc_version='undef'
  Dynamic Linking:
    dlsrc=dl_win32.xs, dlext=dll, d_dlsymun=undef, ccdlflags=' '
    cccdlflags=' ', lddlflags='-dll -nologo -nodefaultlib -release
-libpath:"G:\perl\5.8.1-RC4\lib\CORE"  -machine:x86'
 
Locally applied patches:
    RC4
 

@INC for perl v5.8.1:
    G:/Perl/5.8.1-RC4/lib
    G:/Perl/site/5.8.1-RC4/lib
    G:/Perl/site/lib
    .
 

Environment for perl v5.8.1:
    HOME (unset)
    LANG (unset)
    LANGUAGE (unset)
    LD_LIBRARY_PATH (unset)
    LOGDIR (unset)
    PATH=G:\Perl\bin\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;
    PERLDB_OPTS=RemotePort=127.0.0.1:2000
    PERL_BADLANG (unset)
    SHELL (unset)


@p5pRT
Copy link
Author

p5pRT commented Dec 15, 2005

From @smpeters

[frank.tolstrup@​get2net.dk - Sun Sep 21 01​:31​:46 2003]​:

This is a bug report for perl from frank.tolstrup@​get2net.dk,
generated with the help of perlbug 1.34 running under perl v5.8.1.

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

In trying to make Thread​::Tie and Thread​::Pool run under Windows 2000 I
found that the following code crashes during global destruction​:

use threads;
use Storable ();
sub freeze {
return Storable​::freeze( \@​_ );
}
#{ my $u=freeze(undef);}
my $thr = threads->new( sub {my $undef=freeze(undef)} );
sleep 3;
exit;

The script runs fine if I uncomment the 6th line.

I hadn't looked at this bug in a while, but not it seems to have been resolved. I check it out
on Win32 before closing this bug.

@p5pRT
Copy link
Author

p5pRT commented Dec 15, 2005

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

@p5pRT
Copy link
Author

p5pRT commented Apr 30, 2012

From @Hugmeir

On Wed Dec 14 18​:58​:47 2005, stmpeters wrote​:

[frank.tolstrup@​get2net.dk - Sun Sep 21 01​:31​:46 2003]​:

This is a bug report for perl from frank.tolstrup@​get2net.dk,
generated with the help of perlbug 1.34 running under perl v5.8.1.

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

In trying to make Thread​::Tie and Thread​::Pool run under Windows
2000 I
found that the following code crashes during global destruction​:

use threads;
use Storable ();
sub freeze {
return Storable​::freeze( \@​_ );
}
#{ my $u=freeze(undef);}
my $thr = threads->new( sub {my $undef=freeze(undef)} );
sleep 3;
exit;

The script runs fine if I uncomment the 6th line.

I hadn't looked at this bug in a while, but not it seems to have been
resolved. I check it out
on Win32 before closing this bug.

I just ran this on WinXP, with and without PERL_DESTRUCT_LEVEL=2, and it
worked correctly both times. But I'm hardly a windows expert, so if
someone else could confirm, we can mark this as resolved.

@p5pRT
Copy link
Author

p5pRT commented Apr 30, 2012

From @bulk88

On Mon Apr 30 00​:33​:22 2012, Hugmeir wrote​:

I just ran this on WinXP, with and without PERL_DESTRUCT_LEVEL=2, and it
worked correctly both times. But I'm hardly a windows expert, so if
someone else could confirm, we can mark this as resolved.

Rewrote it as
______________________________________________
use Perl​::Destruct​::Level level => 2;

use threads;
use Storable ();
sub freeze {
return Storable​::freeze( \@​_ );
}
#{ my $u=freeze(undef);}
my $thr = threads->new( sub {my $undef=freeze(undef)} );
sleep 5;
exit;
____________________________________________________

used on a DEBUGGING Perl 5.12 and ActivePerl 5.10. No OS level
exceptions in VS debugger in both.

@p5pRT
Copy link
Author

p5pRT commented Jul 5, 2016

From @dcollinsn

Evidently, we are unable to reproduce? Closing.

@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
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant