Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[WIP] Add custom code distribution #99

Open
wants to merge 3 commits into
base: develop
Choose a base branch
from

Conversation

tisba
Copy link
Collaborator

@tisba tisba commented Aug 9, 2014

WARNING: This is work in progress, expect rebasing and force-pushes! Feedback is very welcome!

This pull request adds the ability to distribute compiled or uncompiled erlang modules to all nodes. The goal is to significantly simplify the usage of custom code/modules especially in a distributed setup to be used in sessions e.g. via <setdynvars sourcetype="erlang" callback="my_module:my_function">.

The proposed option to specify modules is the following:

<options>
  <option name="module_distribution" module_type="beam" value="my_module" />
  <option name="module_distribution" module_type="source" value="/tmp/my_modules/my_utils.erl" />
</options>

Module type beam will be loaded, so they have to be on the controllers load path (see command line option -X added in #92). Modules of type source are compiled via compile:file(Path, [binary, compressed, return]). Compilation errors and warnings will be logged, where compilation errors will result in tsung termination.

Any module is distributed to all nodes, including remote beams, via rpc:multicall(Nodes, code, load_binary, [Module, Filename, Binary], ?RPC_TIMEOUT) so that they are usable right away.

@tisba tisba changed the title Add custom code distribution [WIP] Add custom code distribution Aug 10, 2014
@tisba
Copy link
Collaborator Author

tisba commented Aug 25, 2014

@nniclausse thanks for the hint. I think I'm also missing several spots, where new beams are launched.

@tisba tisba changed the base branch from master to develop February 10, 2018 16:30
* develop: (211 commits)
  fix typos
  update vsn to dev branch
  more verbose store/restore parsing
  update mailmap
  correct debian compatibility level
  correct debian compatibility level, cf debhelper
  increase doc version
  new release
  remove unused file (we use builtin eldap)
  fix for new websocket api: needs origin argument
  fix changelog name
  v1.7.0
  update doc and changelog
  small update to changelog
  fix url
  preparing release
  add travis badge in readme
  remove old erlang versions from travis
  add erlang test version
  add entries in changelog for next release
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants