Hi Doug,

1. AccessGroup::run_compaction. This bug is introduced by commit
e2f17814ad0a001bda3808effd18497528cd9cd4.
  src/cc/Hypertable/RangeServer/AccessGroup.cc:477

   If something went wrong when exec run_compaction, it'll throw but
there is no mechanism to catch it in Range::compact and
Range::run_compaction. So the m_maintenance_in_progress will keep true
which means that this range will never get compacted or splited.


2. RangeServer::load_range. If this RangeServer load 2 ranges of the
same table at the same time, it may fail. Here we need to lock it.

-    /** Get TableInfo, create if doesn't exist **/
-    if (!m_live_map_ptr->get(table->id, table_info_ptr)) {
-      table_info_ptr = new TableInfo(m_master_client_ptr, table,
schema_ptr);
-      register_table = true;
-    }
+    {
+      boost::mutex::scoped_lock lock(s_mutex);

+      /** Get TableInfo, create if doesn't exist **/
+      if (!m_live_map_ptr->get(table->id, table_info_ptr)) {
+       table_info_ptr = new TableInfo(m_master_client_ptr, table,
schema_ptr);
+       register_table = true;
+    }
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Hypertable Development" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/hypertable-dev?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to