[Debian-med-packaging] Bug#661793: bioperl: Error in berkeleydb3.pm while creating Temp file

Olivier Sallou olivier.sallou at irisa.fr
Thu Mar 1 10:23:30 UTC 2012


Package: bioperl
Version: 1.6.901-2
Severity: important
Tags: upstream

 When using bp_seqfeature_load.pl I have an error at build_summary_statistics call time of berkeleydb3.pm:
   Couldn't create temporary file for sorting: Inappropriate ioctl for device
 It occurs in berkeleydb3.pm line 500

 Looking at the code I tried to manipulate it replacing
    my $s = tie %sort,'DB_File',$name,0666,O_CREAT|O_RDWR,$numeric_cmp
 by
    my $s = tie %sort,'DB_File',$name,O_CREAT|O_RDWR,0666,$numeric_cmp

 and the error disappear.

I used below sample code to test:

require File::Temp;
use File::Temp ();
use File::Temp qw/ :seekable /;
use base 'Bio::DB::SeqFeature::Store::berkeleydb';
use DB_File;
use Fcntl qw(O_RDWR O_CREAT :flock);

my $fh   = File::Temp->new() or die("Couldn't create temporary file for sorting: $!");
my $name = $fh->filename;
my %sort;
my $numeric_cmp         = DB_File::BTREEINFO->new;
$numeric_cmp->{compare} = sub { $_[0] <=> $_[1] };
$numeric_cmp->{flags}   = R_DUP;
my $s = tie %sort,'DB_File',$name,0666,O_CREAT|O_RDWR,$numeric_cmp
#my $s = tie %sort,'DB_File',$name,O_CREAT|O_RDWR,0666,$numeric_cmp
        or die("Couldn't create temporary file for sorting: $!");



However the same code works fine on a Red Hat on an other system (not same perl version).
So I do not know if my fix is a correct fix, it just make the error disappear.
If I look at perldoc for DB_File I see examples like:
 tie %A, "DB_File", "filename", O_CREAT|O_RDWR, 0666, $DB_HASH ;
so it seems that 0666 should be set after O_CREAT....

-- System Information:
Debian Release: wheezy/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (500, 'stable')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.32-5-amd64 (SMP w/1 CPU core)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages bioperl depends on:
ii  libbio-perl-perl              1.6.901-2  BioPerl core perl modules
ii  perl                          5.14.2-7   Larry Wall's Practical Extraction 

Versions of packages bioperl recommends:
ii  bioperl-run                  1.6.9-1     BioPerl wrappers: scripts
ii  libace-perl                  1.92-2+b2   Object-Oriented Access to ACEDB Da
ii  libapache-dbi-perl           1.11-1      interface connecting apache server
ii  libbio-perl-run-perl         1.6.9-1     BioPerl wrappers: modules
ii  libcache-cache-perl          1.06-2      Managed caches of persistent infor
ii  libdbi-perl                  1.618-1     Perl Database Interface (DBI)
ii  libgd-gd2-perl               1:2.46-3+b1 Perl module wrapper for libgd - gd
ii  libhttp-message-perl         6.03-1      perl interface to HTTP style messa
ii  liblist-moreutils-perl       0.33-1+b1   Perl module with additional list f
ii  libset-scalar-perl           1.25-1      Perl interface for operations on f
ii  liburi-perl                  1.59-1      module to manipulate and access UR
ii  libwww-perl                  6.01-3      simple and consistent interface to
ii  libxml-simple-perl           2.18-3      Perl module for reading and writin
ii  libxml-twig-perl             1:3.39-1    Perl module for processing huge XM
ii  libyaml-perl                 0.80-1      YAML Ain't Markup Language
ii  perl-doc                     5.14.2-7    Perl documentation

Versions of packages bioperl suggests:
ii  groff-base                    1.21-6     GNU troff text-formatting system (

-- no debconf information





More information about the Debian-med-packaging mailing list