Autocomplete bug?

I started a new document, but the autocomplete keeps popping up as I type with these symbols I've never seen before? Is it a bug?

Shouldn't autocomplete only parse the current document for symbols? On a related note, I wish we could specify using regex what is parsed for autocomplete.

Moving to core repo.


Split requirements.txt into what is required for the CLI and what is required for other activities

Just reviewing your requirements.txt file.  It seems to have older libraries in there such as Jinja2 (no longer needed I think) and Sphinx (needed for building the docs).
Consider creating a requirements-test.txt and requirements-docs.txt to manage these separately.
Also slim down the default requirements.txt for things required for just the client

Done!


[edn/dv] SW_CMD_REQ writes happen twice

Description
Writes to the SW_CMD_REQ register happen twice during DV. This has no influence on the commands issued at the CSRNG block. Check if there is something wrong in the DV environment causing writes to the SW_CMD_REQ to happen twice.
 But I think this is what I'd expect: each write happens over two cycles (for the A and D steps in the TileLink protocol) and the OpenTitan DV code for most blocks runs through the same code in both cases. Rather confusing! If you look at the channel variable, you'll see it switches between AddrChannel and DataChannel.

Yes you are right, I added some extra logging.
Thanks for your explanation.
I'll close this issue now.


mobile: Add native filter assertions for SendHeadersTest and SendTrailersTest

This PR adds native filter assertions for SendHeadersTest and SendTrailersTest in order to verify that the logic for sending headers and trailers works. Native filters are only available when full protos are enabled, so they are compiled out when full protos are disabled.
Risk Level: low (tests only)
Testing: unit tests
Docs Changes: n/a
Release Notes: n/a
Platform Specific Features: n/a

/assign @abeyad


Use StoryboardNames enum to identify storyboards instead of 'hardcoded strings'

Thanks to eidolon project I discovered sbconstants command, and it looks really interesting to be aware of changes in storyboards identifiers.
Using that identifiers instead of "raw strings", do that when they change, compiler tell us that something was wrong, so it's better to use these identifiers.

Cool, great idea! CI is failing just because of a pr from a fork. Thanks a lot!

nice


ImportError: cannot import name 'clock' from 'time' (unknown location)

I get the below error when trying to run the dataPrepare.py script. Any help would be greatly appreciated? I am not sure if there is a conflict in library versions, or something basic most people have installed in their python libs that I am missing, or what it could be?
I feel like I could bash my head against this for days without a hint as to where I should be looking?
C:\Users\hanso\Documents\GitHub\TecoGAN>python3 dataPrepare.py --help
Traceback (most recent call last):
File "dataPrepare.py", line 6, in
from lib.data import video
File "C:\Users\hanso\Documents\GitHub\TecoGAN\lib\data\video.py", line 41, in
from time import clock
ImportError: cannot import name 'clock' from 'time' (unknown location)

Apparently clock got removed from the time module in python 3.8. You could try to use python 3.7, importing clock from time works for me in that version.
In case you still have issues you could have a look at the docker environment I created for the TecoGAN project: https://github.com/tom-doerr/TecoGAN-Docker

@tom-doerr What is did they replace clock function within time in python 3.8, was it just poof removed or migrated into something else when they deprecated clock


Hot fix panic for function_signature

I am totally agree this comment:
https://github.com/rust-analyzer/rust-analyzer/blob/f1cb5b8a29ce509bf1f8d6df97d4b6586b9a2dac/crates/ra_ide/src/display/function_signature.rs#L3-L4
But let hot fix all panic for right now, it is so disturbing when browsing code...

bors r+


[Spotify Beta] Doesn't tell user when premium is required, just crashed the menu bar player

Extension
https://www.raycast.com/mattisssa/spotify-beta
Description

Error:
Error: Player command failed: Premium required

Ms:pause.ts:19:10
async onAction:nowPlayingMenuBar.js:99:2780
index.js:7:35293

Steps To Reproduce

Have a non-premium spotify account
Use the menubar player to skip

Current Behaviour
Crashes and tells the user theres an error.
Expected Behaviour
Tell user they need premium.

Thanks for that! Will look into it

Should be better now, let me know!


Ubuntu install instructions don't work

I tried the official instructions:
$ wget -O - https://deb.goaccess.io/gnugpg.key | gpg --dearmor | sudo tee /usr/share/keyrings/goaccess.gpg >/dev/null
$ echo "deb [signed-by=/usr/share/keyrings/goaccess.gpg] https://deb.goaccess.io/ $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/goaccess.list
$ sudo apt-get update
$ sudo apt-get install goaccess

On a regular digital ocean ubuntu 20.04 server:
root@billmill:~# lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 20.04.1 LTS
Release:	20.04
Codename:	focal
root@billmill:~# uname -a
Linux billmill 5.4.0-77-generic #86-Ubuntu SMP Thu Jun 17 02:35:03 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

But installing goaccess gets me version 1.3. apt-cache showpkg only shows me the one from the default repo:
root@billmill:~# apt-cache showpkg goaccess
Package: goaccess
Versions:
1:1.3-1 (/var/lib/apt/lists/mirrors.digitalocean.com_ubuntu_dists_focal_universe_binary-amd64_Packages) (/var/lib/dpkg/status)
 Description Language:
                 File: /var/lib/apt/lists/mirrors.digitalocean.com_ubuntu_dists_focal_universe_binary-amd64_Packages
                  MD5: 47c2aaff8382c12563ab947e7364aee4
 Description Language: en
                 File: /var/lib/apt/lists/mirrors.digitalocean.com_ubuntu_dists_focal_universe_i18n_Translation-en
                  MD5: 47c2aaff8382c12563ab947e7364aee4

Reverse Depends:
Dependencies:
1:1.3-1 - libc6 (2 2.28) libmaxminddb0 (2 1.0.2) libncurses6 (2 6) libtinfo6 (2 6) libtokyocabinet9 (2 1.4.47)
Provides:
1:1.3-1 -
Reverse Provides:

One thing I notice is that apt-cache policy doesn't show the goaccess repository:
root@billmill:~# apt-cache policy | grep -E 'goac|caddy'
 500 https://dl.cloudsmith.io/public/caddy/stable/deb/debian any-version/main amd64 Packages
     release o=cloudsmith/caddy/stable,a=any-version,n=any-version,l=source=none,c=main,b=amd64

The sources.list.d file is present, and looks very similar to caddy's:
root@billmill:~# cat /etc/apt/sources.list.d/caddy-stable.list
# Source: Cloudsmith<EMAIL_ADDRESS># Repository: Caddy / stable
# Description: Fast, multi-platform web server with automatic HTTPS

deb https://dl.cloudsmith.io/public/caddy/stable/deb/debian any-version main

deb-src https://dl.cloudsmith.io/public/caddy/stable/deb/debian any-version main
root@billmill:~# cat /etc/apt/sources.list.d/goaccess.list
deb [signed-by=/usr/share/keyrings/goaccess.gpg] https://deb.goaccess.io/ focal main

apt-get update does show it:
root@billmill:~# sudo apt-get update
0% [Working]
Hit:1 http://security.ubuntu.com/ubuntu focal-security InRelease
Get:2 http://mirrors.digitalocean.com/ubuntu focal InRelease [265 kB]
Get:3 https://dl.cloudsmith.io/public/caddy/stable/deb/debian any-version InRelease [7491 B]
Hit:4 http://mirrors.digitalocean.com/ubuntu focal-updates InRelease
Hit:5 http://mirrors.digitalocean.com/ubuntu focal-backports InRelease
Hit:6 https://deb.goaccess.io focal InRelease
Fetched 272 kB in 3s (78.3 kB/s)
Reading package lists... Done

there is a file in /var/lib/apt/lists for goaccess, where apparently apt stores the packages available from a repository, however unlike the caddy repository it appears not to show any packages:
root@billmill:~# grep ^Package /var/lib/apt/lists/{dl.cloudsmith*,deb.goaccess*} | sort -u
/var/lib/apt/lists/dl.cloudsmith.io_public_caddy_stable_deb_debian_dists_any-version_main_binary-amd64_Packages:Package: caddy

I'm no apt expert, I'm just trying some stuff based on googling. Any idea what I need to do to get a recent version of goaccess installed? Or, if I can try something to make debugging clearer, happy to help.

Thanks for reporting this. Completely missed adding the focal package to the repo on the latest update. Please try updating again.
goaccess |    1:1.5.7-jammy |    jammy | arm64, amd64
goaccess |   1:1.5.7-impish |   impish | amd64
goaccess |   1:1.5.7-bionic |   bionic | arm64, amd64
goaccess |    1:1.5.7-focal |    focal | arm64, amd64
goaccess |  1:1.5.7-stretch |  stretch | amd64, i386
goaccess |  1:1.5.7-hirsute |  hirsute | amd64
goaccess |   2:1.5.7-buster |   buster | arm64, amd64
goaccess | 1:1.5.7-bullseye | bullseye | amd64

Thanks for the fix! I apt-get updated, and now it looks like the package is present:
root@billmill:~# apt-cache showpkg goaccess
Package: goaccess
Versions:
1:1.5.7-focal (/var/lib/apt/lists/deb.goaccess.io_dists_focal_main_binary-amd64_Packages)
 Description Language:
                 File: /var/lib/apt/lists/deb.goaccess.io_dists_focal_main_binary-amd64_Packages
                  MD5: c0af8b65ef8df63b3bfb124d96da1778

I haven't installed it because I had to downgrade for #2308, but it looks like it would work fine


Test

Hello @meteorcloudy, modules without specific GitHub maintainers (yaml-cpp) have been updated in this PR. Please review the changes.

Hello @meteorcloudy, modules without existing maintainers (zlib) have been updated in this PR. Please review the changes.


serverless: Add test(s) for sentry_lambda_handler

To avoid regressions, add test to cover the bug fix in https://github.com/getsentry/sentry-python/pull/1106.

So this is basically just a "todo" item, that we do not forget about adding tests. We are starting to work on a update to the AWS Lambda integration, so maybe this can be done during this update.

ok, closing for now.


Fixed Add New group button for admins

"Add New" group button on the admin group page is fixed.

Hi !
There are a couple of tests failing:

Error:
test: An authenticated and authorized admin doing a POST on :add_group should be able to add group without groupname. (GroupsControllerTest):
ActionController::RoutingError: No route matches {:action=>"add_group", :controller=>"groups", :assignment_id=>965445079}
test/functional/authenticated_controller_test.rb:16:in post_as' test/functional/groups_controller_test.rb:114:in __bind_1324406358_956855'

Error:
test: An authenticated and authorized admin doing a POST on :add_group should be able to create with groupname. (GroupsControllerTest):
ActionController::RoutingError: No route matches {:action=>"add_group", :controller=>"groups", :new_group_name=>"test", :assignment_id=>965445078}
test/functional/authenticated_controller_test.rb:16:in post_as' test/functional/groups_controller_test.rb:124:in __bind_1324406359_179885'

Error:
test: An authenticated and authorized student doing a should GET on :add_group. (GroupsControllerTest):
ActionController::RoutingError: No route matches {:action=>"add_group", :controller=>"groups", :assignment_id=>965445077}
test/functional/authenticated_controller_test.rb:10:in get_as' test/functional/groups_controller_test.rb:24:in __bind_1324406373_752176'

Thanks !

Thanks !


glitch  when scrolling over icons in vs code

Environment (please complete the following information):

OS (e.g., Windows 10):
Extension version (e.g., 1.2.3):

Describe the bug:

Repro steps:

Expected behavior:

Additional context:

Closing as incomplete for now. But please feel free to add more information if you have any and we can re-open the issue.
Right now, the issue doesn't contain enough information for us to investigate.


update deprecations and dependencies

Capybara requires a newer version of regexp_parser so I updated your dependency, ecma-re-validator.
Now to update json_schemer
Thanks for the sweet gem!
Plated will be using it to validate our messages we send to SNS to make sure we aren't missing any data

Thanks for getting everything updated! Much appreciated

Released in 0.1.8


doc: add public endpoint

Let's have two columns - what is supported and public endpoint url? Maybe we support some network, but don't have public endpoint right away

It is kind of wired that some networks are not supported but have public endpoints.....

Let's have two columns - what is supported and public endpoint url? Maybe we support some network, but don't have public endpoint right away

It is kind of wired that some networks are not supported but have public endpoints.....

Hmm, it was like that till now. We can always leave it like that if you feel it's better.


Update to 1.20.1 please

Update to 1.20.1 please

Updated - https://github.com/mineLdiver/panda-info/releases/tag/1.0.1%2B1-20


Assert from f2py when installing from source

I am trying to install SciPy from source and I'm having this error:
$ python setup.py install
scipy/linalg/_generate_pyx.py: all files up-to-date
scipy/special/_generate_pyx.py: all files up-to-date
Running scipy/special/_generate_pyx.py
Running scipy/linalg/_generate_pyx.py
scipy/interpolate/_ppoly.pyx has not changed
scipy/optimize/_trlib/_trlib.pyx has not changed
scipy/optimize/_lsq/givens_elimination.pyx has not changed
scipy/signal/_max_len_seq_inner.pyx has not changed
scipy/interpolate/_bspl.pyx has not changed
scipy/signal/_upfirdn_apply.pyx has not changed
scipy/ndimage/src/_cytest.pyx has not changed
scipy/signal/_spectral.pyx has not changed
scipy/sparse/_csparsetools.pyx.in has not changed
scipy/optimize/_group_columns.pyx has not changed
scipy/sparse/csgraph/_traversal.pyx has not changed
scipy/sparse/csgraph/_min_spanning_tree.pyx has not changed
scipy/sparse/csgraph/_tools.pyx has not changed
scipy/sparse/csgraph/_reordering.pyx has not changed
scipy/special/_ufuncs_cxx.pyx has not changed
scipy/sparse/csgraph/_shortest_path.pyx has not changed
scipy/ndimage/src/_ni_label.pyx has not changed
scipy/interpolate/interpnd.pyx has not changed
scipy/special/_ellip_harm_2.pyx has not changed
scipy/special/cython_special.pyx has not changed
scipy/spatial/ckdtree.pyx has not changed
scipy/spatial/_voronoi.pyx has not changed
scipy/special/_comb.pyx has not changed
scipy/spatial/qhull.pyx has not changed
scipy/linalg/_decomp_update.pyx.in has not changed
scipy/spatial/_hausdorff.pyx has not changed
scipy/linalg/cython_lapack.pyx has not changed
scipy/special/_ufuncs.pyx has not changed
scipy/linalg/cython_blas.pyx has not changed
scipy/special/_test_round.pyx has not changed
scipy/linalg/_solve_toeplitz.pyx has not changed
scipy/cluster/_optimal_leaf_ordering.pyx has not changed
scipy/cluster/_hierarchy.pyx has not changed
scipy/cluster/_vq.pyx has not changed
scipy/_lib/messagestream.pyx has not changed
scipy/_lib/_ccallback_c.pyx has not changed
scipy/stats/_stats.pyx has not changed
scipy/io/matlab/mio_utils.pyx has not changed
scipy/io/matlab/streams.pyx has not changed
scipy/io/matlab/mio5_utils.pyx has not changed

Note: if you need reliable uninstall behavior, then install
with pip instead of using `setup.py install`:

  - `pip install .`       (from a git repo or downloaded source
                           release)
  - `pip install scipy`   (last SciPy release on PyPI)

Cythonizing sources
lapack_opt_info:
lapack_mkl_info:
customize UnixCCompiler
  libraries mkl_rt not found in ['/home/juanlu/.pyenv/versions/scipy37_4/lib', '/usr/local/lib', '/usr/lib', '/usr/lib/x86_64-linux-gnu']
  NOT AVAILABLE

openblas_lapack_info:
customize UnixCCompiler
customize UnixCCompiler
customize UnixCCompiler
C compiler: gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC

creating /tmp/tmpwqu_j502/tmp
creating /tmp/tmpwqu_j502/tmp/tmpwqu_j502
compile options: '-c'
gcc: /tmp/tmpwqu_j502/source.c
gcc -pthread /tmp/tmpwqu_j502/tmp/tmpwqu_j502/source.o -L/usr/lib/x86_64-linux-gnu -lopenblas -o /tmp/tmpwqu_j502/a.out
customize UnixCCompiler
  FOUND:
    libraries = ['openblas', 'openblas']
    library_dirs = ['/usr/lib/x86_64-linux-gnu']
    language = c
    define_macros = [('HAVE_CBLAS', None)]

  FOUND:
    libraries = ['openblas', 'openblas']
    library_dirs = ['/usr/lib/x86_64-linux-gnu']
    language = c
    define_macros = [('HAVE_CBLAS', None)]

Splitting linalg.interpolative Fortran source files
blas_opt_info:
blas_mkl_info:
customize UnixCCompiler
  libraries mkl_rt not found in ['/home/juanlu/.pyenv/versions/scipy37_4/lib', '/usr/local/lib', '/usr/lib', '/usr/lib/x86_64-linux-gnu']
  NOT AVAILABLE

blis_info:
customize UnixCCompiler
  libraries blis not found in ['/home/juanlu/.pyenv/versions/scipy37_4/lib', '/usr/local/lib', '/usr/lib', '/usr/lib/x86_64-linux-gnu']
  NOT AVAILABLE

openblas_info:
customize UnixCCompiler
customize UnixCCompiler
customize UnixCCompiler
  FOUND:
    libraries = ['openblas', 'openblas']
    library_dirs = ['/usr/lib/x86_64-linux-gnu']
    language = c
    define_macros = [('HAVE_CBLAS', None)]

  FOUND:
    libraries = ['openblas', 'openblas']
    library_dirs = ['/usr/lib/x86_64-linux-gnu']
    language = c
    define_macros = [('HAVE_CBLAS', None)]

[makenpz] scipy/special/tests/data/boost.npz is already up to date
[makenpz] scipy/special/tests/data/gsl.npz is already up to date
[makenpz] scipy/special/tests/data/local.npz is already up to date
non-existing path in 'scipy/signal/windows': 'tests'
non-existing path in 'scipy/sparse': 'sparsetools/sparsetools_impl.h'
non-existing path in 'scipy/sparse': 'sparsetools/bsr_impl.h'
non-existing path in 'scipy/sparse': 'sparsetools/csc_impl.h'
non-existing path in 'scipy/sparse': 'sparsetools/csr_impl.h'
non-existing path in 'scipy/sparse': 'sparsetools/other_impl.h'
running install
running bdist_egg
running egg_info
running build_src
build_src
building py_modules sources
building library "dfftpack" sources
building library "fftpack" sources
building library "mach" sources
building library "quadpack" sources
building library "lsoda" sources
building library "vode" sources
building library "dop" sources
building library "fitpack" sources
building library "fwrappers" sources
building library "odrpack" sources
building library "minpack" sources
building library "rootfind" sources
building library "superlu_src" sources
building library "arpack_scipy" sources
building library "sc_c_misc" sources
building library "sc_cephes" sources
building library "sc_mach" sources
building library "sc_amos" sources
building library "sc_cdf" sources
building library "sc_specfun" sources
building library "statlib" sources
building extension "scipy.cluster._vq" sources
building extension "scipy.cluster._hierarchy" sources
building extension "scipy.cluster._optimal_leaf_ordering" sources
building extension "scipy.fftpack._fftpack" sources
f2py options: []
  adding 'build/src.linux-x86_64-3.7/build/src.linux-x86_64-3.7/scipy/fftpack/fortranobject.c' to sources.
  adding 'build/src.linux-x86_64-3.7/build/src.linux-x86_64-3.7/scipy/fftpack' to include_dirs.
building extension "scipy.fftpack.convolve" sources
f2py options: []
  adding 'build/src.linux-x86_64-3.7/build/src.linux-x86_64-3.7/scipy/fftpack/fortranobject.c' to sources.
  adding 'build/src.linux-x86_64-3.7/build/src.linux-x86_64-3.7/scipy/fftpack' to include_dirs.
building extension "scipy.integrate._quadpack" sources
building extension "scipy.integrate._odepack" sources
building extension "scipy.integrate.vode" sources
f2py options: []
  adding 'build/src.linux-x86_64-3.7/build/src.linux-x86_64-3.7/scipy/integrate/fortranobject.c' to sources.
  adding 'build/src.linux-x86_64-3.7/build/src.linux-x86_64-3.7/scipy/integrate' to include_dirs.
building extension "scipy.integrate.lsoda" sources
f2py options: []
  adding 'build/src.linux-x86_64-3.7/build/src.linux-x86_64-3.7/scipy/integrate/fortranobject.c' to sources.
  adding 'build/src.linux-x86_64-3.7/build/src.linux-x86_64-3.7/scipy/integrate' to include_dirs.
building extension "scipy.integrate._dop" sources
f2py options: []
  adding 'build/src.linux-x86_64-3.7/build/src.linux-x86_64-3.7/scipy/integrate/fortranobject.c' to sources.
  adding 'build/src.linux-x86_64-3.7/build/src.linux-x86_64-3.7/scipy/integrate' to include_dirs.
building extension "scipy.integrate._test_multivariate" sources
building extension "scipy.integrate._test_odeint_banded" sources
f2py options: []
  adding 'build/src.linux-x86_64-3.7/build/src.linux-x86_64-3.7/scipy/integrate/fortranobject.c' to sources.
  adding 'build/src.linux-x86_64-3.7/build/src.linux-x86_64-3.7/scipy/integrate' to include_dirs.
  adding 'build/src.linux-x86_64-3.7/scipy/integrate/_test_odeint_banded-f2pywrappers.f' to sources.
building extension "scipy.interpolate.interpnd" sources
building extension "scipy.interpolate._ppoly" sources
building extension "scipy.interpolate._bspl" sources
building extension "scipy.interpolate._fitpack" sources
building extension "scipy.interpolate.dfitpack" sources
f2py options: []
  adding 'build/src.linux-x86_64-3.7/build/src.linux-x86_64-3.7/scipy/interpolate/src/fortranobject.c' to sources.
  adding 'build/src.linux-x86_64-3.7/build/src.linux-x86_64-3.7/scipy/interpolate/src' to include_dirs.
  adding 'build/src.linux-x86_64-3.7/scipy/interpolate/src/dfitpack-f2pywrappers.f' to sources.
building extension "scipy.interpolate._interpolate" sources
building extension "scipy.io._test_fortran" sources
f2py options: []
  adding 'build/src.linux-x86_64-3.7/build/src.linux-x86_64-3.7/scipy/io/fortranobject.c' to sources.
  adding 'build/src.linux-x86_64-3.7/build/src.linux-x86_64-3.7/scipy/io' to include_dirs.
building extension "scipy.io.matlab.streams" sources
building extension "scipy.io.matlab.mio_utils" sources
building extension "scipy.io.matlab.mio5_utils" sources
building extension "scipy.linalg._fblas" sources
f2py options: []
  adding 'build/src.linux-x86_64-3.7/build/src.linux-x86_64-3.7/build/src.linux-x86_64-3.7/scipy/linalg/fortranobject.c' to sources.
  adding 'build/src.linux-x86_64-3.7/build/src.linux-x86_64-3.7/build/src.linux-x86_64-3.7/scipy/linalg' to include_dirs.
  adding 'build/src.linux-x86_64-3.7/build/src.linux-x86_64-3.7/scipy/linalg/_fblas-f2pywrappers.f' to sources.
building extension "scipy.linalg._flapack" sources
f2py options: []
f2py: build/src.linux-x86_64-3.7/scipy/linalg/flapack.pyf
Running from scipy source directory.
/home/juanlu/.pyenv/versions/scipy37_4/lib/python3.7/site-packages/numpy/distutils/system_info.py:782: UserWarning: Specified path /usr/local/include/python3.7m is invalid.
  return self.get_paths(self.section, key)
/home/juanlu/.pyenv/versions/scipy37_4/lib/python3.7/site-packages/numpy/distutils/system_info.py:782: UserWarning: Specified path /usr/include/python3.7m is invalid.
  return self.get_paths(self.section, key)
Reading fortran codes...
	Reading file 'build/src.linux-x86_64-3.7/scipy/linalg/flapack.pyf' (format:free)
Traceback (most recent call last):
  File "setup.py", line 415, in <module>
    setup_package()
  File "setup.py", line 411, in setup_package
    setup(**metadata)
  File "/home/juanlu/.pyenv/versions/scipy37_4/lib/python3.7/site-packages/numpy/distutils/core.py", line 171, in setup
    return old_setup(**new_attr)
  File "/home/juanlu/.pyenv/versions/scipy37_4/lib/python3.7/site-packages/setuptools/__init__.py", line 145, in setup
    return distutils.core.setup(**attrs)
  File "/home/juanlu/.pyenv/versions/3.7.4/lib/python3.7/distutils/core.py", line 148, in setup
    dist.run_commands()
  File "/home/juanlu/.pyenv/versions/3.7.4/lib/python3.7/distutils/dist.py", line 966, in run_commands
    self.run_command(cmd)
  File "/home/juanlu/.pyenv/versions/3.7.4/lib/python3.7/distutils/dist.py", line 985, in run_command
    cmd_obj.run()
  File "/home/juanlu/.pyenv/versions/scipy37_4/lib/python3.7/site-packages/numpy/distutils/command/install.py", line 62, in run
    r = self.setuptools_run()
  File "/home/juanlu/.pyenv/versions/scipy37_4/lib/python3.7/site-packages/numpy/distutils/command/install.py", line 56, in setuptools_run
    self.do_egg_install()
  File "/home/juanlu/.pyenv/versions/scipy37_4/lib/python3.7/site-packages/setuptools/command/install.py", line 109, in do_egg_install
    self.run_command('bdist_egg')
  File "/home/juanlu/.pyenv/versions/3.7.4/lib/python3.7/distutils/cmd.py", line 313, in run_command
    self.distribution.run_command(command)
  File "/home/juanlu/.pyenv/versions/3.7.4/lib/python3.7/distutils/dist.py", line 985, in run_command
    cmd_obj.run()
  File "/home/juanlu/.pyenv/versions/scipy37_4/lib/python3.7/site-packages/setuptools/command/bdist_egg.py", line 163, in run
    self.run_command("egg_info")
  File "/home/juanlu/.pyenv/versions/3.7.4/lib/python3.7/distutils/cmd.py", line 313, in run_command
    self.distribution.run_command(command)
  File "/home/juanlu/.pyenv/versions/3.7.4/lib/python3.7/distutils/dist.py", line 985, in run_command
    cmd_obj.run()
  File "/home/juanlu/.pyenv/versions/scipy37_4/lib/python3.7/site-packages/numpy/distutils/command/egg_info.py", line 26, in run
    self.run_command("build_src")
  File "/home/juanlu/.pyenv/versions/3.7.4/lib/python3.7/distutils/cmd.py", line 313, in run_command
    self.distribution.run_command(command)
  File "/home/juanlu/.pyenv/versions/3.7.4/lib/python3.7/distutils/dist.py", line 985, in run_command
    cmd_obj.run()
  File "/home/juanlu/.pyenv/versions/scipy37_4/lib/python3.7/site-packages/numpy/distutils/command/build_src.py", line 142, in run
    self.build_sources()
  File "/home/juanlu/.pyenv/versions/scipy37_4/lib/python3.7/site-packages/numpy/distutils/command/build_src.py", line 159, in build_sources
    self.build_extension_sources(ext)
  File "/home/juanlu/.pyenv/versions/scipy37_4/lib/python3.7/site-packages/numpy/distutils/command/build_src.py", line 319, in build_extension_sources
    sources = self.f2py_sources(sources, ext)
  File "/home/juanlu/.pyenv/versions/scipy37_4/lib/python3.7/site-packages/numpy/distutils/command/build_src.py", line 535, in f2py_sources
    + ['--build-dir', target_dir, source])
  File "/home/juanlu/.pyenv/versions/scipy37_4/lib/python3.7/site-packages/numpy/f2py/f2py2e.py", line 425, in run_main
    postlist = callcrackfortran(files, options)
  File "/home/juanlu/.pyenv/versions/scipy37_4/lib/python3.7/site-packages/numpy/f2py/f2py2e.py", line 330, in callcrackfortran
    postlist = crackfortran.crackfortran(files)
  File "/home/juanlu/.pyenv/versions/scipy37_4/lib/python3.7/site-packages/numpy/f2py/crackfortran.py", line 3251, in crackfortran
    readfortrancode(files, crackline)
  File "/home/juanlu/.pyenv/versions/scipy37_4/lib/python3.7/site-packages/numpy/f2py/crackfortran.py", line 501, in readfortrancode
    dowithline(finalline)
  File "/home/juanlu/.pyenv/versions/scipy37_4/lib/python3.7/site-packages/numpy/f2py/crackfortran.py", line 796, in crackline
    analyzeline(m, pat[1], line)
  File "/home/juanlu/.pyenv/versions/scipy37_4/lib/python3.7/site-packages/numpy/f2py/crackfortran.py", line 1098, in analyzeline
    last_name = updatevars(typespec, selector, attr, edecl)
  File "/home/juanlu/.pyenv/versions/scipy37_4/lib/python3.7/site-packages/numpy/f2py/crackfortran.py", line 1542, in updatevars
    attrspec = [x.strip() for x in markoutercomma(attrspec).split('@,@')]
  File "/home/juanlu/.pyenv/versions/scipy37_4/lib/python3.7/site-packages/numpy/f2py/crackfortran.py", line 833, in markoutercomma
    assert not f, repr((f, line, l))
AssertionError: (-1, 'intent(in))', 'intent(in))')

Scipy/Numpy/Python version information:
$ python
Python 3.7.4 (default, Aug 26 2019, 17:42:54)
[GCC 7.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys, numpy; print(numpy.__version__, sys.version_info)
1.17.1 sys.version_info(major=3, minor=7, micro=4, releaselevel='final', serial=0)

Sorry, I was building an ancient version of SciPy, prior to https://github.com/scipy/scipy/pull/8530. Closing.


Use concrete types rather than interfaces. [phab:D1107]

Created by fromberger at 2016-10-19 15:50:59:
As a rule of thumb, packages should export their concrete types, rather
than interfaces belonging to other packages.
This change fixes up a case of that in the xref service implementation.

shahms accepted this revision at 2016-10-19 15:55:44

fromberger closed via commit db734828ddb69d757c11d4dc90abb68efa7f2dfa at 2016-10-19 15:56:30


Approximates code from algorithmic description

lines 36 to 43 of the algorithm are broken into two separate conditions to detect if a value is being relocked.
Relocking is a subclass of locking and restructuring the case as such brings the code closer to the algorithm, while keeping the distinction in the logging.

PR checklist

[ ] Tests written/updated
[ ] Changelog entry added in .changelog (we use unclog to manage our changelog)
[ ] Updated relevant documentation (docs/ or spec/) and code comments

There is a test which is failining: TestStateLockPOLUpdateLock. And it is actually associated with relocking.

As a suggestion for test units to be considered/updated: TestStateLockMissingProposalWhenPOLSeenDoesNotUpdateLock and TestStateLockMissingProposalWhenPOLSeenDoesNotUnlock. They both refer to a lock change, so in both cases the node is expected to Precommit for nil. I wonder whether adapting one of them to cover this situation in which we don't change the lock, as the proposal matches the locked value, but nonetheless we should, with the new code, Precommit for nil.

The scenario that I mentioned in previous comments is tested in PR #1257.

We are closing this PR without merging, as it would revert an optimization that is in place, even though the optimization is for the non-happy path and, as stated in the PR, causes the code to slightly diverge from the pseudo-code.


"Save open script to openMV cam" menu button greyed out

I have a feeling this happens since the latest IDE was released.
The button is regularly grey and unselectable with several, but not all of my H7+ boards, even though they are connected to the IDE, whether there is a main.py file already on the SD card or not.
Running Ubuntu 20.04

This is not related to the IDE release. It's just the IDE can't find your SD card.

Please fix the file system on the SD card to be FAT32

All my SD cards are in FAT32:

I only experienced this problem recently, I think it did not happen with previous IDE versions.

This issue was observed on several Windows computers as well.
The file SD card's file format was not the problem. Instead, the hidden .opemv_disk file was missing (maybe deleted by users mistakenly). Copying it to the SD card instantly solved the issue. Is there a way to have the IDE to re-generate that file?

It's generated on a fresh disk of the OpenMV Cam @iabdalkader .

This is a firmware issue. The IDE looks for this file to verify a harddrive is attached,


Styling for Definition Lists within Equation Figures

If a <dl> is included within a <equation-figure> element, it should be rendered as follows:

prefixed with the term "where" if there is an <equation-block> preceding the <dl> (the term should be a localized string included in a set of variables)
the term and definition should be on the same line vertically (for the first line of the <dd> content)
the horizontal width of the term column should be constant for the entire list
an option for an "=" or other symbol/string could be added between the <dt> and <dd> content
the entire list should be indented

CSS functionality added with a0d67bdc13a5eabd5f043383132966ccb063612b


Fix lockup with GHDL 1.0

It seems that GHDL 1.0+ changed its behavior about DUT output signals that are driven from the cocotb testbench: if we set a stream.valid output to 0 in a monitor, it actually stays low instead of showing the actual DUT stream.valid signal in the monitor and the slave verification module.
I don’t know why we thought it was a good idea to force this output signal low, but it should be better now.

XD
Greate, thanks :D


Naming Convention between GenericDeserialize and Deserialize

I just re read the documentation and realize that i've been inverting GenericDeserialize and Deserialize.
GenericDeserialize is actually Typesafe.
Deserialize is not type safe.
While GenericDeserialize makes sense in terms of using 'Generics' - in this context i actually associated Generic to mean JSON, or Untyped.
Maybe consider renaming to TypedDeserialize or something similar.

I can see where that could be mixed up, I'd like to restructure things a
bit in the next version, that's one of them
On Mar 15, 2017 6:54 PM, "Jack Murphy"<EMAIL_ADDRESS>wrote:
I just re read the documentation and realize that i've been inverting
GenericDeserialize and Deserialize.
GenericDeserialize is actually Typesafe.
Deserialize is not type safe.
While GenericDeserialize makes sense in terms of using 'Generics' - in this
context i actually associated Generic to mean JSON, or Untyped.
Maybe consider renaming to TypedDeserialize or something similar.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/weichx/cerialize/issues/50, or mute the thread
https://github.com/notifications/unsubscribe-auth/ABTXwdrcagF4q2KGfq9fdSWbD3RTREi0ks5rmCW4gaJpZM4MeTpE
.

Why not define just one single function ?
export function Deserialize<T>(json: any) : T {
 // code here...
}

This function can be called like:
const obj: any = Deserialize();
But also:
const address: Address = Deserialize<Address>();

The reason is historical, this library was written before typescript had generics and now I don't want to break everyone's code by changing the behavior


img_url helper outputs absolute urls by default

Docs: https://docs.ghost.org/api/handlebars-themes/helpers/img_url/
Refs: https://github.com/TryGhost/Ghost/issues/10578
We've introduced a breaking change by mistake. With Ghost 2.0 the image url helper and the url helper always have output relative urls by default.
Steps to reproduce:

Upload a feature image for a post
Use {{img_url feature_image}} in post template
See that it outputs absolute url by default

Url rules: https://github.com/TryGhost/Ghost/issues/10477


Forever Installing

I posted in my group yesterday evening, and that's the last post that anybody else saw even though I posted several times on my side. I tried turning off updates & turning it back on for %groups, but it got into a forever spinner.
 Tried reinstalling, and now my dojo is a non-stop torrent of this error:

To Reproduce
Steps to reproduce the behavior:
No idea.
Expected behavior
Work smoothly.
Additional context:

planet ~minder-folden
self hosted in a Debian environment on ssdnodes
other ships on that VM are running smoothly

https://pastebin.com/DNgk6Sdx


plot_tree returns empty chart

Working on azure databricks, I would like to plot a tree classifier diagram by using plot_tree. Here is what I did and got:

I also tried using "create_tree_digraph". Sadly, I can't install graphviz library since after installing by following this https://docs.microsoft.com/en-us/azure/databricks/libraries/cluster-libraries#install-workspace-libraries all the commands cannot be run. So I've decided to use plot_tree rather than create_tree_digraph.

Hey @chinnawat1 !

Sadly, I can't install graphviz library since after installing by following this ...

plot_tree() function internally calls create_tree_digraph() function and then converts a result to png format. That's why you get empty axes.
https://github.com/microsoft/LightGBM/blob/5b7a6f3e7150aeb704d1dd2b852d246af3e913a3/python-package/lightgbm/plotting.py#L667-L678
Unfortunately, without installing graphviz library you cannot plot trees in LightGBM.


Why not implement AsRef<[u8]> for Hash ?

Hash is just a wrapper of [u8, _], and already has a as_bytes() method. If AsRef<[u8]> is implemented, it will be a little bit easier to use it at the boundary of the function.

Take a look at some of the docs here:

Hash implements From and Into for [u8; 32], and it provides an explicit as_bytes method returning &[u8; 32]. However, byte arrays and slices don’t provide constant-time equality checking, which is often a security requirement in software that handles private data. Hash doesn’t implement Deref or AsRef, to avoid situations where a type conversion happens implicitly and the constant-time property is accidentally lost.

The idea is that it's a little bit risky to convert to bytes without thinking about it. For many use cases it's totally fine, but for some use cases it's not fine, because of the way that non-constant-time equality checks can lead to "side channel attacks".

Sorry for my lack of careful checking the documentation. As to whether it's unnecessarily conservative, I'm not an expert on security (and even I use the library just for general data integrity checks), so I can't make a judgement. Thanks for the answer.

No worries at all.


Remove unused test dependencies add missing environment constraints

Description
The test dependency seems to cause CI to hang, and we are not using them mostly in this repo so we can remove those and make the tree green. This PR only unblocks the tree, it didn't fix the root cause of the issue. See discussion in the issue for details.
This PR also adds env constraints for some example apps who are missing env constraints.
Related Issues
https://github.com/flutter/flutter/issues/69439
Checklist
Before you create this PR confirm that it meets all requirements listed below by checking the relevant checkboxes ([x]). This will ensure a smooth and quick review process.

[x] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[x] My PR includes unit or integration tests for all changed/updated/fixed behaviors (See Contributor Guide).
[x] All existing and new tests are passing.
[x] I updated/added relevant documentation (doc comments with ///).
[x] The analyzer (flutter analyze) does not report any problems on my PR.
[x] I read and followed the Flutter Style Guide.
[x] The title of the PR starts with the name of the plugin surrounded by square brackets, e.g. [shared_preferences]
[x] I updated pubspec.yaml with an appropriate new version according to the pub versioning philosophy.
[x] I updated CHANGELOG.md to add a description of the change.
[x] I signed the CLA.
[x] I am willing to follow-up on review comments in a timely manner.

Breaking Change
Does your PR require plugin users to manually update their apps to accommodate your change?

[ ] Yes, this is a breaking change (please indicate a breaking change in CHANGELOG.md and increment major revision).
[x] No, this is not a breaking change.

This seems to overlap with https://github.com/flutter/plugins/pull/3240, which is ok if we want to fix the tree at once though I see that not all the packages where the example apps get sdk constraints in https://github.com/flutter/plugins/pull/3240 are getting them in this PR...

I'm going to see if this fixes the hang issue for the plugins in this PR, if so, i'll merge #3240 into this.

Looks like the timeout is fixed by this. Merged 3240 and re-running CI.

CC @zanderso For the 3240 merging.

Also merged https://github.com/flutter/plugins/pull/3219 so we can remove the test dependency in video_player as well.

@dnfield @jonahwilliams

If this passes CI and gets the tree open I'm fine with that. We really should figure out what's going on with vm_service that's causing things to hang sometimes.

Failure is due to https://github.com/flutter/plugin_tools/pull/119


Add Bayesian RSA to the package (reprsimil)

Bayesian RSA stands for Bayesian representational similarity analysis.
The code should be functional.
Planned updates for the upcoming weeks:
(1) add an example as a python notebook
(2) upload supplementary file including the derivation of the gradient of log likelihood
(3) capability of modeling the spatial correlation of noise

Can one of the admins verify this patch?

Can one of the admins verify this patch?

Add to whitelist.

Thank you for the PR, @lcnature.
Could you please recommend someone who is familiar with your work and can assess the neuroscience validity of the code?
Also, is pr-check passing for you? I tried on my computer and run-checks is failing just like on Jenkins because of trailing whitespace:
brainiak/reprsimil/brsa.py:23:31: W291 trailing whitespace
brainiak/reprsimil/brsa.py:123:14: W291 trailing whitespace

Sorry. I made some changes to the docstring after it passed the last time.
The trailing whitespace was fixed but now I have errors about unexpected indentation in docstring, which I cannot find why.

That's perfectly OK. You can make as many commits you want, there is no issue with having test failures. :)
The line number in the doc building errors are very misleading (see issue #42).
You need an empty line before "Parameters".

Thanks @mshvartsman who has kindly agreed to review. I will let you know after I upload more documentation of the maths.

@mihaic How can I know why the check with macos failed?

@lcnature Within Princeton network, you can click the Details to see. It looks like it is an import error related to FCMA, which is weird because FCMA is not yet merged. @mihaic may have some idea about this?

@yidawang In fact I do not have read permission -- access denied even after logging in.

@lcnature I don't even know there are permission settings out there. In the "console output" I can see the code tries to import brainiak.fcma.cython_blas which is not supposed to be in the current codebase.

Retest this please.

The error was caused by leftovers from previous PR builds, which were preventing the documentation from building. So not related to the new code. I added a clean step to the builder (I am sure I had added it before and it magically disappeared...) to prevent this from happening again.
Unfortunately, the Jenkins results are only visible to people with Jenkins accounts. I will talk to the admin to see if we can make the results public.

By the way, I am commenting on every little detail I see, but Mingbo and I have been chatting in person and only some of them are really necessary to fix before merging, many others will go into a code cleanup issue for later revisions -- don't mean to hold this up for too long.

@mshvartsman I appreciate the thoroughness of your review. If at any point you are satisfied with the PR, please say so. If at that point there are comments left to be addressed later, it would be great to turn them into issues after the merge.

I'll try to clarify what I think can be saved for fixing later.

@mihaic @mshvartsman In fact I have not fix my codes according to all what Mike suggested yet.

@mihaic @mshvartsman The current version should have improved a lot.

@mihaic I cannot tell what causes a failure in Travid CI test:
https://travis-ci.org/IntelPNI/brainiak/jobs/161177341

@lcnature No clue. The error was only on MacOS. The tests passed on MacOS on Jenkins, so I restarted the Travis test.

@lcnature More evidence that the best approach for solving computer errors is restarting. :)

@mshvartsman

This time travis-CI throws some details for its failure. It looks like some problem with pytest iteslf.

@lcnature Please update the branch so I can merge it.

@mihaic Thanks Mihai, I updated and travis-CI failed again...

@lcnature Thank you very much for your contribution and for addressing the issues that came up during the review (thanks for pointing them out, @mshvartsman).
We will be looking into the Travis failure.


Switch Browser profile to "windows phone", the page shows abnormally

Repro steps:
• Navigate to https://pxt.microbit.org/beta on Edge
• Open F12 and switch Browser profile to "windows phone"
• Observe the web page
• Drag the slider on the bottom and observe the reloading page
Expect result:
The page shows abnormally
Actual result:
The page should show normal as on windows phone

We have not supported windows phone for quite some time.

@abchatra - we should have a list of unsupported platforms/browsers.

We do in our docs. See /browsers
Get Outlook for iOShttps://aka.ms/o0ukef

From: Tom Ball<EMAIL_ADDRESS>Sent: Monday, April 10, 2017 1:55:51 PM
To: Microsoft/pxt
Cc: Peli de Halleux; Assign
Subject: Re: [Microsoft/pxt] Switch Browser profile to "windows phone", the page shows abnormally (#1874)
@abchatrahttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fabchatra&data=02|01|jhalleux%40microsoft.com|f2cedfe2c37d4b4cac4608d48053f97c|72f988bf86f141af91ab2d7cd011db47|1|0|636274545535809923&sdata=t9UFLbHaEfd9MLA2%2BXqRv4SYNG6S9t7W%2B9yTPzi1624%3D&reserved=0 - we should have a list of unsupported platforms/browsers.
—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHubhttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FMicrosoft%2Fpxt%2Fissues%2F1874%23issuecomment-293076253&data=02|01|jhalleux%40microsoft.com|f2cedfe2c37d4b4cac4608d48053f97c|72f988bf86f141af91ab2d7cd011db47|1|0|636274545535809923&sdata=MLqZxjnavVbPjz36aYqFlj1%2Fv85KwJlLg6A1qezh9%2Fk%3D&reserved=0, or mute the threadhttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAD-4Kb4Awo3Qox9lVnBZiVdQFm9WGj-Nks5rupdXgaJpZM4M4aYf&data=02|01|jhalleux%40microsoft.com|f2cedfe2c37d4b4cac4608d48053f97c|72f988bf86f141af91ab2d7cd011db47|1|0|636274545535819932&sdata=OXMvTkyT%2BfkG4%2FJ4j5H36gu6GbfO%2BWOKx6e0hJa1fD8%3D&reserved=0.

Any action item then? Check that user agent agrees with this list?

We need to detect that we are on WP and redirect to /browsers + update docs.


Function parameter being logged after the function

I have this behaviour:

I would expect foo to be logged inside the function body.

Maybe this happens because there are no parenthesis?

@pdonias sorry for looking at this late, will need to look into this. I'll document the problem and we can discuss potential solutions after a little troubleshooting.


docs: use figure auto-numbering

Manual numbering of figures is error-prone and leads to a problem where inserting a figure between two other figures leads to a "snowball" effect where all subsequent figure numbers need to be updated, which pollutes the commit diff.
Let's switch to using asciidoctor's auto figure numbering instead.
The downside is that the figure numbers are not hierarchical, i.e. they just go 1, 2, 3..., but I think the upside of not having to manually update figure numbers is much more important.

Figure captions usually appear below the figure. I wonder if CS2101 side will object to this style of figure captions (i.e. above the figure).

@damithc The figure captions are rendered below the figure.

User Guide: https://24-75938115-gh.circle-artifacts.com/0/docs/UserGuide.html
Developer Guide: https://24-75938115-gh.circle-artifacts.com/0/docs/DeveloperGuide.html


Possible to get the command ouput

Hello @hugsy,
I wondered whether it would even be possible to grab the command output, as going blind is sometimes tricky.
I don't know if it is possible as a loop has to be defined to grab the buffer stream...
This kind of stuff works (but for 1 line only), maybe you'll figure out how grab an output:
In a jdb session:
$ print new java.io.BufferedReader( new java.io.InputStreamReader( new java.lang.Runtime().exec("whoami").getInputStream())).readLine()

...
 new java.io.BufferedReader( new java.io.InputStreamReader( new java.lang.Runtime().exec("whoami").getInputStream())).readLine() = "root"

By the way, I took the liberty to bundle your original script for Windows in order to easily drop it on internal compromised machines: I obviously put a link to your repo, tell me if anything bothers.
Cheers.

Hey @maaaaz
I already took a look at fetching the result from the command. When I wrote the exploit code, my objective was to make code execution 100% reliable for all JVM (only POC existed at that time).
Using the StreamReader with the exploit to display content would add quite a bit of work which I don't really have time to do right now. But if you do, I gladly accept Pull Request :-)
And thanks for providing a compiled copy of the tool.
Cheers,


Can't start eosd after reboot

The two must relevant pieces of information in the seems to be
Log is nonempty
13 NSt8ios_base7failureB5cxx11E: basic_ios::clear: iostream error

The error seems similar to EOS Issue #523 but since the process is not running, it's different.
Also does seem similar to this steem issue: Steem Issue #589
That was resolved by flushing the log. Steem commit
Posted on Utopian.io -  Rewarding Open Source Contributors

Specify the correct url to genesis.json

I have same problem and I have correct path to genesis.json
{"my->genesis_file.generic_string()":"/home/saa/eos/genesis.json","what":"basic_ios::clear: iostream error"}

I have the same problem , and  it latest 3 days ,I couldn't find way to solve, Have you solve it yet?
And here's my error info:
2625208ms thread-0   main.cpp:115                  main                 ] 13 NSt8ios_base7failureB5cxx11E: basic_ios::clear: iostream error
basic_ios::clear: iostream error: error unpacking fc::sha256
{"type":"fc::sha256","what":"basic_ios::clear: iostream error"}
thread-0  raw.hpp:568 unpack
Error unpacking field previous
{"field":"previous"}
thread-0  raw.hpp:327 operator()
error unpacking eosio::chain::signed_block
{"type":"eosio::chain::signed_block"}
thread-0  raw.hpp:568 unpack
{"my->genesis_file.generic_string()":"/home/aupieceslanden/project/eos/build/etc/eosio/node_00/genesis.json"}
thread-0  chain_plugin.cpp:214 plugin_startup

I find a way to solve it in #758, Mr. heifner give an effective command to run it again normally:
Please try to run ./eosd --resync !
But refer to latest eosio version ,I recommend you change your config.ini (build/etc/eosio/node_00/),and run ./nodeos (/build/programs/nodeos/) or ./nodeos --resync


Add styles for header

Add button class
Add styles for hero
Add Styles for navigation

Small naming questions. I typically only use the double dash -- for two of the same thing that need slightly different styles

:+1: Merge at your discretion


[Service Bus]: Unable to create the amqp sender senderID due to operation timeout.

Package Name: @azure/service-bus
Package Version: 1.1.2
Operating system: node:10.15.3-jessie (docker image)
[ ] nodejs

version:  10.15.3

Is the bug related to documentation in

[ ] README.md
[ ] source code documentation
[ ] SDK API docs on https://docs.microsoft.com

Describe the bug
We have several services which communicate with each other through Service Bus Topic. But after a while we caught the following error: Unable to create the amqp sender senderID due to operation timeout..
And right after this error we caught next uncaughtException: Cannot read property '_process' of undefined. Seems these errors are connected:
Logs:
2020-01-04T04:05:26.159862808Z 1/4/2020, 04:05:26 - error: uncaughtException: Cannot read property '_process' of undefined date=Sat Jan 04 2020 04:05:26 GMT+0000 (Coordinated Universal Time), pid=17, uid=0, gid=0, cwd=/usr/src/server, execPath=/usr/local/bin/node, version=v10.15.3, argv=[/usr/local/bin/node, /usr/src/server/app], rss=72617984, heapTotal=48832512, heapUsed=40250808, external=18664439, loadavg=[12.9677734375, 13.07177734375, 12.94970703125], uptime=1848134, trace=[column=39, file=/usr/src/server/node_modules/rhea-promise/node_modules/rhea/lib/connection.js, function=Connection._process, line=708, method=_process, native=false, column=11, file=internal/process/next_tick.js, function=process._tickCallback, line=61, method=_tickCallback, native=false], stack=[TypeError: Cannot read property '_process' of undefined,     at Connection._process (/usr/src/server/node_modules/rhea-promise/node_modules/rhea/lib/connection.js:708:39),     at process._tickCallback (internal/process/next_tick.js:61:11)] 2020-01-04T04:05:26.162240653Z 1/4/2020, 04:05:26 - error: [uncaughtException] There was an uncaught exception: Cannot read property '_process' of undefined, TypeError: Cannot read property '_process' of undefined 2020-01-04T04:05:26.162256553Z     at Connection._process (/usr/src/server/node_modules/rhea-promise/node_modules/rhea/lib/connection.js:708:39) 2020-01-04T04:05:26.162262053Z     at process._tickCallback (internal/process/next_tick.js:61:11)
And this behavior happens on each service
In order to fix this issue, we have to restart each service.
To Reproduce
Steps to reproduce the behavior:

We did not find a way how to reproduce it quickly, just to start-up services and wait

Expected behavior
We set up Service Bus Topic receivers in the following way:

And we expect that it will work without any errors as it mentions

Thanks for reporting @MolochkoVitaly
Can you provide more logs around the time from where the error Unable to create the amqp sender senderID due to operation timeout.. was found?

Indeed, we have a similar same issues since a few days ago.
I don't know if it's related but this issue came up when the issue was fixed where service bus randomly stopped consuming without giving an error.
I don't have more info then this error:
OperationTimeoutError: Unable to create the amqp session due to operation timeout.
This is thrown from rhea-promise lib from the connection file on the following line:
 return reject(new operationTimeoutError_1.OperationTimeoutError(msg));
We also get the message  uncaughtException: Cannot read property '_process' of undefined after this sometimes

Hi @ramya-rao-a, unfortunately, we don't have any other logs. We could turn on debug level for library logs but due to this issue is hard to reproduce it will take time.

@MolochkoVitaly
Thank you very much for providing these logs! I'll look into these and let you know what I can find.

Hey @JonathanCa97, we've recently faced a familiar issue
2020-02-11T22:09:13.376631030Z 2020-02-11T22:09:13.373Z azure:service-bus:error [connection-1] Error (context.error) occurred on the amqp connection: Error [ERR_STREAM_WRITE_AFTER_END]: write after end
2020-02-11T22:09:13.377010633Z     at writeAfterEnd (_stream_writable.js:243:12)
2020-02-11T22:09:13.377099734Z     at TLSSocket.Writable.write (_stream_writable.js:291:5)
2020-02-11T22:09:13.377124634Z     at Transport.write (/home/site/wwwroot/node_modules/rhea/lib/transport.js:56:16)
2020-02-11T22:09:13.377164135Z     at SaslClient.write (/home/site/wwwroot/node_modules/rhea/lib/sasl.js:292:26)
2020-02-11T22:09:13.377185135Z     at Connection.output (/home/site/wwwroot/node_modules/rhea/lib/connection.js:461:28)
2020-02-11T22:09:13.377220835Z     at Connection._write_frame (/home/site/wwwroot/node_modules/rhea/lib/connection.js:697:10)
2020-02-11T22:09:13.377244935Z     at Session.output (/home/site/wwwroot/node_modules/rhea/lib/session.js:456:21)
2020-02-11T22:09:13.377290736Z     at Session._process (/home/site/wwwroot/node_modules/rhea/lib/session.js:601:18)
2020-02-11T22:09:13.377306036Z     at Connection._process (/home/site/wwwroot/node_modules/rhea/lib/connection.js:687:39)
2020-02-11T22:09:13.377347836Z     at process._tickCallback (internal/process/next_tick.js:61:11)
2020-02-11T22:09:13.377361836Z 2020-02-11T22:09:13.373Z azure:service-bus:error [connection-1] state: { wasConnectionCloseCalled: false, numClients: 1 }
2020-02-11T22:09:13.377391637Z 2020-02-11T22:09:13.373Z azure:service-bus:error [connection-1] connection.close() was not called from the sdk and there were some clients. We should reconnect.
2020-02-11T22:09:13.377406237Z 2020-02-11T22:09:13.374Z azure:service-bus:error [connection-1] state: { wasConnectionCloseCalled: false, numClients: 1 }
2020-02-11T22:09:13.377464237Z 2020-02-11T22:09:13.374Z azure:service-bus:error [connection-1] connection.close() was not called from the sdk and there were some clients. We should reconnect.
2020-02-11T22:09:13.377480937Z 2020-02-11T22:09:13.375Z azure:service-bus:error [connection-3] Error (context.error) occurred on the amqp connection: Error [ERR_STREAM_WRITE_AFTER_END]: write after end
2020-02-11T22:09:13.377514038Z     at writeAfterEnd (_stream_writable.js:243:12)
2020-02-11T22:09:13.377532638Z     at TLSSocket.Writable.write (_stream_writable.js:291:5)
2020-02-11T22:09:13.377562138Z     at Transport.write (/home/site/wwwroot/node_modules/rhea/lib/transport.js:56:16)
2020-02-11T22:09:13.377576638Z     at SaslClient.write (/home/site/wwwroot/node_modules/rhea/lib/sasl.js:292:26)
2020-02-11T22:09:13.377607438Z     at Connection.output (/home/site/wwwroot/node_modules/rhea/lib/connection.js:461:28)
2020-02-11T22:09:13.377622438Z     at Connection._write_frame (/home/site/wwwroot/node_modules/rhea/lib/connection.js:697:10)
2020-02-11T22:09:13.377654339Z     at Session.output (/home/site/wwwroot/node_modules/rhea/lib/session.js:456:21)
2020-02-11T22:09:13.377669339Z     at Session._process (/home/site/wwwroot/node_modules/rhea/lib/session.js:601:18)
2020-02-11T22:09:13.377698939Z     at Connection._process (/home/site/wwwroot/node_modules/rhea/lib/connection.js:687:39)
2020-02-11T22:09:13.377726239Z     at process._tickCallback (internal/process/next_tick.js:61:11)
2020-02-11T22:09:13.377755040Z 2020-02-11T22:09:13.376Z azure:service-bus:error [connection-3] state: { wasConnectionCloseCalled: false, numClients: 1 }
2020-02-11T22:09:13.377769340Z 2020-02-11T22:09:13.376Z azure:service-bus:error [connection-3] connection.close() was not called from the sdk and there were some clients. We should reconnect.
2020-02-11T22:09:13.399996328Z 2020-02-11T22:09:13.376Z azure:service-bus:error [connection-3] Error (context.error) occurred on the amqp connection: { Error: read ECONNRESET
2020-02-11T22:09:13.400069729Z     at TLSWrap.onStreamRead (internal/stream_base_commons.js:111:27) errno: 'ECONNRESET', code: 'ECONNRESET', syscall: 'read' }
2020-02-11T22:09:13.400186829Z 2020-02-11T22:09:13.378Z azure:service-bus:error [connection-3] state: { wasConnectionCloseCalled: false, numClients: 1 }
2020-02-11T22:09:13.400210430Z 2020-02-11T22:09:13.378Z azure:service-bus:error [connection-3] connection.close() was not called from the sdk and there were some clients. We should reconnect.
2020-02-11T22:09:13.674975256Z 2020-02-11T22:09:13.674Z azure:service-bus:error [connection-1] calling detached on client 'nextDeviceStatusTopic_1/Subscriptions/nextDeviceStatusSubscription_1/35aad1d4-308a-bd4f-96c6-d880390ddfc0'.
2020-02-11T22:09:13.675677561Z 2020-02-11T22:09:13.675Z azure:service-bus:error [connection-1] calling detached on client 'nextDeviceStatusTopic_1/Subscriptions/nextDeviceStatusSubscription_1/35aad1d4-308a-bd4f-96c6-d880390ddfc0'.
2020-02-11T22:09:13.678271583Z 2020-02-11T22:09:13.678Z azure:service-bus:error [connection-3] calling detached on client 'simulationIncomingTopic_1/Subscriptions/simulationIncomingSubscription_1/26fddd6c-4c02-2240-9061-aed93194bca3'.
2020-02-11T22:09:13.678788688Z 2020-02-11T22:09:13.678Z azure:service-bus:error [connection-3] calling detached on client 'simulationIncomingTopic_1/Subscriptions/simulationIncomingSubscription_1/26fddd6c-4c02-2240-9061-aed93194bca3'.

2020-02-11T22:10:13.390499118Z 2020-02-11T22:10:13.375Z azure:amqp-common:error [connection-1] An error occured while establishing the cbs links: { OperationTimeoutError: Unable to create the amqp session due to operation timeout.
2020-02-11T22:10:13.390549918Z     at Timeout.actionAfterTimeout (/home/site/wwwroot/node_modules/rhea-promise/dist/lib/connection.js:293:31)
2020-02-11T22:10:13.390640419Z     at ontimeout (timers.js:436:11)
2020-02-11T22:10:13.390659719Z     at tryOnTimeout (timers.js:300:5)
2020-02-11T22:10:13.390691620Z     at listOnTimeout (timers.js:263:5)
2020-02-11T22:10:13.390706220Z     at Timer.processTimers (timers.js:223:10)
2020-02-11T22:10:13.390734320Z   name: 'OperationTimeoutError',
2020-02-11T22:10:13.390748420Z   translated: true,
2020-02-11T22:10:13.390777020Z   retryable: false,
2020-02-11T22:10:13.390790820Z   info: undefined,
2020-02-11T22:10:13.390817221Z   condition: 'amqp:operation-timeout' }
2020-02-11T22:10:13.390831221Z 2020-02-11T22:10:13.378Z azure:service-bus:error [connection-1] An error occured while creating the receiver 'nextDeviceStatusTopic_1/Subscriptions/nextDeviceStatusSubscription_1-4731aaca-d6ca-3a41-915c-354c9f3debea': { OperationTimeoutError: Unable to create the amqp session due to operation timeout.
2020-02-11T22:10:13.390863421Z     at Timeout.actionAfterTimeout (/home/site/wwwroot/node_modules/rhea-promise/dist/lib/connection.js:293:31)
2020-02-11T22:10:13.390877521Z     at ontimeout (timers.js:436:11)
2020-02-11T22:10:13.390906121Z     at tryOnTimeout (timers.js:300:5)
2020-02-11T22:10:13.390919821Z     at listOnTimeout (timers.js:263:5)
2020-02-11T22:10:13.390947322Z     at Timer.processTimers (timers.js:223:10)
2020-02-11T22:10:13.390961222Z   name: 'OperationTimeoutError',
2020-02-11T22:10:13.391011722Z   translated: true,
2020-02-11T22:10:13.391032222Z   retryable: false,
2020-02-11T22:10:13.391058423Z   info: undefined,
2020-02-11T22:10:13.391070823Z   condition: 'amqp:operation-timeout' }
2020-02-11T22:10:13.391096123Z 2020-02-11T22:10:13.378Z azure:amqp-common:error [connection-1] Error occured for 'receiverLink' in attempt number 1: { OperationTimeoutError: Unable to create the amqp session due to operation timeout.
2020-02-11T22:10:13.391109023Z     at Timeout.actionAfterTimeout (/home/site/wwwroot/node_modules/rhea-promise/dist/lib/connection.js:293:31)
2020-02-11T22:10:13.391141123Z     at ontimeout (timers.js:436:11)
2020-02-11T22:10:13.391155223Z     at tryOnTimeout (timers.js:300:5)
2020-02-11T22:10:13.391183524Z     at listOnTimeout (timers.js:263:5)
2020-02-11T22:10:13.391196124Z     at Timer.processTimers (timers.js:223:10)
2020-02-11T22:10:13.391222324Z   name: 'OperationTimeoutError',
2020-02-11T22:10:13.391234624Z   translated: true,
2020-02-11T22:10:13.391260024Z   retryable: false,
2020-02-11T22:10:13.391272224Z   info: undefined,
2020-02-11T22:10:13.391300425Z   condition: 'amqp:operation-timeout' }
2020-02-11T22:10:13.391315125Z 2020-02-11T22:10:13.379Z azure:service-bus:error [connection-1] An error occurred while processing detached() of Receiver 'nextDeviceStatusTopic_1/Subscriptions/nextDeviceStatusSubscription_1-4731aaca-d6ca-3a41-915c-354c9f3debea': 'nextDeviceStatusTopic_1/Subscriptions/nextDeviceStatusSubscription_1'  { OperationTimeoutError: Unable to create the amqp session due to operation timeout.
2020-02-11T22:10:13.391347125Z     at Timeout.actionAfterTimeout (/home/site/wwwroot/node_modules/rhea-promise/dist/lib/connection.js:293:31)
2020-02-11T22:10:13.391359725Z     at ontimeout (timers.js:436:11)
2020-02-11T22:10:13.391385925Z     at tryOnTimeout (timers.js:300:5)
2020-02-11T22:10:13.391398526Z     at listOnTimeout (timers.js:263:5)
2020-02-11T22:10:13.391422926Z     at Timer.processTimers (timers.js:223:10)
2020-02-11T22:10:13.391435426Z   name: 'OperationTimeoutError',
2020-02-11T22:10:13.391460826Z   translated: true,
2020-02-11T22:10:13.391473126Z   retryable: false,
2020-02-11T22:10:13.391497226Z   info: undefined,
2020-02-11T22:10:13.391509526Z   condition: 'amqp:operation-timeout' }
2020-02-11T22:10:13.391534127Z 2020-02-11T22:10:13.379Z azure:service-bus:error [connection-1] Unable to automatically reconnect Receiver 'nextDeviceStatusTopic_1/Subscriptions/nextDeviceStatusSubscription_1-4731aaca-d6ca-3a41-915c-354c9f3debea' with address 'nextDeviceStatusTopic_1/Subscriptions/nextDeviceStatusSubscription_1'.
2020-02-11T22:10:13.391546927Z 2/11/2020, 22:10:13 - error: Error occurred during receiving next device status message: Unable to create the amqp session due to operation timeout.
2020-02-11T22:10:13.391579327Z 2020-02-11T22:10:13.383Z azure:amqp-common:error [connection-3] An error occured while establishing the cbs links: { OperationTimeoutError: Unable to create the amqp session due to operation timeout.
2020-02-11T22:10:13.391597227Z     at Timeout.actionAfterTimeout (/home/site/wwwroot/node_modules/rhea-promise/dist/lib/connection.js:293:31)
2020-02-11T22:10:13.391640228Z     at ontimeout (timers.js:436:11)
2020-02-11T22:10:13.391654328Z     at tryOnTimeout (timers.js:300:5)
2020-02-11T22:10:13.391681328Z     at listOnTimeout (timers.js:263:5)
2020-02-11T22:10:13.391694528Z     at Timer.processTimers (timers.js:223:10)
2020-02-11T22:10:13.391722428Z   name: 'OperationTimeoutError',
2020-02-11T22:10:13.391735528Z   translated: true,
2020-02-11T22:10:13.391761729Z   retryable: false,
2020-02-11T22:10:13.391775429Z   info: undefined,
2020-02-11T22:10:13.391801629Z   condition: 'amqp:operation-timeout' }
2020-02-11T22:10:13.391815229Z 2020-02-11T22:10:13.383Z azure:service-bus:error [connection-3] An error occured while creating the receiver 'simulationIncomingTopic_1/Subscriptions/simulationIncomingSubscription_1-0e30a8fa-3729-db4e-97f3-8dcc759f3e6d': { OperationTimeoutError: Unable to create the amqp session due to operation timeout.
2020-02-11T22:10:13.391861529Z     at Timeout.actionAfterTimeout (/home/site/wwwroot/node_modules/rhea-promise/dist/lib/connection.js:293:31)
2020-02-11T22:10:13.391875930Z     at ontimeout (timers.js:436:11)
2020-02-11T22:10:13.391905030Z     at tryOnTimeout (timers.js:300:5)
2020-02-11T22:10:13.391918630Z     at listOnTimeout (timers.js:263:5)
2020-02-11T22:10:13.391945630Z     at Timer.processTimers (timers.js:223:10)
2020-02-11T22:10:13.391959030Z   name: 'OperationTimeoutError',
2020-02-11T22:10:13.391985731Z   translated: true,
2020-02-11T22:10:13.391999131Z   retryable: false,
2020-02-11T22:10:13.392026331Z   info: undefined,
2020-02-11T22:10:13.392039831Z   condition: 'amqp:operation-timeout' }
2020-02-11T22:10:13.392067531Z 2020-02-11T22:10:13.385Z azure:amqp-common:error [connection-3] Error occured for 'receiverLink' in attempt number 1: { OperationTimeoutError: Unable to create the amqp session due to operation timeout.
2020-02-11T22:10:13.392081431Z     at Timeout.actionAfterTimeout (/home/site/wwwroot/node_modules/rhea-promise/dist/lib/connection.js:293:31)
2020-02-11T22:10:13.392123232Z     at ontimeout (timers.js:436:11)
2020-02-11T22:10:13.392136932Z     at tryOnTimeout (timers.js:300:5)
2020-02-11T22:10:13.392163132Z     at listOnTimeout (timers.js:263:5)
2020-02-11T22:10:13.392176332Z     at Timer.processTimers (timers.js:223:10)
2020-02-11T22:10:13.392218532Z   name: 'OperationTimeoutError',
2020-02-11T22:10:13.392232833Z   translated: true,
2020-02-11T22:10:13.392258833Z   retryable: false,
2020-02-11T22:10:13.392272133Z   info: undefined,
2020-02-11T22:10:13.392297933Z   condition: 'amqp:operation-timeout' }
2020-02-11T22:10:13.392311433Z 2020-02-11T22:10:13.386Z azure:service-bus:error [connection-3] An error occurred while processing detached() of Receiver 'simulationIncomingTopic_1/Subscriptions/simulationIncomingSubscription_1-0e30a8fa-3729-db4e-97f3-8dcc759f3e6d': 'simulationIncomingTopic_1/Subscriptions/simulationIncomingSubscription_1'  { OperationTimeoutError: Unable to create the amqp session due to operation timeout.
2020-02-11T22:10:13.392351434Z     at Timeout.actionAfterTimeout (/home/site/wwwroot/node_modules/rhea-promise/dist/lib/connection.js:293:31)
2020-02-11T22:10:13.392365934Z     at ontimeout (timers.js:436:11)
2020-02-11T22:10:13.392393134Z     at tryOnTimeout (timers.js:300:5)
2020-02-11T22:10:13.392406734Z     at listOnTimeout (timers.js:263:5)
2020-02-11T22:10:13.392435434Z     at Timer.processTimers (timers.js:223:10)
2020-02-11T22:10:13.392450034Z   name: 'OperationTimeoutError',
2020-02-11T22:10:13.392476735Z   translated: true,
2020-02-11T22:10:13.392490235Z   retryable: false,
2020-02-11T22:10:13.392528135Z   info: undefined,
2020-02-11T22:10:13.392553935Z   condition: 'amqp:operation-timeout' }
2020-02-11T22:10:13.392581836Z 2020-02-11T22:10:13.386Z azure:service-bus:error [connection-3] Unable to automatically reconnect Receiver 'simulationIncomingTopic_1/Subscriptions/simulationIncomingSubscription_1-0e30a8fa-3729-db4e-97f3-8dcc759f3e6d' with address 'simulationIncomingTopic_1/Subscriptions/simulationIncomingSubscription_1'.
2020-02-11T22:10:13.392608136Z 2/11/2020, 22:10:13 - error: Error occurred during receiving simulation action messages: Unable to create the amqp session due to operation timeout.

@chradek
Does v1.1.3 fix the issue?

I don't think v1.1.3 fixed the issue. At least, we have a wrapper around the library and in several of our services we found an error like:
2020-03-21T00:39:23.512Z | ERROR [service-core-sb2blob] | Unable to create the amqp receiver <topic>/Subscriptions/sb2blob.save-d02f2b50-342a-a04c
OperationTimeoutError: Unable to create the amqp receiver liber<topic>/Subscriptions/sb2blob.save-d02f2b50-342a-a04c
     at Timeout.actionAfterTimeout (/usr/src/app/node_modules/rhea-promise/dist/lib/session.js:218:31)
     at ontimeout (timers.js:427:11)
     at tryOnTimeout (timers.js:289:5)
     at listOnTimeout (timers.js:252:5)
     at Timer.processTimers (timers.js:212:10)

I think this is pretty much the same as people were comented along this issue...

@telekosmos yes, I also think so
Today We caught the following error: Invalid protocol header for AMQP and  Unable to create the amqp sender/session is still open.
@chradek Could you please tell us the status of this issue? Thanks in advance

This bug is super annoying

@chradek not sure if it helps but I can paste here our layout for rhea library:
$ npm ls rhea
<EMAIL_ADDRESS>.../service-core-emails
└─┬<EMAIL_ADDRESS>  └─┬<EMAIL_ADDRESS>    ├─┬<EMAIL_ADDRESS>    │ └──<EMAIL_ADDRESS>deduped
    ├──<EMAIL_ADDRESS>    └─┬<EMAIL_ADDRESS>      └──<EMAIL_ADDRESS>deduped

Same issue
[Nest] 45   - 03/20/2020, 7:41 AM   [Error] Error enqueuing message: Unable to create the amqp session due to operation timeout. +43042297ms
OperationTimeoutError: Unable to create the amqp session due to operation timeout.
    at Timeout.actionAfterTimeout (/usr/src/ms/node_modules/rhea-promise/dist/lib/connection.js:293:31)
    at ontimeout (timers.js:436:11)
    at tryOnTimeout (timers.js:300:5)
    at listOnTimeout (timers.js:263:5)
    at Timer.processTimers (timers.js:223:10)

Looking through the code there doesn't appear to be a way for _process to be undefined (I was able to get this error once but only while I had a debugger paused for an extended time).

@chradek you're right, there is no _process related issue. Now all issues are caught here:

And there is no matter whether sender or receiver:

Unable to create the amqp sender 786g4h5h-4dgf-2s56-879j-gn2d24gf65bt due to operation timeout.
OperationTimeoutError: Unable to create the amqp receiver TopicName/Subscriptions/SubscriptionName-6df54565-f678-9f8h-s4r4-1g987636789b due to operation timeout.

I've found out that v1.1.5 has been recently released. Let me update lib version and check how  it will work

There is a log file with errors
Lib version 1.1.5
@chradek could you please take a look?

Thanks for the logs @MolochkoVitaly
While we take a look at them, can you reach out to Azure support to see if there were any service side problems or upgrades happening during this time?
We throw the OperationTimeoutError: Unable to create the amqp session due to operation timeout error when we are trying to establish a session with the service and the service does not respond within 60 seconds. So, I have to wonder if there has been issues with the service during this time.

Hi @ramya-rao-a,
I asked Azure Support Team to check if there were any service side problems or upgrades happening during this time?
Response from Azure Support Team:

We checked for the health for your Service Bus Namespace service-bus-resource-name for past 7 days and it was up and running as expected and there is no issue at server side.

We do see that there are intermittent Client errors but no Server Errors encountered for past 7 days.

So, we do not see any issue from the Service Bus Server side as of now and can confirm the same.

Thanks for sharing @MolochkoVitaly
Based on your logs, it does look like the AMQP connection in rhea (which we take a dependency on) lands in a bad state after encountering the error ERR_STREAM_WRITE_AFTER_END. None of the recovery attempts after this point is succeeding.
Link recovery includes creating a new session object (which represents an AMQP session) and then a new link object (which represents an AMQP link: sender or receiver based on what you are working with) in rhea, but on the same connection object (which represents an AMQP connection). The rhea library then revives the connection if it was broken. But, it looks like there are cases where we should ditch the connection object and create a new one.
We are looking into alternatives on how best to handle this and we should have a solution out this week.

Hey @ramya-rao-a
Are there any updates around the issue?

@MolochkoVitaly, Thanks for your patience.
Our investigations have lead us to make the decision to use a new connection object whenever rhea notifies that the AMQP connection has disconnected instead of re-using the same connection object to set up a new AMQP connection. We are working through plumbing this change through our code and carry out the relevant testing. We will update this thread when we are ready to publish an update to the package with the fix.

@ramya-rao-a thanks for the reply
Probably you could say us the rough estimate when this fix is released?

Yep, even a very rough estimate could help, as we have pretty much the same problem (in fact one of our microservices stopped to listen only one subscription out of many, so weird). We have a nasty workaround, which is restarting our pods, but we'd like doing things the right way.
Thanks, BTW!

Rough estimate is sometime next week. Best estimate is early next week :).
We hope to finish making changes, code reviews etc this week, testing & release by early next week.

Hey @ramya-rao-a looks like I am encountering the same issue as well. I am still on version 1.1.2.
Looking forward for the fix :).
Apr 13 05:55:11 task-email-listener-4 core[task-svc-listener-deployment-675b776d6c-clpq2] 2020-04-12T21:55:11.580Z azure:service-bus:receiver [connection-2] Cleared the message renew lock timer for message with id '0e377f3c-c978-4172-ae94-dfb299516654'.
Apr 13 05:55:11 task-email-listener-4 core[task-svc-listener-deployment-675b776d6c-clpq2] Sun, 12 Apr 2020 21:55:11 GMT rhea:events [connection-2] Received disposition for incoming transfers
Apr 13 05:55:11 task-email-listener-4 core[task-svc-listener-deployment-675b776d6c-clpq2] Sun, 12 Apr 2020 21:55:11 GMT rhea:events [connection-2] Link got event: settled
Apr 13 05:55:11 task-email-listener-4 core[task-svc-listener-deployment-675b776d6c-clpq2] 2020-04-12T21:55:11.725Z rhea-promise:receiver [connection-2] receiver got event: 'settled'. Re-emitting the translated context.
Apr 13 05:55:11 task-email-listener-4 core[task-svc-listener-deployment-675b776d6c-clpq2] 2020-04-12T21:55:11.725Z rhea-promise:translate [connection-2] Translating the context for event: 'settled'.
Apr 13 05:55:11 task-email-listener-4 core[task-svc-listener-deployment-675b776d6c-clpq2] 2020-04-12T21:55:11.725Z azure:service-bus:receiver [connection-2] Delivery with id 130, remote_settled: true, remote_state: c { value: [] } has been received.
Apr 13 05:55:11 task-email-listener-4 core[task-svc-listener-deployment-675b776d6c-clpq2] 2020-04-12T21:55:11.725Z azure:service-bus:receiver [connection-2] Found the delivery with id 130 in the map and cleared the timer.
Apr 13 05:55:11 task-email-listener-4 core[task-svc-listener-deployment-675b776d6c-clpq2] 2020-04-12T21:55:11.725Z azure:service-bus:receiver [connection-2] Successfully deleted the delivery with id 130 from the map. true
Apr 13 05:56:18 task-email-listener-4 core[task-svc-listener-deployment-675b776d6c-clpq2] Sun, 12 Apr 2020 21:56:18 GMT rhea:events [connection-2] Connection got event: connection_error
Apr 13 05:56:18 task-email-listener-4 core[task-svc-listener-deployment-675b776d6c-clpq2] 2020-04-12T21:56:18.428Z rhea-promise:translate [connection-2] Translating the context for event: 'connection_error'.
Apr 13 05:56:18 task-email-listener-4 core[task-svc-listener-deployment-675b776d6c-clpq2] Sun, 12 Apr 2020 21:56:18 GMT rhea:events [connection-2] Connection got event: connection_close
Apr 13 05:56:18 task-email-listener-4 core[task-svc-listener-deployment-675b776d6c-clpq2] 2020-04-12T21:56:18.428Z rhea-promise:translate [connection-2] Translating the context for event: 'connection_close'.
Apr 13 06:07:47 task-email-listener-4 core[task-svc-listener-deployment-675b776d6c-clpq2] Sun, 12 Apr 2020 22:07:47 GMT rhea:events [connection-2] Connection got event: connection_open
Apr 13 06:07:47 task-email-listener-4 core[task-svc-listener-deployment-675b776d6c-clpq2] 2020-04-12T22:07:47.434Z rhea-promise:translate [connection-2] Translating the context for event: 'connection_open'.
Apr 13 06:07:47 task-email-listener-4 core[task-svc-listener-deployment-675b776d6c-clpq2] Sun, 12 Apr 2020 22:07:47 GMT rhea:events [connection-2] Connection got event: disconnected
Apr 13 06:07:47 task-email-listener-4 core[task-svc-listener-deployment-675b776d6c-clpq2] 2020-04-12T22:07:47.436Z rhea-promise:translate [connection-2] Translating the context for event: 'disconnected'.
Apr 13 06:07:47 task-email-listener-4 core[task-svc-listener-deployment-675b776d6c-clpq2] 2020-04-12T22:07:47.437Z azure:service-bus:error [connection-2] state: { wasConnectionCloseCalled: false, numClients: 1 }
Apr 13 06:07:47 task-email-listener-4 core[task-svc-listener-deployment-675b776d6c-clpq2] 2020-04-12T22:07:47.437Z azure:service-bus:error [connection-2] connection.close() was not called from the sdk and there were some clients. We should reconnect.
Apr 13 06:07:47 task-email-listener-4 core[task-svc-listener-deployment-675b776d6c-clpq2] 2020-04-12T22:07:47.738Z azure:service-bus:error [connection-2] calling detached on client 'taskEmail/d111f8a4-a125-1b4a-8093-5b295a1d1eef'.
Apr 13 06:07:47 task-email-listener-4 core[task-svc-listener-deployment-675b776d6c-clpq2] 2020-04-12T22:07:47.738Z azure:service-bus:error [connection-2] calling detached on streaming receiver 'taskEmail-c6793373-01f8-f64a-9876-728344e9de7f'.
Apr 13 06:07:47 task-email-listener-4 core[task-svc-listener-deployment-675b776d6c-clpq2] 2020-04-12T22:07:47.739Z rhea-promise:error [connection-2] The receiver is open ? -> false
Apr 13 06:07:47 task-email-listener-4 core[task-svc-listener-deployment-675b776d6c-clpq2] 2020-04-12T22:07:47.739Z rhea-promise:receiver [connection-2] receiver has been closed, now closing it's session.
Apr 13 06:07:47 task-email-listener-4 core[task-svc-listener-deployment-675b776d6c-clpq2] 2020-04-12T22:07:47.739Z rhea-promise:error [connection-2] The session is open ? -> false
Apr 13 06:07:47 task-email-listener-4 core[task-svc-listener-deployment-675b776d6c-clpq2] 2020-04-12T22:07:47.740Z azure:service-bus:error [connection-2] close() method of Receiver 'taskEmail-c6793373-01f8-f64a-9876-728344e9de7f' with address 'taskEmail' was not called. There was no accompanying error as well. This is a candidate for re-establishing the receiver link.
Apr 13 06:07:47 task-email-listener-4 core[task-svc-listener-deployment-675b776d6c-clpq2] 2020-04-12T22:07:47.740Z azure:service-bus:error [connection-2] Receiver 'taskEmail-c6793373-01f8-f64a-9876-728344e9de7f' with address 'taskEmail' is open? -> false
Apr 13 06:07:47 task-email-listener-4 core[task-svc-listener-deployment-675b776d6c-clpq2] 2020-04-12T22:07:47.740Z azure:service-bus:error [connection-2] The receiver 'taskEmail-c6793373-01f8-f64a-9876-728344e9de7f' with address 'taskEmail' is not open and is not currently establishing itself. Hence let's try to connect.
Apr 13 06:07:47 task-email-listener-4 core[task-svc-listener-deployment-675b776d6c-clpq2] Sun, 12 Apr 2020 22:07:47 GMT rhea:events [connection-2] Connection got event: connection_open
Apr 13 06:07:47 task-email-listener-4 core[task-svc-listener-deployment-675b776d6c-clpq2] 2020-04-12T22:07:47.756Z rhea-promise:translate [connection-2] Translating the context for event: 'connection_open'.
Apr 13 06:07:47 task-email-listener-4 core[task-svc-listener-deployment-675b776d6c-clpq2] Sun, 12 Apr 2020 22:07:47 GMT rhea:events [connection-2] Connection got event: disconnected
Apr 13 06:07:47 task-email-listener-4 core[task-svc-listener-deployment-675b776d6c-clpq2] 2020-04-12T22:07:47.757Z rhea-promise:translate [connection-2] Translating the context for event: 'disconnected'.
Apr 13 06:07:47 task-email-listener-4 core[task-svc-listener-deployment-675b776d6c-clpq2] 2020-04-12T22:07:47.757Z azure:service-bus:error [connection-2] Error (context.error) occurred on the amqp connection: Error [ERR_STREAM_WRITE_AFTER_END]: write after end
Apr 13 06:07:47 task-email-listener-4 core[task-svc-listener-deployment-675b776d6c-clpq2]     at writeAfterEnd (_stream_writable.js:248:12)
Apr 13 06:07:47 task-email-listener-4 core[task-svc-listener-deployment-675b776d6c-clpq2]     at TLSSocket.Writable.write (_stream_writable.js:296:5)
Apr 13 06:07:47 task-email-listener-4 core[task-svc-listener-deployment-675b776d6c-clpq2]     at Transport.write (/task-svc/node_modules/rhea/lib/transport.js:56:16)
Apr 13 06:07:47 task-email-listener-4 core[task-svc-listener-deployment-675b776d6c-clpq2]     at SaslClient.write (/task-svc/node_modules/rhea/lib/sasl.js:292:26)
Apr 13 06:07:47 task-email-listener-4 core[task-svc-listener-deployment-675b776d6c-clpq2]     at Connection.output (/task-svc/node_modules/rhea/lib/connection.js:461:28)
Apr 13 06:07:47 task-email-listener-4 core[task-svc-listener-deployment-675b776d6c-clpq2]     at Connection._write_frame (/task-svc/node_modules/rhea/lib/connection.js:694:10)
Apr 13 06:07:47 task-email-listener-4 core[task-svc-listener-deployment-675b776d6c-clpq2]     at Session.output (/task-svc/node_modules/rhea/lib/session.js:456:21)
Apr 13 06:07:47 task-email-listener-4 core[task-svc-listener-deployment-675b776d6c-clpq2]     at Session._process (/task-svc/node_modules/rhea/lib/session.js:601:18)
Apr 13 06:07:47 task-email-listener-4 core[task-svc-listener-deployment-675b776d6c-clpq2]     at Connection._process (/task-svc/node_modules/rhea/lib/connection.js:684:39)
Apr 13 06:07:47 task-email-listener-4 core[task-svc-listener-deployment-675b776d6c-clpq2]     at /task-svc/node_modules/async-listener/glue.js:188:31
Apr 13 06:07:47 task-email-listener-4 core[task-svc-listener-deployment-675b776d6c-clpq2]     at process._tickCallback (internal/process/next_tick.js:61:11)
Apr 13 06:07:47 task-email-listener-4 core[task-svc-listener-deployment-675b776d6c-clpq2] 2020-04-12T22:07:47.758Z azure:service-bus:error [connection-2] state: { wasConnectionCloseCalled: false, numClients: 1 }
Apr 13 06:07:47 task-email-listener-4 core[task-svc-listener-deployment-675b776d6c-clpq2] 2020-04-12T22:07:47.758Z azure:service-bus:error [connection-2] connection.close() was not called from the sdk and there were some clients. We should reconnect.
Apr 13 06:07:47 task-email-listener-4 core[task-svc-listener-deployment-675b776d6c-clpq2] Sun, 12 Apr 2020 22:07:47 GMT rhea:events [connection-2] Connection got event: disconnected
Apr 13 06:07:47 task-email-listener-4 core[task-svc-listener-deployment-675b776d6c-clpq2] 2020-04-12T22:07:47.758Z rhea-promise:translate [connection-2] Translating the context for event: 'disconnected'.
Apr 13 06:07:47 task-email-listener-4 core[task-svc-listener-deployment-675b776d6c-clpq2] 2020-04-12T22:07:47.758Z azure:service-bus:error [connection-2] state: { wasConnectionCloseCalled: false, numClients: 1 }
Apr 13 06:07:47 task-email-listener-4 core[task-svc-listener-deployment-675b776d6c-clpq2] 2020-04-12T22:07:47.758Z azure:service-bus:error [connection-2] connection.close() was not called from the sdk and there were some clients. We should reconnect.
Apr 13 06:07:48 task-email-listener-4 core[task-svc-listener-deployment-675b776d6c-clpq2] 2020-04-12T22:07:48.059Z azure:service-bus:error [connection-2] calling detached on client 'taskEmail/d111f8a4-a125-1b4a-8093-5b295a1d1eef'.
Apr 13 06:07:48 task-email-listener-4 core[task-svc-listener-deployment-675b776d6c-clpq2] 2020-04-12T22:07:48.059Z azure:service-bus:error [connection-2] calling detached on client 'taskEmail/d111f8a4-a125-1b4a-8093-5b295a1d1eef'.
Apr 13 06:07:57 task-email-listener-4 core[task-svc-listener-deployment-675b776d6c-clpq2] /task-svc/node_modules/applicationinsights/out/AutoCollection/Exceptions.js:37
Apr 13 06:07:57 task-email-listener-4 core[task-svc-listener-deployment-675b776d6c-clpq2]                         throw THIS_IS_APPLICATION_INSIGHTS_RETHROWING_YOUR_EXCEPTION; // Error originated somewhere else in your app
Apr 13 06:07:57 task-email-listener-4 core[task-svc-listener-deployment-675b776d6c-clpq2]                         ^
Apr 13 06:07:57 task-email-listener-4 core[task-svc-listener-deployment-675b776d6c-clpq2] TypeError: Cannot read property 'address' of undefined
Apr 13 06:07:57 task-email-listener-4 core[task-svc-listener-deployment-675b776d6c-clpq2]     at Receiver.get address [as address] (/task-svc/node_modules/rhea-promise/dist/lib/link.js:62:28)
Apr 13 06:07:57 task-email-listener-4 core[task-svc-listener-deployment-675b776d6c-clpq2]     at Timeout.actionAfterTimeout (/task-svc/node_modules/@azure/service-bus/node_modules/@azure/amqp-common/dist/index.js:1235:47)
Apr 13 06:07:57 task-email-listener-4 core[task-svc-listener-deployment-675b776d6c-clpq2]     at Timeout._onTimeout (/task-svc/node_modules/async-listener/glue.js:188:31)
Apr 13 06:07:57 task-email-listener-4 core[task-svc-listener-deployment-675b776d6c-clpq2]     at ontimeout (timers.js:436:11)
Apr 13 06:07:57 task-email-listener-4 core[task-svc-listener-deployment-675b776d6c-clpq2]     at tryOnTimeout (timers.js:300:5)
Apr 13 06:07:57 task-email-listener-4 core[task-svc-listener-deployment-675b776d6c-clpq2]     at listOnTimeout (timers.js:263:5)
Apr 13 06:07:57 task-email-listener-4 core[task-svc-listener-deployment-675b776d6c-clpq2]     at Timer.processTimers (timers.js:223:10)
Apr 13 06:08:03 task-email-listener-4 core[task-svc-listener-deployment-675b776d6c-clpq2] src-file="/task-svc/app/event/index.js" operation-name="line-22" svc-name="task-email-listener" timestamp="2020-04-12T22:08:03.148Z" type="info" msg="Starting task-email-listener service"

Hello all,
Thanks for your patience.
We just released an update to the @azure/service-bus package (version 1.1.6) where we have improved the way we recover from broken connections. It should help with the cases seen in this issue where we encounter the ERR_STREAM_WRITE_AFTER_END error which results in the connection entering a bad state and all operations timing out.
Please give it a try and let us know if you have any issues.
Thanks for reporting!

@ramya-rao-a & team, thanks for the rollout 👍. We will update our services and hopefully everything will go smooth. However, after checking the changelog, we wonder if we need any change in our code or it should run just as before (hopefully fixing the problems reported in this issue).
Thanks!

No code change required. Just upgrade to the new version.
There was no user facing api changed for the fixes you need.

Hi,
I am still facing this issue after updating the library to 1.1.6 as well.

Please help @ramya-rao-a

@kks010 It is possible that all the retry attempts are exhausted and then you are getting notified of the error.
Please log a new issue with details on how your application works with Service Bus and the behavior you see around the timeline of the error. What is the time difference between the last message that was received and the error? Was there any Azure upgrade around this time?

Share a code snippet that shows how you are using the registerMessageHandler method. How do you do error handling? Do you have code in place to use a new receiver or a new queue/subscription client when your error handler sees a non retryable error?
Share any logs you have associated with the error. If you don't have any logs, then we recommend you create a support ticket in the Azure portal, so that we can look at the service side logs for you to determine what happened.
If this is reproducable locally, then please enable the logs (set DEBUG env variable to azure:service-bus:receiver,azure:service-bus:error) and share them.


[Bug]: Upgrade 1.9.4 -> 1.10.0

Description
Fail to run plan:
module.infra.hcloud_load_balancer_target.control_plane[0]: Refreshing state... [id=lb-label-selector-tgt-e28c2aca8511abb71788e8293f7b552d88f71cf3e8556d7016bb6d35ec4ee3dc-1101899]
╷
│ Error: Unsupported attribute
│
│   on .terraform/modules/infra/main.tf line 45, in resource "hcloud_firewall" "k3s":
│   45:       description     = rule.value.description
│     ├────────────────
│     │ rule.value is object with 5 attributes
│
│ This object does not have an attribute named "description".
╵
╷
│ Error: Unsupported attribute
│
│   on .terraform/modules/infra/main.tf line 45, in resource "hcloud_firewall" "k3s":
│   45:       description     = rule.value.description
│     ├────────────────
│     │ rule.value is object with 5 attributes
│
│ This object does not have an attribute named "description".
╵

Kube.tf file
module "infra" {
  providers = {
    hcloud = hcloud
  }

  hcloud_token    = data.sops_file.secrets.data["hetzner-cloud-auth-token"]
  ssh_public_key  = file("../secrets/keys/users/otavio.pub")
  ssh_private_key = null
  ssh_port        = 60022

  source  = "kube-hetzner/kube-hetzner/hcloud"
  version = "1.10.0"

  # Allow dynamic mirror selection for media.
  opensuse_microos_mirror_link = "https://download.opensuse.org/tumbleweed/appliances/openSUSE-MicroOS.x86_64-OpenStack-Cloud.qcow2"

  # Extra k3s registries.
  k3s_registries = <<-EOT
    mirrors:
      docker.io:
        endpoint:
          - "https://mirror.gcr.io"
          - "https://registry-1.docker.io"
  EOT

  # Avoid updating it as Longhorn need check for compatibility.
  initial_k3s_channel = "v1.24"

  network_region       = "us-east"
  create_kubeconfig    = false
  create_kustomization = false

  # Use Cilium as network layer.
  cni_plugin = "cilium"

  # Block ICMP PING in nodes
  block_icmp_ping_in = true

  extra_firewall_rules = [
    # Allow FluxCD access to resources via SSH.
    {
      direction       = "out"
      protocol        = "tcp"
      port            = "22"
      source_ips      = []
      destination_ips = ["<IP_ADDRESS>/0", "::/0"]
    },
    # Allow SMTP access so we can send e-mails from pods.
    {
      direction       = "out"
      protocol        = "tcp"
      port            = "587"
      source_ips      = []
      destination_ips = ["<IP_ADDRESS>/0", "::/0"]
    }
  ]

  use_control_plane_lb = true
  control_plane_nodepools = [
    {
      name        = "control-plane",
      server_type = "cpx21",
      location    = "ash",
      labels      = ["role=infra"],
      taints      = [],
      count       = 3
    }
  ]

  agent_nodepools = [
    {
      name        = "agent",
      server_type = "cpx41",
      location    = "ash",
      labels      = ["role=apps", "node.longhorn.io/create-default-disk=true"],
      taints      = [],
      count       = 4
    },
  ]

  kured_options = {
    "reboot-days" : "su"
    "start-time" : "9am"
    "end-time" : "5pm"
  }

  base_domain = "nodes.xxx"

  load_balancer_type     = "lb11"
  load_balancer_location = "ash"

  # We deploy the ingress ourselves.
  ingress_controller = "none"

  enable_longhorn           = true
  longhorn_namespace        = "storage"
  longhorn_values           = <<EOT
defaultSettings:
  createDefaultDiskLabeledNodes: true
  backupTargetCredentialSecret: longhorn-cloud-credentials
  backupTarget: s3://lab-infra-backup@us-central-1/longhorn/
  priorityClass: system-node-critical
  storageOverProvisioningPercentage: 100
  replicaSoftAntiAffinity: false
  allowVolumeCreationWithDegradedAvailability: false
persistence:
  reclaimPolicy: Retain
  recurringJobSelector:
    enable: true
    jobList: '[{"name":"infrequent-backups", "isGroup":true}]'
EOT
  disable_hetzner_csi       = true
  extra_packages_to_install = ["open-iscsi", "nfs-client", "xfsprogs", "cryptsetup"]

  cluster_name = "infra"

  use_cluster_name_in_node_name = true
}

### Screenshots

_No response_

### Platform

Linux

@otavio The description attribute is a new one for the firewall. Thanks for opening this issue, basically we must make it optional. Please don't hesitate to try to make it work and submit a PR, otherwise, I will look into it ASAP.

@otavio Actually, the fix is a lot easier, just change your extra_firewall_rules inside your kube.tf to add a description field, as such:
  extra_firewall_rules = [
    # Allow FluxCD access to resources via SSH.
    {
      direction       = "out"
      protocol        = "tcp"
      port            = "22"
      source_ips      = []
      destination_ips = ["<IP_ADDRESS>/0", "::/0"]
     description = "Allow FluxCD access to resources via SSH"
    },
    # Allow SMTP access so we can send e-mails from pods.
    {
      direction       = "out"
      protocol        = "tcp"
      port            = "587"
      source_ips      = []
      destination_ips = ["<IP_ADDRESS>/0", "::/0"]
     description = "Allow SMTP access so we can send e-mails from pods"
    }
  ]

This works, but should it be required?
Either way, thanks for the help.

@otavio Good to hear! I believe it doesn't hurt to describe what a firewall rule does, people can always choose to give an empty string if they want to.


Abstract signaling server messages

Issue #11 provides a solution for using a different type of signaling server. However, certain parts of y-webrtc make assumptions about the messages being sent through the signaling server. This is a suggestion for refactoring some of the code to make it possible to swap out SignalingConn with a derived class.
In our case, we wanted to use Azure Web PubSub as the signaling server, and Microsoft uses slightly different message formats, event names, and terminology (i.e. "join groups" instead of "subscribe to topics", "group-message" instead of a "message" event, etc.).
Here is our example code where we have derived classes from SignalingConn and WebrtcProvider using the refactored y-webrtc in this PR. It uses the Azure Web PubSub client from Microsoft.
export class AzureWebPubSubSignalingConn extends SignalingConn {
  private clientConnected = false;

  private webPubSubClient!: WebPubSubClient;

  setupClient() {
    this.webPubSubClient = new WebPubSubClient(this.url);
    this.webPubSubClient.on('connected', (e) => {
      this.clientConnected = true;
      console.log(`connected (${this.url}) with ID ${e.connectionId}`);
      this.handleConnect();
    });
    this.webPubSubClient.on('disconnected', (e) => console.log(`disconnect (${this.url}): ${e.message}`));
    this.webPubSubClient.on('stopped', () => console.log(`stopped (${this.url})`));
    // Set an event handler for group messages before connecting, so we don't miss any.
    this.webPubSubClient.on('group-message', (e) => {
      this.handleMessage(e.message.group, e.message.data);
    });
    // Connect to the signaling server.
    this.webPubSubClient.start();
  }

  connected() {
    return this.clientConnected;
  }

  subscribe(roomName: string) {
    this.webPubSubClient.joinGroup(roomName);
  }

  unsubscribe(roomName: string) {
    this.webPubSubClient.leaveGroup(roomName);
  }

  publish(roomName: string, message: string | object) {
    let messageType: WebPubSubDataType = 'json';
    if (typeof message === 'string') {
      messageType = 'text';
    }
    this.webPubSubClient.sendToGroup(roomName, message, messageType);
  }

  destroy() {
    this.webPubSubClient.stop();
  }
}

export class AzureWebPubSubSignalingWebrtcProvider extends WebrtcProvider {
  connect() {
    this.shouldConnect = true;
    this.signalingUrls.forEach((url) => this.addSignalingConn(url, () => new AzureWebPubSubSignalingConn(url)));
    if (this.room) {
      this.room.connect();
    }
  }
}

The following refactoring was done:

Decouples SignalingConn from WebsocketClient and creates a property to hold an instance of it.
Creates subscribe, unsubscribe, and publish methods for SignalingConn so external code doesn't need to know how to format signaling server messages.
Creates a connected method, since clients may determine signaling server connectivity differently.
Moves websocket client initialization into a setupClient method which can be overridden to use a different signaling server client (ex: Azure Web PubSub client) including differing message event names (ex: message vs group-message)
Moves the rooms iteration into a handleConnect method, so that global set does not have to be exported and used in derived classes.
Creates a handleMessage method so the logic can be reused and does not need to be included in the client message event definitions of derived classes.

Questions
Overriding WebrtcProvider just to change the class used for signaling connections seems excessive. Is there a way we can pass this into the base WebrtcProvider instead? Maybe create a factory method that we can override in a derived class.
This is the only line we need to change in the connect() method:
const signalingConn = map.setIfUndefined(signalingConns, url, () => new SignalingConn(url))
What about this needs to be cleaned up to prevent introducing TypeScript errors if/when y-webrtc.js is converted to TS?

@dmonad do you have any feedback on this approach or if it is even feasible to do this level of refactoring in your module?

Hi @byrond,
first of all, thanks for contributing to this repository!
I manage a lot of different tools, and I'm always hesitant to merge new features.
I prefer simplicity over extensibility because simple projects are easier to maintain. Any new feature that is introduced causes at least one more bug that I have to fix. At this time, this feature is not a priority for me.
That said, I think the approach is valid. I haven't done a full review yet. If you gather more support, I might merge this feature into the next major release.
Btw, this repository is fully typed using jsdoc comments (I prefer that over typescript files). If you do npm run lint it should give you type errors (not just syntax errors).


This repository name was changed from aca-deploy to aca-preview

Why
This repository name was changed from aca-deploy to aca-preview
What
s/aca-deploy/aca-preview/g

Thank you 😄


feat(lang): Support custom wheel

Description
Users have to do this to install custom wheel
def install_wheel(name):
    io.copy(src=name, dest="/")
    run(commands=["pip install /"+name])

We should support syntax like this:
def build():
    install.packages(custom_wheel=[
        "xxx.wheel"
    ])

Message from the maintainers:
Love this enhancement proposal? Give it a 👍. We prioritise the proposals with the most 👍.

Is wheel related specfic arch in some cases?

This may require users to obtain the arch. We may need to consider exposing some environment info:
if env.os == "linux" and env.arch == "amd64":
  install.packages("linux-amd64-dist.wheel")
elif env.os == "darwin" and env.arch == "arm64":
  install.packages("darwin-arm64-dist.wheel")

This feature is issued by a user, he expect installing a custom wheel (linux-amd64) in the envd env.