@@ -197,23 +197,25 @@ def bind(self, database):
197197 when needed.
198198 """
199199 self ._database = database
200+ requested_session_count = self .size - self ._sessions .qsize ()
201+ span = get_current_span ()
202+ span_event_attributes = {"kind" : type (self ).__name__ }
203+
204+ if requested_session_count <= 0 :
205+ add_span_event (
206+ span ,
207+ f"Invalid session pool size({ requested_session_count } ) <= 0" ,
208+ span_event_attributes ,
209+ )
210+ return
211+
200212 api = database .spanner_api
201213 metadata = _metadata_with_prefix (database .name )
202214 if database ._route_to_leader_enabled :
203215 metadata .append (
204216 _metadata_with_leader_aware_routing (database ._route_to_leader_enabled )
205217 )
206218 self ._database_role = self ._database_role or self ._database .database_role
207-
208- requested_session_count = self .size - self ._sessions .qsize ()
209- request = BatchCreateSessionsRequest (
210- database = database .name ,
211- session_count = requested_session_count ,
212- session_template = Session (creator_role = self .database_role ),
213- )
214-
215- span = get_current_span ()
216- span_event_attributes = {"kind" : type (self ).__name__ }
217219 if requested_session_count > 0 :
218220 add_span_event (
219221 span ,
@@ -225,6 +227,12 @@ def bind(self, database):
225227 add_span_event (span , "Session pool is already full" , span_event_attributes )
226228 return
227229
230+ request = BatchCreateSessionsRequest (
231+ database = database .name ,
232+ session_count = requested_session_count ,
233+ session_template = Session (creator_role = self .database_role ),
234+ )
235+
228236 returned_session_count = 0
229237 while not self ._sessions .full ():
230238 request .session_count = requested_session_count - self ._sessions .qsize ()
@@ -277,7 +285,9 @@ def get(self, timeout=None):
277285 )
278286 session = self ._sessions .get (block = True , timeout = timeout )
279287 except queue .Empty as e :
280- add_span_event (current_span , "No session available" , span_event_attributes )
288+ add_span_event (
289+ current_span , "No sessions available in the pool" , span_event_attributes
290+ )
281291 raise e
282292
283293 span_event_attributes ["session.id" ] = session ._session_id
@@ -290,6 +300,7 @@ def get(self, timeout=None):
290300 )
291301 session = self ._database .session ()
292302 session .create ()
303+ # Replacing with the updated session.id.
293304 span_event_attributes ["session.id" ] = session ._session_id
294305
295306 span_event_attributes ["time.elapsed" ] = time .time () - start_time
@@ -377,10 +388,10 @@ def get(self):
377388 span_event_attributes ,
378389 )
379390 session = self ._sessions .get_nowait ()
380- except queue .Empty :
391+ except queue .Empty as e :
381392 add_span_event (
382393 current_span ,
383- "No session available. Creating session" ,
394+ "No sessions available in pool . Creating session" ,
384395 span_event_attributes ,
385396 )
386397 session = self ._new_session ()
@@ -502,6 +513,14 @@ def bind(self, database):
502513 span_event_attributes = {"kind" : type (self ).__name__ }
503514
504515 requested_session_count = request .session_count
516+ if requested_session_count <= 0 :
517+ add_span_event (
518+ current_span ,
519+ f"Invalid session pool size({ requested_session_count } ) <= 0" ,
520+ span_event_attributes ,
521+ )
522+ return
523+
505524 current_span = get_current_span ()
506525 add_span_event (
507526 current_span ,
@@ -571,7 +590,11 @@ def get(self, timeout=None):
571590 try :
572591 ping_after , session = self ._sessions .get (block = True , timeout = timeout )
573592 except queue .Empty as e :
574- add_span_event (current_span , "No session available" , span_event_attributes )
593+ add_span_event (
594+ current_span ,
595+ "No sessions available in the pool within the specified timeout" ,
596+ span_event_attributes ,
597+ )
575598 raise e
576599
577600 if _NOW () > ping_after :
0 commit comments