トップ 最新 追記

日々の破片

Subscribe with livedoor Reader
著作一覧

2018-10-06

_ Rails 5.2.0から5.2.1で何か重要な修正が入ったようだが調べなかった(多分わかった)

サーバーサイドでPDFを作るために、ネストしたRailsの呼出しを作った。

最初にクライアントからリクエストを得る。(Action Aが動く)

コントローラの中でリクエストの正当性を検証した後に、サーバーサイドで動作しているヘッドレスChromeをDevToolsで操作してリクエストを要求させる。

ヘッドレスChromeは別のアクションを呼び出す。(Action Bが動く)呼出しに答えてレスポンスを返す。

Action Aで動いていたDevToolsクライアントがNavigateの完了を得て、さらにいろいろ動いたあと、DevToolsでPDF出力を要求し、結果のBase64(PDFそのもの)を得る。

Base64をデコードして(つまりapplication/pdfを得て)Action Aのクライアントに応答を返す。

これを2つのドメインで動かしているのだが、開発用のドメインでは2回に1回はタイムアウトすることに気付いた(発生タイミングはランダム)。ログを見ると、Action Bが動くかどうかのぎりぎりのところでハングし(ActionControllerに制御が与えられたかどうか微妙なところだ)、Action Aに対してnginxのタイマアウト検出によってAction Bの残りが動作して解消している。

少なくともpumaの中では止まっていないので、次にactionpackの中を順番に見ていくのだがなかなか止まっている箇所にたどりつけない。

同じDBのロウに対する読み込み(Action Aの検証でfindをかけている)だから一瞬行ロックか? と思ったが、明示していない以上、それはあり得ない(というか、そんな理由なら100発100中のはずだが、半分は成功する)。

聞き込みをしてみると、ステージング用ドメインでは一切そういう問題は発生していないらしい(リクエスト数ははるかにステージング用のほうが多いので発生していたらもっと早く気づく)。

これも理解できないので、何が違うか調べたら、ステージング環境へのデプロイでBundleを動かすところで特にバージョン制限していなかったから、開発環境はRails 5.2.0、ステージングは5.2.1で、そこが違った。

なんだ、リリースノートを見ればわかるな、と思ったらわからん。

GVLが原因のデッドロックだというのはほぼ間違いないのだが(他に理由があり得ない。とはいえ、Action AはヘッドレスChromeに対するDevTools呼出しのWebsocketの待ち状態でしか無いはずで、ここには問題はない)、調査打ち切り。

#追記:https://github.com/puma/puma/pull/1563 このissueの修正版のpumaがRails 5.2.1には含まれているからではないか?

# 2018/10/11 多分、理由がわかった。バージョンは関係なくて、開発環境だと修正->試す->ロックされて死ぬ→試す→修正->試す->ロックされて死ぬ→試すというサイクルを取ることが問題だったのだ。つまり、修正->試す->ロックされて死ぬ→試す→試す(以降OK)。developmentなので(またそれを期待している)クラスの再読み込みが走る、それが原因でほぼ間違いない。再読み込み中に別スレッドでさらに再読み込みが走るのでデッドロックするのだろう。


2018-10-13

_ XTC コンプリケイテッド・ゲーム アンディ・パートリッジの創作遊戯

2017/11/27という微妙な時期に購入したまま放置していたアンディパートリッジの創作遊戯を読了。

おもしろかった。

リアルタイムにはそれほどXTCの良き聞き手ではないどころか、XTCだとコリンムールディングの曲(頑張れナイジェルとか)以外にはまったく興味を持てなくて、アンディパートリッジのプールにダミーが浮かびまくっているソロとか買って1回聞いただけでディスクユニオンに売り飛ばしていたくらいなのだが、tnozakiさんにブックスアーバーニングを教えてもらってから相当変わったというよりも、エレキギターという楽器の音についての聴き方がわかってきたのだろう。最近はそれほど興味がなくもない。

それでも音よりも言葉のほうがおもしろい。

本書は、アンディパートリッジに対してワシントンDCのミュージシャン/ジャーナリスト(クリッシーハインドもそうだが、ジャーナリスト兼業ミュージシャンってそれなりにいるのか、特殊業界なので餅は餅屋にしかわからないところがあるのか、っていうかプログラマー/テクニカルドキュメントライターと同じ道理か)のトッドバーンハートという人が電話インタビューで自作曲を語らせたものをまとめたものだ。

抜群におもしろい。

おもしろいのは3つの理由があるからに思う。

まずアンディパートリッジっという人間がユーモアとセンスがあるから言葉がおもしろく(ってことは訳業も良いのだ。太田晋という人)、受け手のトッドバーンハートが同調的だからだ。

次に、優れた時代史となっているからだ。

そして創作の秘密や裏側は常におもしろいからだ。

それにしても、どの曲のどのコードをどういじってこうしてこうやったらこうなって、それをプロデューサーのトッドが勘違いして調性を間違えたところにもってどうしたこうしたみたいな話がつまらないわけがない。

XTC コンプリケイテッド・ゲーム アンディ・パートリッジの創作遊戯(アンディ・パートリッジ/トッド・バーンハート/太田晋)

まったく当時は知らなかったが(ホワイトミュージックの構図をそのままスランにあてはめた表紙画があるからまったく気づかないわけでもない)、森脇真末味の緑茶夢の後半のエピソードはまさにXTCがモデルになっていたのだなと、セカンド作成時のキーボード奏者との主導権争いの箇所を読んでいて懐かしく思った。

緑茶夢(グリーンティードリーム)―スラン (小学館文庫)(森脇 真末味)

(サイケ時代の(ドアーズやシドバレット時代のピンクフロイドあたりに着想したらしき)水野英子のファイアーといい、自分たちをモデルにした同時代的な優れたバンドマンガが東の果てで作られていることを彼らは知っているんだろうか)

インタビューの中でおもしろタウン出身と散々語られているスィンドン(距離から日野/八王子とか、川口/大宮みたいなもんか?)についてのジョンモリッシュという人の散策文学っぽい前置きも抜群におもしろかった。


2018-10-14

_ 有東木のワサビ

五反田でアフリカ料理を食おうとしたら、貸し切りで入れず、しょうがないから適当な店で定食を食いながら壁を見ると「当店は有東木のワサビを使っています」とか書いてある。

有東木って何て読むんだ?と不思議に思って調べたらワサビ発祥の地という口コミ観光ページが出て来た。

ワサビの葉っぱが三つ葉葵に見えるので徳川が駿府から持ち出し厳禁にしていたところ、シイタケの栽培方法を教えに来た天城の技術者にお礼として苗木をこっそり渡して外部に知られるようになったとか、知らないこと満載でおもしろかった(定食はご飯がしっかりしてるし、味噌汁は海苔が良い感じ、魚も悪くなく存外うまかった)。

朝のNHKドラマで、ワサビとシイタケを組み合わせてご当地名産を作る話があったが、上のエピソードからいくと、このあたりが舞台だったのかな。

ところで、結局、有東木の読みはわからなかった。

上でリンクしたページの道路案内ではUtogiと書いてあるが、いろいろなところで、「うつろぎ」と書いてある。道路公団としてはうとぎで、一般にはうつろぎ、ということなんだろうか。

比較的地名は辞書に登録していると思うMS-IMEでもOSXのATOKでも、うつぎでもうつろぎでも変換できないし、結局わからない。


2003|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|

ジェズイットを見習え