現在GoでRediStoreというOSSを使用しています。そのインスタンスである*RediStoreをグローバル変数としてmain関数内で以下のとおり初期化しました。

///main関数ない
///var store *rediStore.RediStore//グローバル変数として宣言
    store, err = redistore.NewRediStore(20, "tcp", ":6379", "", []byte("session-key"))

    if store == nil {
      //ここはnilでない
        panic("store is nil")
    }
    if err != nil {
      //エラーもない
        panic(err)
    }
    defer store.Close()
    store.SetMaxAge(259200)

そして、user_handlerというhandler内でGetSessionを呼び出すことで下記の通りそのインスタンスを参照しました。しかし、ここで参照したstoreがnilになってしまいます。main関数内でエラーがでていないので初期化は完了しているはずだと考えたのですがなぜでしょうか

func GetSession(c *echo.Context) *sessions.Session {
    if c.Request() == nil {
        panic("c is nil")
    }
    if store == nil {
      //nilになっている
        panic("store is nil")
    }
    session, err := store.Get(c.Request(), KeySession)
    if err != nil {
        panic(err)
    }
    return session
}

エラーは以下のようなものがでました。

invalid memory address or nil pointer dereference

これは自分でデバッグ用のコードを入れる前のエラーです。