Uploaded image for project: 'Qpid Proton'
  1. Qpid Proton
  2. PROTON-1738

[ruby-binding] incompatible with ruby 2.0.0

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • proton-c-0.19.0
    • proton-c-0.21.0
    • ruby-binding
    • None

    Description

      $ ctest -VV -R ruby-example-test
      UpdateCTestConfiguration  from :/home/jdanek/Work/repos/qpid-proton/build/DartConfiguration.tcl
      Parse Config file:/home/jdanek/Work/repos/qpid-proton/build/DartConfiguration.tcl
      UpdateCTestConfiguration  from :/home/jdanek/Work/repos/qpid-proton/build/DartConfiguration.tcl
      Parse Config file:/home/jdanek/Work/repos/qpid-proton/build/DartConfiguration.tcl
      Test project /home/jdanek/Work/repos/qpid-proton/build
      Constructing a list of tests
      Done constructing a list of tests
      Updating test list for fixtures
      Added 0 tests to meet fixture requirements
      Checking test dependency graph...
      Checking test dependency graph end
      test 13
          Start 13: ruby-example-test
      
      13: Test command: /nix/store/hr461qqci171p6k53wwz52ifyp2h9g9l-python-2.7.14/bin/python "/home/jdanek/Work/repos/qpid-proton/proton-c/env.py" "--" "PATH=/nix/store/pgwzcwz3v13dm193iys78xajrxf7m9yq-include-what-you-use-0.8/bin:/nix/store/x9p1z5z22z59x88h7ap09s0f79w50nj0-krb5-1.15.2-dev/bin:/nix/store/0gpszn41jk1fdw98q1jdm7n4z271m303-krb5-1.15.2/bin:/nix/store/xmbal41hbh2z82jz7pgjgxkba9malcvf-gss-1.0.3/bin:/nix/store/qs68njxs4awvjaqf2yw89x8bnb2jwl2a-pkg-config-0.29.2/bin:/nix/store/bd1qnp2y4mni2jsr7yqfy45q5wj9q4wz-util-linux-2.31-bin/bin:/nix/store/s03sh263lrxnz8dp9d81is9xwrs67ay9-openssl-1.0.2n-bin/bin:/nix/store/0frzwaf62yrbs0ni6043sllk8ac7db1l-cmake-3.9.6/bin:/nix/store/q03ccdnb7i7za2q66gx8b3mii293i6cg-ninja-1.8.2/bin:/nix/store/2sb5s8wj4s6awvfd4rn82297g2fhr18d-gcc-wrapper-7.2.0/bin:/nix/store/gkasrgaqw2riqc8ck8hh3a9k06cqaqrd-gcc-7.2.0/bin:/nix/store/b25rk6qm6p3af1r1g25lzr16r31336r1-glibc-2.26-75-bin/bin:/nix/store/hw5a3mifkrzd8y0pxs7nzzr4yscg08mw-coreutils-8.28/bin:/nix/store/m5s6hd02nlfywi9n3yrgrx3fa8kgp9jd-binutils-wrapper-2.28.1/bin:/nix/store/kcdiibhpjrbpash3r1bvj2ncv4rwr3sm-binutils-2.28.1/bin:/nix/store/b25rk6qm6p3af1r1g25lzr16r31336r1-glibc-2.26-75-bin/bin:/nix/store/hw5a3mifkrzd8y0pxs7nzzr4yscg08mw-coreutils-8.28/bin:/nix/store/h5m0g1agfcyc2d5lql0n8z6fls261rnn-go-1.9.2/bin:/nix/store/ksl9j54260jc99qphf9gr6gg5vdn8dp0-ruby-2.0.0-p648/bin:/nix/store/10lvqls7vl68blvvv42g36bh5rjbwkmk-gdb-8.0.1/bin:/nix/store/11wq1ncfb8za0mnnficcizd53p1md2y7-swig-3.0.12/bin:/nix/store/hr461qqci171p6k53wwz52ifyp2h9g9l-python-2.7.14/bin:/nix/store/waf0wx7drw74pkig43ickd8bn540wbz6-cyrus-sasl-2.1.26-bin/bin:/nix/store/n7l459d0f28lmdirr1wlzkdi7151jhqk-patchelf-0.9/bin:/nix/store/q7p8jaiymb1k4n44l31xdm753j79h7l5-paxctl-0.9/bin:/nix/store/4cqv0dm94h2sm0xpcqi6h8z6bnxqqlna-gcc-wrapper-6.4.0/bin:/nix/store/d88s1v28v11j2jxshqdvqms6h0pvp8aw-gcc-6.4.0/bin:/nix/store/b25rk6qm6p3af1r1g25lzr16r31336r1-glibc-2.26-75-bin/bin:/nix/store/hw5a3mifkrzd8y0pxs7nzzr4yscg08mw-coreutils-8.28/bin:/nix/store/hw5a3mifkrzd8y0pxs7nzzr4yscg08mw-coreutils-8.28/bin:/nix/store/n2p15qg4lxgq0xkfrgqqfgpwkmd3295d-findutils-4.6.0/bin:/nix/store/ajiwrzg6nz9xpifr91wp14cy8al7s4df-diffutils-3.6/bin:/nix/store/n5rsq2cxj7lp4gynkvqrp0xkf78f1ni6-gnused-4.4/bin:/nix/store/nwpv4sxayci7jkjq7fid8hwz6ig5xjzi-gnugrep-3.1/bin:/nix/store/w1cddj0qc3ximvpwrn28rig7wq99ajd7-gawk-4.2.0/bin:/nix/store/7iw6c6nx7spzsp92pqq5qnd7d8jvbdl8-gnutar-1.30/bin:/nix/store/qk11lqm8fz9hpk1682gyf3x51wwasj3z-gzip-1.8/bin:/nix/store/mi9vmy5nwc4ma33jz6ihrdhh1r6izzv6-bzip2-1.0.6.0.1-bin/bin:/nix/store/92cdms75qnqh3hf39wbxra60bxdah9mq-gnumake-4.2.1/bin:/nix/store/65l6hr8snf4v823f974k97jc65i7bhvf-bash-4.4-p12/bin:/nix/store/irwrb341fpqd2lj22j13ffsxcjhayv1m-patch-2.7.5/bin:/nix/store/8fy4c90a0cj1mw2xibvv5k6b0rxx6b09-xz-5.2.3-bin/bin:/home/jdanek/bin:/run/wrappers/bin:/etc/per-user-pkgs/jdanek/bin:/home/jdanek/.nix-profile/bin:/nix/var/nix/profiles/default/bin:/run/current-system/sw/bin:/home/jdanek/Work/repos/qpid-proton/build/proton-c/bindings/ruby:/home/jdanek/Work/repos/qpid-proton/build/proton-c" "RUBYLIB=:/home/jdanek/Work/repos/qpid-proton/proton-c/bindings/ruby/lib:/home/jdanek/Work/repos/qpid-proton/proton-c/bindings/ruby/tests:/home/jdanek/Work/repos/qpid-proton/proton-c/bindings/ruby/spec:/home/jdanek/Work/repos/qpid-proton/build/proton-c/bindings/ruby:/home/jdanek/Work/repos/qpid-proton/build/proton-c" "SASLPASSWD=/nix/store/waf0wx7drw74pkig43ickd8bn540wbz6-cyrus-sasl-2.1.26-bin/bin/saslpasswd2" "/nix/store/ksl9j54260jc99qphf9gr6gg5vdn8dp0-ruby-2.0.0-p648/bin/ruby" "example_test.rb" "-v"
      13: Test timeout computed to be: 1500
      13: /home/jdanek/Work/repos/qpid-proton/proton-c/bindings/ruby/lib/core/container.rb:128:in `initialize': undefined method `<<' for #<ConditionVariable:0x00000000e162e8> (NoMethodError)
      13:     from broker.rb:165:in `new'
      13:     from broker.rb:165:in `<main>'
      13: example_test.rb:97:in `readline': end of file reached (EOFError)
      13:     from example_test.rb:97:in `<main>'
      1/1 Test #13: ruby-example-test ................***Failed    0.23 sec
      
      0% tests passed, 1 tests failed out of 1
      
      Total Test time (real) =   0.24 sec
      
      The following tests FAILED:
               13 - ruby-example-test (Failed)
      Errors while running CTest
      

      The problematic line of code reads @work << :start << self # Issue start and start start selecting

      I believe the cause is that in ruby 2.0.0, the Queue behaves differently than in more recent versions.

      $ ruby --version
      ruby 2.0.0p648 (2015-12-16) [x86_64-linux]
      
      $ irb
      irb(main):001:0> q = Queue::new
      => #<Queue:0x00000000c3c148 @que=[], @num_waiting=0, @mutex=#<Mutex:0x00000000c3c0f8>, @cond=#<ConditionVariable:0x00000000c3c0a8 @waiters={}, @waiters_mutex=#<Mutex:0x00000000c3c058>>>
      irb(main):002:0> q << :somevalue
      => #<ConditionVariable:0x00000000c3c0a8 @waiters={}, @waiters_mutex=#<Mutex:0x00000000c3c058>>
      

      Compare that to

      $ ruby --version
      ruby 2.4.2p198 (2017-09-14) [x86_64-linux]
      
      $ irb
      irb(main):001:0> q = Queue::new
      => #<Thread::Queue:0x00000000024360f0>
      irb(main):002:0> q << :somevalue
      => #<Thread::Queue:0x00000000024360f0>
      irb(main):003:0> 
      

      Attachments

        Issue Links

          Activity

            People

              aconway Alan Conway
              jdanek Jiri Daněk
              Votes:
              1 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: