diff --git a/tests/stress/long_running.cpp b/tests/stress/long_running.cpp
index 651928138..7be55f25c 100644
--- a/tests/stress/long_running.cpp
+++ b/tests/stress/long_running.cpp
@@ -1,3 +1,4 @@
+#include <atomic>
 #include <fstream>
 #include <random>
 #include <set>
@@ -47,8 +48,9 @@ DEFINE_string(stats_file, "", "File into which to write statistics.");
  */
 class GraphSession {
  public:
-  GraphSession(int id)
+  GraphSession(int id, std::atomic<uint64_t> *init_complete)
       : id_(id),
+        init_complete_(init_complete),
         indexed_label_(fmt::format("indexed_label{}", id)),
         generator_{std::random_device{}()} {
     for (int i = 0; i < FLAGS_prop_count; ++i) {
@@ -64,6 +66,7 @@ class GraphSession {
 
  private:
   uint64_t id_;
+  std::atomic<uint64_t> *init_complete_;
   ClientContextT context_{FLAGS_use_ssl};
   std::unique_ptr<ClientT> client_;
 
@@ -341,9 +344,12 @@ class GraphSession {
     // initial edge creation
     CreateEdges(FLAGS_edge_count);
 
-    if (FLAGS_verify > 0) VerifyGraph();
+    VerifyGraph();
     double last_verify = timer_.Elapsed().count();
 
+    // notify that we completed our initialization
+    init_complete_->fetch_add(-1, std::memory_order_acq_rel);
+
     // run rest
     while (executed_queries_ < FLAGS_max_queries &&
            timer_.Elapsed().count() / 60.0 < FLAGS_max_time) {
@@ -356,8 +362,10 @@ class GraphSession {
       double ratio_e = (double)edges_.size() / (double)FLAGS_edge_count;
       double ratio_v = (double)vertices_.size() / (double)FLAGS_vertex_count;
 
-      // try to edit vertices globally
-      if (FLAGS_global_queries) {
+      // try to edit vertices globally if all workers completed their
+      // initialization
+      if (FLAGS_global_queries &&
+          init_complete_->load(std::memory_order_acquire) == 0) {
         if (Bernoulli(0.01)) {
           UpdateGlobalVertices();
         }
@@ -432,8 +440,10 @@ int main(int argc, char **argv) {
 
   // sessions
   std::vector<GraphSession> sessions;
+  std::atomic<uint64_t> init_complete(FLAGS_worker_count);
+  sessions.reserve(FLAGS_worker_count);
   for (int i = 0; i < FLAGS_worker_count; ++i) {
-    sessions.emplace_back(i);
+    sessions.emplace_back(i, &init_complete);
   }
 
   // workers