使用reset_session时activerecord-session_store记录删除不一致问题咨询
会话删除逻辑排查问题
问题现象
- 使用
ActionController::Base.reset_session时,active_record_store的会话记录删除行为不稳定,并非完全不删除,而是偶发删除失败 - 用户再次登录时偶现复用旧会话记录数据的bug,疑似由竞态条件导致
登出端点代码
def destroy reset_session redirect_to root_path end
会话表结构
create_table "sessions", force: :cascade do |t| t.string "session_id", null: false t.text "data" t.datetime "created_at", precision: 6, null: false t.datetime "updated_at", precision: 6, null: false t.index ["session_id"], name: "index_sessions_on_session_id", unique: true t.index ["updated_at"], name: "index_sessions_on_updated_at" end
疑问与现状
目前不确定是否该继续采用当前的会话删除方式,还是更换其他方案。曾在activerecord-session_store仓库中找到两个相关Issue,但未获得确认的解决方案。
版本信息
- Rails: 6.1.4
- Ruby: 2.7.2
内容的提问来源于stack exchange,提问作者Ravi Bhusal
相关产品推荐
相关产品推荐

