[ic] Perl, debian packages, and the usual issues.

Jeff Fearn jefffearn at gmail.com
Wed Jan 19 23:30:34 EST 2005


On Thu, 20 Jan 2005 11:39:17 +0800, Cameron G <ritontor at icenet.com.au> wrote:
> 
> > -----Original Message-----
> > From: interchange-users-bounces at icdevgroup.org
> > [mailto:interchange-users-bounces at icdevgroup.org] On Behalf
> > Of Jeff Fearn
> > Sent: Thursday, 20 January 2005 7:39 AM
> > To: interchange-users at icdevgroup.org
> > Subject: Re: [ic] Perl, debian packages, and the usual issues.
> >
> > On Wed, 19 Jan 2005 10:31:43 +0000, Jamie Neil
> > <jamie at versado.net> wrote:
> > > Cameron G wrote:
> > >
> > > What I don't understand is why this separate Perl
> > workaround is still
> > > necessary. It seems that the problem with IC and threaded
> > Perl is not
> > > Perl itself but the DBI or DBD::mysql modules. Now DBI is (AFAIK) a
> > > very widely used Perl module, and MySQL is the most popular
> > database
> > > out there, so now that almost every current Linux
> > distribution ships
> > > with a threaded Perl, why has this issue not been fixed? Is
> > > Interchange the _only_ application out there that has issues with
> > > threaded Perl? Surely if the problem lies in the DBI
> > modules then many
> > > other applications would be affected?
> >
> > >From the docs for DBI 1.46 (November 2004): "Using DBI with perl
> > threads is not yet recommended for production environments."
> >
> > It appears that DBI is thread safe, but that some DBD modules
> > are the problem.
> >
> > http://aspn.activestate.com/ASPN/Mail/Message/perl-DBI-Dev/2241844
> >
> > DBD:mysql thread safety depends on the way the C libs are compiled.
> >
> > http://search.cpan.org/~rudy/DBD-mysql-2.9004/lib/DBD/mysql.pm
> > #MULTITHREADING
> >
> > The question seems to be how many DBD modules are thread safe
> > and what conditions need to be met to enable this behaviour
> > in each DBD module.
> >
> > I'm thinking that writing an installer to check all that out
> > would be ... very challenging.
> >
> > Jeff
> 
> Which is why I think we should just bite the bullet, accept that we need a
> non-threaded perl, and work out the easiest possible way to make this happen
> for people who want to run IC. I mean, it's easy enough for "us", but what
> about the average joe off the street with very little admin experience, or
> even worse, trying to get it going in a minimally supported hosting
> environment?

Probably the easiest way would be to choose which DBD modules to
support. i.e. if mysql and postresql are thread safe do we really need
to support any non safe DBD's?

A problem would be verifying that IC itself _is_ thread safe, which I
doubt has had much serious testing given the DBD problems.

Another option would be to include a non-threaded perl, and all IC
required modules, in the IC distribution. This would cause problems,
such as adding other modules etc.

Not that I'm advising the IC team to take either approach, but you
gotta talk about options befor someone comes up with the killer idea
;)

> By the way, I still haven't worked out what you need to change in order to
> get an installed IC working with a different perl, and even if I do do this,
> I'm pretty certain it's going to break come apt-get update time ;)

I'm not sure why this would affect apt ... but I use Redhat so RPM is
the hell I live in ;)

Anyway http://perlmonks.thepen.com/285799.html will tell you how to
install/update another  version of perl on a debian box and
interchange/lib/relocate.pl will update IC to use which ever perl you
want to use.

Jeff.


More information about the interchange-users mailing list