shogo82148 / Redis-Fast

fast perl binding for Redis database
https://metacpan.org/release/Redis-Fast
Other
25 stars 21 forks source link

0.08 crashes when BLPOP waits more than read_timeout #9

Closed vsespb closed 10 years ago

vsespb commented 10 years ago
use strict;
use warnings;
use Redis::Fast;
my $redis = Redis::Fast->new(server => 'localhost:6379', reconnect=>1, cnx_timeout   => 0.2, read_timeout  => 0.3);
$redis->blpop("notakey", 1);
Error while reading from Redis server: Connection timed out at /usr/local/lib/perl/5.14.2/Redis/Fast.pm line 178.
*** glibc detected *** perl: double free or corruption (!prev): 0x000000000235d2b0 ***
======= Backtrace: =========
/lib/x86_64-linux-gnu/libc.so.6(+0x7eb96)[0x7f7bfd86fb96]
/usr/local/lib/perl/5.14.2/auto/Redis/Fast/Fast.so(+0xaf83)[0x7f7bfc43ff83]
/usr/local/lib/perl/5.14.2/auto/Redis/Fast/Fast.so(+0x403d)[0x7f7bfc43903d]
/usr/lib/libperl.so.5.14(Perl_pp_entersub+0x54f)[0x7f7bfdc6683f]
/usr/lib/libperl.so.5.14(Perl_call_sv+0x642)[0x7f7bfdbf97c2]
/usr/lib/libperl.so.5.14(Perl_sv_clear+0x580)[0x7f7bfdc6cbb0]
/usr/lib/libperl.so.5.14(Perl_sv_free2+0x52)[0x7f7bfdc6d2b2]
/usr/lib/libperl.so.5.14(Perl_leave_scope+0x12c8)[0x7f7bfdc95138]
/usr/lib/libperl.so.5.14(+0x47905)[0x7f7bfdbf8905]
/usr/lib/libperl.so.5.14(Perl_my_failure_exit+0x3a)[0x7f7bfdbff4ba]
/usr/lib/libperl.so.5.14(Perl_die_unwind+0x238)[0x7f7bfdc9d318]
/usr/lib/libperl.so.5.14(Perl_vcroak+0x39)[0x7f7bfdc416c9]
/usr/lib/libperl.so.5.14(+0x90234)[0x7f7bfdc41234]
/usr/local/lib/perl/5.14.2/auto/Redis/Fast/Fast.so(+0x93ae)[0x7f7bfc43e3ae]
/usr/local/lib/perl/5.14.2/auto/Redis/Fast/Fast.so(+0x9f56)[0x7f7bfc43ef56]
/usr/lib/libperl.so.5.14(Perl_pp_entersub+0x54f)[0x7f7bfdc6683f]
/usr/lib/libperl.so.5.14(Perl_runops_standard+0x16)[0x7f7bfdc5dcd6]
/usr/lib/libperl.so.5.14(perl_run+0x3aa)[0x7f7bfdbff39a]
perl(main+0x149)[0x400db9]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xed)[0x7f7bfd81276d]
perl[0x400df1]
======= Memory map: ========
00400000-00402000 r-xp 00000000 08:12 786544                             /usr/bin/perl
00601000-00602000 r--p 00001000 08:12 786544                             /usr/bin/perl
00602000-00603000 rw-p 00002000 08:12 786544                             /usr/bin/perl
022f4000-024e4000 rw-p 00000000 00:00 0                                  [heap]
7f7bfb9fc000-7f7bfba11000 r-xp 00000000 08:12 1445757                    /lib/x86_64-linux-gnu/libgcc_s.so.1
7f7bfba11000-7f7bfbc10000 ---p 00015000 08:12 1445757                    /lib/x86_64-linux-gnu/libgcc_s.so.1
7f7bfbc10000-7f7bfbc11000 r--p 00014000 08:12 1445757                    /lib/x86_64-linux-gnu/libgcc_s.so.1
7f7bfbc11000-7f7bfbc12000 rw-p 00015000 08:12 1445757                    /lib/x86_64-linux-gnu/libgcc_s.so.1
7f7bfbc12000-7f7bfbc1e000 r-xp 00000000 08:12 1441997                    /lib/x86_64-linux-gnu/libnss_files-2.15.so
7f7bfbc1e000-7f7bfbe1d000 ---p 0000c000 08:12 1441997                    /lib/x86_64-linux-gnu/libnss_files-2.15.so
7f7bfbe1d000-7f7bfbe1e000 r--p 0000b000 08:12 1441997                    /lib/x86_64-linux-gnu/libnss_files-2.15.so
7f7bfbe1e000-7f7bfbe1f000 rw-p 0000c000 08:12 1441997                    /lib/x86_64-linux-gnu/libnss_files-2.15.so
7f7bfbe1f000-7f7bfbe28000 r-xp 00000000 08:12 3024691                    /usr/local/lib/perl/5.14.2/auto/List/Util/Util.so
7f7bfbe28000-7f7bfc027000 ---p 00009000 08:12 3024691                    /usr/local/lib/perl/5.14.2/auto/List/Util/Util.so
7f7bfc027000-7f7bfc028000 r--p 00008000 08:12 3024691                    /usr/local/lib/perl/5.14.2/auto/List/Util/Util.so
7f7bfc028000-7f7bfc029000 rw-p 00009000 08:12 3024691                    /usr/local/lib/perl/5.14.2/auto/List/Util/Util.so
7f7bfc029000-7f7bfc02b000 r-xp 00000000 08:12 2495823                    /usr/local/lib/perl/5.14.2/auto/Sub/Name/Name.so
7f7bfc02b000-7f7bfc22a000 ---p 00002000 08:12 2495823                    /usr/local/lib/perl/5.14.2/auto/Sub/Name/Name.so
7f7bfc22a000-7f7bfc22b000 r--p 00001000 08:12 2495823                    /usr/local/lib/perl/5.14.2/auto/Sub/Name/Name.so
7f7bfc22b000-7f7bfc22c000 rw-p 00002000 08:12 2495823                    /usr/local/lib/perl/5.14.2/auto/Sub/Name/Name.so
7f7bfc22c000-7f7bfc234000 r-xp 00000000 08:12 1446313                    /usr/local/lib/perl/5.14.2/auto/Encode/Encode.so
7f7bfc234000-7f7bfc433000 ---p 00008000 08:12 1446313                    /usr/local/lib/perl/5.14.2/auto/Encode/Encode.so
7f7bfc433000-7f7bfc434000 r--p 00007000 08:12 1446313                    /usr/local/lib/perl/5.14.2/auto/Encode/Encode.so
7f7bfc434000-7f7bfc435000 rw-p 00008000 08:12 1446313                    /usr/local/lib/perl/5.14.2/auto/Encode/Encode.so
7f7bfc435000-7f7bfc448000 r-xp 00000000 08:12 524465                     /usr/local/lib/perl/5.14.2/auto/Redis/Fast/Fast.so
7f7bfc448000-7f7bfc647000 ---p 00013000 08:12 524465                     /usr/local/lib/perl/5.14.2/auto/Redis/Fast/Fast.so
7f7bfc647000-7f7bfc648000 r--p 00012000 08:12 524465                     /usr/local/lib/perl/5.14.2/auto/Redis/Fast/Fast.so
7f7bfc648000-7f7bfc649000 rw-p 00013000 08:12 524465                     /usr/local/lib/perl/5.14.2/auto/Redis/Fast/Fast.so
7f7bfc649000-7f7bfce9b000 r--p 00000000 08:12 793391                     /usr/lib/locale/locale-archive
7f7bfce9b000-7f7bfcea4000 r-xp 00000000 08:12 1441994                    /lib/x86_64-linux-gnu/libcrypt-2.15.so
7f7bfcea4000-7f7bfd0a4000 ---p 00009000 08:12 1441994                    /lib/x86_64-linux-gnu/libcrypt-2.15.so
7f7bfd0a4000-7f7bfd0a5000 r--p 00009000 08:12 1441994                    /lib/x86_64-linux-gnu/libcrypt-2.15.so
7f7bfd0a5000-7f7bfd0a6000 rw-p 0000a000 08:12 1441994                    /lib/x86_64-linux-gnu/libcrypt-2.15.so
7f7bfd0a6000-7f7bfd0d4000 rw-p 00000000 00:00 0 
7f7bfd0d4000-7f7bfd0ec000 r-xp 00000000 08:12 1442002                    /lib/x86_64-linux-gnu/libpthread-2.15.so
7f7bfd0ec000-7f7bfd2eb000 ---p 00018000 08:12 1442002                    /lib/x86_64-linux-gnu/libpthread-2.15.so
7f7bfd2eb000-7f7bfd2ec000 r--p 00017000 08:12 1442002                    /lib/x86_64-linux-gnu/libpthread-2.15.so
7f7bfd2ec000-7f7bfd2ed000 rw-p 00018000 08:12 1442002                    /lib/x86_64-linux-gnu/libpthread-2.15.so
7f7bfd2ed000-7f7bfd2f1000 rw-p 00000000 00:00 0 
7f7bfd2f1000-7f7bfd3ec000 r-xp 00000000 08:12 1442004                    /lib/x86_64-linux-gnu/libm-2.15.so
7f7bfd3ec000-7f7bfd5eb000 ---p 000fb000 08:12 1442004                    /lib/x86_64-linux-gnu/libm-2.15.so
7f7bfd5eb000-7f7bfd5ec000 r--p 000fa000 08:12 1442004                    /lib/x86_64-linux-gnu/libm-2.15.so
7f7bfd5ec000-7f7bfd5ed000 rw-p 000fb000 08:12 1442004                    /lib/x86_64-linux-gnu/libm-2.15.so
7f7bfd5ed000-7f7bfd5ef000 r-xp 00000000 08:12 1442008                    /lib/x86_64-linux-gnu/libdl-2.15.so
7f7bfd5ef000-7f7bfd7ef000 ---p 00002000 08:12 1442008                    /lib/x86_64-linux-gnu/libdl-2.15.so
7f7bfd7ef000-7f7bfd7f0000 r--p 00002000 08:12 1442008                    /lib/x86_64-linux-gnu/libdl-2.15.so
7f7bfd7f0000-7f7bfd7f1000 rw-p 00003000 08:12 1442008                    /lib/x86_64-linux-gnu/libdl-2.15.so
7f7bfd7f1000-7f7bfd9a6000 r-xp 00000000 08:12 1441993                    /lib/x86_64-linux-gnu/libc-2.15.so
7f7bfd9a6000-7f7bfdba6000 ---p 001b5000 08:12 1441993                    /lib/x86_64-linux-gnu/libc-2.15.so
7f7bfdba6000-7f7bfdbaa000 r--p 001b5000 08:12 1441993                    /lib/x86_64-linux-gnu/libc-2.15.so
7f7bfdbaa000-7f7bfdbac000 rw-p 001b9000 08:12 1441993                    /lib/x86_64-linux-gnu/libc-2.15.so
7f7bfdbac000-7f7bfdbb1000 rw-p 00000000 00:00 0 
7f7bfdbb1000-7f7bfdd24000 r-xp 00000000 08:12 786448                     /usr/lib/libperl.so.5.14.2
7f7bfdd24000-7f7bfdf24000 ---p 00173000 08:12 786448                     /usr/lib/libperl.so.5.14.2
7f7bfdf24000-7f7bfdf28000 r--p 00173000 08:12 786448                     /usr/lib/libperl.so.5.14.2
7f7bfdf28000-7f7bfdf2d000 rw-p 00177000 08:12 786448                     /usr/lib/libperl.so.5.14.2
7f7bfdf2d000-7f7bfdf2e000 rw-p 00000000 00:00 0 
7f7bfdf2e000-7f7bfdf50000 r-xp 00000000 08:12 1442005                    /lib/x86_64-linux-gnu/ld-2.15.so
7f7bfe129000-7f7bfe12e000 rw-p 00000000 00:00 0 
7f7bfe14d000-7f7bfe150000 rw-p 00000000 00:00 0 
7f7bfe150000-7f7bfe151000 r--p 00022000 08:12 1442005                    /lib/x86_64-linux-gnu/ld-2.15.so
7f7bfe151000-7f7bfe153000 rw-p 00023000 08:12 1442005                    /lib/x86_64-linux-gnu/ld-2.15.so
7fff363e2000-7fff36403000 rw-p 00000000 00:00 0                          [stack]
7fff3654e000-7fff36550000 r-xp 00000000 00:00 0                          [vdso]
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0                  [vsyscall]
Aborted (core dumped)
Summary of my perl5 (revision 5 version 14 subversion 2) configuration:

  Platform:
    osname=linux, osvers=2.6.42-37-generic, archname=x86_64-linux-gnu-thread-multi
    uname='linux panlong 2.6.42-37-generic #58-ubuntu smp thu jan 24 15:28:10 utc 2013 x86_64 x86_64 x86_64 gnulinux '
    config_args='-Dusethreads -Duselargefiles -Dccflags=-DDEBIAN -Dcccdlflags=-fPIC -Darchname=x86_64-linux-gnu -Dprefix=/usr -Dprivlib=/usr/share/perl/5.14 -Darchlib=/usr/lib/perl/5.14 -Dvendorprefix=/usr -Dvendorlib=/usr/share/perl5 -Dvendorarch=/usr/lib/perl5 -Dsiteprefix=/usr/local -Dsitelib=/usr/local/share/perl/5.14.2 -Dsitearch=/usr/local/lib/perl/5.14.2 -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 -DDEBUGGING=-g -Doptimize=-O2 -Duseshrplib -Dlibperl=libperl.so.5.14.2 -des'
    hint=recommended, useposix=true, d_sigaction=define
    useithreads=define, usemultiplicity=define
    useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
    use64bitint=define, use64bitall=define, uselongdouble=undef
    usemymalloc=n, bincompat5005=undef
  Compiler:
    cc='cc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
    optimize='-O2 -g',
    cppflags='-D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include'
    ccversion='', gccversion='4.6.3', gccosandvers=''
    intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
    ivtype='long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
    alignbytes=8, prototype=define
  Linker and Libraries:
    ld='cc', ldflags =' -fstack-protector -L/usr/local/lib'
    libpth=/usr/local/lib /lib/x86_64-linux-gnu /lib/../lib /usr/lib/x86_64-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.14.2
    gnulibc_version='2.15'
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E'
    cccdlflags='-fPIC', lddlflags='-shared -O2 -g -L/usr/local/lib -fstack-protector'

Characteristics of this binary (from libperl): 
  Compile-time options: MULTIPLICITY PERL_DONT_CREATE_GVSV
                        PERL_IMPLICIT_CONTEXT PERL_MALLOC_WRAP
                        PERL_PRESERVE_IVUV USE_64_BIT_ALL USE_64_BIT_INT
                        USE_ITHREADS USE_LARGE_FILES USE_PERLIO USE_PERL_ATOF
                        USE_REENTRANT_API
  Locally applied patches:
    DEBPKG:debian/arm_thread_stress_timeout - http://bugs.debian.org/501970 Raise the timeout of ext/threads/shared/t/stress.t to accommodate slower build hosts
    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/m68k_thread_stress - http://bugs.debian.org/517938 http://bugs.debian.org/495826 Disable some threads tests on m68k for now due to missing TLS.
    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/disable-zlib-bundling - Disable zlib bundling in Compress::Raw::Zlib
    DEBPKG:debian/cpanplus_definstalldirs - http://bugs.debian.org/533707 Configure 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/580034 Point users to Debian packages of deprecated core modules
    DEBPKG:fixes/hurd-ccflags - [a190e64] http://bugs.debian.org/587901 [perl #92244] Make hints/gnu.sh append to $ccflags rather than overriding them
    DEBPKG:debian/squelch-locale-warnings - http://bugs.debian.org/508764 Squelch locale warnings in Debian package maintainer scripts
    DEBPKG:debian/skip-upstream-git-tests - Skip tests specific to the upstream Git repository
    DEBPKG:fixes/extutils-cbuilder-cflags - [011e8fb] http://bugs.debian.org/624460 [perl #89478] Append CFLAGS and LDFLAGS to their Config.pm counterparts in EU::CBuilder
    DEBPKG:fixes/module-build-home-directory - http://bugs.debian.org/624850 [rt.cpan.org #67893] Fix failing tilde test when run under a UID without a passwd entry
    DEBPKG:debian/patchlevel - http://bugs.debian.org/567489 List packaged patches for 5.14.2-6ubuntu2.4 in patchlevel.h
    DEBPKG:fixes/h2ph-multiarch - [e7ec705] http://bugs.debian.org/625808 [perl #90122] Make h2ph correctly search gcc include directories
    DEBPKG:fixes/index-tainting - [3b36395] http://bugs.debian.org/291450 [perl #64804] RT 64804: tainting with index() of a constant
    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:fixes/sys-syslog-socket-timeout-kfreebsd.patch - http://bugs.debian.org/627821 [rt.cpan.org #69997] Use a socket timeout on GNU/kFreeBSD to catch ICMP port unreachable messages
    DEBPKG:fixes/hurd-hints - http://bugs.debian.org/636609 Improve general GNU hints, needed for GNU/Hurd.
    DEBPKG:fixes/pod_fixes - [7698aed] http://bugs.debian.org/637816 Fix typos in several pod/perl*.pod files
    DEBPKG:debian/find_html2text - http://bugs.debian.org/640479 Configure CPAN::Distribution with correct name of html2text
    DEBPKG:fixes/digest_eval_hole - http://bugs.debian.org/644108 Close the eval "require $module" security hole in Digest->new($algorithm)
    DEBPKG:fixes/hurd-ndbm - [f0d0a20] [perl #102680] http://bugs.debian.org/645989 Add GNU/Hurd hints for NDBM_File
    DEBPKG:fixes/sysconf.t-posix - [8040185] [perl #102888] http://bugs.debian.org/646016 Fix hang in ext/POSIX/t/sysconf.t on GNU/Hurd
    DEBPKG:fixes/hurd-largefile - [1fda587] [perl #103014] http://bugs.debian.org/645790 enable LFS on GNU/Hurd
    DEBPKG:debian/hurd_test_todo_syslog - http://bugs.debian.org/650093 Disable failing GNU/Hurd tests in cpan/Sys-Syslog/t/syslog.t
    DEBPKG:fixes/hurd_skip_itimer_virtual - [rt.cpan.org #72754] http://bugs.debian.org/650094 Skip interval timer tests in Time::HiRes on GNU/Hurd
    DEBPKG:debian/hurd_test_skip_socketpair - http://bugs.debian.org/650186 Disable failing GNU/Hurd tests ext/Socket/t/socketpair.t
    DEBPKG:debian/hurd_test_skip_sigdispatch - http://bugs.debian.org/650188 Disable failing GNU/Hurd tests op/sigdispatch.t
    DEBPKG:debian/hurd_test_skip_stack - http://bugs.debian.org/650175 Disable failing GNU/Hurd tests dist/threads/t/stack.t
    DEBPKG:debian/hurd_test_skip_recv - http://bugs.debian.org/650095 Disable failing GNU/Hurd tests cpan/autodie/t/recv.t
    DEBPKG:debian/hurd_test_skip_libc - http://bugs.debian.org/650097 Disable failing GNU/Hurd tests dist/threads/t/libc.t
    DEBPKG:debian/hurd_test_skip_pipe - http://bugs.debian.org/650187 Disable failing GNU/Hurd tests io/pipe.t
    DEBPKG:debian/hurd_test_skip_io_pipe - http://bugs.debian.org/650096 Disable failing GNU/Hurd tests dist/IO/t/io_pipe.t
    DEBPKG:fixes/CVE-2012-5195 - avoid calling memset with a negative count
    DEBPKG:fixes/CVE-2012-5526 - [PATCH 1/4] CR escaping for P3P header
    DEBPKG:CVE-2013-1667.patch - [PATCH] Prevent premature hsplit() calls, and only trigger REHASH after hsplit()
    DEBPKG:CVE-2012-6329.patch - http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=695224 [1735f6f] fix arbitrary command execution via _compile function in Maketext.pm
  Built under linux
  Compiled at Feb  4 2014 23:11:19
  %ENV:
    PERLBREW_BASHRC_VERSION="0.67"
    PERLBREW_HOME="/home/vse/.perlbrew"
    PERLBREW_MANPATH=""
    PERLBREW_PATH="/home/perlbrew/bin"
    PERLBREW_ROOT="/home/perlbrew"
    PERLBREW_VERSION="0.67"
  @INC:
    /etc/perl
    /usr/local/lib/perl/5.14.2
    /usr/local/share/perl/5.14.2
    /usr/lib/perl5
    /usr/share/perl5
    /usr/lib/perl/5.14
    /usr/share/perl/5.14
    /usr/local/lib/site_perl
    .

reproduced on two servers. and it seems that 0.05 works fine. we rolled back and all fine now.

shogo82148 commented 10 years ago

thank you for your bug report. i fixed it and push into https://github.com/shogo82148/Redis-Fast/compare/fix-issue-9-avoid-double-free . check it out please.

vsespb commented 10 years ago

It looks like problem fixed, but behaviour of module changed

$ perl 1.pl 
0.05
NORMAL EXIT
$ perl -Iblib/lib -I blib/arch 1.pl 
0.08
Error while reading from Redis server: Connection timed out at blib/lib/Redis/Fast.pm line 178.
$ cat 1.pl 
use strict;
use warnings;
use Redis::Fast;
print Redis::Fast->VERSION(), "\n";
my $redis = Redis::Fast->new(server => 'localhost:6379', reconnect=>1, cnx_timeout   => 0.2, read_timeout  => 0.3);
$redis->blpop("notakey", 3);
print "NORMAL EXIT\n";

previously blpop timeout was in priority over read_timeout. now it timeouts after readtimeout. I suspect it can brake backward compatibility.

also, does not fix #10

shogo82148 commented 10 years ago

Redis::Fast 0.08 supports cnx_timeout and read_timeout while 0.05 does not. so, it is expected behavior that 0.08 reports an exception while 0.05 does not if timeout options are passed.

Redis.pm reports an exception in this case. (error message is a little different, but i don't know how to fix it :( it's feature work.)

use strict;
use warnings;
use Redis;
my $redis = Redis->new(server => 'localhost:6379', reconnect=>1, cnx_timeout   => 0.2, read_timeout  => 0.3);
$redis->blpop("notakey", 1);
Error while reading from Redis server: Resource temporarily unavailable at /home/ichinose/.plenv/versions/5.14.3/lib/perl5/site_perl/5.14.3/Redis.pm line 267.
vsespb commented 10 years ago

Ok, thank you. LGTM then.