Remove workaround for null klass during marking phase

It was expected that the issue occured due to missing fence during
object construction in certain cases. That issue is fixed and hence
removing the workaround.

Bug: 143109692
Bug: 173676071
Test: art/test/testrunner/testrunner.py
Change-Id: I058d1996dbfae46f28931f103c12f1404a758109
diff --git a/runtime/gc/collector/concurrent_copying.cc b/runtime/gc/collector/concurrent_copying.cc
index 0de62fe..6cbf178 100644
--- a/runtime/gc/collector/concurrent_copying.cc
+++ b/runtime/gc/collector/concurrent_copying.cc
@@ -1080,35 +1080,7 @@
       REQUIRES_SHARED(Locks::heap_bitmap_lock_) {
     DCHECK_EQ(collector_->RegionSpace()->RegionIdxForRef(obj), obj_region_idx_);
     DCHECK(kHandleInterRegionRefs || collector_->immune_spaces_.ContainsObject(obj));
-    mirror::Object* ref =
-            obj->GetFieldObject<mirror::Object, kVerifyNone, kWithoutReadBarrier>(offset);
-    // TODO(lokeshgidra): Remove the following condition once b/173676071 is fixed.
-    if (UNLIKELY(ref == nullptr && offset == mirror::Object::ClassOffset())) {
-      // It has been verified as a race condition (see b/173676071)! After a small
-      // wait when we reload the class pointer, it turns out to be a valid class
-      // object. So as a workaround, we can continue execution and log an error
-      // that this happened.
-      for (size_t i = 0; i < 1000; i++) {
-        // Wait for 1ms at a time. Don't wait for more than 1 second in total.
-        usleep(1000);
-        ref = obj->GetClass<kVerifyNone, kWithoutReadBarrier>();
-        if (ref != nullptr) {
-          LOG(ERROR) << "klass pointer for obj: "
-                     << obj << " (" << mirror::Object::PrettyTypeOf(obj)
-                     << ") found to be null first. Reloading after a small wait fetched klass: "
-                     << ref << " (" << mirror::Object::PrettyTypeOf(ref) << ")";
-          break;
-        }
-      }
-
-      if (UNLIKELY(ref == nullptr)) {
-        // It must be heap corruption. Remove memory protection and dump data.
-        collector_->region_space_->Unprotect();
-        LOG(FATAL_WITHOUT_ABORT) << "klass pointer for ref: " << obj << " found to be null.";
-        collector_->heap_->GetVerification()->LogHeapCorruption(obj, offset, ref, /* fatal */ true);
-      }
-    }
-    CheckReference(ref);
+    CheckReference(obj->GetFieldObject<mirror::Object, kVerifyNone, kWithoutReadBarrier>(offset));
   }
 
   void operator()(ObjPtr<mirror::Class> klass, ObjPtr<mirror::Reference> ref) const