[ic] 4.8.2 core dump

Costa Armin (Student Econ99) interchange-users@interchange.redhat.com
Wed Oct 3 03:57:01 2001


Hi pablo,

Just a curious question as my Lastname is Costa, too.:
Where are you from?

Bye Rusty

-----Original Message-----
From: Pablo Costa [mailto:pablo@cbsp.com.br] 
Sent: Wednesday, 03 October, 2001 7:56 AM
To: interchange-users@interchange.redhat.com
Cc: staff@3light.com.br
Subject: Re: [ic] 4.8.2 core dump


On Sun, 30 Sep 2001, Sameh Ghane wrote:

> Le (On) Thu, Sep 27, 2001 at 09:20:34AM -0400, mheins@redhat.com 
> ecrivit (wrote):
> >
> > I think I know what this means -- the DB_File module is core 
> > dumping. I bet you could go back to low traffic mode if you removed:
> >
> >     Pragma dynamic_variables
> >
> > from templates/foundation/theme.cfg.
>
> Doesn't work.
>
> GDB indicates that perl cores dump at #0  0x2816a175 in setproctitle 
> () from /usr/lib/libc.so.4
>
> Fine. The only place where perl uses setproctitle is in mg.c. I 
> recompiled perl, #undef'ining HAS_SETPROCTITLE, and now interchanges 
> runs fine.
>
> perl is still version 5.005_03 built for i386-freebsd.
>
> If someone with more perl/interchange knowledge is interested in 
> finding what calls setproctitle with bogus arguments, go for it ;)
>
> > I think I am
> > going to have to put some hints in for BSD again, sigh....
>
> BSD-developped software have the same problem towards linux...


On some systems it's possible to affect what's displayed by ps by simply
assigning to $0 - on others the kernel has a private copy of the program
name so that you can't do this simply.  E.g.

$ perl -e '$0 = "hi Mike"; sleep 60' &
[1]     4133
$ ps 4133
  PID TTY      S           TIME COMMAND
 4133 ttyp8    I N      0:00.03 hi Mike



Interchange try this on line 2813
of /usr/local/interchange/bin/interchange

2813 #                       $0 = 'interchange';

   A real problem is that it is essentially non-portable.
   Most UNIXen allow to do strcopy(argv, "my new name"), but some do not.
Some (esp. BSD-derived) has setproctitle("new string") call in libc (almost
always this function is not prototyped in headers).



I commented this string in line 2812 to 2814 in
/usr/local/interchange/bin/interchange
and all works again :-))



   2807                if(defined $Global::Variable->{MV_DOLLAR_ZERO}) {
   2808                       $0 = $Global::Variable->{MV_DOLLAR_ZERO};
   2809                        $0 = "interchange --> $Global::VendRoot"
   2810                                        if length($0) < 2;
   2811                }
   2812 #               else {
   2813 #                       $0 = 'interchange';
   2814 #               }



Bye



-- 
Pablo Martins F. Costa
Casablanca Service Provider
Av. República do Líbano, 390
Sao Paulo - SP - Brasil
04502-000

tel.: (011) 3889-2717

e-mail: pablo@cbsp.com.br
site: www.cbsp.com.br


_______________________________________________
interchange-users mailing list interchange-users@interchange.redhat.com
http://interchange.redhat.com/mailman/listinfo/interchange-users