パスワードを忘れた? アカウント作成
16550374 story
バグ

横浜市で別人の住民票の写しが印刷された問題、タイムアウトによるファイルロック解除が原因 62

ストーリー by nagazou
トラブル 部門より
横浜市のコンビニの証明書交付サービス「Fujitsu MICJET コンビニ交付」で3月27日、別人の住民票が発行されるトラブルが発生したそうだ。日経クロステックの報道によると、このサービスを提供しているベンダーの富士通Japanは3月30日、このトラブルに関する原因を発表した。それによると、システムへのアクセス集中により印刷処理の待ちが生じ、印刷イメージファイルのロックが解除され、同時期に交付を申請した別の利用者が当該ファイルを印刷できてしまったという(日経クロステックその2)。

当該ファイルは申請者しか印刷できないようロックがかかる仕様だが、システムにはタイムアウトの上限が設定されていたため、アクセス集中で処理が遅れた際にタイムアウトとなってロックが解除されたという。同社は対策としてタイムアウトでロックが解除されないようプログラムを改修したとしている。
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • 3月27日だから、それなりに人数は多いのだと思うけれど、
    住民票の印刷ぐらいでそんなに負荷がかかるものなんだろうか。

    コンビニ側の端末にデータを残さないために暗号化するにせよ、
    住民票って、PDFにすれば数百キロバイトぐらいで済む
    テキストデータだと思うんだけど。

    • by Anonymous Coward on 2023年04月03日 17時23分 (#4437417)

      やっつけデスマくらいじゃないかな

      # え?作らされる側の負荷じゃない?

      親コメント
    • by Anonymous Coward on 2023年04月03日 19時08分 (#4437513)

      負荷テストを十分にしてないのか
      結果ありきの無意味なテストか
      それとも社員が働かないからなのか

      親コメント
    • by Anonymous Coward

      それじゃプリンタによって表示が変わってしまうだろ。
      印刷イメージファイルってあるし、どんなプリンタで印刷しても同じものが出力されるようになってるのであろう。
      数Mバイトにはなるかな。
      といっても通信負荷ではなく、サーバ側のイメージの生成の処理負荷かもしれない。

      • by Anonymous Coward
        モノクロ二値画像じゃないの?
        3000*2000ピクセルくらいだとすると無圧縮でも1MB超えるとは思えないんだけど
        • by Anonymous Coward

          >フルカラー 300~400dpi
          >グレースケール 600dpi
          >モノクロ二階調 1200dpi
          https://blog.mc-copy.jp/scan/a4-print-resolution/ [mc-copy.jp]

          • by Anonymous Coward
            で、コンビニ住民票は1200dpiなの?そんなのコンビニで印刷できんの?線数は?
          • by Anonymous Coward

            住民票の紙なんですが役所からもらったものをコピーすると「複写」という文字が浮き上がるようになってますね。
            あれって紙の地に印刷でもされてるんですかね。それとも印刷時に一緒に背景として出力してるんでしょうか。
            そこを解決できれば読める解像度で多少ジャギっていても問題ないような気がしますけど……

            • by Anonymous Coward

              そういう紙に印刷してます。
              印刷屋さんによって「複写」の文字が薄かったりする場合があってコピーのテストもやってましたね(過去形)

  • by Anonymous Coward on 2023年04月03日 17時25分 (#4437422)

    これって、ロックしてなければ「他人のファイルを印刷してしまう」というファイル名管理の出来てなさが根本的原因だと思うし、そこは解決してないのが気になる。

    「複数の印刷処理が同じファイル名を割り当てる場合がある」が、通常は「先に印刷開始した方がロックする」ので「後の方はロック解除されてから印刷処理する」から問題ないってことなんだと思いますが、
    後発はがロック解除を待ってる間が処理が止まるので、ファイル名を衝突しないようにしたら負荷が軽くなりそう。

    って、偉そうなこと書きましたが、年月日時分秒ミリ秒のファイル名が衝突したトラブルを起こしたことがあるのでAC。

    • by Anonymous Coward

      「年月日時分秒ミリ秒」プラス、マイナンバーをファイル名に含めれば大丈夫。

    • by Anonymous Coward

      テンポラリファイルの生成は使ってる環境のフレームワークに任せるのが基本…

      なんだけどうちでも社員番号だけをテンポラリファイル名にしてるシステムがあるんだよなあ。
      もちろん666

      • by Anonymous Coward

        この手のサービスだとハードウェアの制限からそんなものは使えないそうです

    • by Anonymous Coward

      >年月日時分秒ミリ秒のファイル名が衝突したトラブルを起こしたことがある

      あえて分までのファイル名にしてコメントに
      「1分で処理が終わるようないいマシンを買ってもらえたら直してください」
      ってスクリプトに残したことならある。

      結局買ってもらえず、その後、時代はWindows全盛へ向かったため、そのスクリプトはお役御免。

      • by Anonymous Coward

        時刻合わせが常に正しい前提なので
        複数のPCをまたぐ場合とか日時を過信しちゃダメなんだよな

    • by Anonymous Coward
      年月日時分秒ミリ秒+要求元端末名なら指定した
      人手を介さない要求は不可能かつミリ秒まで一致するレベルでの操作不可能なのでこんな仕様に
      • by Anonymous Coward

        要求元の端末名が大文字・小文字違いの同じ配列の文字列でバッティングしたことあるなぁ・・・
        要求元のホスト名称を大文字にして帳票に入れ込んで出力する仕様だったのでシステム側で対処のしようがなく、
        バッティングした端末名変えてもらって事無きを得ましたが。

        #WorkGroup運用の上、PC自体は別のセグメントに設置されてたのでそれまで特にエラーも出てなかったようなのですが・・・

  • by Anonymous Coward on 2023年04月03日 17時23分 (#4437419)

    セッションに紐付いた1:1の(毎回生成しているであろう)イメージファイルにロック掛ける意味ってなに

    • by Anonymous Coward on 2023年04月03日 17時53分 (#4437451)

      バグ以前の問題で、ハイリスクな設計になっているね。
      エラーが起きたら失敗だけで済まずに大事故になるという。

      富士通って海外でも大事故を起こすバグとか出してたり、日本衰退を具現化している大企業って感じ。

      親コメント
    • by Anonymous Coward

      ロックが必要になること自体おかしいよねぇ……
      別コメにもあるけど一定確率か一定条件でイメージファイル名が衝突するトンデモ実装だったとしか思えない

    • by Anonymous Coward

      ロックしている間のリソースを保証することで並行処理やリソース計算が容易になり仕様がシンプルになる
      ただしバグるとこうなる

    • by Anonymous Coward

      コンビニからの要求はJ-LISの広域交付サーバーに来て、広域交付サーバが各自治体のコンビニ交付サーバー(横浜市は富士通製)に要求する仕組みなんだよね。
      コンビニ交付サーバーはメーカーがまちまち。
      だから、セッションの管理が厳密にできる仕様かどうか怪しいと思う。

    • by Anonymous Coward

      ロックが不要だし、ロックに頼ったとしてもロックが解除されてほしいケースが無い気がする。
      - 印刷が完了してイメージファイルが削除される
      - タイムアウトしてイメージファイルが削除される
      他に考えられる分岐があるかな。

      • by Anonymous Coward

        ガベージコレクタとか。
        異常終了した場合にはファイル削除処理が走らないんじゃないかな。
        まあタイムアウト設定があるならファイル作成日時確認すればすむ話ではあるが。

    • by Anonymous Coward

      自治体のサーバから渡される印刷イメージファイルのパスが固定なんじゃね。
      で、要件でコピーとリネームが禁止されていて
      送信処理も隠蔽されててファイルパス渡して完了待つようなAPIなら、送信中は排他取るしかないかな。

  • by Anonymous Coward on 2023年04月03日 18時42分 (#4437481)

    エネループ以外はホントダメだなここ。

    • by Anonymous Coward

      エネループは三洋電機→パナソニックで富士通はミリも関係ないが?

      • by Anonymous Coward on 2023年04月03日 19時06分 (#4437512)

        そのエネループの製造を請け負ってるのが富士通の子会社
        パナソニックが三洋の電池部門を引き取ると
        独占禁止法で手続きが面倒な事になるので
        富士通に譲渡して対応した経緯がある
        今もパナソニックが富士通から供給受けてる
        そして富士通はエネループと同等性能の充電池を売ってるという
        性能ほぼ同じで富士通製の方が安いので
        事情知ってる人は富士通製の方を買ってる

        親コメント
        • by Anonymous Coward on 2023年04月04日 2時09分 (#4437663)

          富士通の子会社では有るけど
          資本関係の整理で富士通の子会社になっただけで富士通が作った会社ではない。
          富士電機から富士通の下に移動したのは通信機器と電池が近いからか?

          元々とは東芝の電池工場の一部だった。
          ちなみに東芝が電池から撤退するときに残りを引き取ったのもFDK。

          親コメント
        • by Anonymous Coward

          > 事情知ってる人は富士通製の方を買ってる
           
          自分、今年になってFDKのこと知ったんですが、値上げされてエネループと値段があまり変わりません。
          知るのが遅かったみたいです。

      • by Anonymous Coward

        FDK ぼそっ

    • by Anonymous Coward

      失敗を有耶無耶にして次の仕事を取ってくるのは上手ですね。

    • by Anonymous Coward

      今日はやけに富士通を叩くコメントが多いな。あちこちのストーリーに出没してる。

      • by Anonymous Coward

        不治痛に親を殺された奴は多いからな

      • by Anonymous Coward

        国籍差別と変わんないような叩き方だよな

      • by Anonymous Coward

        富士通のスマホ被害者が富士通を許すわけもなし。

  • by Anonymous Coward on 2023年04月03日 18時42分 (#4437482)

    プロセスが強制終了すると勝手に開放される、頭おかしいとAdvanced Windowsの著者がMSDN magazineでキレて代替のライブラリ(Optex)を誌面に掲載していたのを思い出す

    • by Anonymous Coward
      クリティカルセクションってインプロセス専用じゃなかったっけ。
      ミューテックスorセマフォではなくて?
      • by Anonymous Coward

        インプロセス用ですね。当然の動作だとしか思えん。
        C#でクリティカルセクションの中でasync/awaitを書いたらVisualStudioもちゃんと指摘してくれるぐらいの話。

        • by Anonymous Coward

          確かに言われてみたらなんかおかしいなと思って記事を見返してみたら、プロセスじゃなくてスレッドだった。スレッドがクリティカルセクションを取得している間にTerminateThreadで殺されると、そのクリティカルセクションは解放されず他のスレッドはクリティカルセクションに入れなくなるべきだし、NTでは実際そのように実装されているが、Win95はそうではないという話。

          • by Anonymous Coward

            https://learn.microsoft.com/ja-jp/windows/win32/api/synchapi/nf-syncha... [microsoft.com]

            クリティカル セクションの所有権がある間にスレッドが終了した場合、クリティカル セクションの状態は未定義です。

            所有権持ったまま死なすほうが変て話なんだけどな。
            まぁそんな古いもの今更どうでもいい話なんだが。

            • by Anonymous Coward

              > 所有権持ったまま死なすほうが変

              まあそれはTerminateThread使うなという話に帰着するが。死んでもクリティカルセクション中の中途半端なデータ状態が自動的に復元されるわけではないのだから、自動的に所有権を解放して別のスレッドに処理開始を許したら、データ破壊がどんどん進行していくだけ。

              > そんな古いもの今更どうでもいい

              クリティカルセクションは今でも現役バリバリで使われているはずだけどね。所有権持ったまま死なす現在のWindows(NT系)はおかしいと主張しているのかな

  • by Anonymous Coward on 2023年04月03日 19時38分 (#4437530)

    要は、システム設計が素人みたいな設計だったことだろな
    なんで検証しないんだろうか?
    それもこれも想定できるケース

    こんないい加減なシステムに市民の大事な血税使われているのかよw
    で、改修にまた税金投入w

    もしかして、仕組まれたバグで市から金を搾り取ることが目的だったりして

    • by Anonymous Coward

      新卒1年目にやらせたんじゃないのってくらいだな。ガチャゲーくらいでしか許されないレベル

      • by Anonymous Coward

        と過去に自身がやらかしたことは忘れるわけですねwww
        都合の良い思考ですね

typodupeerror

犯人はmoriwaka -- Anonymous Coward

読み込み中...