PhantomJSがURLをopenするとハングする原因

(更新日: 2013/12/04)

PhantomJSはWebKitを利用したヘッドレスHTTPクライアントです。Webアプリのテストのみでなく、WebページをPDFや画像に変換する為に利用している方も多いと思います。手元のFedora19を載せているマシンでは動作せず、原因と思われる物も分ったのでエントリを作りました。

結論から書くと、どうもNVidiaのドライバを利用しているとハングするようです。

https://github.com/ariya/phantomjs/issues/10845

ここではWindows8の問題が記載されていますが、Linux+NVidiaドライバのFedora19でも同様にハングしてしまいます。PhantomJSのトップページに記載されている

でさえハングして終了しません。

同じマシン上のVMwareのScientific Linux 6.4上から

http://phantomjs.org/build.html

に従ってビルドしたところ、あっさり正常に動作しました。

ビルドで多少困った事は依存性の解消とgoldリンカーの問題です。

gstreamerのpkgconfigが無いとエラーが出力されます。上記コマンドでインストールできます。

このファイルでld.goldを利用するように設定されているのですが、goldだとリンクに失敗します。単純に削除すればビルドできました。

ビルドが終わるとbin/phantomjsバイナリが出来上がります。openでハングする事はなくなりました。

なぜPhantomJSがハングするのか??となってしまった方も居ると思います。役立ったら教えて下さい。

追記:
私のFedora19環境はNVidiaドライバがNGだったので使わなかったのですが、FacebookにSRPMでのビルドをこの前に試しました。この問題が関係ない方ならSRPMの方が楽に導入できると思います。Facebookに書いたダーティーハックを転載します。

PhantomJSをFedora19に入れたくて、srpmを探したらFedoraの中の人がF20とF17用にSRPMを作っていた。これで簡単にコンパイル&インストールと思ったらビルドセクションのスクリプトが

exitの前の”1”でエラーに。SPECがおかしいのかな?と思い見てみても普通。

というダーティーハックで逃げました。

Comments

comments

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です