dashbitco/flow

segmentation fault

larskluge opened this issue · 6 comments

I am trying to understand how Flow's join work, but instead I am crashing Elixir w/ a segfault:

flow_a = Flow.from_enumerable(1_000..1_100)
flow_b = Flow.from_enumerable(  500..1_100)

flow = Flow.window_join(:inner, flow_a, flow_b, Flow.Window.global, & &1, & &1, fn a, a -> a end)

assert flow |> Enum.sort |> Enum.take(3) == [1_000, 1_001, 1_002]

Pushed the complete (hopefully reproducible) source here: https://github.com/larskluge/crash

Please advise. Thank you!

Sure thing, thanks.

$ elixir -v
Erlang/OTP 22 [erts-10.4.4] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] [hipe] [dtrace]

Elixir 1.9.1 (compiled with Erlang/OTP 22)

$ uname -a
Darwin unknown18 18.7.0 Darwin Kernel Version 18.7.0: Thu Jun 20 18:42:21 PDT 2019; root:xnu-4903.270.47~4/RELEASE_X86_64 x86_64

PS: Posted originally here: https://elixirforum.com/t/need-help-w-a-segmentation-fault-bus-error/24335

And as posted there, it seems to run on Ubuntu 18.04 w/ same Elixir version, but OTP 21.

Also, 2/3 times it works, about 1/3 of my runs crash.

Closing this as it has been fixed upstream.