Skip to content

Argument error to erl_anno.set #6015

@KronicDeth

Description

@KronicDeth

I know there are some pre-existing issues related to erl_anno, generated and line -1, but the pre-existing steps of deleting _build and updating all dependencies is not working for https://github.com/C-S-D/retort.

Environment

  • Elixir & Erlang versions (elixir --version):
    • 1.4.2
    • brew info erlang: erlang: stable 19.3 (bottled), HEAD
  • Operating system: macOS

Current behavior

  1. git clone git@github.com:C-S-D/retort.git
  2. cd retort
  3. git checkout elixir-lang-elixir-6015
  4. mix deps.get
  5. mix coveralls

Stacktrace

Details
10:14:28.364 [error] Process #PID<0.6238.0> raised an exception
** (ArgumentError) argument error
    (stdlib) erl_anno.erl:318: :erl_anno.set(:location, -1, [location: -1, generated: true])
    (stdlib) erl_parse.yrl:1516: anonymous fn/3 in :erl_parse.map_anno/2
    (stdlib) erl_parse.yrl:1649: :erl_parse.modify_anno1/3
    (stdlib) erl_parse.yrl:1662: :erl_parse.modify_anno1/3
    (stdlib) erl_parse.yrl:1641: :erl_parse.modify_anno1/3
    (stdlib) erl_parse.yrl:1662: :erl_parse.modify_anno1/3
    (stdlib) erl_parse.yrl:1652: :erl_parse.modify_anno1/3
    (stdlib) erl_parse.yrl:1662: :erl_parse.modify_anno1/3
** (exit) an exception was raised:
    ** (ArgumentError) argument error
        (stdlib) erl_anno.erl:318: :erl_anno.set(:location, -1, [location: -1, generated: true])
        (stdlib) erl_parse.yrl:1516: anonymous fn/3 in :erl_parse.map_anno/2
        (stdlib) erl_parse.yrl:1649: :erl_parse.modify_anno1/3
        (stdlib) erl_parse.yrl:1662: :erl_parse.modify_anno1/3
        (stdlib) erl_parse.yrl:1641: :erl_parse.modify_anno1/3
        (stdlib) erl_parse.yrl:1662: :erl_parse.modify_anno1/3
        (stdlib) erl_parse.yrl:1652: :erl_parse.modify_anno1/3
        (stdlib) erl_parse.yrl:1662: :erl_parse.modify_anno1/3
    cover.erl:583: :cover.call/1
    lib/excoveralls.ex:30: ExCoveralls.start/2
    (mix) lib/mix/tasks/test.ex:206: Mix.Tasks.Test.run/1
    (mix) lib/mix/task.ex:294: Mix.Task.run_task/3
    (mix) lib/mix/task.ex:326: Mix.Task.run_alias/3
    (mix) lib/mix/task.ex:259: Mix.Task.run/2
    lib/mix/tasks.ex:54: Mix.Tasks.Coveralls.do_run/2
    (mix) lib/mix/task.ex:294: Mix.Task.run_task/3

10:14:28.365 [error] Process #PID<0.6233.0> raised an exception
** (ArgumentError) argument error
    (stdlib) :ets.insert(:cover_internal_data_table, {{:bump, Poison.Encoder.Retort.Request, :__info__, 1, 2, 0}, 0})
    cover.erl:1789: :cover.munge_body/4
    cover.erl:1740: :cover.munge_clauses/4
    cover.erl:1719: :cover.munge/4
    cover.erl:1635: :cover.transform_2/5
    cover.erl:1620: :cover.transform/3
    cover.erl:1568: :cover.do_compile_beam2/5
    cover.erl:1478: :cover.do_compile_beam/3
10:14:28.366 [error] Process #PID<0.6235.0> raised an exception
** (ArgumentError) argument error
    (stdlib) :ets.insert(:cover_internal_data_table, {{:bump, Retort.Case, :__info__, 1, 1, 0}, 0})
    cover.erl:1789: :cover.munge_body/4
    cover.erl:1740: :cover.munge_clauses/4
    cover.erl:1719: :cover.munge/4
    cover.erl:1635: :cover.transform_2/5
    cover.erl:1620: :cover.transform/3
    cover.erl:1568: :cover.do_compile_beam2/5
    cover.erl:1478: :cover.do_compile_beam/3
10:14:28.366 [error] Process #PID<0.6243.0> raised an exception
** (ArgumentError) argument error
    (stdlib) :ets.insert(:cover_internal_data_table, {{:bump, Retort.Server.Generic.Logger, :__info__, 1, 1, 0}, 0})
    cover.erl:1789: :cover.munge_body/4
    cover.erl:1740: :cover.munge_clauses/4
    cover.erl:1719: :cover.munge/4
    cover.erl:1635: :cover.transform_2/5
    cover.erl:1620: :cover.transform/3
    cover.erl:1568: :cover.do_compile_beam2/5
    cover.erl:1478: :cover.do_compile_beam/3
10:14:28.366 [error] Process #PID<0.6244.0> raised an exception
** (ArgumentError) argument error
    (stdlib) :ets.insert(:cover_internal_data_table, {{:bump, Retort.Server.Pool, :__info__, 1, 1, 0}, 0})
    cover.erl:1789: :cover.munge_body/4
    cover.erl:1740: :cover.munge_clauses/4
    cover.erl:1719: :cover.munge/4
    cover.erl:1635: :cover.transform_2/5
    cover.erl:1620: :cover.transform/3
    cover.erl:1568: :cover.do_compile_beam2/5
    cover.erl:1478: :cover.do_compile_beam/3
10:14:28.367 [error] Process #PID<0.6242.0> raised an exception
** (ArgumentError) argument error
    (stdlib) :ets.insert(:cover_internal_data_table, {{:bump, Retort.Sandbox, :__info__, 1, 1, 0}, 0})
    cover.erl:1789: :cover.munge_body/4
    cover.erl:1740: :cover.munge_clauses/4
    cover.erl:1719: :cover.munge/4
    cover.erl:1635: :cover.transform_2/5
    cover.erl:1620: :cover.transform/3
    cover.erl:1568: :cover.do_compile_beam2/5
    cover.erl:1478: :cover.do_compile_beam/3
10:14:28.367 [error] Process #PID<0.6240.0> raised an exception
** (ArgumentError) argument error
    (stdlib) :ets.insert(:cover_internal_data_table, {{:bump, Retort.RemoteTestAuthors, :__info__, 1, 1, 0}, 0})
    cover.erl:1789: :cover.munge_body/4
    cover.erl:1740: :cover.munge_clauses/4
    cover.erl:1719: :cover.munge/4
    cover.erl:1635: :cover.transform_2/5
    cover.erl:1620: :cover.transform/3
    cover.erl:1568: :cover.do_compile_beam2/5
    cover.erl:1478: :cover.do_compile_beam/3
10:14:28.368 [error] Process #PID<0.6245.0> raised an exception
** (ArgumentError) argument error
    (stdlib) :ets.insert(:cover_internal_data_table, {{:bump, Retort.TestAuthors, :__info__, 1, 1, 0}, 0})
    cover.erl:1789: :cover.munge_body/4
    cover.erl:1740: :cover.munge_clauses/4
    cover.erl:1719: :cover.munge/4
    cover.erl:1635: :cover.transform_2/5
    cover.erl:1620: :cover.transform/3
    cover.erl:1568: :cover.do_compile_beam2/5
    cover.erl:1478: :cover.do_compile_beam/3
10:14:28.368 [error] Process #PID<0.6239.0> raised an exception
** (ArgumentError) argument error
    (stdlib) :ets.insert(:cover_internal_data_table, {{:bump, Retort.Meta, :__info__, 1, 1, 0}, 0})
    cover.erl:1789: :cover.munge_body/4
    cover.erl:1740: :cover.munge_clauses/4
    cover.erl:1719: :cover.munge/4
    cover.erl:1635: :cover.transform_2/5
    cover.erl:1620: :cover.transform/3
    cover.erl:1568: :cover.do_compile_beam2/5
    cover.erl:1478: :cover.do_compile_beam/3
10:14:28.368 [error] Process #PID<0.6241.0> raised an exception
** (ArgumentError) argument error
    (stdlib) :ets.insert(:cover_internal_data_table, {{:bump, Retort.Resources, :__info__, 1, 1, 0}, 0})
    cover.erl:1789: :cover.munge_body/4
    cover.erl:1740: :cover.munge_clauses/4
    cover.erl:1719: :cover.munge/4
    cover.erl:1635: :cover.transform_2/5
    cover.erl:1620: :cover.transform/3
    cover.erl:1568: :cover.do_compile_beam2/5
    cover.erl:1478: :cover.do_compile_beam/3
10:14:28.369 [error] Process #PID<0.6236.0> raised an exception
** (ArgumentError) argument error
    (stdlib) :ets.insert(:cover_internal_data_table, {{:bump, Retort.Client.Generic, :__info__, 1, 1, 0}, 0})
    cover.erl:1789: :cover.munge_body/4
    cover.erl:1740: :cover.munge_clauses/4
    cover.erl:1719: :cover.munge/4
    cover.erl:1635: :cover.transform_2/5
    cover.erl:1620: :cover.transform/3
    cover.erl:1568: :cover.do_compile_beam2/5
    cover.erl:1478: :cover.do_compile_beam/3
10:14:28.369 [error] Process #PID<0.6234.0> raised an exception
** (ArgumentError) argument error
    (stdlib) :ets.insert(:cover_internal_clause_table, {Retort.AMQP.Default, [{Retort.AMQP.Default, :__info__, 1, 1, 1}, {Retort.AMQP.Default, :__info__, 1, 2, 1}, {Retort.AMQP.Default, :__info__, 1, 3, 1}, {Retort.AMQP.Default, :consume, 2, 1, 1}, {Retort.AMQP.Default, :declare_queue, 2, 1, 1}, {Retort.AMQP.Default, :open, 1, 1, 1}, {Retort.AMQP.Default, :prefetch_count, 2, 1, 1}]})
    cover.erl:1584: :cover.do_compile_beam2/5
    cover.erl:1478: :cover.do_compile_beam/3
    (stdlib) lists.erl:1239: :lists.map/2
    cover.erl:2732: anonymous fn/2 in :cover.pmap_spawn/4
10:14:28.370 [error] Process #PID<0.6237.0> raised an exception
** (ArgumentError) argument error
    (stdlib) :ets.insert(:cover_internal_clause_table, {Retort.Client.Stream, [{Retort.Client.Stream, :__info__, 1, 1, 1}, {Retort.Client.Stream, :__info__, 1, 2, 1}, {Retort.Client.Stream, :__info__, 1, 3, 1}, {Retort.Client.Stream, :__struct__, 0, 1, 1}, {Retort.Client.Stream, :__struct__, 1, 1, 2}, {Retort.Client.Stream, :new, 1, 1, 1}, {Retort.Client.Stream, :new, 2, 1, 1}, {Retort.Client.Stream, :new, 3, 1, 3}, {Retort.Client.Stream, :next, 2, 1, 1}, {Retort.Client.Stream, :next, 2, 2, 1}, {Retort.Client.Stream, :page, 1, 1, 1}, {Retort.Client.Stream, :page, 1, 2, 2}, {Retort.Client.Stream, :page_params, 2, 1, 1}, {Retort.Client.Stream, :page_params, 2, 2, 1}]})
    cover.erl:1584: :cover.do_compile_beam2/5
    cover.erl:1478: :cover.do_compile_beam/3
    (stdlib) lists.erl:1239: :lists.map/2
    cover.erl:2732: anonymous fn/2 in :cover.pmap_spawn/4
10:14:28.370 [error] GenServer #PID<0.6189.0> terminating
** (ArgumentError) argument error
    (stdlib) erl_anno.erl:318: :erl_anno.set(:location, -1, [location: -1, generated: true])
    (stdlib) erl_parse.yrl:1516: anonymous fn/3 in :erl_parse.map_anno/2
    (stdlib) erl_parse.yrl:1649: :erl_parse.modify_anno1/3
    (stdlib) erl_parse.yrl:1662: :erl_parse.modify_anno1/3
    (stdlib) erl_parse.yrl:1641: :erl_parse.modify_anno1/3
    (stdlib) erl_parse.yrl:1662: :erl_parse.modify_anno1/3
    (stdlib) erl_parse.yrl:1652: :erl_parse.modify_anno1/3
    (stdlib) erl_parse.yrl:1662: :erl_parse.modify_anno1/3
Last message: {:EXIT, #PID<0.70.0>, {:badarg, [{:erl_anno, :set, [:location, -1, [location: -1, generated: true]], [file: 'erl_anno.erl', line: 318]}, {:erl_parse, :"-map_anno/2-fun-0-", 3, [file: 'erl_parse.yrl', line: 1516]}, {:erl_parse, :modify_anno1, 3, [file: 'erl_parse.yrl', line: 1649]}, {:erl_parse, :modify_anno1, 3, [file: 'erl_parse.yrl', line: 1662]}, {:erl_parse, :modify_anno1, 3, [file: 'erl_parse.yrl', line: 1641]}, {:erl_parse, :modify_anno1, 3, [file: 'erl_parse.yrl', line: 1662]}, {:erl_parse, :modify_anno1, 3, [file: 'erl_parse.yrl', line: 1652]}, {:erl_parse, :modify_anno1, 3, [file: 'erl_parse.yrl', line: 1662]}]}}
10:14:28.371 [error] GenServer #PID<0.6183.0> terminating
** (ArgumentError) argument error
    (stdlib) erl_anno.erl:318: :erl_anno.set(:location, -1, [location: -1, generated: true])
    (stdlib) erl_parse.yrl:1516: anonymous fn/3 in :erl_parse.map_anno/2
    (stdlib) erl_parse.yrl:1649: :erl_parse.modify_anno1/3
    (stdlib) erl_parse.yrl:1662: :erl_parse.modify_anno1/3
    (stdlib) erl_parse.yrl:1641: :erl_parse.modify_anno1/3
    (stdlib) erl_parse.yrl:1662: :erl_parse.modify_anno1/3
    (stdlib) erl_parse.yrl:1652: :erl_parse.modify_anno1/3
    (stdlib) erl_parse.yrl:1662: :erl_parse.modify_anno1/3
Last message: {:EXIT, #PID<0.70.0>, {:badarg, [{:erl_anno, :set, [:location, -1, [location: -1, generated: true]], [file: 'erl_anno.erl', line: 318]}, {:erl_parse, :"-map_anno/2-fun-0-", 3, [file: 'erl_parse.yrl', line: 1516]}, {:erl_parse, :modify_anno1, 3, [file: 'erl_parse.yrl', line: 1649]}, {:erl_parse, :modify_anno1, 3, [file: 'erl_parse.yrl', line: 1662]}, {:erl_parse, :modify_anno1, 3, [file: 'erl_parse.yrl', line: 1641]}, {:erl_parse, :modify_anno1, 3, [file: 'erl_parse.yrl', line: 1662]}, {:erl_parse, :modify_anno1, 3, [file: 'erl_parse.yrl', line: 1652]}, {:erl_parse, :modify_anno1, 3, [file: 'erl_parse.yrl', line: 1662]}]}}

Expected behavior

Tests are run and coverage information is generated.

Triage information

excoveralls' s mix coveralls works in both the underlying alembic and calcinator packages, so some dependency adding on top of those or some code in retort itself is likely causing this issue.

calcinator deps tree

Details
calcinator
├── junit_formatter ~> 1.0 (Hex package)
├── dialyze ~> 0.2.1 (Hex package)
├── excoveralls ~> 0.6.3 (Hex package)
│   ├── exjsx ~> 3.0 (Hex package)
│   │   └── jsx ~> 2.8.0 (Hex package)
│   └── hackney >= 0.12.0 (Hex package)
│       ├── certifi 1.0.0 (Hex package)
│       ├── idna 4.0.0 (Hex package)
│       ├── metrics 1.0.1 (Hex package)
│       ├── mimerl 1.0.2 (Hex package)
│       └── ssl_verify_fun 1.1.1 (Hex package)
├── ex_doc ~> 0.15.1 (Hex package)
│   └── earmark ~> 1.1 (Hex package)
├── credo 0.7.3 (Hex package)
│   └── bunt ~> 0.2.0 (Hex package)
├── alembic >= 3.1.1 and < 4.0.0 (Hex package)
│   ├── ecto ~> 2.0 (Hex package)
│   │   ├── decimal ~> 1.2 (Hex package)
│   │   ├── poison ~> 2.2 or ~> 3.0 (Hex package)
│   │   └── poolboy ~> 1.5 (Hex package)
│   └── poison ~> 1.5 or ~> 2.0 or ~> 3.0 (Hex package)
├── ja_serializer >= 0.11.2 and < 0.13.0 (Hex package)
│   ├── inflex ~> 1.4 (Hex package)
│   ├── plug > 1.0.0 (Hex package)
│   │   └── mime ~> 1.0 (Hex package)
│   └── poison >= 1.4.0 (Hex package)
├── phoenix ~> 1.0 (Hex package)
│   ├── phoenix_pubsub ~> 1.0 (Hex package)
│   ├── plug ~> 1.4 or ~> 1.3.3 or ~> 1.2.4 or ~> 1.1.8 or ~> 1.0.5 (Hex package)
│   └── poison ~> 1.5 or ~> 2.0 (Hex package)
└── inch_ex ~> 0.5.1 (Hex package)
    └── poison ~> 1.5 or ~> 2.0 or ~> 3.0 (Hex package)

retort deps tree

Details
retort
├── faker ~> 0.7.0 (Hex package)
├── connection ~> 1.0 (Hex package)
├── poison ~> 2.0 or ~> 3.0 (Hex package)
├── junit_formatter ~> 1.0 (Hex package)
├── dialyze ~> 0.2.1 (Hex package)
├── excoveralls ~> 0.6.3 (Hex package)
│   ├── exjsx ~> 3.0 (Hex package)
│   │   └── jsx ~> 2.8.0 (Hex package)
│   └── hackney >= 0.12.0 (Hex package)
│       ├── certifi 1.0.0 (Hex package)
│       ├── idna 4.0.0 (Hex package)
│       ├── metrics 1.0.1 (Hex package)
│       ├── mimerl 1.0.2 (Hex package)
│       └── ssl_verify_fun 1.1.1 (Hex package)
├── timex ~> 3.0 (Hex package)
│   ├── combine ~> 0.7 (Hex package)
│   ├── gettext ~> 0.10 (Hex package)
│   └── tzdata ~> 0.1.8 or ~> 0.5 (Hex package)
│       └── hackney ~> 1.0 (Hex package)
├── ex_doc ~> 0.15.1 (Hex package)
│   └── earmark ~> 1.1 (Hex package)
├── credo 0.7.3 (Hex package)
│   └── bunt ~> 0.2.0 (Hex package)
├── amqp ~> 0.1.4 or ~> 0.2.0 (Hex package)
│   ├── amqp_client ~> 3.6.8 (Hex package)
│   │   └── rabbit_common 3.6.9 (Hex package)
│   └── rabbit_common ~> 3.6.8 (Hex package)
├── uuid ~> 1.1 (Hex package)
├── ja_serializer >= 0.11.0 and < 0.13.0 (Hex package)
│   ├── inflex ~> 1.4 (Hex package)
│   ├── plug > 1.0.0 (Hex package)
│   │   └── mime ~> 1.0 (Hex package)
│   └── poison >= 1.4.0 (Hex package)
├── inch_ex ~> 0.5.1 (Hex package)
│   └── poison ~> 1.5 or ~> 2.0 or ~> 3.0 (Hex package)
├── postgrex ~> 0.13.0 (Hex package)
│   ├── connection ~> 1.0 (Hex package)
│   ├── db_connection ~> 1.1 (Hex package)
│   │   ├── connection ~> 1.0.2 (Hex package)
│   │   └── poolboy ~> 1.5 (Hex package)
│   └── decimal ~> 1.0 (Hex package)
├── ecto ~> 2.1 (Hex package)
│   ├── db_connection ~> 1.1 (Hex package)
│   ├── decimal ~> 1.2 (Hex package)
│   ├── poison ~> 2.2 or ~> 3.0 (Hex package)
│   ├── poolboy ~> 1.5 (Hex package)
│   └── postgrex ~> 0.13.0 (Hex package)
├── alembic >= 3.1.1 and < 4.0.0 (Hex package)
│   ├── ecto ~> 2.0 (Hex package)
│   └── poison ~> 1.5 or ~> 2.0 or ~> 3.0 (Hex package)
├── calcinator >= 1.5.1 and < 3.0.0 (Hex package)
│   ├── alembic >= 3.1.1 and < 4.0.0 (Hex package)
│   └── ja_serializer >= 0.11.2 and < 0.13.0 (Hex package)
└── ex_machina ~> 2.0 (Hex package)
    └── ecto ~> 2.1 (Hex package)

Deps to Check

The following deps are in retort and not calcinator and need to be checked for incompatibility by adding excoveralls and running mix coveralls to see if they trigger the bug on their own

  • amqp
  • connection
  • ex_machina
  • faker
  • postgrex
  • timex (was already using excoveralls, but still retested)
  • uuid

No dep isolation failed mix coveralls. Moving on to slicing retort itself to try to remove or isolating triggering line in retort and trace that back to a dep or a quote in retort itself.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions