fix crashes when replicator db is deleted

BugzID: 83663
diff --git a/src/couch_replicator_manager.erl b/src/couch_replicator_manager.erl
index bdc3b8f..c9c0a68 100644
--- a/src/couch_replicator_manager.erl
+++ b/src/couch_replicator_manager.erl
@@ -731,11 +731,15 @@
     end.
 
 open_rep_doc(DbName, DocId) ->
-    {ok, Db} = couch_db:open_int(DbName, [?CTX, sys_db]),
-    try
-        couch_db:open_doc(Db, DocId, [ejson_body])
-    after
-        couch_db:close(Db)
+    case couch_db:open_int(DbName, [?CTX, sys_db]) of
+        {ok, Db} ->
+            try
+                couch_db:open_doc(Db, DocId, [ejson_body])
+            after
+                couch_db:close(Db)
+            end;
+        Else ->
+            Else
     end.
 
 save_rep_doc(DbName, Doc) ->
@@ -791,6 +795,9 @@
 
 ensure_rep_ddoc_exists(RepDb, DDocId) ->
     case open_rep_doc(RepDb, DDocId) of
+        {not_found, no_db_file} ->
+            %% database was deleted.
+            ok;
         {not_found, _Reason} ->
             {ok, DDoc} = replication_design_doc(DDocId),
             couch_log:notice("creating replicator ddoc", []),
@@ -941,9 +948,12 @@
             true ->
                 ok;
             false ->
-                [gen_server:cast(Server, {resume_scan, ShardName})
-                    || ShardName <- replicator_shards(DbName)],
-                ok
+                try
+                    [gen_server:cast(Server, {resume_scan, ShardName})
+                        || ShardName <- replicator_shards(DbName)]
+                catch error:database_does_not_exist ->
+                    ok
+                end
             end
         end;
         (_, _) -> ok