Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

FiberError with minitest's parallelize_me! with sequel

オープン
#5 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
30/100
issue の種類
バグ
明瞭さ
説明が足りない
活発さ
停滞
技術スタック
ruby
領域
databases, testing

調査の方向性

46 行目の test_helpers.rb と、database_cleaner/sequel/transaction.rb の 32 行目にある Sequel のトランザクション実装から始めます。minitest's parallelize_me! を使ってユニットテストを実行し、断続的に発生する FiberError を再現して、トランザクション fiber がどのように作成され、再開されるかを調べます。ユニットテストがスレッド間の fiber エラーなしに完了すれば完了です。

索引モデルが issue の本文から書いたものです。

説明

It fails non-deterministically, line 46 in test_helpers.rb is:

DatabaseCleaner.clean
FiberError: fiber called across threads
    /home/bbozo/.rvm/gems/ruby-2.2.4/gems/database_cleaner-1.5.3/lib/database_cleaner/sequel/transaction.rb:32:in `resume'
    /home/bbozo/.rvm/gems/ruby-2.2.4/gems/database_cleaner-1.5.3/lib/database_cleaner/sequel/transaction.rb:32:in `clean'
    /home/bbozo/.rvm/gems/ruby-2.2.4/gems/database_cleaner-1.5.3/lib/database_cleaner/base.rb:92:in `clean'
    /home/bbozo/.rvm/gems/ruby-2.2.4/gems/database_cleaner-1.5.3/lib/database_cleaner/configuration.rb:79:in `block in clean'
    /home/bbozo/.rvm/gems/ruby-2.2.4/gems/database_cleaner-1.5.3/lib/database_cleaner/configuration.rb:79:in `each'
    /home/bbozo/.rvm/gems/ruby-2.2.4/gems/database_cleaner-1.5.3/lib/database_cleaner/configuration.rb:79:in `clean'
    /home/bbozo/infosig/InfoSwitch/Gateway/test/test_helpers.rb:46:in `block in <class:UnitTest>'

this is going in unit tests, so no parallel thread wacky stuff going on like with the integration tests. I'm using database_cleaner (1.5.3), let me know if I can assist more

ruby 2.2.4p230 (2015-12-16 revision 53155) [x86_64-linux]

    activesupport (4.2.6)
      i18n (~> 0.7)
      json (~> 1.7, >= 1.7.7)
      minitest (~> 5.1)
      thread_safe (~> 0.3, >= 0.3.4)
      tzinfo (~> 1.1)
    coderay (1.1.1)
    concurrent-ruby (1.0.2)
    connection_pool (2.2.0)
    database_cleaner (1.5.3)
    dotenv (2.1.1)
    dry-configurable (0.1.4)
      concurrent-ruby (~> 1.0)
    dry-container (0.3.1)
      concurrent-ruby (~> 1.0)
      dry-configurable (~> 0.1, >= 0.1.3)
    dry-equalizer (0.2.0)
    dry-logic (0.2.2)
      dry-container (~> 0.2, >= 0.2.6)
      dry-equalizer (~> 0.2)
    dry-types (0.7.1)
      concurrent-ruby (~> 1.0)
      dry-configurable (~> 0.1)
      dry-container (~> 0.3)
      dry-equalizer (~> 0.2)
      dry-logic (~> 0.2, >= 0.2.0)
      inflecto (~> 0.0.0, >= 0.0.2)
      kleisli (~> 0.2)
    dry-validation (0.7.4)
      concurrent-ruby (~> 1.0)
      dry-configurable (~> 0.1, >= 0.1.3)
      dry-container (~> 0.2, >= 0.2.8)
      dry-equalizer (~> 0.2)
      dry-logic (~> 0.2, >= 0.2.2)
      dry-types (~> 0.6, >= 0.6.0)
    faraday (0.9.2)
      multipart-post (>= 1.2, < 3)
    foreman (0.81.0)
      thor (~> 0.19.1)
    i18n (0.7.0)
    inflecto (0.0.2)
    json (1.8.3)
    kleisli (0.2.7)
    m (1.5.0)
      method_source (>= 0.6.7)
      rake (>= 0.9.2.2)
    method_source (0.8.2)
    mini_portile2 (2.0.0)
    minitest (5.8.4)
    minitest-around (0.3.2)
      minitest (~> 5.0)
    multipart-post (2.0.0)
    nokogiri (1.6.7.2)
      mini_portile2 (~> 2.0.0.rc2)
    pg (0.18.4)
    pry (0.10.3)
      coderay (~> 1.1.0)
      method_source (~> 0.8.1)
      slop (~> 3.4)
    puma (3.4.0)
    rack (1.6.4)
    rack-test (0.6.3)
      rack (>= 1.0)
    rake (11.1.2)
    redis (3.3.0)
    roda (2.13.0)
      rack
    sequel (4.33.0)
    sidekiq (4.1.2)
      concurrent-ruby (~> 1.0)
      connection_pool (~> 2.2, >= 2.2.0)
      redis (~> 3.2, >= 3.2.1)
    slop (3.6.0)
    thor (0.19.1)
    thread_safe (0.3.5)
    tzinfo (1.2.2)
      thread_safe (~> 0.1)
    vcr (3.0.1)

主要言語
Ruby
スター
19
フォーク
11
PR マージ指標
30日以内にマージされた PR はありません

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

DatabaseCleaner/database_cleaner-sequel のほかの issue

DatabaseCleaner/database_cleaner-sequel の issue をすべて見る

似ている issue

Ruby の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。