第69話 隔離できない受け入れ枠
問題の構造はすでに昨夜のうちに書き留めてあった。
〔召喚陣入出力ポートの共用問題:帰還と召喚が同一ポートを逆方向に使用。完全停止は帰還精度に影響する。読み取り専用・非実行状態への変換を検討〕
修司は朝一番にそのメモを開き、マルファスに連絡を入れた。「今日一日、時間を取れますか。昨日の座標補正処理の件です」という短い文面だった。
返答は来なかったが、一時間後にマルファスが監視室へ来た。それが彼なりの返事だった。
「昨夜の続きか」と腰を下ろしながら言う。コンソールの前に椅子を引いて座り、画面を見た。
「問題の処理、もう一度詳しく見せてくれ」
「昨日と同じログです。座標補正処理のポートIDを出しました」
マルファスが画面を覗いた。数字の列を指でなぞりながら、黙って追っていく。修司は横で待った。急かさなかった。マルファスが技術的な問題を見るときは、自分のペースで進める。途中で口を挟むと、考えが途切れる。
「……これは古い設計だ」とマルファスは言った。
「入力と出力を同じポートで処理するのは、古代召喚陣の特徴だ。今の魔導技術なら、入出力は別ポートで設計するのが当たり前だが、古代のものはそうなっていない」
「なぜ同じポートにしたと思いますか」
「材料の制約じゃないか。当時の術式刻印材は希少で、ポートを複数作るコストが高かった。だから一つのポートを方向を切り替えながら使う設計にした。帰還処理のときは出力方向で使い、召喚処理のときは入力方向で使う。それ自体は問題ない設計だったはずだ」
「問題が生じたのは」
「召喚陣に受け入れ枠という概念が後付けで追加されてから、だろうな。受け入れ枠の監視処理が、そのポートに常時アクセスを持ち始めた。本来は召喚を実行するときだけ使えばいい処理が、待機状態でも接続を保ったまま動いている」
修司はその説明をメモに書いた。書きながら聞く。
「受け入れ枠の監視処理を完全に止めると、座標補正も止まる理由は」
「同じポートを使っているから、監視処理が動いていることで座標補正側の処理も参照先を確認できる仕組みになっているんだ。電気に例えると、同じ回線を共有していて、片方を切ると電圧が変わって残った方も影響を受けるようなものだ」
「止めるのではなく、読むだけにすることはできますか。監視処理が動き続けるが、実行命令だけ受け付けない状態にする」
マルファスが少し考えた。指先でテーブルを叩き、止めた。
「……できる。ただし、術式の深い層に手を入れる必要がある。今の管理権限で届く範囲かどうかは確認が要る」
「帰還監査の権限でどこまで届くかを確認してから始めましょう。今日中にできますか」
「やってみないと分からん。ただ、今日中に答えは出せる」
午前中、エイラを加えた三人で作業した。
まずポートの構造を確認した。修司がログを展開し、マルファスが術式の配線図を読み解き、エイラが基盤炉側の負荷への影響を試算する。作業は静かだった。三人がそれぞれの画面を見て、時々短く声を出し合いながら進む。
ポートIDを追うと、受け入れ枠の監視処理が接触している層が見えてきた。マルファスが画面の特定箇所を指差して言った。「この層に、実行命令のフラグがある。ここを読み取り専用に書き換えれば、命令は来ても実行に移らない」
「実行に移らなくても、監視処理自体は動き続けますか」
「動き続ける。ポートへのアクセスは維持する。座標補正に影響しない」
「書き換える対象はこの一点だけでいいですか」
「それだけでいい。ただし、確実に動くかどうかは実行してみるまで分からない。試験環境で先に試したいが」
「試験環境は昨日の段階で作ってあります」
マルファスが少し間を置いた。「……用意がいいな」
「準備しておきました」と修司は答えた。
試験環境での確認を午前中に終わらせた。
結果は、意図通りに動いた。実行命令フラグを読み取り専用にすると、受け入れ枠の監視処理は動き続けるが、帰還処理の実行指示を受け付けなくなる。座標補正への影響もなかった。エイラが基盤炉側の負荷ログを確認し「数値は変わっていません」と言った。
修司はその結果をメモに書き加えた。
〔試験実行結果:読み取り専用への書き換えにより、受け入れ枠が非実行状態に移行。監視処理は継続、座標補正への影響なし〕
「本番環境に入れる前にセルアスさんの承認が要りますか」とエイラが確認した。
「要ります。帰還監査の公文書を追記する形で、緊急承認をもらいます。今日中に動かしたいので、今からお願いします」
エイラが通信を取る隣で、修司はサンドボックス化の手順をセルアスに説明するための文書をまとめ始めた。「非実行化」と「完全停止」が技術的にどう違うか。完全停止を選ばない理由。影響範囲がどこに留まるか。読む側が技術的な専門知識を持たなくても判断できるよう、言葉を選んで書いた。
昼過ぎ、セルアスが書類を持って来た。
文書を読みながら歩いてきたらしく、入口のところで顔を上げてから部屋に入った。「一点だけ確認させてください。サンドボックス化、という表現ですが、これは帰還本番の間だけ有効な処置ですか、それとも恒久的なものですか」
「帰還本番の間の応急対応です。恒久化するにはまた別の手続きが必要になります」
「その前提で承認します。期間と対象を明記した追記文書を発行します。修司殿、今から発行して間に合いますか」
「今日中に本番環境に入れたいので、午後の早い時間にお願いできると助かります」
「分かりました」とセルアスが言い、椅子を借りて書き始めた。
午後、王宮魔導院から技師が来た。
昨日の防衛予備権限の件で接触のあった流れで、今日の作業内容を魔導院の監視系統が検知したらしかった。修司が呼んだわけではない。技師は三十代前半に見え、魔導院の実務向きの上着を着ていた。名前を名乗ったが、修司は役職の方を先に聞いた——術式管理担当、ということだった。
「召喚陣の入出力ポートに、非実行化の処置を入れると伺いました」
と技師は言った。落ち着いた声だったが、廊下から入ってきた時点で既に表情が固い。
「確認させてください。召喚陣の基礎術式に手を入れることは、古代構造物の保全規程に関わります。手順の内容を見せていただけますか」
修司はメモと試験結果の記録を見せた。技師が読む。読みながら目の動きが変わった。
「……実行フラグだけを読み取り専用にして、監視処理は残す。これは技術的には可能です。ただし」と技師は言った。「こういった中途半端な状態は、想定外の副作用を生む可能性があります。完全停止と完全稼働の中間状態に術式を置くのは、古代構造物に対してリスクが大きい。魔導院としては、完全停止か、完全稼働のいずれかを推奨します」
「完全停止を選ぶと、帰還処理の座標精度が落ちます」
「その場合は完全稼働を維持しつつ、別の方法で対処すべきです」
「完全稼働のまま帰還本番に入ると、受け入れ枠が帰還処理の途中に実行命令を拾う可能性があります。その方がリスクは大きい」
技師が少し黙った。修司は続けた。
「中途半端という表現についてですが、読み取り専用状態は半分動いているのではなく、動作の種類を制限した状態です。読むことはできるが、書けない。変数で言えば、参照専用として宣言されている状態と同じです。中途半端ではなく、目的を持った制限です」
「……理論上はそうですが、古代術式にそれが通用するかどうかは」
「今朝、試験環境で確認しました。結果を見ますか」
技師が少し間を置いてから、「見せてください」と言った。修司が試験記録を渡した。技師は黙って読んだ。数字のところで止まり、また進んだ。
「……今朝確認した数値ですね」
「そうです。基盤炉側の負荷にも変化はありませんでした」
技師がもう一度だけ数値を見た。それから言った。
「試験結果としては問題ありません。ただし、本番環境に入れた場合の動作については、引き続き魔導院として監視します」
「歓迎します。記録していてください」
技師が頷いた。反発ではなく、承認でもなく、監視するという立場のまま部屋を出た。
午後の半ば、本番環境への適用を行った。
マルファスが術式の深い層に入り、実行フラグの書き換えを行う。エイラが基盤炉側のリアルタイム負荷を見る。修司は試験環境の結果と本番環境の数値を比較しながら、差異が出ないかを確認する。三人の作業が重なる時間が、少しの間続いた。
フラグの書き換えが完了すると、マルファスが「入った」と短く言った。
エイラが数値を確認した。「基盤炉側、変化なし。座標補正ラインも動いています」
修司は受け入れ枠の監視処理を確認した。ポートへのアクセスは維持されている。ただし、実行命令を発行しようとすると読み取り専用の制限が返ってくる。
〔受け入れ枠:サンドボックス化完了。監視処理は継続、実行命令受け付け不可。座標補正への影響なし〕
「これで十七件目が完了しました」と修司は言った。
エイラが「全部揃いましたね」と言った。
「チェックリストの全項目が確認済みです。帰還本番の実行条件が揃いました」
三人の間に少しの沈黙が落ちた。長い沈黙ではなかった。ただ、今この瞬間に確認するための間だった。
夕方、修司はチェックリストの最終版をセルアスに渡した。全八項目に確認済みの記録が入り、担当者名と完了時刻が書いてある。
「明日、帰還本番の実施を申請します。本人同意の確認も、今日中にリゼットさんが動いています」
「承知しました」とセルアスが言い、書類を受け取った。
「全項目が揃ったことを、帰還工程実施申請の根拠として添付します。本日中に申請書を起草します」
セルアスが書類を整えている間、修司は監視室の端に立って窓の外を見た。夕方の空が暗くなり始めていた。
今日一日で問題の最後の一件が解決した。技術的には、帰還本番を実行できる状態になっている。
リゼットがユウトに声をかけたのは夕方だった。帰還準備室で会うことになっていた。
修司は同席するつもりだったが、リゼットに「最初は私だけで話します」と言われたので廊下の外で待った。部屋の中の声は聞こえないが、どれくらいの時間がかかるかは分かった。
三十分ほどで扉が開き、リゼットが出てきた。表情が少し硬かった。
「同意確認は終わりました。ユウトさんはしっかり全部読んで、理解しています」
「でも、という顔をしていますね」
「署名のところで、手が止まりました。ペンを持ったまま、しばらく動けないでいました。最終的に、今日はここまでにしてほしいと言われました」
修司は少し考えてから言った。
「明日に延ばしますか」
「そうしてほしいと言っていました。理解できないことがあるわけじゃない、自分の気持ちが追いついていないって」
「分かりました」
修司はメモに書き加えた。
〔本人同意確認:内容理解済み。署名に至らず。本人希望により翌日以降に延期〕
リゼットが廊下に出たまま壁に背を預けた。少し疲れた顔をして、天井を見た。
「技術的には全部揃ったのに、ここで止まるんですね」
「止まることがあって当然です。本人同意を最上位条件にしたのはそのためです」と修司は言った。
「彼が署名できないのは、技術が足りないのでも、状況を理解していないのでもない。それとは別のことが、まだ整理されていない」
「何だと思いますか」
「本人に聞く必要があります。私が推測で動かすことじゃない」
リゼットが顔を戻して修司を見た。
「……明日、ユウトさんと話せますか。私だけじゃなく、修司さんにも来てほしいと言っていました」
「行きます」
夜、修司は今日の記録をまとめた。
〔帰還前チェックリスト:全八項目完了。技術的実行条件揃い〕
〔サンドボックス化:受け入れ枠の非実行化完了。監視処理継続、座標補正への影響なし〕
〔本人同意:内容理解済み。署名延期。理由は感情面での整理不足〕
〔帰還本番実施申請:セルアスが準備中。本人同意の確認を待って提出〕
技術は全部揃った。
残っているのは技術の問題ではない。修司には解けない種類の問題だ。ただ、解けないからといって、どうにもならないわけでもない。明日、話を聞く。それが今できることだった。
エイラが作業を終えてコンソールの前から立ち上がり、「今日のサンドボックス化、うまくいきましたね」と言った。声に疲れが混じっていたが、その疲れは悪い種類のものではなかった。
「マルファスさんがいてよかったです」と修司は返した。
「修司さん、明日が本番になるかもしれないですね」
「ユウトさん次第です」
「……そうですね」とエイラは言い、上着を取って廊下へ向かった。出る前に振り返った。
「おやすみなさい」
修司は「おやすみなさい」と返した。
监视室に一人になってから、メモをもう一枚取り出し、明日ユウトに確認したいことを書いた。何を聞くかではなく、どう聞くかを考えた。問い詰める形にはしない。修司が得意な種類の作業ではないことは分かっていた。それでも、明日行く。
ペンを置いて、チェックリストを一度最初から読み直した。
八項目。全部に印が入っている。
技術として、これで準備は終わった。




