2012年8月22日、Node.jsの安定版ラインであるv0.8系の最新アップデートとして、バージョン0.8.8がリリースされました。

このリリースでは、実行エンジンの刷新に加えて、システムの安定稼働を妨げる深刻なメモリ関連の不具合が複数修正されています。

特にWindowsやUnix環境におけるリソース管理の改善が含まれており、実運用環境における信頼性を高める内容となっています。

主要なエンジンのアップデート

本バージョンでは、Node.jsの核となるコンポーネントが最新の状態に更新されました。

JavaScript実行エンジンであるV8はバージョン3.11.10.19へとアップグレードされています。

また、パッケージ管理ツールのnpmもバージョン1.1.59へと更新され、モジュールの管理や依存関係の解決がよりスムーズに行えるようになりました。

メモリ管理と安定性の向上

今回のリリースにおける最も重要な変更点は、メモリ破損や不正アクセスに関する修正です。

具体的には、UnixおよびWindowsの両環境において、fs-poll.c内で発生していたメモリ破損の問題が解消されました。

Windows環境特有の修正として、uv_update_time()における未初期化メモリへのアクセス問題も修正されています。

さらに、ファイルシステムを監視するstat watcherにおいて、メモリを解放した後に再利用してしまう「use after free」のバグも修正され、クラッシュのリスクが低減しました。

プラットフォーム固有の修正と改善

特定のオペレーティングシステムやビルド環境に依存する問題についても、幅広く対応が行われています。

Windows環境では、ディレクトリのショートカット機能に相当する「ジャンクション」が再び正常に動作するよう修正されました。

OS X(現在のmacOS)においては、手動でコンパイルされたgccを使用してビルドする際の不具合が解消されています。

また、TLS通信で使用されるデフォルトの暗号リストが更新され、セキュリティ設定の最適化も図られています。

各種バイナリとソースコード

各環境向けのインストールファイルは以下のリンクから入手可能です。

プラットフォームファイル形式
Source Codenode-v0.8.8.tar.gz
Windows (x64)node-v0.8.8-x64.msi
Macintoshnode-v0.8.8.pkg
Linux (64-bit)node-v0.8.8-linux-x64.tar.gz

バージョン確認コマンド

インストール後、以下のコマンドを実行することでバージョン情報を確認できます。

Shell
# Node.jsのバージョンを確認します
node -v
実行結果
v0.8.8

まとめ

Node.js v0.8.8は、V8エンジンの更新といった内部基盤の強化とともに、メモリ周りの重大なバグ修正が中心となった安定化リリースです。

特にWindowsユーザーや、ファイル監視機能を多用するアプリケーションを運用している開発者にとって、今回の修正は大きな恩恵をもたらします。

安定性を重視するプロジェクトにおいては、速やかに本バージョンへのアップデートを実施し、システムの堅牢性を確保することをお勧めします。