個人VPSで、気象庁XMLのPULL型フィードを購読して、これまた自分で作ったRelax NGスキーマでバリデーションしています。これ、地味にトータル品質に役に立っていて、エンドツーエンドの評価になるので
- 取得処理のエラー(もうほとんどなくなった)
- 保存のエラー(今はこれが多い)
- スキーマの間違い(荒天時に増えるので忘れずにしないといけないのですが)
など全部混ざって取れます。
で、直近もなくならないので、メモ
2019-09-26 tarwriter 緊急修正
0x380000 バイト以上のファイルは直接書き出ししてエラー回避
2019-09-26 4760df5d-dc7b-33a5-b0fc-231f86c2bf40
- エラー種類: 404エラー時にリトライせずにレスポンスボディを保存してしまったもの
2019-09-27 feedfollow を修正して対応
電文本体取得で 404 になったらスキップします(次回実行でリトライされるはず)
https://github.com/etoyoda/feedfollow/commit/4d33c6ccf2bbb268f48ea70fd1c899d39cf0a2e0
2019-10-04T11 まで再発していない。
2019-10-01 e1fc1336-0530-37c4-adc1-7ba410845920
- DateTime: 2019-10-01T04:50:19Z
- Head/Title: 滋賀県気象警報・注意報 (やばい)
- エラー種類: 途中からNULに化ける(TarWriterの書き込み不具合)
- ファイル長: 19217 バイト
- 化けはじめ位置: 9728 バイト目
2019-10-05 tarwriter 緊急修正
おそらく、化けが起こっているときは電文全体を bcontent に入れたときに bcontent[でかい数字, 512] が nil を返しているのではないかという疑い。その場合を救済するパッチを打ち込んでみた
2019-10-03 a45e388d-5bca-36c2-a90d-d991f43b6be2 障害調査(遅れていた)
ログ https://toyoda-eizi.blogspot.com/2019/10/jmx-nightly-validation-2019-10-03-12124.html
XMLタグが閉じていないというバリデーションメッセージは基本NUL化けファイルちょん切れである。
- ファイル長 33894バイト
- 化け位置 25600バイト
2019-10-06 tarwriter 2.0.4
めんどくさくなってきたので 10240 バイト以上のファイルは全部安全コードで書き出すことにする。自前バッファリングは役に立っているのかどうかも定かではないが、まあもったいないのでブロッキングファクタ以下のサイズでは使ってみる。そのうえで、nil 問題が生じるなら syslog に出すことにする(ライブラリで STDERR というわけにもいかんだろう)。
2019-10-06 feedstore rc=1 の理由が判明する
ログファイルを読みさえすればわかったのだが、 feedstore が exit code 1 で死んでいたのは EAGAIN であった。つまり前回実行が1分以上かかり、DBがアンロックされていないのをつかみに行ったのである。単に排他制御がうまくいっているだけなので、gracefully に死んでほしいし syslog にももうちょっと意味が解ることを出してほしいよね。
2019-10-06 ようやくスキーマ間違い
https://toyoda-eizi.blogspot.com/2019/10/jmx-nightly-validation-2019-10-06-11383.html
https://github.com/etoyoda/jmx-rng/issues/1
2019-10-08 Polygonの緯度が一桁になる場合がある
2019-10-10 PublishingOffice 改修適用漏れ
2019-10-12 PublishingOffice のパターン想定不足
- 土砂警は都道府県と気象庁の共同発表なので東京都については「東京都 気象庁予報部」となるが、指定河川洪水予報では都道府県ではなく国交省の地整や河川系事務所と気象台の共同発表となることがある
- 指定河川洪水予報は複数都道府県にまたがることがある
もうちょっとパターンを書ききれないので .* で逃げますね。
https://github.com/etoyoda/jmx-rng/commit/8355bf096575fd6e1269c8834ae10831f908a853
2022-09-05 追記:運用休止
https://toyoda-eizi-ja.blogspot.com/2022/09/jmx-nightly-validation.html
何か動きがあったらgithubに出ます