Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

IO::Select->select() returns empty list even if there were no errors #13523

Closed
p5pRT opened this issue Jan 13, 2014 · 11 comments
Closed

IO::Select->select() returns empty list even if there were no errors #13523

p5pRT opened this issue Jan 13, 2014 · 11 comments

Comments

@p5pRT
Copy link

p5pRT commented Jan 13, 2014

Migrated from rt.perl.org#120982 (status was 'resolved')

Searchable as RT120982$

@p5pRT
Copy link
Author

p5pRT commented Jan 13, 2014

From verdrehung@gmail.com

From IO​::Select->select documentation​: "Upon error an empty list is
returned."
But in fact it returns empty list if select() return value was <= 0. See
https://metacpan.org/source/GBARR/IO-1.25/lib/IO/Select.pm#L191
So if select() returns 0 (0 file handles ready) IO​::Select determines this
as error and returns empty list and IO​::Select user can't distinguish error
from the fact that there is no ready file handles yet.

Perl Info

Flags:
    category=library
    severity=high
    module=IO::Select

Site configuration information for perl 5.18.1:

Configured by Debian Project at Wed Sep 11 23:11:04 UTC 2013.

Summary of my perl5 (revision 5 version 18 subversion 1) configuration:

  Platform:
    osname=linux, osvers=3.2.0-4-686-pae,
archname=i486-linux-gnu-thread-multi-64int
    uname='linux callisto 3.2.0-4-686-pae #1 smp debian 3.2.46-1+deb7u1
i686 gnulinux '
    config_args='-Dusethreads -Duselargefiles -Dccflags=-DDEBIAN
-D_FORTIFY_SOURCE=2 -g -O2 -fstack-protector --param=ssp-buffer-size=4
-Wformat -Werror=format-security -Dldflags= -Wl,-z,relro
-Dlddlflags=-shared -Wl,-z,relro -Dcccdlflags=-fPIC
-Darchname=i486-linux-gnu -Dprefix=/usr -Dprivlib=/usr/share/perl/5.18
-Darchlib=/usr/lib/perl/5.18 -Dvendorprefix=/usr
-Dvendorlib=/usr/share/perl5 -Dvendorarch=/usr/lib/perl5
-Dsiteprefix=/usr/local -Dsitelib=/usr/local/share/perl/5.18.1
-Dsitearch=/usr/local/lib/perl/5.18.1 -Dman1dir=/usr/share/man/man1
-Dman3dir=/usr/share/man/man3 -Dsiteman1dir=/usr/local/man/man1
-Dsiteman3dir=/usr/local/man/man3 -Duse64bitint -Dman1ext=1 -Dman3ext=3perl
-Dpager=/usr/bin/sensible-pager -Uafs -Ud_csh -Ud_ualarm -Uusesfio -Uusenm
-Ui_libutil -Uversiononly -DDEBUGGING=-g -Doptimize=-O2 -Duseshrplib
-Dlibperl=libperl.so.5.18.1 -des'
    hint=recommended, useposix=true, d_sigaction=define
    useithreads=define, usemultiplicity=define
    useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
    use64bitint=define, use64bitall=undef, uselongdouble=undef
    usemymalloc=n, bincompat5005=undef
  Compiler:
    cc='cc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -DDEBIAN
-fstack-protector -fno-strict-aliasing -pipe -I/usr/local/include
-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
    optimize='-O2 -g',
    cppflags='-D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fstack-protector
-fno-strict-aliasing -pipe -I/usr/local/include'
    ccversion='', gccversion='4.8.1', gccosandvers=''
    intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=12345678
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12
    ivtype='long long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t',
lseeksize=8
    alignbytes=4, prototype=define
  Linker and Libraries:
    ld='cc', ldflags =' -fstack-protector -L/usr/local/lib'
    libpth=/usr/local/lib /lib/i386-linux-gnu /lib/../lib
/usr/lib/i386-linux-gnu /usr/lib/../lib /lib /usr/lib
    libs=-lgdbm -lgdbm_compat -ldb -ldl -lm -lpthread -lc -lcrypt
    perllibs=-ldl -lm -lpthread -lc -lcrypt
    libc=, so=so, useshrplib=true, libperl=libperl.so.5.18.1
    gnulibc_version='2.17'
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E'
    cccdlflags='-fPIC', lddlflags='-shared -L/usr/local/lib
-fstack-protector'

Locally applied patches:
    DEBPKG:debian/cpan_definstalldirs - Provide a sensible INSTALLDIRS
default for modules installed from CPAN.
    DEBPKG:debian/db_file_ver - http://bugs.debian.org/340047 Remove overly
restrictive DB_File version check.
    DEBPKG:debian/doc_info - Replace generic man(1) instructions with
Debian-specific information.
    DEBPKG:debian/enc2xs_inc - http://bugs.debian.org/290336 Tweak enc2xs
to follow symlinks and ignore missing @INC directories.
    DEBPKG:debian/errno_ver - http://bugs.debian.org/343351 Remove Errno
version check due to upgrade problems with long-running processes.
    DEBPKG:debian/libperl_embed_doc - http://bugs.debian.org/186778 Note
that libperl-dev package is required for embedded linking
    DEBPKG:fixes/respect_umask - Respect umask during installation
    DEBPKG:debian/writable_site_dirs - Set umask approproately for site
install directories
    DEBPKG:debian/extutils_set_libperl_path - EU:MM: Set location of
libperl.a to /usr/lib
    DEBPKG:debian/no_packlist_perllocal - Don't install .packlist or
perllocal.pod for perl or vendor
    DEBPKG:debian/prefix_changes - Fiddle with *PREFIX and variables
written to the makefile
    DEBPKG:debian/fakeroot - Postpone LD_LIBRARY_PATH evaluation to the
binary targets.
    DEBPKG:debian/instmodsh_doc - Debian policy doesn't install .packlist
files for core or vendor.
    DEBPKG:debian/ld_run_path - Remove standard libs from LD_RUN_PATH as
per Debian policy.
    DEBPKG:debian/libnet_config_path - Set location of libnet.cfg to
/etc/perl/Net as /usr may not be writable.
    DEBPKG:debian/mod_paths - Tweak @INC ordering for Debian
    DEBPKG:debian/module_build_man_extensions -
http://bugs.debian.org/479460 Adjust Module::Build manual page extensions
for the Debian Perl policy
    DEBPKG:debian/prune_libs - http://bugs.debian.org/128355 Prune the list
of libraries wanted to what we actually need.
    DEBPKG:fixes/net_smtp_docs - [rt.cpan.org #36038]
http://bugs.debian.org/100195 Document the Net::SMTP 'Port' option
    DEBPKG:debian/perlivp - http://bugs.debian.org/510895 Make perlivp skip
include directories in /usr/local
    DEBPKG:debian/cpanplus_definstalldirs -
http://bugs.debian.org/533707Configure CPANPLUS to use the site
directories by default.
    DEBPKG:debian/cpanplus_config_path - Save local versions of
CPANPLUS::Config::System into /etc/perl.
    DEBPKG:debian/deprecate-with-apt - http://bugs.debian.org/702096 Point
users to Debian packages of deprecated core modules
    DEBPKG:debian/squelch-locale-warnings -
http://bugs.debian.org/508764Squelch locale warnings in Debian package
maintainer scripts
    DEBPKG:debian/skip-upstream-git-tests - Skip tests specific to the
upstream Git repository
    DEBPKG:debian/patchlevel - http://bugs.debian.org/567489 List packaged
patches for 5.18.1-4 in patchlevel.h
    DEBPKG:debian/skip-kfreebsd-crash - http://bugs.debian.org/628493 [perl
#96272] Skip a crashing test case in t/op/threads.t on GNU/kFreeBSD
    DEBPKG:fixes/document_makemaker_ccflags - http://bugs.debian.org/628522[
rt.cpan.org #68613] Document that CCFLAGS should include $Config{ccflags}
    DEBPKG:debian/find_html2text - http://bugs.debian.org/640479 Configure
CPAN::Distribution with correct name of html2text
    DEBPKG:debian/hurd_test_todo_syslog -
http://bugs.debian.org/650093Disable failing GNU/Hurd tests in
cpan/Sys-Syslog/t/syslog.t
    DEBPKG:debian/hurd_test_skip_sigdispatch -
http://bugs.debian.org/650188Disable failing GNU/Hurd tests
op/sigdispatch.t
    DEBPKG:debian/hurd_test_skip_stack -
http://bugs.debian.org/650175Disable failing GNU/Hurd tests
dist/threads/t/stack.t
    DEBPKG:debian/hurd_test_skip_pipe -
http://bugs.debian.org/650187Disable failing GNU/Hurd tests io/pipe.t
    DEBPKG:debian/hurd_test_skip_io_pipe -
http://bugs.debian.org/650096Disable failing GNU/Hurd tests
dist/IO/t/io_pipe.t
    DEBPKG:fixes/manpage_name_Test-Harness - http://bugs.debian.org/650451 [
rt.cpan.org #73399] cpan/Test-Harness: add NAME headings in modules with POD
    DEBPKG:debian/makemaker-pasthru - http://bugs.debian.org/660195 [
rt.cpan.org #28632] Make EU::MM pass LD through to recursive Makefile.PL
invocations
    DEBPKG:debian/perl5db-x-terminal-emulator.patch -
http://bugs.debian.org/668490 Invoke x-terminal-emulator rather than xterm
in perl5db.pl
    DEBPKG:debian/cpan-missing-site-dirs -
http://bugs.debian.org/688842Fix CPAN::FirstTime defaults with
nonexisting site dirs if a parent is
writable
    DEBPKG:debian/hurd_net_ping_disable_test -
http://bugs.debian.org/709385Disable failing Net-Ping tests for
GNU/Hurd
    DEBPKG:fixes/memoize_storable_nstore - [rt.cpan.org #77790]
http://bugs.debian.org/587650 Memoize::Storable: respect 'nstore' option
not respected
    DEBPKG:fixes/net_ftp_failed_command - [rt.cpan.org #37700]
http://bugs.debian.org/491062 Net::FTP: cope gracefully with a failed
command
    DEBPKG:fixes/perlbug-patchlist - [3541c11]
http://bugs.debian.org/710842[perl #118433] Make perlbug look up the
list of local patches at run time
    DEBPKG:fixes/regexp-preserve - http://bugs.debian.org/718209 [perl
#118213] [f4194b2] RT #118213: handle $r=qr/.../; /$r/p properly
    DEBPKG:fixes/regexp-preserve-testcases -
http://bugs.debian.org/718209[perl #118213] [4d7b2f5] Disable new //p
tests
    DEBPKG:fixes/module_metadata_security_doc - [68cdd4b] CVE-2013-1437
documentation fix
    DEBPKG:fixes/module_metadata_taint_fix - [bff978f]
http://bugs.debian.org/722210 [rt.cpan.org #88576] untaint version, if
needed, in Module::Metadata


@INC for perl 5.18.1:
    /etc/perl
    /usr/local/lib/perl/5.18.1
    /usr/local/share/perl/5.18.1
    /usr/lib/perl5
    /usr/share/perl5
    /usr/lib/perl/5.18
    /usr/share/perl/5.18
    /usr/local/lib/site_perl
    .


Environment for perl 5.18.1:
    HOME=/home/oleg
    LANG=ru_RU.UTF-8
    LANGUAGE (unset)
    LD_LIBRARY_PATH (unset)
    LOGDIR (unset)
    PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
    PERL_BADLANG (unset)
    SHELL=/bin/bash

@p5pRT
Copy link
Author

p5pRT commented Jan 14, 2014

From @jkeenan

Trimming this report so that it will show up in the rt.perl.org GUI.

On Mon Jan 13 04​:31​:58 2014, verdrehung@​gmail.com wrote​:

This is a bug report for perl from oleg<>cpan.org,
generated with the help of perlbug 1.39 running under perl 5.18.1.

-----------------------------------------------------------------
[Please describe your issue here]
From IO​::Select->select documentation​: "Upon error an empty list is
returned."
But in fact it returns empty list if select() return value was <= 0. See
https://metacpan.org/source/GBARR/IO-1.25/lib/IO/Select.pm#L191
So if select() returns 0 (0 file handles ready) IO​::Select determines this
as error and returns empty list and IO​::Select user can't distinguish error
from the fact that there is no ready file handles yet.

@p5pRT
Copy link
Author

p5pRT commented Jan 14, 2014

From [Unknown Contact. See original ticket]

Trimming this report so that it will show up in the rt.perl.org GUI.

On Mon Jan 13 04​:31​:58 2014, verdrehung@​gmail.com wrote​:

This is a bug report for perl from oleg<>cpan.org,
generated with the help of perlbug 1.39 running under perl 5.18.1.

-----------------------------------------------------------------
[Please describe your issue here]
From IO​::Select->select documentation​: "Upon error an empty list is
returned."
But in fact it returns empty list if select() return value was <= 0. See
https://metacpan.org/source/GBARR/IO-1.25/lib/IO/Select.pm#L191
So if select() returns 0 (0 file handles ready) IO​::Select determines this
as error and returns empty list and IO​::Select user can't distinguish error
from the fact that there is no ready file handles yet.

@p5pRT
Copy link
Author

p5pRT commented Jan 14, 2014

From victor@vsespb.ru

duplicate https://rt.cpan.org/Public/Bug/Display.html?id=90091

there are 35 open issues on CPAN RT btw.

2014/1/13 Ð�лег Ð� <perlbug-followup@​perl.org>​:

# New Ticket Created by �лег �
# Please include the string​: [perl #120982]
# in the subject line of all future correspondence about this issue.
# <URL​: https://rt-archive.perl.org/perl5/Ticket/Display.html?id=120982 >

This is a bug report for perl from oleg<>cpan.org,
generated with the help of perlbug 1.39 running under perl 5.18.1.

-----------------------------------------------------------------
[Please describe your issue here]

From IO​::Select->select documentation​: "Upon error an empty list is
returned."
But in fact it returns empty list if select() return value was <= 0. See
https://metacpan.org/source/GBARR/IO-1.25/lib/IO/Select.pm#L191
So if select() returns 0 (0 file handles ready) IO​::Select determines this
as error and returns empty list and IO​::Select user can't distinguish error
from the fact that there is no ready file handles yet.

[Please do not change anything below this line]
-----------------------------------------------------------------
---
Flags​:
category=library
severity=high
module=IO​::Select
---
Site configuration information for perl 5.18.1​:

Configured by Debian Project at Wed Sep 11 23​:11​:04 UTC 2013.

Summary of my perl5 (revision 5 version 18 subversion 1) configuration​:

Platform​:
osname=linux, osvers=3.2.0-4-686-pae,
archname=i486-linux-gnu-thread-multi-64int
uname='linux callisto 3.2.0-4-686-pae #1 smp debian 3.2.46-1+deb7u1
i686 gnulinux '
config_args='-Dusethreads -Duselargefiles -Dccflags=-DDEBIAN
-D_FORTIFY_SOURCE=2 -g -O2 -fstack-protector --param=ssp-buffer-size=4
-Wformat -Werror=format-security -Dldflags= -Wl,-z,relro
-Dlddlflags=-shared -Wl,-z,relro -Dcccdlflags=-fPIC
-Darchname=i486-linux-gnu -Dprefix=/usr -Dprivlib=/usr/share/perl/5.18
-Darchlib=/usr/lib/perl/5.18 -Dvendorprefix=/usr
-Dvendorlib=/usr/share/perl5 -Dvendorarch=/usr/lib/perl5
-Dsiteprefix=/usr/local -Dsitelib=/usr/local/share/perl/5.18.1
-Dsitearch=/usr/local/lib/perl/5.18.1 -Dman1dir=/usr/share/man/man1
-Dman3dir=/usr/share/man/man3 -Dsiteman1dir=/usr/local/man/man1
-Dsiteman3dir=/usr/local/man/man3 -Duse64bitint -Dman1ext=1 -Dman3ext=3perl
-Dpager=/usr/bin/sensible-pager -Uafs -Ud_csh -Ud_ualarm -Uusesfio -Uusenm
-Ui_libutil -Uversiononly -DDEBUGGING=-g -Doptimize=-O2 -Duseshrplib
-Dlibperl=libperl.so.5.18.1 -des'
hint=recommended, useposix=true, d_sigaction=define
useithreads=define, usemultiplicity=define
useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
use64bitint=define, use64bitall=undef, uselongdouble=undef
usemymalloc=n, bincompat5005=undef
Compiler​:
cc='cc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -DDEBIAN
-fstack-protector -fno-strict-aliasing -pipe -I/usr/local/include
-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
optimize='-O2 -g',
cppflags='-D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fstack-protector
-fno-strict-aliasing -pipe -I/usr/local/include'
ccversion='', gccversion='4.8.1', gccosandvers=''
intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=12345678
d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12
ivtype='long long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t',
lseeksize=8
alignbytes=4, prototype=define
Linker and Libraries​:
ld='cc', ldflags =' -fstack-protector -L/usr/local/lib'
libpth=/usr/local/lib /lib/i386-linux-gnu /lib/../lib
/usr/lib/i386-linux-gnu /usr/lib/../lib /lib /usr/lib
libs=-lgdbm -lgdbm_compat -ldb -ldl -lm -lpthread -lc -lcrypt
perllibs=-ldl -lm -lpthread -lc -lcrypt
libc=, so=so, useshrplib=true, libperl=libperl.so.5.18.1
gnulibc_version='2.17'
Dynamic Linking​:
dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E'
cccdlflags='-fPIC', lddlflags='-shared -L/usr/local/lib
-fstack-protector'

Locally applied patches​:
DEBPKG​:debian/cpan_definstalldirs - Provide a sensible INSTALLDIRS
default for modules installed from CPAN.
DEBPKG​:debian/db_file_ver - http​://bugs.debian.org/340047 Remove overly
restrictive DB_File version check.
DEBPKG​:debian/doc_info - Replace generic man(1) instructions with
Debian-specific information.
DEBPKG​:debian/enc2xs_inc - http​://bugs.debian.org/290336 Tweak enc2xs
to follow symlinks and ignore missing @​INC directories.
DEBPKG​:debian/errno_ver - http​://bugs.debian.org/343351 Remove Errno
version check due to upgrade problems with long-running processes.
DEBPKG​:debian/libperl_embed_doc - http​://bugs.debian.org/186778 Note
that libperl-dev package is required for embedded linking
DEBPKG​:fixes/respect_umask - Respect umask during installation
DEBPKG​:debian/writable_site_dirs - Set umask approproately for site
install directories
DEBPKG​:debian/extutils_set_libperl_path - EU​:MM​: Set location of
libperl.a to /usr/lib
DEBPKG​:debian/no_packlist_perllocal - Don't install .packlist or
perllocal.pod for perl or vendor
DEBPKG​:debian/prefix_changes - Fiddle with *PREFIX and variables
written to the makefile
DEBPKG​:debian/fakeroot - Postpone LD_LIBRARY_PATH evaluation to the
binary targets.
DEBPKG​:debian/instmodsh_doc - Debian policy doesn't install .packlist
files for core or vendor.
DEBPKG​:debian/ld_run_path - Remove standard libs from LD_RUN_PATH as
per Debian policy.
DEBPKG​:debian/libnet_config_path - Set location of libnet.cfg to
/etc/perl/Net as /usr may not be writable.
DEBPKG​:debian/mod_paths - Tweak @​INC ordering for Debian
DEBPKG​:debian/module_build_man_extensions -
http​://bugs.debian.org/479460 Adjust Module​::Build manual page extensions
for the Debian Perl policy
DEBPKG​:debian/prune_libs - http​://bugs.debian.org/128355 Prune the list
of libraries wanted to what we actually need.
DEBPKG​:fixes/net_smtp_docs - [rt.cpan.org #36038]
http​://bugs.debian.org/100195 Document the Net​::SMTP 'Port' option
DEBPKG​:debian/perlivp - http​://bugs.debian.org/510895 Make perlivp skip
include directories in /usr/local
DEBPKG​:debian/cpanplus_definstalldirs -
http​://bugs.debian.org/533707Configure CPANPLUS to use the site
directories by default.
DEBPKG​:debian/cpanplus_config_path - Save local versions of
CPANPLUS​::Config​::System into /etc/perl.
DEBPKG​:debian/deprecate-with-apt - http​://bugs.debian.org/702096 Point
users to Debian packages of deprecated core modules
DEBPKG​:debian/squelch-locale-warnings -
http​://bugs.debian.org/508764Squelch locale warnings in Debian package
maintainer scripts
DEBPKG​:debian/skip-upstream-git-tests - Skip tests specific to the
upstream Git repository
DEBPKG​:debian/patchlevel - http​://bugs.debian.org/567489 List packaged
patches for 5.18.1-4 in patchlevel.h
DEBPKG​:debian/skip-kfreebsd-crash - http​://bugs.debian.org/628493 [perl
#96272] Skip a crashing test case in t/op/threads.t on GNU/kFreeBSD
DEBPKG​:fixes/document_makemaker_ccflags - http​://bugs.debian.org/628522[
rt.cpan.org #68613] Document that CCFLAGS should include $Config{ccflags}
DEBPKG​:debian/find_html2text - http​://bugs.debian.org/640479 Configure
CPAN​::Distribution with correct name of html2text
DEBPKG​:debian/hurd_test_todo_syslog -
http​://bugs.debian.org/650093Disable failing GNU/Hurd tests in
cpan/Sys-Syslog/t/syslog.t
DEBPKG​:debian/hurd_test_skip_sigdispatch -
http​://bugs.debian.org/650188Disable failing GNU/Hurd tests
op/sigdispatch.t
DEBPKG​:debian/hurd_test_skip_stack -
http​://bugs.debian.org/650175Disable failing GNU/Hurd tests
dist/threads/t/stack.t
DEBPKG​:debian/hurd_test_skip_pipe -
http​://bugs.debian.org/650187Disable failing GNU/Hurd tests io/pipe.t
DEBPKG​:debian/hurd_test_skip_io_pipe -
http​://bugs.debian.org/650096Disable failing GNU/Hurd tests
dist/IO/t/io_pipe.t
DEBPKG​:fixes/manpage_name_Test-Harness - http​://bugs.debian.org/650451 [
rt.cpan.org #73399] cpan/Test-Harness​: add NAME headings in modules with POD
DEBPKG​:debian/makemaker-pasthru - http​://bugs.debian.org/660195 [
rt.cpan.org #28632] Make EU​::MM pass LD through to recursive Makefile.PL
invocations
DEBPKG​:debian/perl5db-x-terminal-emulator.patch -
http​://bugs.debian.org/668490 Invoke x-terminal-emulator rather than xterm
in perl5db.pl
DEBPKG​:debian/cpan-missing-site-dirs -
http​://bugs.debian.org/688842Fix CPAN​::FirstTime defaults with
nonexisting site dirs if a parent is
writable
DEBPKG​:debian/hurd_net_ping_disable_test -
http​://bugs.debian.org/709385Disable failing Net-Ping tests for
GNU/Hurd
DEBPKG​:fixes/memoize_storable_nstore - [rt.cpan.org #77790]
http​://bugs.debian.org/587650 Memoize​::Storable​: respect 'nstore' option
not respected
DEBPKG​:fixes/net_ftp_failed_command - [rt.cpan.org #37700]
http​://bugs.debian.org/491062 Net​::FTP​: cope gracefully with a failed
command
DEBPKG​:fixes/perlbug-patchlist - [3541c11]
http​://bugs.debian.org/710842[perl #118433] Make perlbug look up the
list of local patches at run time
DEBPKG​:fixes/regexp-preserve - http​://bugs.debian.org/718209 [perl
#118213] [f4194b2] RT #118213​: handle $r=qr/.../; /$r/p properly
DEBPKG​:fixes/regexp-preserve-testcases -
http​://bugs.debian.org/718209[perl #118213] [4d7b2f5] Disable new //p
tests
DEBPKG​:fixes/module_metadata_security_doc - [68cdd4b] CVE-2013-1437
documentation fix
DEBPKG​:fixes/module_metadata_taint_fix - [bff978f]
http​://bugs.debian.org/722210 [rt.cpan.org #88576] untaint version, if
needed, in Module​::Metadata

---
@​INC for perl 5.18.1​:
/etc/perl
/usr/local/lib/perl/5.18.1
/usr/local/share/perl/5.18.1
/usr/lib/perl5
/usr/share/perl5
/usr/lib/perl/5.18
/usr/share/perl/5.18
/usr/local/lib/site_perl
.

---
Environment for perl 5.18.1​:
HOME=/home/oleg
LANG=ru_RU.UTF-8
LANGUAGE (unset)
LD_LIBRARY_PATH (unset)
LOGDIR (unset)
PATH=/usr/local/bin​:/usr/bin​:/bin​:/usr/local/games​:/usr/games
PERL_BADLANG (unset)
SHELL=/bin/bash

@p5pRT
Copy link
Author

p5pRT commented Jan 14, 2014

The RT System itself - Status changed from 'new' to 'open'

@p5pRT
Copy link
Author

p5pRT commented Jan 14, 2014

From verdrehung@gmail.com

Documentation says that it is currently maintained by the Perl Porters
and should be reported here.
So, maybe we'll get some response

2014/1/15 Victor Efimov via RT <perlbug-followup@​perl.org>​:

duplicate https://rt.cpan.org/Public/Bug/Display.html?id=90091

there are 35 open issues on CPAN RT btw.

2014/1/13 Ð�лег Ð� <perlbug-followup@​perl.org>​:

# New Ticket Created by �лег �
# Please include the string​: [perl #120982]
# in the subject line of all future correspondence about this issue.
# <URL​: https://rt-archive.perl.org/perl5/Ticket/Display.html?id=120982 >

This is a bug report for perl from oleg<>cpan.org,
generated with the help of perlbug 1.39 running under perl 5.18.1.

-----------------------------------------------------------------
[Please describe your issue here]

From IO​::Select->select documentation​: "Upon error an empty list is
returned."
But in fact it returns empty list if select() return value was <= 0. See
https://metacpan.org/source/GBARR/IO-1.25/lib/IO/Select.pm#L191
So if select() returns 0 (0 file handles ready) IO​::Select determines this
as error and returns empty list and IO​::Select user can't distinguish error
from the fact that there is no ready file handles yet.

[Please do not change anything below this line]
-----------------------------------------------------------------
---
Flags​:
category=library
severity=high
module=IO​::Select
---
Site configuration information for perl 5.18.1​:

Configured by Debian Project at Wed Sep 11 23​:11​:04 UTC 2013.

Summary of my perl5 (revision 5 version 18 subversion 1) configuration​:

Platform​:
osname=linux, osvers=3.2.0-4-686-pae,
archname=i486-linux-gnu-thread-multi-64int
uname='linux callisto 3.2.0-4-686-pae #1 smp debian 3.2.46-1+deb7u1
i686 gnulinux '
config_args='-Dusethreads -Duselargefiles -Dccflags=-DDEBIAN
-D_FORTIFY_SOURCE=2 -g -O2 -fstack-protector --param=ssp-buffer-size=4
-Wformat -Werror=format-security -Dldflags= -Wl,-z,relro
-Dlddlflags=-shared -Wl,-z,relro -Dcccdlflags=-fPIC
-Darchname=i486-linux-gnu -Dprefix=/usr -Dprivlib=/usr/share/perl/5.18
-Darchlib=/usr/lib/perl/5.18 -Dvendorprefix=/usr
-Dvendorlib=/usr/share/perl5 -Dvendorarch=/usr/lib/perl5
-Dsiteprefix=/usr/local -Dsitelib=/usr/local/share/perl/5.18.1
-Dsitearch=/usr/local/lib/perl/5.18.1 -Dman1dir=/usr/share/man/man1
-Dman3dir=/usr/share/man/man3 -Dsiteman1dir=/usr/local/man/man1
-Dsiteman3dir=/usr/local/man/man3 -Duse64bitint -Dman1ext=1 -Dman3ext=3perl
-Dpager=/usr/bin/sensible-pager -Uafs -Ud_csh -Ud_ualarm -Uusesfio -Uusenm
-Ui_libutil -Uversiononly -DDEBUGGING=-g -Doptimize=-O2 -Duseshrplib
-Dlibperl=libperl.so.5.18.1 -des'
hint=recommended, useposix=true, d_sigaction=define
useithreads=define, usemultiplicity=define
useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
use64bitint=define, use64bitall=undef, uselongdouble=undef
usemymalloc=n, bincompat5005=undef
Compiler​:
cc='cc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -DDEBIAN
-fstack-protector -fno-strict-aliasing -pipe -I/usr/local/include
-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
optimize='-O2 -g',
cppflags='-D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fstack-protector
-fno-strict-aliasing -pipe -I/usr/local/include'
ccversion='', gccversion='4.8.1', gccosandvers=''
intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=12345678
d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12
ivtype='long long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t',
lseeksize=8
alignbytes=4, prototype=define
Linker and Libraries​:
ld='cc', ldflags =' -fstack-protector -L/usr/local/lib'
libpth=/usr/local/lib /lib/i386-linux-gnu /lib/../lib
/usr/lib/i386-linux-gnu /usr/lib/../lib /lib /usr/lib
libs=-lgdbm -lgdbm_compat -ldb -ldl -lm -lpthread -lc -lcrypt
perllibs=-ldl -lm -lpthread -lc -lcrypt
libc=, so=so, useshrplib=true, libperl=libperl.so.5.18.1
gnulibc_version='2.17'
Dynamic Linking​:
dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E'
cccdlflags='-fPIC', lddlflags='-shared -L/usr/local/lib
-fstack-protector'

Locally applied patches​:
DEBPKG​:debian/cpan_definstalldirs - Provide a sensible INSTALLDIRS
default for modules installed from CPAN.
DEBPKG​:debian/db_file_ver - http​://bugs.debian.org/340047 Remove overly
restrictive DB_File version check.
DEBPKG​:debian/doc_info - Replace generic man(1) instructions with
Debian-specific information.
DEBPKG​:debian/enc2xs_inc - http​://bugs.debian.org/290336 Tweak enc2xs
to follow symlinks and ignore missing @​INC directories.
DEBPKG​:debian/errno_ver - http​://bugs.debian.org/343351 Remove Errno
version check due to upgrade problems with long-running processes.
DEBPKG​:debian/libperl_embed_doc - http​://bugs.debian.org/186778 Note
that libperl-dev package is required for embedded linking
DEBPKG​:fixes/respect_umask - Respect umask during installation
DEBPKG​:debian/writable_site_dirs - Set umask approproately for site
install directories
DEBPKG​:debian/extutils_set_libperl_path - EU​:MM​: Set location of
libperl.a to /usr/lib
DEBPKG​:debian/no_packlist_perllocal - Don't install .packlist or
perllocal.pod for perl or vendor
DEBPKG​:debian/prefix_changes - Fiddle with *PREFIX and variables
written to the makefile
DEBPKG​:debian/fakeroot - Postpone LD_LIBRARY_PATH evaluation to the
binary targets.
DEBPKG​:debian/instmodsh_doc - Debian policy doesn't install .packlist
files for core or vendor.
DEBPKG​:debian/ld_run_path - Remove standard libs from LD_RUN_PATH as
per Debian policy.
DEBPKG​:debian/libnet_config_path - Set location of libnet.cfg to
/etc/perl/Net as /usr may not be writable.
DEBPKG​:debian/mod_paths - Tweak @​INC ordering for Debian
DEBPKG​:debian/module_build_man_extensions -
http​://bugs.debian.org/479460 Adjust Module​::Build manual page extensions
for the Debian Perl policy
DEBPKG​:debian/prune_libs - http​://bugs.debian.org/128355 Prune the list
of libraries wanted to what we actually need.
DEBPKG​:fixes/net_smtp_docs - [rt.cpan.org #36038]
http​://bugs.debian.org/100195 Document the Net​::SMTP 'Port' option
DEBPKG​:debian/perlivp - http​://bugs.debian.org/510895 Make perlivp skip
include directories in /usr/local
DEBPKG​:debian/cpanplus_definstalldirs -
http​://bugs.debian.org/533707Configure CPANPLUS to use the site
directories by default.
DEBPKG​:debian/cpanplus_config_path - Save local versions of
CPANPLUS​::Config​::System into /etc/perl.
DEBPKG​:debian/deprecate-with-apt - http​://bugs.debian.org/702096 Point
users to Debian packages of deprecated core modules
DEBPKG​:debian/squelch-locale-warnings -
http​://bugs.debian.org/508764Squelch locale warnings in Debian package
maintainer scripts
DEBPKG​:debian/skip-upstream-git-tests - Skip tests specific to the
upstream Git repository
DEBPKG​:debian/patchlevel - http​://bugs.debian.org/567489 List packaged
patches for 5.18.1-4 in patchlevel.h
DEBPKG​:debian/skip-kfreebsd-crash - http​://bugs.debian.org/628493 [perl
#96272] Skip a crashing test case in t/op/threads.t on GNU/kFreeBSD
DEBPKG​:fixes/document_makemaker_ccflags - http​://bugs.debian.org/628522[
rt.cpan.org #68613] Document that CCFLAGS should include $Config{ccflags}
DEBPKG​:debian/find_html2text - http​://bugs.debian.org/640479 Configure
CPAN​::Distribution with correct name of html2text
DEBPKG​:debian/hurd_test_todo_syslog -
http​://bugs.debian.org/650093Disable failing GNU/Hurd tests in
cpan/Sys-Syslog/t/syslog.t
DEBPKG​:debian/hurd_test_skip_sigdispatch -
http​://bugs.debian.org/650188Disable failing GNU/Hurd tests
op/sigdispatch.t
DEBPKG​:debian/hurd_test_skip_stack -
http​://bugs.debian.org/650175Disable failing GNU/Hurd tests
dist/threads/t/stack.t
DEBPKG​:debian/hurd_test_skip_pipe -
http​://bugs.debian.org/650187Disable failing GNU/Hurd tests io/pipe.t
DEBPKG​:debian/hurd_test_skip_io_pipe -
http​://bugs.debian.org/650096Disable failing GNU/Hurd tests
dist/IO/t/io_pipe.t
DEBPKG​:fixes/manpage_name_Test-Harness - http​://bugs.debian.org/650451 [
rt.cpan.org #73399] cpan/Test-Harness​: add NAME headings in modules with POD
DEBPKG​:debian/makemaker-pasthru - http​://bugs.debian.org/660195 [
rt.cpan.org #28632] Make EU​::MM pass LD through to recursive Makefile.PL
invocations
DEBPKG​:debian/perl5db-x-terminal-emulator.patch -
http​://bugs.debian.org/668490 Invoke x-terminal-emulator rather than xterm
in perl5db.pl
DEBPKG​:debian/cpan-missing-site-dirs -
http​://bugs.debian.org/688842Fix CPAN​::FirstTime defaults with
nonexisting site dirs if a parent is
writable
DEBPKG​:debian/hurd_net_ping_disable_test -
http​://bugs.debian.org/709385Disable failing Net-Ping tests for
GNU/Hurd
DEBPKG​:fixes/memoize_storable_nstore - [rt.cpan.org #77790]
http​://bugs.debian.org/587650 Memoize​::Storable​: respect 'nstore' option
not respected
DEBPKG​:fixes/net_ftp_failed_command - [rt.cpan.org #37700]
http​://bugs.debian.org/491062 Net​::FTP​: cope gracefully with a failed
command
DEBPKG​:fixes/perlbug-patchlist - [3541c11]
http​://bugs.debian.org/710842[perl #118433] Make perlbug look up the
list of local patches at run time
DEBPKG​:fixes/regexp-preserve - http​://bugs.debian.org/718209 [perl
#118213] [f4194b2] RT #118213​: handle $r=qr/.../; /$r/p properly
DEBPKG​:fixes/regexp-preserve-testcases -
http​://bugs.debian.org/718209[perl #118213] [4d7b2f5] Disable new //p
tests
DEBPKG​:fixes/module_metadata_security_doc - [68cdd4b] CVE-2013-1437
documentation fix
DEBPKG​:fixes/module_metadata_taint_fix - [bff978f]
http​://bugs.debian.org/722210 [rt.cpan.org #88576] untaint version, if
needed, in Module​::Metadata

---
@​INC for perl 5.18.1​:
/etc/perl
/usr/local/lib/perl/5.18.1
/usr/local/share/perl/5.18.1
/usr/lib/perl5
/usr/share/perl5
/usr/lib/perl/5.18
/usr/share/perl/5.18
/usr/local/lib/site_perl
.

---
Environment for perl 5.18.1​:
HOME=/home/oleg
LANG=ru_RU.UTF-8
LANGUAGE (unset)
LD_LIBRARY_PATH (unset)
LOGDIR (unset)
PATH=/usr/local/bin​:/usr/bin​:/bin​:/usr/local/games​:/usr/games
PERL_BADLANG (unset)
SHELL=/bin/bash

@p5pRT
Copy link
Author

p5pRT commented Jan 14, 2014

From @Leont

On Mon Jan 13 04​:31​:58 2014, verdrehung@​gmail.com wrote​:

From IO​::Select->select documentation​: "Upon error an empty list is
returned."
But in fact it returns empty list if select() return value was <= 0. See
https://metacpan.org/source/GBARR/IO-1.25/lib/IO/Select.pm#L191
So if select() returns 0 (0 file handles ready) IO​::Select determines this
as error and returns empty list and IO​::Select user can't distinguish error
from the fact that there is no ready file handles yet.

This is an unfortunate interface, but I suspect given
backwards-compatibility we can't really change that anymore; though one
could argue it could return ([], [], []) if select(�) == 0. Depending on
your needs my advice may be to use something more sensible anyway.

Leon

@p5pRT
Copy link
Author

p5pRT commented Jan 15, 2014

From victor@vsespb.ru

at least docs should be changed.

2014/1/15 Leon Timmermans <fawaka@​gmail.com>​:

On Mon Jan 13 04​:31​:58 2014, verdrehung@​gmail.com wrote​:

From IO​::Select->select documentation​: "Upon error an empty list is
returned."
But in fact it returns empty list if select() return value was <= 0. See
https://metacpan.org/source/GBARR/IO-1.25/lib/IO/Select.pm#L191
So if select() returns 0 (0 file handles ready) IO​::Select determines this
as error and returns empty list and IO​::Select user can't distinguish
error
from the fact that there is no ready file handles yet.

This is an unfortunate interface, but I suspect given
backwards-compatibility we can't really change that anymore; though one
could argue it could return ([], [], []) if select(�) == 0. Depending on
your needs my advice may be to use something more sensible anyway.

Leon

@p5pRT
Copy link
Author

p5pRT commented Jan 17, 2014

From victor@vsespb.ru

or maybe introduce new global var in IO​::Select namespace which will
hold the real return value of select/can_XXX

2014/1/15 Victor Efimov <victor@​vsespb.ru>​:

at least docs should be changed.

2014/1/15 Leon Timmermans <fawaka@​gmail.com>​:

On Mon Jan 13 04​:31​:58 2014, verdrehung@​gmail.com wrote​:

From IO​::Select->select documentation​: "Upon error an empty list is
returned."
But in fact it returns empty list if select() return value was <= 0. See
https://metacpan.org/source/GBARR/IO-1.25/lib/IO/Select.pm#L191
So if select() returns 0 (0 file handles ready) IO​::Select determines this
as error and returns empty list and IO​::Select user can't distinguish
error
from the fact that there is no ready file handles yet.

This is an unfortunate interface, but I suspect given
backwards-compatibility we can't really change that anymore; though one
could argue it could return ([], [], []) if select(�) == 0. Depending on
your needs my advice may be to use something more sensible anyway.

Leon

@p5pRT
Copy link
Author

p5pRT commented Dec 16, 2017

From zefram@fysh.org

Oleg G wrote​:

So if select() returns 0 (0 file handles ready) IO​::Select determines this
as error and returns empty list and IO​::Select user can't distinguish error
from the fact that there is no ready file handles yet.

Actually they can be distinguished by use of $!. The
documentation was recently extended to describe this in commit
bc33310. This ticket can be closed.

-zefram

@p5pRT
Copy link
Author

p5pRT commented Dec 18, 2017

@iabyn - Status changed from 'open' to 'resolved'

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant