アーカイブ

投稿者アーカイブ

dnf system-upgrade 中に固まったシステムの復旧

5年モノくらいの Fedora27 環境を dnf system-upgrade していたところ、
ディスクを載せていた glusterfs が機嫌を損ねて固まってしまいリセットを余儀なくされました。

当然アップグレード中にそんなことをすればもろもろのライブラリバージョンの不整合で動かなくなるわけで・・・ Live DVD で起動してのシステム復旧を試みることに。

  1. Fedora29 Live DVDで起動
  2. /mnt/sysroot 以下に元々のルートファイルシステムをまるごとマウント
  3. fedora-release-27-1 を削除
    • 27と29が共存しているので、削除しないと dnf が  releasever=27 と設定してしまう
  4. dnf –installroot=/mnt/sysroot update
    • 最低限これで rpm が動くようになったので、rpm DB 上に f27 と f29 のパッケージが同居してしまっているものを処理します。(この時点でまだ中のdnfは動かない)
  5. dnf check –duplicate で重複パッケージをリストアップ
  6. chroot して f29 の方を rpm -e –nodeps –justdb で DB から削除
    • f29 を消せばとりあえず再度アップデートが走る状態になり、実在しているのがどちらのバージョンであろうと f29 版に上がってくれることが期待できます
  7. chroot を抜けて  dnf –installroot=/mnt/sysroot update をやりなおす
  8. 再起動

再起動してみたところ、dbus 周りがおかしそうでうまく起動しないのでもう一度 Live DVD 環境に戻って rpm -qa | grep dbus で出てきたパッケージを reinstall したら動くように。

ついでに dnf check で出てくるdependency brokenなパッケージを適切に処理してやって対応終了。

広告
カテゴリー:GNU/Linux

意図せず他人のサービスを乗っ取ってしまっている

とある都合でアクセスログを眺めていたときのこと。/event/xxxx の謎のアクセスログがいっぱい。

最初はwordpress狙いのいつものかと思ったらどうやら様子が違うようで、追いかけてみるとどうやらとあるドメインが anju.msmrrenda.net のIPアドレスを向いている模様。

現anju(2代目)は2017年夏ごろにanju(初代)のリプレース先として借りたさくらのVPSなので、おそらく以前使っていたユーザがレコードを残したままにしており、それがIPアドレスの使いまわしでうっかりこちらを向いてしまったようです。

これがただの自社サイトの残骸とかだったらバーカバーカで済んだのですが、サービス提供用ドメインでわずかながらリンクが貼られてしまっているため無関係な一般ユーザも知らずにこちらに流れてしまっています。

そんなわけで急遽トラフィック吸い込み用のバーチャルホストを追加、警告ページを表示しつつ410 GONEを返すだけのページを配置しました。

410はmod_rewriteのフラグに「G」と書けば出ますが、これだと単に標準エラーページが出るだけなので410用のカスタムエラーページ設定をかいてやります。

サービスを廃止するときはちゃんとレコード消したりしましょう・・・

カテゴリー:GNU/Linux

FreeBSD fuse glusterfsでstale NFS file handle になる問題の解消

FreeBSDマシンでfuse mountしたglusterfsの領域を別ホストから読み書きしたときに、
たびたび 「失効した NFS ファイルハンドルです / stale NFS file handle」となってremountする他なくなる状況をようやく打開しました。
(fuse cacheの実装によるFreeBSD特有の問題とまでは分かっていましたが、対策が見つかっていませんでした)

sysctl で vfs.fuse.lookup_cache_enable=0 してやると、
fuseのキャッシュが無効化されて(既に発症しているファイルも含めて)正常に読み書きできるようになります。

カテゴリー:未分類

スクフェスACカスタマイズサイト 発動スキル表示のバグ

プロフィールカード・協力プレイ時のスキル発動について、桐さんとの三日間にわたる検証の過程で副次的に発覚したバグのお話です。

本記事は、プロフィールカードのスキル発動タイミングについて、スクフェスAC ライブ撮影 Wikiの知識レベルを前提とします。

大雑把な結論から言ってしまうと、「プレイヤーのスキルが一部存在しない」「プロフィールカードのスキルが一部存在しない」「1,4,7番目の☆を落とす」のいずれかを満たすとき、
プロフィールカードと協力プレイヤーの発動スキルが履歴に表示されない不具合があります。

細かい条件と症状は、
1.「プレイヤーのスキルが一部存在しない」「1,4,7番目の☆を落とす」
この場合、プロフィールカード・協力プレイヤーの全ての同種スキルが表示されなくなります。
2. 「1枚目のプロフィールカードに一部スキルが存在しない」
この場合、2枚目のプロフィールカードと協力プレイヤーの同種スキルが表示されなくなります。
3. 「2枚目のプロフィールカードに一部スキルが存在しない」
この場合、おそらく協力プレイヤーの同種スキルが表示されなくなります。これだけ未確認。
4. 「2,5,8番目の☆を落とす」
星を落としても1枚目のプロフィールカードのスキルが発動する(仕様なんでしょうか)ため、影響はありません。

プログラマー的視点ではとっても簡単です。
発動しなかった場合にスキル表示を終端してしまい、以降を無視してしまうありがちなやつですね。
まあ、撮影部門メンバーでもないかぎりスキルなしのカードを読ませるだとか、星を落とすとかそういう変なことしませんからね・・・

この不具合のせいで根本の検証に3時間余計に持っていかれました。
「その雑でお気楽で大雑把な表記がどれだけの迷惑と混乱を引き起こしていると思っているのですか!!!」

4/30追記
問い合わせ上げたら「再現しないわー、ビジュアルスコアの計算もあってるわー」って帰ってきました。
いや合計値あってないって問い合わせ本文中で足し算して証明してるんですがね・・・
開発者まで上がってないんだと思いますが、最低限一般プレイヤーのレベルまで仕様を理解してから回答してほしいですね。もう二度と問い合わせしないけど。

www.msmrrenda.net リプレース計画 day4

ゴミリクエストしか来なくなったようなので tsuyukusa.msmrrenda.net をシャットダウンしました。
常設webサーバとしては3代目、稼働日開始は2014/10/7とかだったようです。

カテゴリー:未分類

www.msmrrenda.netリプレース計画 day3

レコードの向け変え、全作業おわりました。表示できないページがあったら教えてください。
tsuyukusa移行時に無効化されたsuexecが再有効化されたので、特にCGI周りが怪しい感じです。

(うまくつながらない場合、一時的に www-sakura.3sh.msmrrenda.net に繋いでみてください。)

2017/3/6 20:54追記: 朝7時半ごろまで、1/2の確率で間違ったバーチャルホストにつながる状態になっていました。現在は修正済みです。

カテゴリー:未分類

www.msmrrenda.net リプレース計画day2

いままではごちゃまぜに置いていた非公開ページを別ホストに分離しようとしてはまった件。

通常、公開用ページは ~/public_html に置きますが、ホームは全ホスト共有です。
したがって、非公開ページを ~/private_html に分離しました。

ところが、なにやってもcgiが呼び出せません。

Mar 4 22:22:24 ainya suexec[1158]: command not in docroot (/home/renda/private_html/env.cgi)

で、suexec -V とかしてみるとこんなことが書いてあります。

-D AP_DOC_ROOT="/var/www"
-D AP_GID_MIN=100
-D AP_HTTPD_USER="apache"
-D AP_LOG_SYSLOG
-D AP_SAFE_PATH="/usr/local/bin:/usr/bin:/bin"
-D AP_UID_MIN=500
-D AP_USERDIR_SUFFIX="public_html"

public_htmlでしか動かないんかーい。
安全上このディレクトリ設定はハードコードされており変更できないようです。
選択肢は二つ。apache全体のリビルドか、バイナリ弄ってGORIOSHI。
ま、手間的に後者かな!!!!

public_htmlよりもprivate_htmlの方が1文字長いので、この際private_htmになっていただきました。が、なぜか動かない。

Mar 4 22:50:08 ainya suexec[1375]: uid: (500/renda) gid: (500/renda) cmd: env.cgi
Mar 4 22:50:08 ainya suexec[1375]: failed to setgid (500: env.cgi)

あれ?suidかsgidでもついてたかなん?と思い、他ホストと見比べます。cap2
cap3
パーミッションは変わらないけどなんか赤い。これはいったい・・・。最悪apacheのリビルドも覚悟し、srpmの中身を覗いてみたら・・・

%caps(cap_setuid,cap_setgid+pe) %attr(510,root,%{suexec_caller}) %{_sbindir}/suexec

そっかー。
cap1

# setcap 'cap_setgid,cap_setuid+ep' /sbin/suexec

したら動きましたとさ。善い子の皆さんは横着せずにapacheをrpmbuildしましょう・・・

カテゴリー:GNU/Linux タグ: