Skip to content
Snippets Groups Projects
Commit a97b4713 authored by dmitriy.gerasimov's avatar dmitriy.gerasimov
Browse files

[*] One more EBADF workaround

parent f640c396
No related branches found
No related tags found
1 merge request!419Feature 5220
Pipeline #7824 passed with stage
in 3 seconds
...@@ -1549,7 +1549,12 @@ void dap_events_socket_worker_poll_update_unsafe(dap_events_socket_t * a_esocket ...@@ -1549,7 +1549,12 @@ void dap_events_socket_worker_poll_update_unsafe(dap_events_socket_t * a_esocket
} }
} }
} }
if ( l_is_error && l_errno != EINPROGRESS && l_errno != ENOENT){ if (l_is_error && l_errno == EBADF){
log_it(L_ATT,"Socket %d (%p ) disconnected, rise CLOSE flag to remove from queue, lost %"DAP_UINT64_FORMAT_u":%" DAP_UINT64_FORMAT_u
" bytes",a_esocket->socket,a_esocket,a_esocket->buf_in_size,a_esocket->buf_out_size);
a_esocket->flags |= DAP_SOCK_SIGNAL_CLOSE;
a_esocket->buf_in_size = a_esocket->buf_out_size = 0; // Reset everything from buffer, we close it now all
}else if ( l_is_error && l_errno != EINPROGRESS && l_errno != ENOENT){
char l_errbuf[128]; char l_errbuf[128];
l_errbuf[0]=0; l_errbuf[0]=0;
strerror_r(l_errno, l_errbuf, sizeof (l_errbuf)); strerror_r(l_errno, l_errbuf, sizeof (l_errbuf));
......
...@@ -672,7 +672,7 @@ dap_store_obj_t* dap_db_driver_sqlite_read_last_store_obj(const char *a_group) ...@@ -672,7 +672,7 @@ dap_store_obj_t* dap_db_driver_sqlite_read_last_store_obj(const char *a_group)
return NULL; return NULL;
char * l_table_name = dap_db_driver_sqlite_make_table_name(a_group); char * l_table_name = dap_db_driver_sqlite_make_table_name(a_group);
char *l_str_query = sqlite3_mprintf("SELECT id,ts,key,value FROM '%s' ORDER BY id DESC LIMIT 1", l_table_name); char *l_str_query = sqlite3_mprintf("SELECT id,ts,key,value FROM '%s' ORDER BY id DESC LIMIT 1", l_table_name);
pthread_rwlock_rdlock(&s_db_rwlock); pthread_rwlock_wrlock(&s_db_rwlock);
if(!s_db){ if(!s_db){
pthread_rwlock_unlock(&s_db_rwlock); pthread_rwlock_unlock(&s_db_rwlock);
return NULL; return NULL;
...@@ -732,7 +732,7 @@ dap_store_obj_t* dap_db_driver_sqlite_read_cond_store_obj(const char *a_group, u ...@@ -732,7 +732,7 @@ dap_store_obj_t* dap_db_driver_sqlite_read_cond_store_obj(const char *a_group, u
else else
l_str_query = sqlite3_mprintf("SELECT id,ts,key,value FROM '%s' WHERE id>'%lld' ORDER BY id ASC", l_str_query = sqlite3_mprintf("SELECT id,ts,key,value FROM '%s' WHERE id>'%lld' ORDER BY id ASC",
l_table_name, a_id); l_table_name, a_id);
pthread_rwlock_rdlock(&s_db_rwlock); pthread_rwlock_wrlock(&s_db_rwlock);
if(!s_db){ if(!s_db){
pthread_rwlock_unlock(&s_db_rwlock); pthread_rwlock_unlock(&s_db_rwlock);
return NULL; return NULL;
...@@ -818,7 +818,7 @@ dap_store_obj_t* dap_db_driver_sqlite_read_store_obj(const char *a_group, const ...@@ -818,7 +818,7 @@ dap_store_obj_t* dap_db_driver_sqlite_read_store_obj(const char *a_group, const
else else
l_str_query = sqlite3_mprintf("SELECT id,ts,key,value FROM '%s' ORDER BY id ASC", l_table_name); l_str_query = sqlite3_mprintf("SELECT id,ts,key,value FROM '%s' ORDER BY id ASC", l_table_name);
} }
pthread_rwlock_rdlock(&s_db_rwlock); pthread_rwlock_wrlock(&s_db_rwlock);
if(!s_db){ if(!s_db){
pthread_rwlock_unlock(&s_db_rwlock); pthread_rwlock_unlock(&s_db_rwlock);
return NULL; return NULL;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment