profile
viewpoint

CAIDA/charthouse-ui 1

Web application UI for the Hi3 project (https://hicube.caida.org)

CAIDA/libipmeta 1

IP metadata lookup library.

CAIDA/pyipmeta 1

Python bindings for libipmeta

inetrg/agere-2018 1

Some measurement related to a new broker concept for CAF

josephnoir/hamcast-for-libcppa 1

**DEPRECATED** hamcast for libcppa

josephnoir/RIOT 1

RIOT - The friendly OS for IoT

CAIDA/corsaro3 0

Corsaro is a software suite for performing large-scale analysis of trace data. It was specifically designed to be used with passive traces captured by darknets, but the overall structure is generic enough to be used with any type of passive trace data.

inetrg/dockerfiles 0

Collection of docker build files from our research group.

push eventactor-framework/incubator

Joseph Noir

commit sha 4f70e957e023cfe057307fac19a1f0f8b4749ccb

Add test for length prefix framing

view details

push time in 24 days

push eventactor-framework/actor-framework

Dominik Charousset

commit sha 206ba3f24b9a7126e29a22346379e8f4ab987791

Add metric families for streams

view details

Dominik Charousset

commit sha fed4e6c5307cc0579f28962aa931df0731f26244

Collect metrics for inbound stream traffic

view details

Dominik Charousset

commit sha 57eaa06453d2df5e3050d7d244b468ba606bd202

Collect metrics for outbound stream traffic

view details

Dominik Charousset

commit sha 835e784b10c23229d3d843486213a59ee9c2a055

Fix formatting

view details

Dominik Charousset

commit sha 281706c9eca77baf8fa5933fa9f9ae544ab7cee1

Add new stream metrics to the manual

view details

Dominik Charousset

commit sha 10a861f3db74197e1007d9f308bc0238120c96fb

Fix formatting

view details

Dominik Charousset

commit sha 144c66b0d34a81bdc56ea5cf48a81f0f515f5ac8

Integrate review feedback

view details

Joseph Noir

commit sha 20168887d60c20915a9eae104c0f8c4f3d489c42

Merge pull request #1137 Add telemetry for streams

view details

push time in a month

delete branch actor-framework/actor-framework

delete branch : topic/streaming-metrics

delete time in a month

PR merged actor-framework/actor-framework

Add telemetry for streams new feature

This PR adds four new metrics for actors to track throughput as well as buffer levels.

+458 -128

0 comment

22 changed files

Neverlord

pr closed time in a month

Pull request review commentactor-framework/actor-framework

Add telemetry for streams

 void scheduled_actor::erase_inbound_path_later(stream_slot slot, error reason) {   if (i != e) {     auto& path = i->second.policy().handler;     if (path != nullptr) {-      if (reason == none)+      if (reason == none) {         path->emit_regular_shutdown(this);-      else+      } else {         path->emit_irregular_shutdown(this, std::move(reason));+      }

Hm?

Neverlord

comment created time in a month

Pull request review commentactor-framework/actor-framework

Add telemetry for streams

 auto downstream_messages::quantum(const nested_queue_type& q,   return x * static_cast<deficit_type>(q.policy().handler->desired_batch_size); } +void downstream_messages::cleanup(nested_queue_type& sub_queue) noexcept {+  auto& handler = sub_queue.policy().handler;+  if (!handler)+    return;+  if (auto input_buffer_size = handler->metrics.input_buffer_size)+    input_buffer_size->dec(sub_queue.total_task_size());+}++bool downstream_messages::push_back(nested_queue_type& sub_queue,+                                    mapped_type* ptr) noexcept {+  if (auto handler = sub_queue.policy().handler.get()) {

This looks slightly different from the handler acquisition in cleanup above, especially the ref vs no ref + get. Is that intended?

Neverlord

comment created time in a month

Pull request review commentactor-framework/actor-framework

Add telemetry for streams

 auto make_actor_metric_families(telemetry::metric_registry& reg) {       "Time a message waits in the mailbox before processing.", "seconds"),     reg.gauge_family("caf.actor", "mailbox-size", {"name"},                      "Number of messages in the mailbox."),+    {+      reg.counter_family("caf.actor.stream", "processed-elements",+                         {"name", "type"},+                         "Number of processed stream elements from upstream."),+      reg.gauge_family("caf.actor.stream", "input_buffer_size",

Inconsistent naming, did you mean:

      reg.gauge_family("caf.actor.stream", "input-buffer-size",
Neverlord

comment created time in a month

Pull request review commentactor-framework/actor-framework

Add telemetry for streams

 class CAF_CORE_EXPORT scheduled_actor : public local_actor,   /// Pointer to a private thread object associated with a detached actor.   detail::private_thread* private_thread_; +  /// Catche metric objects for inbound stream traffic.

"Catche" is not a word.

Neverlord

comment created time in a month

Pull request review commentactor-framework/actor-framework

Add telemetry for streams

 class CAF_CORE_EXPORT local_actor : public monitorable_actor {     telemetry::int_gauge* mailbox_size = nullptr;   }; +  /// Optional metrics for inbound stream traffic collected by individual actors+  /// when configured to do so.+  struct inbound_stream_metrics_t {+    /// Counts the total number of processed stream elements from upstream.+    telemetry::int_counter* processed_elements = nullptr;++    /// Tracks how many stream elements from upstream are currently buffered.+    telemetry::int_gauge* input_buffer_size = nullptr;

The struct is already call inbound_stream_metrics_t, maybe we should drop the input_ part? (Same for outbound_stream_metrics_t below.)

Neverlord

comment created time in a month

Pull request review commentactor-framework/actor-framework

Add telemetry for streams

 class CAF_CORE_EXPORT scheduled_actor : public local_actor,   /// Pointer to a private thread object associated with a detached actor.   detail::private_thread* private_thread_; +  /// Catche metric objects for inbound stream traffic.+  inbound_stream_metrics_map inbound_stream_metrics_;++  /// Catche metric objects for outbound stream traffic.

"Catche" is not a word.

Neverlord

comment created time in a month

PullRequestReviewEvent
PullRequestReviewEvent

push eventjosephnoir/nvim

Joseph Noir

commit sha c2ef0fbab34eb6690d9ae1cddb871d3b1658d79f

Remove tmux setting that made problems

view details

Joseph Noir

commit sha f4669dd51a5943c33b1352399973be2f689403cc

Add search path for compile commands

view details

push time in a month

push eventactor-framework/incubator

Joseph Noir

commit sha 98dd564196213e5f89926579a18b7433abc23e70

Implement consume for length prefix framing

view details

push time in a month

push eventactor-framework/actor-framework

Joseph Noir

commit sha 72ae669601fec2f13541df0ba2f94af198d34b6c

Cleanup changelog entry

view details

push time in 2 months

push eventactor-framework/actor-framework

Joseph Noir

commit sha c77c77e84ee27e8617bf85965a789a6ae5101b23

Document fixed datagram servant registration

view details

push time in 2 months

create barnchactor-framework/actor-framework

branch : topic/port-udp-shutdown

created branch time in 2 months

PR opened actor-framework/actor-framework

Reviewers
Fix datagram servant shutdown bugfix

In cases where a datagram server did not participate in any communication it did not get added to its broker and wasn't shut down correctly. As a result, the multiplexer would hang in its poll loop and prevent the actor system from shutting down.

+2 -0

0 comment

1 changed file

pr created time in 2 months

create barnchactor-framework/actor-framework

branch : topic/udp-shutdown

created branch time in 2 months

push eventactor-framework/actor-framework

Dominik Charousset

commit sha 9d542932825ad516c7c65b516673847a0f95a534

Capture message text of exceptions if actors die

view details

Dominik Charousset

commit sha 50c0f8bccf31a988a325c60ba269cc2c39a37c90

Add unit tests for the default exception handler

view details

Dominik Charousset

commit sha 4adb13e2a2ea528b4edf1a0a2b5f58adb8aec4f1

Remove overly strict unit test check

view details

Joseph Noir

commit sha 27645ccb122bfd497bd681b797872cb355c7dcf8

Merge pull request #1118 Capture message text of exceptions if actors die

view details

push time in 2 months

delete branch actor-framework/actor-framework

delete branch : issue/1117

delete time in 2 months

issue closedactor-framework/actor-framework

Capture message text of exceptions if actors die

If a worker dies due to an unhandled exception, the default exception handler creates an error with sec::runtime_error. For exceptions that derive from std::exception, CAF could at least store the exception message in the error as well.

closed time in 2 months

Neverlord

Pull request review commentactor-framework/actor-framework

Capture message text of exceptions if actors die

 void scheduled_actor::default_exit_handler(scheduled_actor* ptr, exit_msg& x) { }  #ifdef CAF_ENABLE_EXCEPTIONS-error scheduled_actor::default_exception_handler(pointer ptr,+error scheduled_actor::default_exception_handler(local_actor* ptr,                                                  std::exception_ptr& x) {   CAF_ASSERT(x != nullptr);   try {     std::rethrow_exception(x);-  } catch (const std::exception& e) {+  } catch (std::exception& e) {

k

Neverlord

comment created time in 2 months

Pull request review commentactor-framework/actor-framework

Capture message text of exceptions if actors die

 void scheduled_actor::default_exit_handler(scheduled_actor* ptr, exit_msg& x) { }  #ifdef CAF_ENABLE_EXCEPTIONS-error scheduled_actor::default_exception_handler(pointer ptr,+error scheduled_actor::default_exception_handler(local_actor* ptr,                                                  std::exception_ptr& x) {   CAF_ASSERT(x != nullptr);   try {     std::rethrow_exception(x);-  } catch (const std::exception& e) {+  } catch (std::exception& e) {

Why loose the const here?

Neverlord

comment created time in 2 months

push eventactor-framework/actor-framework

Dominik Charousset

commit sha a5aa1dac34efaea462e596a7ad2720f73ea4ad42

Store hosts as IP address when parsing URIs

view details

Joseph Noir

commit sha 3ae46b22c637680f55698169b132f41af80041da

Merge pull request #1125 Store hosts as IP address when parsing URIs

view details

push time in 2 months

delete branch actor-framework/actor-framework

delete branch : issue/1123

delete time in 2 months

issue closedactor-framework/actor-framework

URI parser stores IPv4 addresses as strings

When parsing an URI such as tcp://127.0.0.1:8080, the resulting URI stores 127.0.0.1 as a string rather than storing it as an IP address.

closed time in 2 months

Neverlord

push eventactor-framework/actor-framework

Dominik Charousset

commit sha 0f47d22ece7d1fc05796dfe6b7c66efa01976ca3

Close socket if SSL session initialization fails

view details

Joseph Noir

commit sha f0301e513a9fff32988d235659628620f13cae8d

Merge pull request #1120 Close socket if SSL session initialization fails

view details

push time in 2 months

delete branch actor-framework/actor-framework

delete branch : issue/1119

delete time in 2 months

PR merged actor-framework/actor-framework

Close socket if SSL session initialization fails bugfix

Closes #1119.

The hang was caused by CAF "forgetting" about a socket without closing it. If the OpenSSL module has enough data read, it immediately tries to read data for the SSL handshake after accepting a socket. If this fails, the socket gets discarded without creating a scribe that claims ownership of the socket. Using a socket_guard makes sure that the socket gets closed in case of an error that happens before the scribe takes ownership.

+6 -1

0 comment

1 changed file

Neverlord

pr closed time in 2 months

push eventjosephnoir/nvim

Joseph Noir

commit sha 9c351e01341ed17feabcd17cdf953421fb3e274c

Add solarized8, sort plugins

view details

push time in 3 months

push eventjosephnoir/nvim

Joseph Noir

commit sha 60fdfcaa7fdbaf5138e6a800a75174daee143b62

Don't format python headers

view details

push time in 3 months

PublicEvent

push eventjosephnoir/nvim

Joseph Noir

commit sha 689f890a15fc6a3119f635ce377fec18f262b3ea

Show errors for whole line

view details

Joseph Noir

commit sha f2d90a4849a9f78247edd9e0dec0cdcd70cc692f

Remove overlapping keybinds

view details

push time in 3 months

push eventactor-framework/actor-framework

Dominik Charousset

commit sha afbf30de042d696bb32a4e99ad71a56136619680

Switch to new, cleaner config syntax

view details

Dominik Charousset

commit sha cd0ac7978465146f71e494455d64ae1dafbc7796

Update enum strings

view details

Dominik Charousset

commit sha 49ac3643892e8016e52071a4c3261da642b055ef

Fix build on Debian 9 and MSVC

view details

Dominik Charousset

commit sha 817c6e0167770cee301bb3a7d046ad8562c129b2

Apply suggestions from code review Co-authored-by: Joseph Noir <josephnoir@users.noreply.github.com>

view details

Joseph Noir

commit sha d80354748ad6778b09acfc0041dbc1b10f262db2

Merge pull request #1115 Switch to new, cleaner config syntax

view details

push time in 3 months

delete branch actor-framework/actor-framework

delete branch : issue/941

delete time in 3 months

PR merged actor-framework/actor-framework

Switch to new, cleaner config syntax new feature

At long last, it's time to say goodbye to the INI syntax. Initially, we've picked INI for its simplicity and because we could parse it without an actual parser backend. Now that we do have a parser backend that can cope with nested configuration blocks, it's time to move on. The new format is essentially the syntax we've been supporting for quite a while minus the [category] notation. There are basically two additions:

  • Keys can be quoted.
  • Strings can use either ' or ". They behave like they would in JavaScript (i.e., only affect escaping).

By supporting quoted keys, the parser can now finally read the to_string output of settings.

Closes #941.

+1303 -182

0 comment

27 changed files

Neverlord

pr closed time in 3 months

issue closedactor-framework/actor-framework

Accept deep_to_string output for settings in the config parser

Currently, the config parser does not accept the output that caf::deep_to_strings generates when passing a caf::settings. Tweaking the parser to accept that format would enable "round trips" and makes it easier to work with settings (e.g., by allowing users to just print the output of deep_to_string to a config file).

closed time in 3 months

Neverlord

Pull request review commentactor-framework/actor-framework

Switch to new, cleaner config syntax

+/******************************************************************************+ *                       ____    _    _____                                   *+ *                      / ___|  / \  |  ___|    C++                           *+ *                     | |     / _ \ | |_       Actor                         *+ *                     | |___ / ___ \|  _|      Framework                     *+ *                      \____/_/   \_|_|                                      *+ *                                                                            *+ * Copyright 2011-2018 Dominik Charousset                                     *+ *                                                                            *+ * Distributed under the terms and conditions of the BSD 3-Clause License or  *+ * (at your option) under the terms and conditions of the Boost Software      *+ * License 1.0. See accompanying files LICENSE and LICENSE_ALTERNATIVE.       *+ *                                                                            *+ * If you did not receive a copy of the license files, see                    *+ * http://opensource.org/licenses/BSD-3-Clause and                            *+ * http://www.boost.org/LICENSE_1_0.txt.                                      *+ ******************************************************************************/++#define CAF_SUITE detail.config_consumer++#include "caf/detail/config_consumer.hpp"++#include "caf/test/dsl.hpp"++#include "caf/detail/parser/read_config.hpp"++using std::string;++using namespace caf;++// List-of-strings.+using ls = std::vector<std::string>;++namespace {++constexpr const string_view test_config1 = R"(+is_server=true+port=4242+nodes=["sun", "venus", ]+logger{+  file-name = "foobar.conf" # our file name+}+scheduler { # more settings+  timing  =  2us # using microsecond resolution+}+)";++constexpr const string_view test_config2 = R"(+is_server = true+logger = {+  file-name = "foobar.conf"+}+port = 4242+scheduler : {+  timing = 2us,+}+nodes = ["sun", "venus"]+)";++struct fixture {+  config_option_set options;+  settings config;++  fixture() {+    options.add<bool>("global", "is_server", "enables server mode")+      .add<uint16_t>("global", "port", "sets local or remote port")+      .add<ls>("global", "nodes", "list of remote nodes")+      .add<string>("logger", "file-name", "log output file")+      .add<int>("scheduler", "padding", "some integer")+      .add<timespan>("scheduler", "timing", "some timespan");+  }+};++} // namespace++CAF_TEST_FIXTURE_SCOPE(config_consumer_tests, fixture)++CAF_TEST(config_consumer) {+  string_view str = test_config1;+  detail::config_consumer consumer{options, config};+  string_parser_state res{str.begin(), str.end()};+  detail::parser::read_config(res, consumer);+  CAF_CHECK_EQUAL(res.code, pec::success);+  CAF_CHECK_EQUAL(string_view(res.i, res.e), string_view());

Neat.

Neverlord

comment created time in 3 months

more