From f0734e1f51420f2a87eb0a8033a2c237c683d277 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Tue, 24 Sep 2024 16:54:59 +0200 Subject: [PATCH 1/3] Do not use protocols during consolidation to avoid races --- lib/elixir/lib/protocol.ex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/elixir/lib/protocol.ex b/lib/elixir/lib/protocol.ex index b2085ad2d6c..e56bb2b8073 100644 --- a/lib/elixir/lib/protocol.ex +++ b/lib/elixir/lib/protocol.ex @@ -498,7 +498,7 @@ defmodule Protocol do defp extract_matching_by_attribute(paths, prefix, callback) do for path <- paths, - path = to_charlist(path), + path = if(is_binary(path), do: String.to_charlist(path), else: path), file <- list_dir(path), mod = extract_from_file(path, file, prefix, callback), do: mod From a91fa4f0510dead31e756ef761b33cd88cda8d7f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Tue, 24 Sep 2024 16:55:41 +0200 Subject: [PATCH 2/3] Update lib/elixir/lib/protocol.ex --- lib/elixir/lib/protocol.ex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/elixir/lib/protocol.ex b/lib/elixir/lib/protocol.ex index e56bb2b8073..b9083589b1e 100644 --- a/lib/elixir/lib/protocol.ex +++ b/lib/elixir/lib/protocol.ex @@ -498,7 +498,7 @@ defmodule Protocol do defp extract_matching_by_attribute(paths, prefix, callback) do for path <- paths, - path = if(is_binary(path), do: String.to_charlist(path), else: path), + path = if(is_list(path), do: path, else: String.to_charlist(path)), file <- list_dir(path), mod = extract_from_file(path, file, prefix, callback), do: mod From 2d558ed769132c62bb5755fcb065ed9e8be6e07d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Tue, 24 Sep 2024 17:21:49 +0200 Subject: [PATCH 3/3] Update lib/elixir/lib/protocol.ex --- lib/elixir/lib/protocol.ex | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/elixir/lib/protocol.ex b/lib/elixir/lib/protocol.ex index b9083589b1e..3a81ecf69a4 100644 --- a/lib/elixir/lib/protocol.ex +++ b/lib/elixir/lib/protocol.ex @@ -498,6 +498,7 @@ defmodule Protocol do defp extract_matching_by_attribute(paths, prefix, callback) do for path <- paths, + # Do not use protocols as they may be consolidating path = if(is_list(path), do: path, else: String.to_charlist(path)), file <- list_dir(path), mod = extract_from_file(path, file, prefix, callback),