-
Sub-task
-
Resolution: Unresolved
-
Major
-
None
-
None
-
Security Level: Public (Visbile by non-authn users.)
-
None
More specifically:
- remove all extern variables
- keepĀ all the context info for a thread into srm_srv_thread_info
- review #define's
Since there is also a db connection per thread, redesign the two together. In particular create the db connections before hand during startup and not lazily, which just complicates things and it's probably the cause of various diagnostics by the address sanitizer:
Direct leak of 416 byte(s) in 2 object(s) allocated from: #0 0x7fbb6b3a082e in calloc (/lib64/libasan.so.5+0x10c82e) #1 0x7fbb6adeee46 (/usr/lib64/mysql/libmysqlclient.so.18+0x5ae46) #2 0x7fbb6adb3c44 (/usr/lib64/mysql/libmysqlclient.so.18+0x1fc44) #3 0x7fbb6adbb096 in mysql_init (/usr/lib64/mysql/libmysqlclient.so.18+0x27096) #4 0x6ff3c8 in storm_opendb(char const*, char const*, char const*, srm_dbfd*) ../../../src/db/storm_mysql_ifce.cpp:39 #5 0x5552cc in int processRequestStatus<ns1__srmStatusOfBringOnlineRequestRequest, ns1__srmStatusOfBringOnlineRequestResponse>(soap*, char const*, storm::FileStatusRequest<ns1__srmStatusOfBringOnlineRequestRequest, ns1__srmStatusOfBringOnlineRequestResponse>&, ns1__srmStatusOfBringOnlineRequestResponse**) ../../../src/frontend/StatusTemplate.hpp:62 ...