Deploy完了後にしばらく変更が反映されない場合がある

閲覧: 697 回
最初の未読メッセージにスキップ

風柳

未読、
2011/05/14 15:25:452011/05/14
To: Google-App-Engine-Japan
いつからか不明なのですが、GAE/Pythonにて、Deploy後にしばらくの間、古い
バージョンが動作してしまう現象が発生しているように思われます。

■現象1
Deploy完了後、当該アプリのサイトにアクセスしても、古いバージョンが
動いてしまうことがある。
時間を置いて再度アクセスすると、新しいバージョンに切り替わっている。

■現象2
ページ送りをするようなアプリの場合、例えば
1ページ目は正常(新しいバージョン)→2ページ目は古いバージョン
→3ページ目は古いバージョン→4ページ目は正常(新しいバージョン)
のようにページを送る事にしばらく新旧バージョンが混在することがある。

なお、ブラウザのキャッシュ等が原因でないことは確かです。
※アプリのログをチェックし、新バージョンをDeployした後のタイムスタンプ
で、明らかに一つ古いバージョンでしか残りえないログ内容が書き込まれて
いることは確認済みです。

例えば新バージョンの最初のアクセスでDatastoreのモデル構造を一括で変更
するような修正を入れていた場合、現象2 のようなことが発生してしまうと、
変更されたデータが古いデータで上書きされてしまう等の予期しない不具合が
発生する可能性があります。

この現象の原因は何でしょうか?
複数Instanceが起動しているときにDeployするとInstance毎に新バージョンが
反映されるタイミングが違ってくる、とかなのでしょうか。

また、この現象を回避する方法はないものでしょうか?

Takashi Matsuo ♟

未読、
2011/05/14 15:32:332011/05/14
To: google-app-...@googlegroups.com

こちらで報告されているものと同じようですね。

現在調査中です。


--
このメールは Google グループのグループ「Google-App-Engine-Japan」の登録者に送られています。
このグループに投稿するには、google-app-...@googlegroups.com にメールを送信してください。
このグループから退会するには、google-app-engine...@googlegroups.com にメールを送信してください。
詳細については、http://groups.google.com/group/google-app-engine-japan?hl=ja からこのグループにアクセスしてください。




--
Takashi Matsuo
Developer Relations
Developer Advocate for Google App Engine/iGoogle
Google Japan, Inc.

najeira

未読、
2011/05/19 21:30:082011/05/19
To: Google-App-Engine-Japan
najeiraです。

新しいバージョンのインスタンスの起動は順次行われるようなので、
バージョン切り替え後、ある程度の時間は古いバージョンを
見てしまうことがあるみたいですね。

僕の場合は、数秒~十数秒ですべてのインスタンスが切り替わるので、
今のところ困ったことはありません。

風柳さんのケースでは、切り替えにどれくらい時間がかかっていますでしょうか?

風柳

未読、
2011/05/20 6:12:132011/05/20
To: Google-App-Engine-Japan
najeiraさん

当方でも、通常は数秒~十数秒で新しいバージョンに切り替わるようですが、たまに、
数十秒~1分以上経っても古いバージョンが見えることもあり一定していないようです。

実は、この問題を把握する前に、たまたまcronで1分間隔で起動するようなアプリにて、
memcache/datastoreでアクセスするデータの構造を新バージョンで自動的に書き替える
ような処理を追加したところ、新バージョンで書き換えたデータが旧バージョンで上書
(というか、例外処理で無効データとして削除)されてしまう、という問題が起きて往生
していたのです……。

せめて全インスタンスが新しいバージョンに切り替わったことをアプリ側で確実に捕捉
出来る手段があればいいのですが。
全員に返信
投稿者に返信
転送
新着メール 0 件