diff options
author | Robert Newson <rnewson@apache.org> | 2011-07-25 21:25:40 +0000 |
---|---|---|
committer | Adam Kocoloski <adam@cloudant.com> | 2011-08-12 21:28:27 -0400 |
commit | c78b19296031168aef4142fbe409a0e7d2edda82 (patch) | |
tree | eb96d4e4dc9eb0d059dcba472b20a24c3767a9d2 /apps/couch/src | |
parent | a563a53fe829df17844f32686dc8ac2cc45c8380 (diff) |
assert that calls to file functions actually succeed.
1) couch_file:sync could leave open fd's if close failed. Now we'll get a trace.
2) couch_file:append_term failing would be bad, so let's test that too.
backported from trunk r1150915
git-svn-id: https://svn.apache.org/repos/asf/couchdb/branches/1.1.x@1150918 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'apps/couch/src')
-rw-r--r-- | apps/couch/src/couch_db_updater.erl | 6 | ||||
-rw-r--r-- | apps/couch/src/couch_file.erl | 2 | ||||
-rw-r--r-- | apps/couch/src/couch_server_sup.erl | 2 |
3 files changed, 5 insertions, 5 deletions
diff --git a/apps/couch/src/couch_db_updater.erl b/apps/couch/src/couch_db_updater.erl index 179e1f35..9bf52ee0 100644 --- a/apps/couch/src/couch_db_updater.erl +++ b/apps/couch/src/couch_db_updater.erl @@ -52,7 +52,7 @@ init({DbName, Filepath, Fd, Options}) -> terminate(_Reason, Db) -> - couch_file:close(Db#db.fd), + ok = couch_file:close(Db#db.fd), couch_util:shutdown_sync(Db#db.compactor_pid), couch_util:shutdown_sync(Db#db.fd), ok. @@ -513,9 +513,9 @@ flush_trees(#db{fd=Fd,header=Header}=Db, {ok, NewSummaryPointer} = case Header#db_header.disk_version < 4 of true -> - couch_file:append_term(Fd, {Doc#doc.body, DiskAtts}); + {ok, _} = couch_file:append_term(Fd, {Doc#doc.body, DiskAtts}); false -> - couch_file:append_term_md5(Fd, {Doc#doc.body, DiskAtts}) + {ok, _} = couch_file:append_term_md5(Fd, {Doc#doc.body, DiskAtts}) end, #leaf{ deleted = IsDeleted, diff --git a/apps/couch/src/couch_file.erl b/apps/couch/src/couch_file.erl index 0136e877..dfc1f822 100644 --- a/apps/couch/src/couch_file.erl +++ b/apps/couch/src/couch_file.erl @@ -164,7 +164,7 @@ truncate(Fd, Pos) -> sync(Filepath) when is_list(Filepath) -> {ok, Fd} = file:open(Filepath, [append, raw]), - try file:sync(Fd) after file:close(Fd) end; + try ok = file:sync(Fd) after ok = file:close(Fd) end; sync(Fd) -> gen_server:call(Fd, sync, infinity). diff --git a/apps/couch/src/couch_server_sup.erl b/apps/couch/src/couch_server_sup.erl index bc1e6036..726e397f 100644 --- a/apps/couch/src/couch_server_sup.erl +++ b/apps/couch/src/couch_server_sup.erl @@ -120,7 +120,7 @@ start_server(IniFiles) -> undefined -> []; Uri -> io_lib:format("~s~n", [Uri]) end end || Uri <- Uris], - file:write_file(UriFile, Lines) + ok = file:write_file(UriFile, Lines) end, {ok, Pid}. |