в котором создается новый объект структуры
                  
                  
                  далее созданный объект передается в функцию работы с монгой в которой
                  
                  
                  идет такая логика
                  
                  
                  func (object *Type) InsertToDB() error {
                  
                  
                   session :=  mongoSession.Copy()
                  
                  
                   defer session.Close()
                  
                  
                  
                  
                  
                   c := session.DB("TestBase").C("TestCollection")
                  
                  
                  
                  
                  
                   err := c.Insert(object)
                  
                  
                   if err != nil {
                  
                  
                    ....
                  
                  
                   }
                  
                  
                  
                  
                  
                   return err
                  
                  
                  }
                  
                  
                  
                  
                  
                  почему то Insert сваливается в функцию mgo
                  
                  
                  // Close terminates the session.  It's a runtime error to use a session
                  
                  
                  // after it has been closed.
                  
                  
                  func (s *Session) Close() {
                  
                  
                   s.m.Lock()
                  
                  
                   if s.cluster_ != nil {
                  
                  
                    debugf("Closing session %p", s)
                  
                  
                    s.unsetSocket()
                  
                  
                    s.cluster_.Release()
                  
                  
                    s.cluster_ = nil
                  
                  
                   }
                  
                  
                   s.m.Unlock()
                  
                  
                  }
                  
                  
                  но я же копирую сессию(((
                  
                  
                  что ему не катит(?
                  
                  
                
там пул сессий. не надо копировать и закрывать сессии. просто клонируй через Db.Clone
Обсуждают сегодня