Skip to content

Commit 98338fe

Browse files
committed
{184394744} Fix missing sockpool tag in cdb2_open span
Signed-off-by: Salil Chandra <schandra107@bloomberg.net>
1 parent c23e71c commit 98338fe

2 files changed

Lines changed: 33 additions & 6 deletions

File tree

cdb2api/cdb2api.c

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3236,8 +3236,8 @@ static int typestr_type_is_default(const char *typestr)
32363236
/* Get the sbuf of a socket matching the given type string from
32373237
* the pool. Returns NULL if none is available or the sbuf on
32383238
* success. */
3239-
static COMDB2BUF *cdb2_socket_pool_get(cdb2_hndl_tp *hndl, const char *typestr, int dbnum, int *port,
3240-
int *was_from_local_cache)
3239+
static COMDB2BUF *cdb2_socket_pool_get_int(cdb2_hndl_tp *hndl, const char *typestr, int dbnum, int *port,
3240+
int *was_from_local_cache)
32413241
{
32423242
COMDB2BUF *sb = NULL;
32433243

@@ -3295,6 +3295,31 @@ static COMDB2BUF *cdb2_socket_pool_get(cdb2_hndl_tp *hndl, const char *typestr,
32953295
return sb;
32963296
}
32973297

3298+
static COMDB2BUF *cdb2_socket_pool_get(cdb2_hndl_tp *hndl, const char *typestr, int dbnum, int *port,
3299+
int *was_from_local_cache)
3300+
{
3301+
void *callbackrc;
3302+
int overwrite_rc = 0;
3303+
cdb2_event *e = NULL;
3304+
COMDB2BUF *sb = NULL;
3305+
3306+
while ((e = cdb2_next_callback(hndl, CDB2_BEFORE_SOCKPOOL, e)) != NULL) {
3307+
callbackrc = cdb2_invoke_callback(hndl, e, 0);
3308+
PROCESS_EVENT_CTRL_BEFORE(hndl, e, overwrite_rc, callbackrc, overwrite_rc);
3309+
}
3310+
if (overwrite_rc)
3311+
goto after_callback;
3312+
3313+
sb = cdb2_socket_pool_get_int(hndl, typestr, dbnum, port, was_from_local_cache);
3314+
3315+
after_callback:
3316+
while ((e = cdb2_next_callback(hndl, CDB2_AFTER_SOCKPOOL, e)) != NULL) {
3317+
callbackrc = cdb2_invoke_callback(hndl, e, 1, CDB2_RETURN_VALUE, (intptr_t)sb);
3318+
PROCESS_EVENT_CTRL_AFTER(hndl, e, overwrite_rc, callbackrc);
3319+
}
3320+
return sb;
3321+
}
3322+
32983323
#ifndef CDB2API_SERVER
32993324
static
33003325
#endif

cdb2api/cdb2api.h

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -276,14 +276,16 @@ typedef enum cdb2_event_type {
276276
CDB2_BEFORE_TCP_CONNECT = 1 << 10,
277277
CDB2_AFTER_TCP_CONNECT = 1 << 11,
278278
CDB2_AT_RECEIVE_HEARTBEAT = 1 << 12,
279+
CDB2_BEFORE_SOCKPOOL = 1 << 13,
280+
CDB2_AFTER_SOCKPOOL = 1 << 14,
279281

280282
/* Logical operation events.
281283
A logicial operation event typically
282284
consists of multiple network events. */
283-
CDB2_AT_ENTER_RUN_STATEMENT = 1 << 13,
284-
CDB2_AT_EXIT_RUN_STATEMENT = 1 << 14,
285-
CDB2_AT_ENTER_NEXT_RECORD = 1 << 15,
286-
CDB2_AT_EXIT_NEXT_RECORD = 1 << 16,
285+
CDB2_AT_ENTER_RUN_STATEMENT = 1 << 20,
286+
CDB2_AT_EXIT_RUN_STATEMENT = 1 << 21,
287+
CDB2_AT_ENTER_NEXT_RECORD = 1 << 22,
288+
CDB2_AT_EXIT_NEXT_RECORD = 1 << 23,
287289

288290
/* Lifecycle events */
289291
CDB2_AFTER_HNDL_ALLOC = 1 << 26,

0 commit comments

Comments
 (0)