iorap: Terminate IORap if system_server is down.

Crashing IORap leads to red herring and it's better to terminate it
gracefully.

Bug: 173120206
Test: make and run 'adb shell stop'
Change-Id: I9a9607c02307d0cfb3d7bee7200b63bf9bf55354
diff --git a/src/binder/iiorap_impl.cc b/src/binder/iiorap_impl.cc
index de5a55d..13adcc0 100644
--- a/src/binder/iiorap_impl.cc
+++ b/src/binder/iiorap_impl.cc
@@ -291,8 +291,9 @@
     package_manager_ = PackageManagerRemote::Create();
 
     if (package_manager_ == nullptr) {
-      LOG(FATAL) << "Failed to get package manager service in IIorapImpl::Impl";
-      return;
+      LOG(ERROR) << "Failed to get package manager service in IIorapImpl::Impl."
+                 << " Is system_server down?";
+      exit(1);
     }
 
     package_change_observer_ =
diff --git a/src/binder/package_manager_remote.cc b/src/binder/package_manager_remote.cc
index daeb6af..46671eb 100644
--- a/src/binder/package_manager_remote.cc
+++ b/src/binder/package_manager_remote.cc
@@ -115,7 +115,7 @@
     package_service_ = GetPackageService();
     std::this_thread::sleep_for(interval);
     if (count * interval >= timeout) {
-      LOG(FATAL) << "Fail to create version map in "
+      LOG(ERROR) << "Fail to create version map in "
                  << timeout.count()
                  << " milliseconds."
                  << " Reason: Failed to connect to package manager service."
@@ -151,7 +151,8 @@
       });
 
   if (!status.isOk()) {
-    LOG(FATAL) << "Cannot register package change observer.";
+    LOG(ERROR) << "Cannot register package change observer. Is system_server down?";
+    exit(1);
   }
 }
 
@@ -181,7 +182,8 @@
   if (!ReconnectWithTimeout(kTimeoutMs) ||
       android::OK != android::IInterface::asBinder(
           package_service_.get())->linkToDeath(death_recipient)) {
-    LOG(FATAL) << "Failed to register package manager death recipient.";
+    LOG(ERROR) << "Failed to register package manager death recipient. Is system_server down?";
+    exit(1);
   }
 }