[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