8000 fix invalid reads on shutdown · thurt/arangodb@2e10c89 · GitHub
[go: up one dir, main page]

Skip to content

Commit 2e10c89

Browse files
committed
fix invalid reads on shutdown
1 parent cbcf042 commit 2e10c89

File tree

2 files changed

+23
-22
lines changed

2 files changed

+23
-22
lines changed

arangod/VocBase/server.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1483,7 +1483,6 @@ static int WriteDropMarker (TRI_voc_tick_t id) {
14831483

14841484
static void DatabaseManager (void* data) {
14851485
auto server = static_cast<TRI_server_t*>(data);
1486-
auto queryRegistry = static_cast<triagens::aql::QueryRegistry*>(server->_queryRegistry);
14871486
int cleanupCycles = 0;
14881487

14891488
while (true) {
@@ -1593,6 +1592,8 @@ static void DatabaseManager (void* data) {
15931592

15941593
usleep(DATABASE_MANAGER_INTERVAL);
15951594
// The following is only necessary after a wait:
1595+
auto queryRegistry = static_cast<triagens::aql::QueryRegistry*>(server->_queryRegistry);
1596+
15961597
if (queryRegistry != nullptr) {
15971598
queryRegistry->expireQueries();
15981599
}

arangod/VocBase/server.h

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -71,29 +71,29 @@ struct TRI_server_t {
7171
TRI_server_t ();
7272
~TRI_server_t ();
7373

74-
std::atomic<DatabasesLists*> _databasesLists;
74+
std::atomic<DatabasesLists*> _databasesLists;
7575
// TODO: Make this again a template once everybody has gcc >= 4.9.2
7676
// triagens::basics::DataProtector<64>
77-
triagens::basics::DataProtector _databasesProtector;
78-
triagens::basics::Mutex _databasesMutex;
79-
80-
TRI_thread_t _databaseManager;
81-
82-
TRI_vocbase_defaults_t _defaults;
83-
triagens::rest::ApplicationEndpointServer* _applicationEndpointServer;
84-
triagens::basics::ThreadPool* _indexPool;
85-
triagens::aql::QueryRegistry* _queryRegistry;
86-
87-
char* _basePath;
88-
char* _databasePath;
89-
char* _lockFilename;
90-
char* _serverIdFilename;
91-
char* _appPath;
92-
93-
bool _disableReplicationAppliers;
94-
bool _iterateMarkersOnOpen;
95-
bool _hasCreatedSystemDatabase;
96-
bool _initialized;
77+
triagens::basics::DataProtector _databasesProtector;
78+
triagens::basics::Mutex _databasesMutex;
79+
80+
TRI_thread_t _databaseManager;
81+
82+
TRI_vocbase_defaults_t _defaults;
83+
triagens::rest::ApplicationEndpointServer* _applicationEndpointServer;
84+
triagens::basics::ThreadPool* _indexPool;
85+
std::atomic<triagens::aql::QueryRegistry*> _queryRegistry;
86+
87+
char* _basePath;
88+
char* _databasePath;
89+
char* _lockFilename;
90+
char* _serverIdFilename;
91+
char* _appPath;
92+
93+
bool _disableReplicationAppliers;
94+
bool _iterateMarkersOnOpen;
95+
bool _hasCreatedSystemDatabase;
96+
bool _initialized;
9797
};
9898

9999
////////////////////////////////////////////////////////////////////////////////

0 commit comments

Comments
 (0)
0