【コムテック精神】iDってどうよ?その2

このエントリーをはてなブックマークに追加
628名無しさん@どっと混む
>>627
本資料は、日本電気株(財産的情報)(NEC CONFIDENTIAL PROPRIETARY)です。
本資料の開示先は、鰍mTTドコモ殿です。

1.はじめに
共通APのVer2.1.0版にて対処された「pthreadのコンパイルオプション付与」についてWPCG/XPCGへの
影響について調査致しましたので以下にご報告いたします。

2.見解
WPCG/XPCGにおいては、全プロセスに於いてptheadライブラリのオプションを付与しており共通APが対処した
内容が無くとも以下の理由により動作的に問題は無い(発生する確率は非常に低い)と考えております。

 ・既に検証環境及び商用環境においても長期間での動作実績があること。
 ・pthreadライブラリ利用に対する必要な対処が既に行われていること。
 ・他システムで発生した事象が上記対処によりWPCG/XPCGには該当しないこと。
 ・共通APのthread機能を使用していないこと。

3.問題事象について
共通APがpthread対処を盛り込んだ経緯は、他システムにおいてpthreadライブラリを引き込んでいるプロセスが
pthrtead利用時に変数エリアがNULLになってしまうと言う不定動作が発生し、該当変数エリアに値を代入した際
に問題が表面化した事による対処となっております。

本事象の調査結果を以下に簡単に説明致します。

マルチスレッド化は行っていなくとも共通APライブラリを引き込んでいる事、及び高速な排他制御である
pthead_mutex を利用している為に、APLコンパイル時に-D_POSIX_C_SOURCE を指定していなかったことにより
OS側で動作を保証しておらず、不定動作の結果として障害となっていました。

上記調査結果より以下の様に結論付けられています。

pthread のライブラリを引き込むプロセスは、マルチスレッド化を行っているか否かに関わらず、「全てのソース」について、
<pthread.h> の include と、コンパイル時の -D_POSIX_C_SOURCE=199506L オプションがない場合、OS側にて動作が保証されない。