if session.blank?
logger.debug("hoge")
session = load_session(sid)
end

というコードがあった場合など、ありとあらゆる場合において、
session = load_session(sid) が実行されることってありえないですよね?

sessionが設定された状態でこのifまで来た場合、
当然 if の内容は実行されないのですが、
なぜか、必ずこのifブロック後に
session がnilになります(session_storeはmemcahe)。
ところが、
#session = load_session(sid)
とコメントアウトすると、sessionのデータは維持されたままになります。
logger.debug("hoge") が実行されていないことは確認済みです。

session = load_session(sid) などでなく、session = ["hogehoge"] などとしても
ifブロック後に、必ず session がnilになってしまいます。

原因が分からなくて困っています...
sessionのキーワードは物凄く独特の動きをするのでしょうか...