profile
viewpoint
If you are wondering where the data of this site comes from, please visit https://api.github.com/users/vanvoljg/events. GitMemory does not store any data, but only uses NGINX to cache data for a period of time. The idea behind GitMemory is simply to give users a better reading experience.
Jesse Van Volkinburg vanvoljg @peek-travel Seattle, WA

issue commenterlef/setup-beam

OTP version undefined

@paulo-ferraz-oliveira I added it and, unfortunately, it returns the same error.

Also realized I omitted a step in the config I mentioned. I don't know if will matter, but - uses: actions/checkout@v2 is also in there.

env:
  MIX_ENV: test
  OTP_VERSION_SPEC: "24.0.2"
  ELIXIR_VERSION_SPEC: "1.12.1"

jobs:
  compile:
    name: Compile
    steps:
      - uses: actions/checkout@v2
      - uses: erlef/setup-beam@v1
        id: setup
        with:
          otp-version: ${{ env.OTP_VERSION_SPEC }}
          elixir-version: ${{ env.ELIXIR_VERSION_SPEC }}
          version-type: "strict"
jordanbcooper

comment created time in 20 days

issue commenterlef/setup-beam

OTP version undefined

You shouldn't need the strict, in your case, though. And if you do use it, you need a v in the Elixir version.

I wondered if it would be required, but tested just in case. Thanks for the clarification!

If it helps you, I got the exact same error both with and without strict version type.

jordanbcooper

comment created time in 20 days

issue commenterlef/setup-beam

OTP version undefined

I have a similar error that started happening this morning. It's slightly different, but feels like it may be related.

Actions output:

Screenshot_20210708_100225

Config:

env:
  MIX_ENV: test
  OTP_VERSION_SPEC: "24.0.2"
  ELIXIR_VERSION_SPEC: "1.12.1"

jobs:
  compile:
    name: Compile
    steps:
      - uses: erlef/setup-beam@v1
        id: setup
        with:
          otp-version: ${{ env.OTP_VERSION_SPEC }}
          elixir-version: ${{ env.ELIXIR_VERSION_SPEC }}
          version-type: "strict"
jordanbcooper

comment created time in 20 days

issue commentelixir-lang/elixir

Exponential app start time as number of in-umbrella deps increases

This is a bit of an extreme case that was put together to specifically exaggerate the problem and we wouldn't actually structure a real umbrella in this way. Our umbrella has a large variety of dependencies spread out across all the various apps, and the in-umbrella dep tree is more varied.

It seems like the way Erlang is starting applications has become a lot more involved and circuitous. The fact that a single call to start one app gets made nearly 10,000 times seems a little odd to me, and like there may be a way to make it more efficient, but I had trouble following the trail through the OTP code.

For what it's worth, reverting this commit in a local version of Elixir 1.12.1 fixed the start time problem. Also, copying that code into the Mix task and using it to manually start apps fixed it, too.

vanvoljg

comment created time in a month

push eventvanvoljg/beach_umbrella

Jesse Van Volkinburg

commit sha 6ad28658c1361d96e5541004d647b4a5756a80bd

readme typo

view details

push time in a month

push eventvanvoljg/beach_umbrella

Jesse Van Volkinburg

commit sha 002df8a5c34f65da43f673729f1945566c772840

initial commit

view details

Jesse Van Volkinburg

commit sha 1a336045397a70f825c2a4a8eb839ebfeaf04115

add test script

view details

Jesse Van Volkinburg

commit sha 8423ff9bc7bac4bedb60d8dc9b5baf873a768cb6

add mix task and rexbug

view details

Jesse Van Volkinburg

commit sha fb053464e3ad51c27f59bcc246224214c3007dab

add trace to test script

view details

push time in a month

issue openedelixir-lang/elixir

Exponential app start time when there are many in-umbrella deps

Precheck

  • Do not use the issue tracker for questions or support (try Elixir Forum, Stack Overflow, Slack, etc.) (:heavy_check_mark: searched, not found)
  • For proposing a new feature, please start a discussion on the Elixir Core mailing list: https://groups.google.com/group/elixir-lang-core (:heavy_minus_sign: not a new feature)
  • For bugs, do a quick search and make sure the bug has not yet been reported (:heavy_check_mark: searched, not found)
  • Please disclose security vulnerabilities privately at elixir-security@googlegroups.com (:heavy_minus_sign: not a security vulnerability, AFAICT)
  • Finally, be nice and have fun! (:heavy_check_mark::exclamation:)

Issue

Since Elixir 1.12.0 came out, the start time of umbrella applications appears to have increased, especially so for those with complex dependencies between in-umbrella apps.

Environment

  • Elixir & Erlang/OTP versions (elixir --version): Elixir 1.12.1, OTP 24.0.2
  • Operating system: Linux (Manjaro) (Kernel 5.12.9)

My other team members have all experienced the problem on various other flavors of Linux, such as Pop!OS and vanilla Arch.

Current behavior

Our team's main application's start time went from ~4-5 seconds up to ~45 seconds. This includes running tests from both the root of the umbrella or from an individual app's root directory.

I (and my team) believe that the start time is way longer than it should be. Maybe there's something strange happening in the way applications start? It's hampered our development to the point that we now use Elixir 1.11.4 in local development so that we can run tests and iterate in a quick manner.

Expected behavior

The application should not start this slowly. I would expect it to start in about the same time. I could understand a slight increase due to needing to check for optional applications at each level, but it seems to be taking a really, really long time to do that.


I created a demonstration app that shows this behaviour. https://github.com/vanvoljg/beach_umbrella

There's a test.sh script in there which allows you to run a few demonstrations. The readme has a bit more detail.

Each of these functions takes a decent amount of time to run--especially the flame graphs, which take about 10 minutes to finish on my (fairly recent) machine.

  • trace <app_name> - Traces the calls to :application.ensure_all_loaded/_. Outputs a file, msgs_<app_name>.txt, which displays the count of individual/unique calls made while starting the provided app, as well as the arguments provided to each call.
  • time - Displays the start time of each application in the umbrella.
  • graph - Creates a flame graph of all the calls for the startup of each app in the repo. Requires several utilities, detailed in the repo readme, and an Intel processor to use LBR call graphs in the perf tool.

created time in a month

delete branch vanvoljg/beach_umbrella

delete branch : 2-no-deps

delete time in a month

delete branch vanvoljg/beach_umbrella

delete branch : 3-linear-deps

delete time in a month

push eventvanvoljg/beach_umbrella

Jesse Van Volkinburg

commit sha 05720b3c71cdf41b16c4f637c5db4f7c75b1b2f7

add mix task and rexbug

view details

Jesse Van Volkinburg

commit sha 056d040d97d493c3d25b814506b0273d9a9c3602

add trace to test script

view details

push time in a month

push eventvanvoljg/beach_umbrella

Jesse Van Volkinburg

commit sha 8da1a8f527899011aaa83f199ebd6c260852fe21

add test script

view details

Jesse Van Volkinburg

commit sha 5e245785e1658c1201fd2a4744e3b0f024318cbe

remove all non-umbrella deps

view details

Jesse Van Volkinburg

commit sha 1740b3fcc194b3e7ff1f2d559c52ab9c0da1ddf7

add many more apps to demonstrate geometric time increase

view details

Jesse Van Volkinburg

commit sha d93278c4307c80b9a5362bae98d836dfe2edcb2b

Revert "remove all non-umbrella deps" This reverts commit 5e245785e1658c1201fd2a4744e3b0f024318cbe.

view details

Jesse Van Volkinburg

commit sha 742d44643779d7b2cefb819e1f1c23254b68aeb2

add up to 26 apps and add deps to them all

view details

push time in a month

push eventvanvoljg/beach_umbrella

Jesse Van Volkinburg

commit sha 8da1a8f527899011aaa83f199ebd6c260852fe21

add test script

view details

Jesse Van Volkinburg

commit sha 5e245785e1658c1201fd2a4744e3b0f024318cbe

remove all non-umbrella deps

view details

Jesse Van Volkinburg

commit sha 1740b3fcc194b3e7ff1f2d559c52ab9c0da1ddf7

add many more apps to demonstrate geometric time increase

view details

push time in a month

push eventvanvoljg/beach_umbrella

Jesse Van Volkinburg

commit sha 8da1a8f527899011aaa83f199ebd6c260852fe21

add test script

view details

push time in a month

create barnchvanvoljg/beach_umbrella

branch : 3-linear-deps

created branch time in a month

create barnchvanvoljg/beach_umbrella

branch : 2-no-deps

created branch time in a month

create barnchvanvoljg/beach_umbrella

branch : 1-interdependent-deps

created branch time in a month

created repositoryvanvoljg/beach_umbrella

large umbrella demonstrator app

created time in a month

issue closedbeerlyfunctional/BeerlyGF

cache invalidation

need to check cache invalidation timeouts

closed time in a month

vanvoljg

issue closedbeerlyfunctional/BeerlyGF

Stretch: check beers from brewery for gluten-free

Check ingredients on pulling beers for the brewery, pre-set the gluten-free flag for that beer if it's gluten free.

closed time in a month

vanvoljg

issue closed201d45-bluejay/project-j

complete About.js

Low priority/stretch goal Display random order of people on about page

closed time in a month

vanvoljg

push eventgadabout/pdc_spec

Jesse Van Volkinburg

commit sha a2dd3d3db5968be904dd827ff82aed0764b766f1

former pdc moved to /experiences

view details

push time in 2 months

PullRequestReviewEvent

PR closed jcbwang/lab-09-back-end

Jesse dev - PLEASE DO NOT MERGE

Jesse forked on Sunday for refactor.

+406 -288

0 comment

6 changed files

vanvoljg

pr closed time in 2 months

startedtc39/proposal-pattern-matching

started time in 3 months

startedelbow-jason/echo_rust_nif

started time in 3 months

startedrrrene/credo

started time in 3 months