Beefy Boxes and Bandwidth Generously Provided by pair Networks
Syntactic Confectionery Delight
 
PerlMonks  

Re^2: ExtUtils::MakeMaker, APR::UUID or Perl problem?

by jk2addict (Chaplain)
on Dec 04, 2005 at 17:51 UTC ( #513976=note: print w/replies, xml ) Need Help??


in reply to Re: ExtUtils::MakeMaker, APR::UUID or Perl problem?
in thread ExtUtils::MakeMaker, APR::UUID or Perl problem?

I don't think it's just interfering with WriteMakefile, but instead either other XS loading or file writing.

In the dist in question, I have a bunch of tests that read/write to sqlite databases using DBD::SQLite. I commented out the APR load in Makefile.PL to get a complete Makefile. Then I started running the tests.

All of the sqlite tests were failing with strange errors, corrupt db, locked db, full db, etc. In my core module, Handel.pm, I commented out the same APR::UUID eval statement I use in Makefile.PL to find the appropriate uuid module.

As soon as I commented out APR::UUID, all of my sqlite tests passed. If I uncomment it, they fail again.

So, it's not just EU::MM being borked, but other things as well. I don't know enough to know whether it's effecting the loading of XS in other modules, or some read/write process being borked.

  • Comment on Re^2: ExtUtils::MakeMaker, APR::UUID or Perl problem?

Replies are listed 'Best First'.
Re^3: ExtUtils::MakeMaker, APR::UUID or Perl problem?
by randyk (Parson) on Dec 04, 2005 at 18:43 UTC

    That sounds right about it being a more global problem. One place that something specific to openbsd arises is in APR.pm, in defining the dl_load_flags sub. I'm not sure of the background behind this - probably someone on the modperl mailing list would be able to help.

    Is this Perl built with ithreads support? If so, the comment in README.openbsd of the perl sources about needing to upgrade to Perl 5.8.7 may be relevant.

      Assuming I'm reading this correctly, it doesn't look like thread-enabled:

      test:~$ perl -V Summary of my perl5 (revision 5 version 8 subversion 6) configuration: Platform: osname=openbsd, osvers=3.8, archname=i386-openbsd uname='openbsd' config_args='-dsE -Dopenbsd_distribution=defined' hint=recommended, useposix=true, d_sigaction=define usethreads=undef use5005threads=undef useithreads=undef usemultipl +icity=undef useperlio=define d_sfio=undef uselargefiles=define usesocks=undef use64bitint=undef use64bitall=undef uselongdouble=undef usemymalloc=n, bincompat5005=undef

      Even stranger. If I save a copy of that APR.pm into the dists lib and do perl -Ilib Makefile.PL, I still get a 0 byte Makefile. Now, if I add this to that APR.pm:

      BEGIN {warn 'using custom APR'};

      and rerun perl -Ilib Makefile.PL, I get the correct full Makefile. Removing that BEIGN statement make the Makefile 0 bytes again.

      If I comment out the line:

      # sub dl_load_flags { DL_GLOBAL }

      I still get an empty Makefile. There be demons in there.

      He he. I can't wait to see what the hell the answer to all of this mess is. If I put this in my Makefile.PL

      print 'foo';

      My Makefile gets created. So, it seems to point to an APR/XS I/O buffering issue outside of MP.

        Does something equally perplexing solve the problems with the sqlite tests?

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://513976]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others studying the Monastery: (9)
As of 2022-01-24 18:10 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    In 2022, my preferred method to securely store passwords is:












    Results (64 votes). Check out past polls.

    Notices?