プロジェクト

全般

プロフィール

バグ #781

Windows上でのConsoleIn,ConsoleOutコンポーネントの動作不具合

kuriharaほぼ15年前に追加. ほぼ15年前に更新.

ステータス:
終了
優先度:
通常
担当者:
-
対象バージョン:
-
開始日:
2009/07/09
期日:
進捗率:

100%

予定工数:

説明

WindowsにてConsoleIn,ConsoleOuを起動し、RTSystemEditorにてAll Activateを行うとRTSystemEditorが固まる。
固まる原因は、ConsoleOutのactivate_component()で処理が戻ってこないため。

activate_component()の処理内にてデッドロックが発生している模様。
チケット#628にてsrc/lib/coil/win32/coil/Mutex.hの修正が行われたが、ここで修正されたCreateMutex()の
第三引数に固定の名前を指定しているのが悪さしているようであった。

この第三引数を以前のようにNULLに戻してみたところ、ConsoleIn,ConsoleOutは問題無く動作するようになった。

動作確認を行ったリビジョンはR1435。


関連するチケット

関連している OpenRTM-aist (C++) - バグ #628: coil::Logger のバグ windows終了2009-05-22

履歴

#1 匿名ユーザー がほぼ15年前に更新

  • 原因
    システム全体を一つの mutex のハンドルで制御しようとしたためデッドロックが発生した。
  • 対策
    coil::LogStream で使用する mutex は static に修正。
    coil::Mutex で mutex を生成する (CreateMutex) 際に、名前付き/Null を指定できるように修正。
    RTC::Logger のフォーマット機能付きログ出力マクロで、引数にログ出力がある関数が指定された場合、デッドロックを起こすため改修。
  • 確認 (posix,windows で確認)
    coil の Logger に unit テストで問題がなことを確認。
    log_level を PARANOID にして SimpleIO を動作させてログファイルが崩れて記録されていないことを確認。

#2 匿名ユーザー がほぼ15年前に更新

  • ステータス新規 から 終了 に変更
  • 担当者匿名ユーザー にセット
  • 進捗率0 から 100 に変更

他の形式にエクスポート: Atom PDF