Skip to content

Commit 7d4c147

Browse files
committed
add some more retries in tracer
1 parent 5fa33f1 commit 7d4c147

File tree

1 file changed

+12
-0
lines changed
  • apps/language_server/lib/language_server

1 file changed

+12
-0
lines changed

apps/language_server/lib/language_server/tracer.ex

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -170,16 +170,25 @@ defmodule ElixirLS.LanguageServer.Tracer do
170170
Logger.warning("Unable to open DETS #{path}: #{inspect(reason)}")
171171
File.rm_rf!(path)
172172
{:ok, _} = :dets.open_file(table_name, opts)
173+
174+
{:error, {:file_error, _, :enoent} = reason} ->
175+
Logger.warning("Unable to open DETS #{path}: #{inspect(reason)}")
176+
:ok = path |> Path.dirname() |> File.mkdir_p()
177+
{:ok, _} = :dets.open_file(table_name, opts)
173178
end
174179

180+
Process.sleep(200)
181+
175182
case :dets.to_ets(table_name, table_name) do
176183
^table_name ->
177184
:ok
178185

179186
{:error, reason} ->
180187
Logger.warning("Unable to read DETS #{path}: #{inspect(reason)}")
181188
File.rm_rf!(path)
189+
Process.sleep(200)
182190
{:ok, _} = :dets.open_file(table_name, opts)
191+
Process.sleep(200)
183192
^table_name = :dets.to_ets(table_name, table_name)
184193
end
185194
end
@@ -345,6 +354,9 @@ defmodule ElixirLS.LanguageServer.Tracer do
345354
else
346355
{:error, reason} ->
347356
Logger.error("Unable to sync DETS #{table_name}, #{inspect(reason)}")
357+
358+
other ->
359+
Logger.error("Unable to sync DETS #{table_name}, #{inspect(other)}")
348360
end
349361
end
350362

0 commit comments

Comments
 (0)