Personal tools
You are here: Home ブログ 井上 AirOneの(たぶん)version1の頃からあるバグを修正
« December 2010 »
Su Mo Tu We Th Fr Sa
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  
Recent entries
Apache2.4のリリース予定は来年(2011年)初め(あくまで予定) inoue 2010-12-23
Herokuの発音 inoue 2010-12-20
雑誌記事「ソフトウェア・テストPRESS Vol.9」の原稿公開 inoue 2010-12-18
IPA未踏のニュース inoue 2010-12-15
労基法とチキンゲーム inoue 2010-12-06
フロントエンドエンジニア inoue 2010-12-03
ASCII.technologies誌にMapReduceの記事を書きました inoue 2010-11-25
技術評論社パーフェクトシリーズ絶賛発売中 inoue 2010-11-24
雑誌連載「Emacsのトラノマキ」の原稿(part8)公開 inoue 2010-11-22
RESTの当惑 inoue 2010-11-22
「プログラマのためのUXチートシート」を作りました inoue 2010-11-19
「ビューティフルコード」を読みました inoue 2010-11-16
Categories
カテゴリなし
 
Document Actions

AirOneの(たぶん)version1の頃からあるバグを修正

AirOneに3年以上前からあるバグを見つけました。

以前、「イベントドリブンとマルチスレッドの相性の悪さ(http://dev.ariel-networks.com/blog/inoue.php?blogid=2&archive=2004-4-15)」という記事を書きました。 今回直したバグはまさにこのパターンです。

イベントコールバック関数に入ってすぐに排他制御のためにロックをしていましたが、ロック獲得の直前に別スレッドに割り込まれて、割り込んだスレッドが運悪くある条件を満たすと、AirOneがクラッシュします。

3年以上潜伏し続けたバグだけに、起きる確率はかなり低いものです。しかし、最近、少しだけ起きる確率が上がった可能性があり、発見につながりました。 上で説明したイベントは通信セッションの破棄にいたるイベントで、割り込んだ別スレッドが運悪く満たす条件は、停止中の通信セッションの再利用です。ネットワーク利用の効率化を進めるなかで、通信セッションを再利用する確率が上がったのでしょう。

微妙なタイミングのバグなので修正に手こずりました。修正をコミットしましたが、いまいち汚い直し方でした(昨日の夜)。 今日起きると、もう少しまともな書き方を思いつきました。リリース前なので、コミットは後回しです。

The URL to Trackback this entry is:
http://dev.ariel-networks.com/Members/inoue/airone-bugfix/tbping
Add comment

You can add a comment by filling out the form below. Plain text formatting.

(Required)
(Required)
(Required)
This helps us prevent automated spamming.
Captcha Image


Copyright(C) 2001 - 2006 Ariel Networks, Inc. All rights reserved.