You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by rn...@apache.org on 2015/09/22 15:17:04 UTC
fabric commit: updated refs/heads/master to 34e7c26
Repository: couchdb-fabric
Updated Branches:
refs/heads/master 03c927ba4 -> 34e7c2620
Don't create dbs doc if shard files fail for enametoolong reason
COUCHDB-2821
Project: http://git-wip-us.apache.org/repos/asf/couchdb-fabric/repo
Commit: http://git-wip-us.apache.org/repos/asf/couchdb-fabric/commit/34e7c262
Tree: http://git-wip-us.apache.org/repos/asf/couchdb-fabric/tree/34e7c262
Diff: http://git-wip-us.apache.org/repos/asf/couchdb-fabric/diff/34e7c262
Branch: refs/heads/master
Commit: 34e7c26208babcb15402e39b22516cf655d90510
Parents: 03c927b
Author: Robert Newson <rn...@apache.org>
Authored: Tue Sep 22 13:10:23 2015 +0100
Committer: Robert Newson <rn...@apache.org>
Committed: Tue Sep 22 14:12:40 2015 +0100
----------------------------------------------------------------------
src/fabric_db_create.erl | 25 ++++++++++++++++++-------
1 file changed, 18 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/couchdb-fabric/blob/34e7c262/src/fabric_db_create.erl
----------------------------------------------------------------------
diff --git a/src/fabric_db_create.erl b/src/fabric_db_create.erl
index dc1c0cc..63e6864 100644
--- a/src/fabric_db_create.erl
+++ b/src/fabric_db_create.erl
@@ -28,13 +28,19 @@ go(DbName, Options) ->
{error, file_exists};
false ->
{Shards, Doc} = generate_shard_map(DbName, Options),
- case {create_shard_files(Shards), create_shard_db_doc(Doc)} of
- {ok, {ok, Status}} ->
- Status;
- {file_exists, {ok, _}} ->
- {error, file_exists};
- {_, Error} ->
- Error
+ CreateShardResult = create_shard_files(Shards),
+ case CreateShardResult of
+ enametoolong ->
+ {error, {database_name_too_long, DbName}};
+ _ ->
+ case {CreateShardResult, create_shard_db_doc(Doc)} of
+ {ok, {ok, Status}} ->
+ Status;
+ {file_exists, {ok, _}} ->
+ {error, file_exists};
+ {_, Error} ->
+ Error
+ end
end
end;
Error ->
@@ -68,6 +74,8 @@ create_shard_files(Shards) ->
try fabric_util:recv(Workers, #shard.ref, fun handle_message/3, Workers) of
{error, file_exists} ->
file_exists;
+ {error, enametoolong} ->
+ enametoolong;
{timeout, DefunctWorkers} ->
fabric_util:log_timeout(DefunctWorkers, "create_db"),
{error, timeout};
@@ -77,6 +85,9 @@ create_shard_files(Shards) ->
rexi_monitor:stop(RexiMon)
end.
+handle_message({error, enametoolong}, _, _) ->
+ {error, enametoolong};
+
handle_message(file_exists, _, _) ->
{error, file_exists};