On Wed, 2003-04-02 at 08:47, Arthur Bergman wrote:
> This has been known to be a bit wonky on Win32, but not under unix 
> (which I assume you are using because you like forks.pm)
> 
that's correct - i'm using linux 2.4.20

> 
> A backtrace would be nice,,
> 
> gdb perl
> run ./agent.pl
> bt
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 147458 (LWP 24211)]
0x401fa3f2 in sharedsv_elem_mg_dup ()
   from /usr/lib/perl/5.8.0/auto/threads/shared/shared.so
(gdb) bt
#0  0x401fa3f2 in sharedsv_elem_mg_dup ()
   from /usr/lib/perl/5.8.0/auto/threads/shared/shared.so
#1  0x080c421e in Perl_mg_dup ()
#2  0x080c4a88 in Perl_sv_dup ()
#3  0x080c4eae in Perl_sv_dup ()
#4  0x080c4eae in Perl_sv_dup ()
#5  0x080c53ca in Perl_sv_dup ()
#6  0x080c40ac in Perl_gp_dup ()
#7  0x080c5565 in Perl_sv_dup ()
#8  0x080c4eae in Perl_sv_dup ()
#9  0x080c4eae in Perl_sv_dup ()
#10 0x080c53ca in Perl_sv_dup ()
#11 0x080c40ac in Perl_gp_dup ()
#12 0x080c5565 in Perl_sv_dup ()
#13 0x080c4eae in Perl_sv_dup ()
#14 0x080c4eae in Perl_sv_dup ()
#15 0x080c53ca in Perl_sv_dup ()
#16 0x080c4588 in Perl_rvpv_dup ()
#17 0x080c4803 in Perl_sv_dup ()
#18 0x080abcb1 in Perl_he_dup ()
#19 0x080c5112 in Perl_sv_dup ()
#20 0x080c4eae in Perl_sv_dup ()
#21 0x080c4eae in Perl_sv_dup ()
---Type <return> to continue, or q <return> to quit---
#22 0x080c53ca in Perl_sv_dup ()
#23 0x080c534d in Perl_sv_dup ()
#24 0x080c534d in Perl_sv_dup ()
#25 0x080c40ac in Perl_gp_dup ()
#26 0x080c5565 in Perl_sv_dup ()
#27 0x080abcb1 in Perl_he_dup ()
#28 0x080abc62 in Perl_he_dup ()
#29 0x080c5112 in Perl_sv_dup ()
#30 0x080c5245 in Perl_sv_dup ()
#31 0x080c40ac in Perl_gp_dup ()
#32 0x080c5565 in Perl_sv_dup ()
#33 0x080abcb1 in Perl_he_dup ()
#34 0x080c5112 in Perl_sv_dup ()
#35 0x080c4aa0 in Perl_sv_dup ()
#36 0x080c4588 in Perl_rvpv_dup ()
#37 0x080c4803 in Perl_sv_dup ()
#38 0x080c418b in Perl_mg_dup ()
#39 0x080c4da8 in Perl_sv_dup ()
#40 0x080c4588 in Perl_rvpv_dup ()
#41 0x080c4803 in Perl_sv_dup ()
#42 0x080c4f15 in Perl_sv_dup ()
#43 0x080c4060 in Perl_gp_dup ()
#44 0x080c5565 in Perl_sv_dup ()
---Type <return> to continue, or q <return> to quit---
#45 0x080c4eae in Perl_sv_dup ()
#46 0x080c4eae in Perl_sv_dup ()
#47 0x080c53ca in Perl_sv_dup ()
#48 0x080c40ac in Perl_gp_dup ()
#49 0x080c5565 in Perl_sv_dup ()
#50 0x080abcb1 in Perl_he_dup ()
#51 0x080c5112 in Perl_sv_dup ()
#52 0x080c553b in Perl_sv_dup ()
#53 0x080c6755 in perl_clone ()
#54 0x401f3bdb in Perl_ithread_create ()
   from /usr/lib/perl/5.8.0/auto/threads/threads.so
#55 0x401f4101 in XS_threads_new ()
   from /usr/lib/perl/5.8.0/auto/threads/threads.so
#56 0x080b6f47 in Perl_pp_entersub ()
#57 0x080b17ee in Perl_runops_standard ()
#58 0x0806276a in Perl_call_sv ()
#59 0x08062529 in Perl_call_sv ()
#60 0x401f369b in Perl_ithread_run ()
   from /usr/lib/perl/5.8.0/auto/threads/threads.so
#61 0x40049d53 in pthread_start_thread () from /lib/libpthread.so.0
#62 0x40049d99 in pthread_start_thread_event () from
/lib/libpthread.so.0

zoiks  - that is a long back trace...
you may be wondering why so many calls sv_grp and mg_dup...

Im sharing 4 variables between threads
1) fairly complex multi-d hash containing arrays
2) straighforward 2-d hash
3) an array of hashes
4) a hash of arrays

I can show you the structures if you like

> Do you know when you are getting the coredump, in new() or in join?
it's in the new (exclusively as far as i can tell) - i see a log message
right before the new but not the one right after...

> 
> Also, what modules are you using?
here are my use statements...

use strict;

use IO::Socket; 
use Carp; #could do without this...
use threads;
use threads::shared;
#use forks;
#use forks::shared;
use Fcntl qw(:DEFAULT :flock); #for locking the log file
use Data::Dumper; #for debugging - don't really need this.

Thanks for your attention to this - i'll do whatever i can to help find
the problem...

brad

-- 
Bradley W. Langhorst <[EMAIL PROTECTED]>

Reply via email to