Skip to content

Commit 2fa25ec

Browse files
committed
better error handling, fixes #60
1 parent 2d1298e commit 2fa25ec

File tree

4 files changed

+7
-3
lines changed

4 files changed

+7
-3
lines changed

lib/mongo/session.ex

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,8 @@ defmodule Mongo.Session do
173173
{:new_connection, _server} ->
174174
:timer.sleep(1000)
175175
start_implicit_session(topology_pid, type, opts)
176+
{:error, error} -> {:error, error}
177+
other -> {:error, Mongo.Error.exception("Unknow result #{inspect other} while calling Topology.checkout_session/4")}
176178
end
177179
session -> {:ok, session}
178180
end

lib/mongo/stream.ex

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ defmodule Mongo.Stream do
2929
true -> new(topology_pid, cmd, Keyword.put(opts, :read_counter, 2))
3030
false -> {:error, error}
3131
end
32+
other -> {:error, Mongo.Error.exception("Unknow result #{inspect other} while calling Session.start_implicit_session/3")}
3233
end
3334
end
3435

lib/mongo/topology.ex

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -271,10 +271,11 @@ defmodule Mongo.Topology do
271271
{server_session, new_state} <- checkout_server_session(state),
272272
{:ok, session} <- Session.start_link(self(), connection, server_session, type, wire_version, opts) do
273273
{:reply, {:ok, session}, new_state}
274+
else
275+
error -> {:reply, error, state} ## in case of an error, just return the error
274276
end
275277

276278
error ->
277-
Logger.debug("select_servers: #{inspect error}")
278279
{:reply, error, state} ## in case of an error, just return the error
279280
end
280281
end

test/mongo_test.exs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,12 @@ defmodule Mongo.Test do
2525

2626
test "command", c do
2727
assert {:ok, %{"ok" => 1.0}} = Mongo.command(c.pid, [ping: true])
28-
assert {:error, %Mongo.Error{}} = Mongo.command(c.pid, [drop: "unexisting-database"])
28+
assert {:error, %Mongo.Error{}} = Mongo.command(c.pid, [xdrop: "unexisting-database"])
2929
end
3030

3131
test "command!", c do
3232
assert %{"ok" => 1.0} = Mongo.command!(c.pid, [ping: true])
33-
assert_raise Mongo.Error, fn -> Mongo.command!(c.pid, [drop: "unexisting-database"]) end
33+
assert_raise Mongo.Error, fn -> Mongo.command!(c.pid, [xdrop: "unexisting-database"]) end
3434
end
3535

3636
test "show_collections", c do

0 commit comments

Comments
 (0)