Skip to content
Snippets Groups Projects
  1. Nov 19, 2018
    • George Joseph's avatar
      backtrace: Refactor ast_bt_get_symbols so it doesn't crash · ece5f801
      George Joseph authored
      We've been seeing crashes in libbfd when we attempt to generate
      a stack trace from multiple threads.  It turns out that libbfd
      is NOT thread-safe.  It can cache the bfd structure and give it to
      multiple threads without protecting itself.  To get around this,
      we've added a global mutex around the bfd functions and also have
      refactored the use of those functions to be more efficient and
      to provide more information about inlined functions.
      
      Also added a few more tests to test_pbx.c.  One just calls
      ast_assert() and the other calls ast_log_backtrace().  Neither are
      run by default.
      
      WARNING:  This change necessitated changing the return value of
      ast_bt_get_symbols() from an array of strings to a VECTOR of
      strings.  However, the use of this function outside Asterisk is not
      likely.
      
      ASTERISK-28140
      
      Change-Id: I79d02862ddaa2423a0809caa4b3b85c128131621
      ece5f801
  2. Nov 18, 2018
  3. Nov 17, 2018
  4. Nov 16, 2018
    • George Joseph's avatar
    • George Joseph's avatar
      CI: Allow runUnittests to use 'expect' to run the tests · 8ff3435c
      George Joseph authored
      There seems to be a race condition between starting the asterisk
      daemon and attempting to use 'asterisk -r' that can cause the
      control socket file to not be created.  Since all of the Jenkins
      slaves have 'expect' installed, the runUnittests script can use
      it to start asterisk in the forground and issue the commands
      interactively.  This is much more reliable and it can also make
      startup errors more visible since they'll be in the Jenkins console
      output.
      
      If 'expect' isn't installed, the original daemon/asterisk -r
      process is used.
      
      Also added a "core show settings" before running the tests
      and added "notice,warning,error" to the console log.
      
      Change-Id: Idd656085f854afede813ac241b9e312b31358160
      8ff3435c
    • Corey Farrell's avatar
      taskprocessor: Prevent race creating new taskprocessor. · 9abd5e10
      Corey Farrell authored
      Task processors are retrieved using a 'get or create' pattern.  The
      singleton container was unlocked between the get and create steps so
      it's possible that two threads could create task processors with the
      same name at the same time.
      
      Change-Id: Id64fae94a6a1e940ddf38fde622dcd4391635382
      9abd5e10
    • Corey Farrell's avatar
      pjproject-bundled: Use AST_DEVMODE for conditional compilation. · 752fd06d
      Corey Farrell authored
      We previously allowed resample and g711 codecs to be built when
      TEST_FRAMEWORK was enabled.  This could cause errors if the testsuite
      was run without this option enabled.  Switch the build system to allow
      those codecs to be built when --enable-dev-mode is used.  This removes a
      chance for strange testsuite errors from use of an inadequate pjsua
      binary.
      
      Change-Id: Iee8a3613cdb711fa7e7d217c5a775a575907ae22
      752fd06d
  5. Nov 15, 2018
  6. Nov 14, 2018
  7. Nov 13, 2018
  8. Nov 12, 2018
  9. Nov 11, 2018
  10. Nov 08, 2018
    • Corey Farrell's avatar
      jansson-bundled: Patch for off-nominal crash. · d9add7e0
      Corey Farrell authored
      pack_string crashed on non-NULL strings returned when s->has_error was
      true if the string was the result of 's' format without '#', '%' or '+'.
      
      Change-Id: Ic125df691d81ba2cbc413e37bdae657b304d20d0
      d9add7e0
    • Corey Farrell's avatar
      pbx_config: Only the first [globals] section is seen. · 8e34cb30
      Corey Farrell authored
      If multiple [globals] sections are used (for example via separate
      included files), only the first one is processed.  This can result in
      lost global variables when using a modular extensions.conf.
      
      ASTERISK-28146 #close
      
      Change-Id: Iaac810c0a7c4d9b1bf8989fcc041cdb910ef08a0
      8e34cb30
  11. Nov 07, 2018
    • Chris-Savinovich's avatar
      res_pjsip: Send a 503 response when overload state if reliable transport. · a3fc97aa
      Chris-Savinovich authored
      When Asterisk's taskprocessors get overloaded we need to reduce the work
      load. res_pjsip currently ignores new SIP requests and relies on SIP
      retransmissions in the hope that the overload condition will clear soon
      enough to handle the retransmitted SIP request.
      This change adds the following code after ast_taskprocessor_alert_get()
      has returned TRUE:
      1- identifies transport type. If non-udp then send a 503 response
      2- if transport type is udp/udp6 then ignore, as before.
      
      Change-Id: I1c230b40d43a254ea0f226b7acf9ee480a5d3836
      a3fc97aa
    • Joshua Colp's avatar
      Merge "stasis: Clarify lifetime of topics." · d3bc9e67
      Joshua Colp authored
      d3bc9e67
  12. Nov 06, 2018
    • Kevin Harwell's avatar
      res_pjsip: formatting error in documentation · fdca9cb6
      Kevin Harwell authored
      The use of a '|' in the "global/debug" synopsis documentation caused the
      generated html table on the wiki to add an extra column that included the
      text after the pipe.
      
      This patch replaces the pipe with a comma.
      
      ASTERISK-28150
      
      Change-Id: I3d79a6ca6d733d9cb290e779438114884b98a719
      fdca9cb6
    • Alexei Gradinari's avatar
      res_pjsip.c: Make taskprocessor scheduling algorithm pick the shortest queue · 5f3f7077
      Alexei Gradinari authored
      The current round-robin method does not take the current taskprocessor
      load into consideration when distributing requests.  Using the least-size
      method the request goes to the taskprocessor that is servicing the least
      number of active tasks at the current time.
      
      Longer running tasks with the round-robin method can delay processing
      tasks.
      
      * Change the algorithm from round-robin to least-size for picking the
      PJSIP taskprocessor from the default serializer pool.
      
      Change-Id: I7b8d8cc2c2490494f579374b6af0a4868e3a37cd
      5f3f7077
  13. Nov 05, 2018
    • George Joseph's avatar
    • Joshua Colp's avatar
      stasis: Clarify lifetime of topics. · bf579222
      Joshua Colp authored
      As mentioned in the comment I've added in the code there is no
      ability to unsubscribe all subscribers from a topic and explicitly
      destroy it. This is not currently a problem as we have two types of
      topics:
      
      Long lived topics which exist for the lifetime of the system.
      Ephemeral topics which feed a long lived topic.
      
      In the case of the ephemeral topics there is no subscriber which does
      not have its lifetime managed by the same entity that has created
      the topic. This ensures that when the topic is being unreferenced the
      subscribers are also unsubscribed and destroyed, allowing the topic
      to ultimately be destroyed as well.
      
      Change-Id: Ic5e244da7b16b1895ba1fc5ece481ebba5809c9a
      bf579222
  14. Nov 02, 2018
  15. Nov 01, 2018
    • Pascal Cadotte Michaud's avatar
      contrib/sip_to_pjsip: add a --quiet option to avoid prints · ebff81e3
      Pascal Cadotte Michaud authored
      Using the --quiet or -q option in conjonction with /dev/stdout as the output
      file allow the output to be used as a valid configuration.
      
      Given a script that generates a valid sip.conf I can pipe the output of that
      script into `sip_to_pjsip.py -q /dev/stdin /dev/stdout`. This allow me to use
      that piped command in my pjsip.conf using the `exec` command.
      
      ASTERISK-28136
      
      Change-Id: I7b0e2e90e2549f3f8e01dc96701f111b5874c88d
      ebff81e3
  16. Oct 31, 2018
  17. Oct 30, 2018
Loading