Example of catching exception?

I wrote some purposefully bad Lua code. I tried catching a sol::error after calling "open_file" but the C++ just SEGFAULTs.

Hold on. I might be using the wrong type when catching the exception.

Yeah, this is weird.
Only "catch (...)" works. These things don't work:
catch (std::exception& exception) {
catch (std::exception exception) {
catch (const std::exception& exception) {
catch (sol::error)
catch (const sol::error&)
what's going on?

Provide the C++ and Lua code.

Abridged version, as some of the code is proprietary.
inline typename sol::return_type<Ret...>::type LuaCall(
  const sol::state& lua,
  const string& func_name,
  Args&&... args)
  try {
    typename sol::return_type<Ret...>::type result;
    sol::function func = lua.get<sol::function>(func_name);
    return func.call<Ret...>(std::forward<Args>(args)...);
  } catch (...) {
    LOG(INFO) << "Helo world";
  }

LuaCall<bool>(lua, "test")

-- Correct name is "test", but renamed to "__test" to force Lua to throw an exception.
function __test()
end

Some more debug:
try {
  ...
} catch (...) {
  LOG(INFO) << __cxa_current_exception_type();
  LOG(INFO) << "----------------------------";
  LOG(INFO) << __cxa_current_exception_type()->name();
}

This results in:
0xfffffffe
----------------------------
Segmentation fault

I'm also using ThePhd's latest version on his "develop" branch

My clang version is 3.6.1

As a final question, are you still using luajit or just regular lua ?

luajit. It might have been something in your "develop" branch, but not sure.

Calling your function in VC++ works fine: a proper error occurs from luajit and is caught by sol::error Going to test with g++ and clang++ when I get a chance.

an additional detail: luajit is linked statically.

Works in g++. Attempting clang++ once I build luajit and everything with it....

well, it seems like you should've tried clang first.

Thanks, let me know once you have some idea on how to fix this

Did you try with statically linked luajit?

I can't get my clang-for-windows to behave properly with any standard library. Going to need someone else to attempt to build and run. For reference, this is the test I'm using:
#include <sol.hpp>
#include <iostream>

int main( ) {
	sol::state lua;
	lua.open_libraries(sol::lib::base);

	try {
        lua.script( R"(
-- Correct name is "test", but renamed to "__test" to force Lua to throw an exception.
function __test()
return true
end
	    )" );
		sol::function func = lua.get<sol::function>( "test" );
		bool value = func.call<bool>( );
        (void)value;
	}
	catch ( const sol::error& e ) {
		std::cout << e.what( ) << std::endl;
	}
	catch ( const std::exception& e ) {
		std::cout << e.what( ) << std::endl;
	}

	return 0;
}

seems good. I'll try with that small code tomorrow morning. There isn't clang compiler binary you can download for windows?

@ThePhD
Just tried now, and didn't work:
void sanity_test_lua() {
  sol::state lua;
  lua.open_libraries(sol::lib::base);
  lua.script("function __test() return true end");
  try {
    sol::function func = lua.get<sol::function>("test");
    bool value = func.call<bool>();
    (void) value;
  } catch (const sol::error& err) {
    LOG(INFO) << "Pass.";
  } catch (const std::exception& err) {
    LOG(INFO) << "Pass.";
  } catch (...) {
    LOG(FATAL) << "Should not be in this catch block!";
  }
}

As a sanity check: If I change "test" to "__test", then it passes alright.

It's going to take me a while to test this. None of my Clang for Windows builds can handle either the Visual Studio 2015 RC standard library (char16/32_t aren't defined properly for the newer versions of VC++ that have support for it) and also reject MinGW builds (with 5.1.0, nothing links properly).
I have to backtrack to an Ubuntu VM, get clang, and then try the code, which will take me some time.

 The following does work on gcc (good news for you? :) )
This is the test code I'm using now. The difference is I removed the catch-all "catch (...)"
void sanity_test_lua() {
  sol::state lua;
  lua.open_libraries(sol::lib::base);
  lua.script("function __test() return true end");
  try {
    sol::function func = lua.get<sol::function>("test");
    bool value = func.call<bool>();
    (void) value;
  } catch (const sol::error& err) {
    LOG(INFO) << "Pass.";
    return;
  } catch (const std::exception& err) {
    LOG(INFO) << "Pass.";
    return;
  }
  LOG(FATAL) << "Should not have reached here!.";
}

Maybe I'll try the clang version now.

Oh, as it turns out, that small test passes on the clang version now. Sorry for all the trouble mate. Let me figure out what went wrong with the other code I did then.

I'll close this issue once I'm able to fix the original code.

So, the code works when it's part of the unit test, but not when it's part of the production code. Hm.......

OK, so there must be something really funky with adding Lua into the project I'm working on.
This code results in SEGFAULT:
void InitLuaVm() {
  sol::state lua;
  lua.open_libraries(sol::lib::base);
  try {
    lua.open_file(
      "/home/nutanix/hmain/installer/config/arithmos/deletable_entities.lua");
  } catch (const sol::error& err) {
    LOG(INFO) << "Pass: sol::error: " << err.what(); // Probably here, since err would be junk value.
    return;
  }
  LOG(FATAL) << "Should not have reached here!";

This code results in a LOG(FATAL) somewhere in some other system component (Zeus??)
void InitLuaVm() {
  sol::state lua;
  lua.open_libraries(sol::lib::base);
  try {
    lua.open_file(
      "/home/nutanix/hmain/installer/config/arithmos/deletable_entities.lua");
  } catch (const sol::error& err) {
    LOG(INFO) << ".........................";
    return;
  }
  LOG(FATAL) << "Should not have reached here!";

Okay, so "probably here" doesn't help me find out if you have a problem or the library has a problem. I do not know what "other system component" means, I do not know what "Zeus" is.
After much toil, everything compiles and runs on my machine. The problem might lie in your deletable_entities.lua file. Perhaps it doesn't exist where you think it does. Perhaps the code makes the luajit-2.0.3 parser flip out and crash. I have no way of knowing this.
All I know is that as it stands the code is alright. Until you can spend some time properly debugging your lua code, commenting out things until you can exactly pinpoint the problem, we're just going to be wasting time stabbing into the dark.
Please spend some time properly debugging your code.

Well, this results in FATAL. And I am trying to debug, but it is not simple. This code base is 40k of C++, and that other component Zeus is an open sourced Apache project that's also fairly large.
  sol::state lua;
  lua.open_libraries(sol::lib::base);
  try {
    lua.script("end end end end end");
  } catch (const sol::error& err) {
    return;
  }
  LOG(FATAL) << "Should not have reached here!";

So maybe this is a general problem with LuaJIT and C++ exceptions.
What I did was replace your header with the equivalent. The following code reproduces the exact same problem:
  lua_State *my_lua = lua_open();
  try {
    int result = luaL_dostring(my_lua, "end end end end end");
    LOG(INFO) << "Lua result: " << result;
    lua_error(my_lua);
  } catch (std::exception& err) {
    LOG(INFO) << "Oops: " << err.what();
  }
  lua_close(my_lua);

At the bottom of the LuaJIT extension page, you can read more about how they deal with exceptions: http://luajit.org/extensions.html. It does not explicitly mention LLVM as a safe target, just GCC-binaries and WinSDK/VC++ binaries (on x64 Windows for those).
It could be you're hitting an edge case with luajit here. You may also want to try to upgrade to luajit-2.0.4 (since you're on 2.0.3): the changelog for 2.0.4 is long and 2.0.3 is over a year old now, which may not account for the changes of the latest stable clang (3.6). In either case, this is a luajit issue, and one we can't help you with.
Good luck.

Well, we're already using LuaJIT-2.0.4. Thanks for your patience during this issue though. I can close this issue now.

Well I just retried using GCC 4.4.7, and still running into the exact same issue. FYI to anybody who finds this thread from Google.


V0.12.0.x fix all kind of lock issues

Testing all over is needed for this one

The only issue I've seen is this one:
OTENTIAL DEADLOCK DETECTED
2015-07-30 14:24:44 Previous lock order was:
2015-07-30 14:24:44  pnode->cs_vRecvMsg  net.cpp:1451
2015-07-30 14:24:44  (1) cs_main  main.cpp:4045
2015-07-30 14:24:44  (2) cs_vSend  net.cpp:2064
2015-07-30 14:24:44 Current lock order is:
2015-07-30 14:24:44  (2) pnode->cs_vSend  net.cpp:1470
2015-07-30 14:24:44  (1) cs_main  main.cpp:5300
2015-07-30 14:24:44  (1) cs_main  main.cpp:1614
I'm going to merge, we can continue testing on testnet. Thanks!


fix / improve getPeriodFromAnchorDate

@mariusheine Could you maybe have a look at the period calculation and help me with the test. I think we had some issues with the previous implementation.
Some open issues & questions I have:

if a switch is at the 15. should the previous end be the 14., right?
and if a switch is at the end of a month (exp 31.), the end of a period should be the end of the month and the start the start of the month?
if a date I want to get the period for is before the anchor-date (exp 15. and anchor-date is 20.) it should not return the period from the 20., but from the last month to now

@mariusheine I fixed the logic and related tests. Would be awesome if you could verify that the expected test data makes sense at all.


Chinese localization for the official document site

First of all it is a idea to discuss rather than a bug report.
Hi, @benlesh @kwonoj @staltz and so on . Thanks for all of you for rewriting the awesome RxJS.
RxJS is so cool and so many people love it so much, personally I believe its potential.
But because of its high learing curve, a lot of developers which interest in it still standing outside of the door. So I want to help more developer which come from China to get started with RxJS by reducing the learning curve and I translate the  official document site of RxJS into Chinese. The purpose is making the community of RxJS stronger.
I hope it can be added into the repo's README as a link.
The form can be like this:
Translations:

Chinese or 中文

Appendix:
docs: http://cn.rx.js.org
repo: https://github.com/RxJS-CN/RxJS-Docs-CN

I'm labeling this as discussion for now.
One Q: is there specific reason this should be included in official docs? what blocks to share this document with local readers if not the case?

First and the most important concern is that the most local readers may be not know the existence of the local document. RxJS itself is hard as its high learing curve, and for the readers that not good at English is harder than ever. It may frustrate them.
Last allowe me to describe on scenario:
One RxJS beginner which come from China starts to read the offical repo or docs, once them find there is already a Chinese localization for them, I trust them will be happy to read it to improving their learning speed.

I am in general welcoming effort related with documentation, around translations I had couple of concerns on some other projects I worked on.

First, it is really hard to find proof-reader
: if translation is not reflecting original documentation, it may lead readers incorrect understandings. For original (English in here) we have several contributors can proof read on PRs, but when in comes to translation it is really not easy to find someone can do. I do not say you'll translate something not as expected, it is just we probably can't have review process for this.

Documentation can be bit behind and outdated
: Our original documentation is already behind to code implementation. In case translation, it could be behind to original documentation even.

Due to above reasons, one of module I'm using is providing my own language docs, I barely not referencing it but heading to original documentation directly, lot of cases I find translated docs are not matching with original documentation.
Once we link your documentation as 'official' link to docs, it means it is under the responsibility of maintainer to make documents latest and correct. I am not sure how we can keep up those with current working pipeline. Don't get me wrong, your contribution is super great & appreciate - I'm thinking maintainable pipeline process for further.

I thought I got your concern point. You have to be responsible for all of your work.
For the first, I agree with you, it may not be resolved for now. Although we have two guys to translate and proof reading each other, but compare to you guys which are contributors, the understanding of RxJS for us is not as deep as yours.
And for the second, it won't be a promble, since we decided to do the translation work, we'll make it better and not quit easily to let it  be a one-time work. We are tracking the original repo for syncing the document diff continuously.
In the end, I want to say 'Thank You' to all of you guys for the awesome work.
For the result of discussion, I'm fine. Oneday you guys need the translation, I'll back for it.
All I have done is to make RxJS better and more and more developers to get started with it.


Update 2023rw1-sec-group-short.md

Misspelled "business"

Thanks for your contribution! This is our public repo though, which means we can't merge this PR for publishing directly. Don't worry, we've ported your content to our private repo, dynamics365smb-docs-pr, and you can expect to see your contribution live in the very near future. Thanks again!


Small improvements to get the docs to build

I tweaked conf.py to allow Sphinx to find the packages. Also, I included a few more libraries in the  “MOCK_MODULES” in conf.py
Finally, I added a brief section in CONTRIBUTING.md about how to build the documentation, since I had to look it up, so I figure that other people may have forgotten as well :).

I also imported all of the submodules in the abel/__init__.py file as mentioned in https://github.com/PyAbel/PyAbel/issues/74.
from . import basex
from . import benchmark
from . import direct
from . import hansenlaw
from . import three_point
from . import tools

Woah, scratch that last comment. It makes everything import just like I expected, but it completely breaks the documentation. This PR can be merged, since it's now just minor changes.

I opened a PR https://github.com/PyAbel/PyAbel/pull/75 that supersede this one.


Add timeout capability to Future implementation of FetchMonadError

The attached PR adds timeout capability to FetchMonadError[Future]
I also modified Query.Sync to return a completed future which I think is the intent rather than run it in a Future
All tests pass but I didn't yet create tests for the timeout, I can do so if the PR looks like something you might want
Only thing I'm not sure about is whether the use of synchronize is needed. I'm not sure but I think Promise may be safe to use from multiple threads because it uses an AtomicReference but didn't find any confirmation of that.

Removed synchronization on Promise and simplified the PR

Have added tests for the two cases of a future failing because it timed out and succeeding because it finished before the timeout occurred.

I've updated the PR so that the tests that require non-blocking sleep are now in the JVM module. Seems travis build is failing but this is due to a timeout building the docs

I think everything looks good now, just getting a timeout with Travis building the docs

There definitely is something strange going on when combining Timer and tut.
Commenting out implicits.timer (and as a consequence timer.schedule(...)) makes tut run fine.
A minimal tut file which makes tut hang (notice that we aren't even using the time out here, since we are using Query.sync):
// ```tut
import scala.concurrent.{Await, Future}
import scala.concurrent.duration.Duration
import scala.concurrent.ExecutionContext.Implicits.global

import fetch.{FetchMonadError, Query}
import fetch.implicits._

val query: Query[Option[Int]] = Query.sync { Some(1) }

val future: Future[Option[Int]] = FetchMonadError[Future].runQuery(query)
Await.result(future, Duration.Inf)
// ```

If I change the Sync from Future(...) to the line below, tut runs fine for the minimal file, not for the complete docs.md file though ...
case Sync(e) =>
  cats.ApplicativeError[Future, Throwable].catchNonFatalEval(e)

It seems like I need to do some more investigating to see what is going on ...

Ah timer is supposed to run on a daemon thread and if it doesn't then it can stop a program from terminating. I'll check the code and see if I'm doing that correctly

Codecov Report

Merging #127 into master will increase coverage by 0.43%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master     #127      +/-   ##
==========================================
+ Coverage      78%   78.43%   +0.43%
==========================================
  Files          14       14
  Lines         300      306       +6
  Branches        2        2
==========================================
+ Hits          234      240       +6
  Misses         66       66

Impacted Files
Coverage Δ

shared/src/main/scala/implicits.scala
100% <100%> (ø)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update ae93d41...a79af37. Read the comment docs.

I've updated so Timer is on a daemon thread and also created lazily so it is not initialized by programs that don't use it


Origin of Russian dictionaries?

If you don't mind me asking, where do the Russian dictionaries come from? Who created them and licensed them as LGPL-3.0?

Did you read the readme?

I have now, thank you!


docs(dpg): update ProtocolMethods.md

update ProtocolMethods.md to be more aligned with existing PetsStoreClient and Pet.
remove section regarding RequestContext since it's a duplicate, and add links to overall readme and sample index.
remove unused id property from Pet model
add a code snippet directive in unit test, for sample contents
fix parameter names in PetStoreClient

part of #26454
Contributing to the Azure SDK
Please see our CONTRIBUTING.md if you are not familiar with contributing to this repository or have questions.
For specific information about pull request etiquette and best practices, see this section.

This PR focuses on cleaning up some obvious errors in the ProtocolMethods.md.
We still have a fundamental problem to solve: PetStoreClient is not generated, which will be resolved in #28315

API change check for Azure.Core
API changes are not detected in this pull request for Azure.Core


Tim/protege update

@davidpranata  Do you mind reviewing this?  There will be more changes coming down the pipe related to the Taxonomy Website, but for now we can go ahead and wrap this story up, and get the Taxonomy endpoint updated:  https://www.pivotaltracker.com/story/show/114422349


Exception: Latex error converting to dvi and other errors during implementing transformation

I have tried to solve this problem by reinstalling MiKTeX and I did with complete version. I was able to run some of the animations that did not contain Tex codes. I was able to do basic Text animations and shapes animations But I was not certainly able to do anything with Latex codes, for example:
I was able to run text_1 to text_2 transformation but I wasnt even able to render any tex codes not even a png. How even I followed tutorial 4.1 transformations and I found this error when trying to animate CopyV1
%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;%SYSTEMROOT%\System32\OpenSSH\;F:\Matlab installation\runtime\win64;F:\Matlab installation\bin;C:\Program Files\Docker\Docker\resources\bin;C:\ProgramData\DockerDesktop\version-bin;C:\Program Files (x86)\sox-14-4-2;C:\FFmpeg\bin;C:\ProgramFiles\MiKTeX\miktex\bin\x64;

Can you please solve it? I have tried so many times tried to replace the codes in tex_file_writing.py as some of the issue said. I hope good souls may help me.

Share the code

Share the code

class CopyTextV1(Scene): 	def construct(self): 		formula = TexMobject( 			"{\\frac{d}{dx}}", #0 			"(", #1 			"u", #2 			"+", #3 			"v", #4 			")", #5 			"=", #6 			"\\frac{d}{dx}", #7 			"u", #8 			"+", #9 			"\\frac{d}{dx}", #10 			"v" #11 			) 		formula.scale(2) 		self.play(Write(formula[0:7])) 		self.wait() 		changes=[ 			#Step 1 			[(2,4,3), 			(8,11,9)], 			#Step 2 			[(0,0), 			(7,10)] 		] 		for pre_ind,post_ind in changes: 			self.play( 				*[ 					ReplacementTransform(formula[i].copy(),formula[j]) 					for i,j in zip(pre_ind,post_ind) 				] 			) 			self(wait) 		self.wait()

Share the code

class CopyTextV1(Scene):
def construct(self):
formula = TexMobject(
"{\frac{d}{dx}}", #0
"(", #1
"u", #2
"+", #3
"v", #4
")", #5
"=", #6
"\frac{d}{dx}", #7
"u", #8
"+", #9
"\frac{d}{dx}", #10
"v" #11
)
formula.scale(2)
self.play(Write(formula[0:7]))
self.wait()
changes=[
#Step 1
[(2,4,3),
(8,11,9)],
#Step 2
[(0,0),
(7,10)]
]
for pre_ind,post_ind in changes:
self.play(
*[
ReplacementTransform(formula[i].copy(),formula[j])
for i,j in zip(pre_ind,post_ind)
]
)
self(wait)
self.wait()
This is the code I am trying to render

Use the Markdown format to share your code, tutorial here. The problem is not Manim, but your LaTeX code, this:
"{\frac{d}{dx}}",

It must be:
"\\frac{d}{dx}", #0

The original code is:
class CopyTextV1(Scene):
    def construct(self):
        formula = TexMobject(
            "\\frac{d}{dx}", #0
            "(", #1
            "u", #2
            "+", #3
            "v", #4
            ")", #5
            "=", #6
            "\\frac{d}{dx}", #7
            "u", #8
            "+", #9
            "\\frac{d}{dx}", #10
            "v" #11
            )
        formula.scale(2)
        self.play(Write(formula[0:7]))
        self.wait()
        self.play(
            ReplacementTransform(formula[2].copy(),formula[8]),
            ReplacementTransform(formula[4].copy(),formula[11]),
            ReplacementTransform(formula[3].copy(),formula[9])
            )
        self.wait()
        self.play(
            ReplacementTransform(formula[0].copy(),formula[7]),
            ReplacementTransform(formula[0].copy(),formula[10])
            )
        self.wait()

It is well written, so the mistake was made by you, I recommend taking a LaTeX course, This type of error does not concern Manim, but LaTeX.

I copy pasted the code but the class did not run.

and I had the same error

Surely you wrongly edited the file tex_file_writing.py, so redownload the manim repository in another folder and run it again (you can have as many manim folders as you want). If this does not work, investigate how to correct the log that appears in your image: latex major issue so far you have not checked for miktex updates, I repeat, this is not a problem of Manim, but of your LaTeX distribution, so You will have to solve it on your own, since it is a very particular question. You can also see the .log file that was generated, you can see it in your image: a4f17 .... log.
In case you can't solve it, uninstall Miktex and install TexLive (TexLive is another LaTeX distribution).
If that doesn't work either then you can install a Linux distribution on a virtual machine (like Ubuntu, Manjaro etc) and install Manim there, Manim usually has no problem with Unix based distributions.

After I editted the tex_file_writing.py I have undone the changes and saved again. I reinstalled MiKTeX. And it told me to check several manim files.
Anyways Thanks for your help :')
I appriciate that.

Ok, I don't understand why you deleted your comment from my video, but ok.


Import fails due to "is_scalar" error  (fresh installation)

Python verison 3.6.4
mathplotlib verison 3.0.1
Simpletest.py test script fails with the following error after compiling from source as per the instructions:

$ python3 simpletest.py
Traceback (most recent call last):
File "simpletest.py", line 1, in
from mpl_toolkits.basemap import Basemap
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/mpl_toolkits/basemap/init.py", line 17, in
from matplotlib.cbook import is_scalar, dedent
ImportError: cannot import name 'is_scalar'

It looks like you have an older version of basemap. This has already been fixed and is in the released version v1.2.0.
Some notes: basemap is considered deprecated in favor of the cartopy package. Please learn cartopy instead. Second, the preferred method of installing basemap (or cartopy) is through conda-forge due to its complex build process and dependencies.

I downloaded the latest version of the website today so if that's the case the page needs ot be updated.
I did ultimately get it going using conda. I will looking into Cartopy as well so thanks for that!

Had the same issue, resolved by upgrading basemap:
sudo pip install -U git+https://github.com/matplotlib/basemap.git

I just ran into this as well, even though I was using the latest version on PyPI (which is 1.0.7), see https://pypi.org/project/basemap/#history .
Any reason why the latest basemap releases are not published on PyPI?

I'm unable to resolve this issue, even though I'm using the version v1.2.0. I'm using Ubuntu 18.04, python 3.6.
During the execution of configure, I encountered undefined isnan macro error, which I resolved by replacing line 24 in platform.h file with  #define HAVE_ISNAN 1.

Wher do you find the platform.h?

I managed to solve this "is_scalar" problem by doing what suggested by @samfway, but when running from mpl_toolkits.basemap import Basemap I get the following:
Traceback (most recent call last):   File "<stdin>", line 1, in <module>   File "/usr/local/lib/python3.6/dist-packages/mpl_toolkits/basemap/__init__.py", line 48, in <module>     import _geoslib ImportError: libgeos-3.3.3.so: cannot open shared object file: No such file or directory
Any clue on how to solve this?

@goyal-vi The error is due to your environment being incompatible (too new) with the old GEOS version. A workaround is to issue the following command before running configure,
export CXX="g++ -std=c++98"
@davide-p The error message simply states that the GEOS library cannot be found. Assuming that you have already compiled it as per the instructions, i.e. with GEOS_DIR=/usr/local, it should be sufficient to modify your LD_LIBRARY_PATH as follows,
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

The source link is still pointing to 1.1.0 on the https://matplotlib.org/basemap/users/installing.html page

Installing matplotlib in 2.2.0 will work
conda install matploblib=2.2.0

Maybe I must have missed something? However, I've downloaded Anaconda and setup a virtual python environment specifically to install matplotlib (I tried both versions; 3.1.1 and 2.2.0) as well as basemap v1.2.0 and I am still getting the "cannot import is_scalar" error.
I guess I'll start reading the cartopy docs?

Referencing the link comments above (i.e. WeatherGod and dbpodrasky), the download link [https://matplotlib.org/basemap/users/download.html] is still pointing to v1.1.0.  That link for basemap is still causing installation issues.  samfway's solution above works if you end up on this page.

This worked for me:
pip install -U matplotlib==3.2
conda install -c conda-forge basemap


Domain specific Language Model

We are building an ASR using opensource Hindi/English data using k2-fsa/icefall librispeech recipe.We need to build a Language Model for our domain specific data.Please let us know how to go about this.
Thank you

We are using pruneless stateless transducer7 recipe.

Hi Sruthi, it was nice to meet you at ICASSP!
I have discussed this with the guys, we are doing 2 things about it:

One of them (Xiaoyu, I think) will create some howto or documentation about how to do shallow fusion with LODR (which means: divide the LM by a bigram LM estimated on the training transcripts).
For cases where you have a list of biasing words/phrases:  Kangwei/@pkufool will at some point soon make documentation for his implementation of Aho-Corasick and how to use it.

In future, we will have to investigate whether a CTC system interacts better with this kind of LM biasing than RNN-T systems.
The guys have already been doing experiments with adding an auxiliary CTC head to the RNN-T system.  The RNN-T helps the CTC head learn better (but not vice versa), and I think the CTC WER is nearly as good as the RNN-T one.

Hi @bsshruthi22 , I'm writing documentation for decoding with language models which should be available very soon. I will update here once I made the PR.

Thank you very much Dan and @marcoyang1998 .

Any updates on this @danpovey  @marcoyang1998 ?

@bsshruthi22  https://k2-fsa.github.io/icefall/decoding-with-langugage-models/index.html


Breaking the encapsulation of Client

I have noticed the following line in index.js the examples:
var Client = require('react-engine/lib/client');
When I saw this, I thought that it is bad form because it makes assumption about internals of react-engine. I 'fixed' it like this:
var Client = require('react-engine').client;
However, this didn't work for browserify - I got weird errors about 'not being able to find react module' in the browser console.
I still think that we should not reach into 'lib' folders of react-engine, but somehow this works for me, albeit leaving me with mixed feelings :-).

@dglozic very true :) I am not happy about the client file design. thinking of rewriting it to avoid all those unwanted dependencies that this api, by design brings in.

@dglozic have you encountered anything else good for this case?

Didn't look as much - after your blog I liked this one so much I stopped searching :-).
One thing I noticed as a problem is handling data stores (flux). If I define a data store, it will need to initialize in a similar way as state for components after rendering on the server. Right now, I am initializing data stores in client loading callback, and it works, but it would be better if I could define a store, initialize it in the express controller, let the views use it for server rendering, then have a way of sending the data in the store to the client.

but still you need to bootstrap the store on the client right?

Another minor thing is that we are rendering our global header on the server by making a network call to the header service, then inlining the HTML snippet using 'dangeriouslySetInnerHRML'. This information is passed into a view through view props, and unfortunately even though it is never used on the client, it is transferred to it. Even worse, I ended up URLencoding the value because without it will mess up the resulting HTML.
Ideally I should be able to say which properties to be ignored and not sent to the client.

we already omit some stuff. would it help if we make this configurable? so that you can add more stuff as part of the setup? https://github.com/paypal/react-engine/blob/master/lib/server.js#L89

Oh, that would be great!
Now, if we provided the solution for Flux stores as well, it would be perfect :-).

i quite don't understand the flux related ask. can you explain a bit more?

@samsel : I am busy building an app with react-engine and redux, and I had a bit of trouble with this particular issue as well. Basically what you need to do is instantiate a redux instance server side and fire an action to populate your stores with the data that you fetched server-side, you then need to get that data to your client somehow because it will need to be set as the initialState of your client side stores - with react-engine you can just pass it through props or use client.data(). The only snag with this approach is that both server-side and client are actually using the same redux instance and it would be very useful to be able to have a render method for server and client separated out. Redux seems to be picking up some momentum and it's definitely something you should think of integrating well with.

@deowk thanks for the feedback. can you answer the questions below so that I can get some more clarity?

The only snag with this approach is that both server-side and client are actually using the same redux instance

how do you reuse the instance normally (lets say without react-engine in your app)?

it would be very useful to be able to have a render method for server and client separated out

the server and client render methods are different? can you be a more specific on the need?

client: https://github.com/paypal/react-engine/blob/master/lib/client.js#L46
server: https://github.com/paypal/react-engine/blob/master/lib/server.js#L97

@samsel:  the Flux issue is that in the component hierarchy, you have a top-level controller-view that has a state, and then the children receive some fraction of that state as props. Normally top-level view will listen to a store and update when the store changes. react-engine sends the props to the client but there is no way to send the data to initialize the store without making an xhr from it. It would be nice to be able to piggy-back on the state sending mechanism and carve out a section for data that stores can initialize from.

##how do you reuse the instance normally (lets say without react-engine in your app)?
let's say I want to trigger an action on the redux instance when a route transition happens BUT only the client side, normally without react-engine I would do something like this.
server-side.js
const redux = createRedux(api);

  ReactRouter.run(routes, location, async (err, routerState) => {
    try {
      if (err) {
        throw err;
      }

      const { params, location } = routerState;
      const prepareRouteMethods = routerState.components.map(component =>
        component.prepareRoute);

      for (let prepareRoute of prepareRouteMethods) {
        if (!prepareRoute) {
          continue;
        }

        await prepareRoute({ redux, params, location });
      }

      const body = React.renderToStaticMarkup(
        <Provider redux={redux}>
          {() => <Router {...{ ...routerState, location, history }} />}
        </Provider>
      );

      const initialState = redux.getState();

      res.render(layout, { ...payload, body, initialState });

    } catch(err) {
      res.status(500).send(err.stack);
    }
  });

client-side.js
const redux = createRedux(api, __INITIAL_STATE__);

Router.run(routes, Router.HistoryLocation, function(Handler, locationState) {
   redux.dispatch(routeLocationDidUpdate(locationState))
   React.render(
    <Provider redux={redux}>
      {() => <Handler />}
    </Provider>,
    document.getElementById('main')
   );
});

but react-engine abstracts this part away and I don't want to go digging in /lib to modify this plus then I would also need to modify the server.js file to pass its own instance of redux because at the moment I am doing that in app.js and both the client and server are touching this file hence both the server and client are using the same redux instance.
export default class App extends React.Component {
  render() {
    const redux = createRedux(api, this.props.initialState);
    return (
        <Provider redux={redux}>
        {() =>
          <Layout {...this.props} >

            <Router.RouteHandler {...this.props} />

          </Layout>
        }
        </Provider>
    );
  }
}

I hope this explains my particular issue properly, Mainly the problem is that I need finer grain control over the server and client render methods without changing stuff in /lib

I think I am having a similar issue. I want to use Alt as my flux framework, and Alt provides functions bootstrap and takeSnapshot that will save/restore the state of all the stores. If I do this before res.render, then stores that are initialized via inclusion from views will be missed. I need a way to save state after the render of the component, but before the html is sent to the client. What I've done is to modify my server like this
let engine = renderer.server.create({
	routes: Routes,
	routesFilePath: path.join(__dirname + '/routes.jsx'),
	serialize: function() {
		return alt.takeSnapshot();
	}
});

Then I modified the react-engine server like this:
// render the componentInstance
      html += React.renderToString(componentInstance);

	  // serialize app state and save to data
	  if (createOptions.serialize && typeof createOptions.serialize == 'function') {
	  	  data.appState = createOptions.serialize();
	  }

      // state (script) injection
      var script = format(TEMPLATE, Config.client.markupId, JSON.stringify(data));
      html = html.replace('', script + '');

And in my client I do this:
var data = Client.data();
alt.bootstrap(data.appState);

Is this reasonable? Is it the right approach? Is this something that would be considered in PR form?


Implemented getting last git tag

Current dependencies on/for this PR:

main

PR #1

PR #2

PR #3   👈

This comment was auto-generated by Graphite.


Make driver for SPL06-007 sensor

Need to get pressure and temperature from the sensor.

https://github.com/helpfulengineering/project-tetra/pull/52


Payement button

Hi,
thanks for this awesome airbnb clone. My question is about the payment module? there is no a way to finalize the paymement ?
Thanks.

Hey! Thanks for reaching out! I really appreciate your feedback. The payment module isn’t set up yet, but I’ll work on it soon. If you have any other questions or suggestions, feel free to let me know!


Session limit on this device has been reached running Python example

I'm trying to run example.py, but I get the error:
lib.cortex.CortexApiException: {"error":{"code":-32019,"message":"Session limit on this device has been reached."},"id":8,"jsonrpc":"2.0"}
However, there is no open session. Can you help me with this issue? See log:
cortex.log

Your should change counter and you can do this in the way
if you use python:
insert new line (202) and set up the parameter "debit" = 33000 in the file "cortex.py"


Hear other data types (Image, Location , Audio)

Not sure if this already exists but i want to listen for messages that are not text.

Which driver are you talking about?

Facebook and/or Telegram Driver. let me see if i can figure this out

Here is what I am trying to achieve
I want the user to send an image and a location as as part of a Conversation..
is this possible ??

@mpociot  here is how botpress(nodejs) does it with the "type" parameter ... not sure how it would look in conversations though
bp.hear({ type: 'postback', text: 'GETTING_STARTED' }, (event, next) => {   bp.messenger.sendText(event.user.id, 'Hello, human!') })

Closing this, as I'm working on it in issue #215


Tip 3. issue on documentation

minting-of-an-asset-token

For all Ai, the token supply specified in the referenced series is equal to the quantity attribute in Ai.

should be replaced by

The token supply specified in the referenced series times the burned series token  equal to the quantity attribute in "Ai"

@hwbehrens I can update if you grant me access on this repo. cc @mundacho

Added!


How to set query options (e.g. # of ivfflat.probe) when querying a table with IVFFlat or HNSW index?

As mentioned in the instructions of pgvector (https://github.com/pgvector/pgvector#query-options), there are several query options that can be set at the time of querying, if the table contains an IVFFlat or HNSW index. How can we set these options when using this library?

Hi @lesser-panda, check out #36.


reset should accept a source

Currently reset will use the default recovery.img as a source to reset the system
We should be able to override that and provide a source flag so the system can be reset to a different source like an oci image or a directory.
All the pieces are in place in the code, its just the need to expose the flag and treat it like the upgrade source flag.

To clarify (from planning meeting):
This will be more like an "upgrade and reset" or a "hard reset" to a specific image. It would change all images: active,passive,recovery to the specified one.. Currently it's possible to change to another version by running and upgrade and then a reset. The only difference is that the "passive" image now, will be the old (before upgrade), while in the discussed feature, all the images would be the same.


Create DanhOMO

Industrial University

@DanhOMO DanhOMO I am sorry, I have to close the request without merging, because you made a mistake in a request and did not specify any filepath. Please ensure that you are familiar with this repository rules located at the bottom of this page and make a new correct request. Thank you for your understanding!


Added plugin selector drop down to startup form

I added a plugin selection drop down which will automatically move the selected plugin to the games folder and rename it to plugin.lua!
if [None] is selected, it will remove any plugin in the games folder.
if [Use A Different Plugin] is selected, it will do absolutely nothing.

BizHawk's dropdown implementation automatically sorts entries alphabetically, which means [] is needed to show up first and [Use A Different Plugin] needed to start with a letter after N to show up second. These dropdowns do automatically gain a scroll wheel when long enough and allow you to hit a letter to jump to your selection faster. Unfortunately there's no way to do more than a single letter and no way to choose a combobox instead of a regular dropdown.

This really improved the plugins interface overall. Thanks!


Rewrite run_ctest module in Java 11

What does this pull request do?
Rewrite the run_ctest module in Java 11. The original version is written in Python.
What changes were included in this pull request?
Rewrite the whole module from scratch, I preserve the original logic as much as I can. The rewritten version is under the run-ctest directory.

@CornDavid5  Thanks for the wonderful PR.
The following are some ideas for improvement:

According to https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap03.html#tag_03_206, lines not ending in a newline character aren't considered actual lines. So it is better to add a new line to the end of every file.

The code review has very strict rules. It is necessary to check the code style using the command mvn checkstyle:checkstyle. And I got ~200 errors from the check-style report. @CornDavid5 Can you reduce it?

Is -Dproject.path  only support relative path? I tried to inject an absolute path but failed. Can you improve it to support both?

This is a really exciting PR! Thank you for working on it, @CornDavid5 !!

@Alex-Lian Thanks for the suggestions.
Based on your suggestions, I have updated the PR

all files should end with a new line now
based on the Sun's checkstyle guideline, I have refactored most of the code base, mvn checkstyle:checkstyle return 0 violation now
the project is natively support both relative and absolute path, I just specify the relative path in the README, because I think it may be how most of user will use it. The reason I think you fail to use the absolute path may be because the wording in the README is not clear. If testing a submodule, the project.path has to point to the specific module not the parent project. For example, for hadoop-common, use .../hadoop/hadoop-common-project/hadoop-common. I have updated the README file.

@Alex-Lian could you review the PR again? I really hope we can merge it :)

@CornDavid5 Thanks for the improvement!
I checked 1 & 2 and the modification looks good to me.
I still have questions for 3:
I try to use Dproject.path=~/hadoop/hadoop-common-project/hadoop-common which is the absolute path. But it will return the error: java.nio.file.NoSuchFileException: /home/lian7/openctest/core/run-ctest/~/hadoop/hadoop-common-project/hadoop-common/target/classes/ctest-injected.xml
And I also question for the running result:
The command I used is  mvn exec:java -q -Dproject.name=hadoop-common -Dproject.path=../../../hadoop/hadoop-common-project/hadoop-common -Dmapping.path=resources/supported/hadoop-common/param_unset_getter_map.json -Dconf.pairs=hadoop.security.crypto.cipher.suite=AES/CTR/Padding -Dtest.methods=org.apache.hadoop.crypto.TestCryptoStreams#testAvailable, where the value AES/CTR/Padding is the wrong value so that the test should fail. But after I run the command, it tells me that the result is pass. Then I dig deeper to seek the reason. I found that you set the wrong injection path in this line: https://github.com/xlab-uiuc/openctest/pull/30/files#diff-29597e002a22a634827f7853f9b77490047164693d286896cbfbf4a5eae2fea1R63 .Please correct me if I am wrong :).

@Alex-Lian interesting, the program works on my pc and laptop. I see you try to use a path from ~ folder, did you clone hadoop by yourself, or did you use the setup script in the project under the run-ctest/resources/supported/hadoop-common?

And change the folder name from run-ctest to run_ctest_java.

@Alex-Lian why you want to mix everything (from Java and Python) into the same folder?

@tianyin
The original python version will be in the folder run_ctest and java version will be in the folder run_ctest_java

@tianyin Java version code and Python version code are in two different folders.
Currently, Java version codes are in run-ctest folder and Python version codes are in run_ctest folder (these two folders are different), which is unclear to the users. So I ask @CornDavid5 to change the folder name from run-ctest to run_ctest_java. And I will also update the Python folder name to run_ctest_python after the merge.

got it! thanks @Alex-Lian and @CornDavid5 !

@Alex-Lian
renaming done!
Also, I will create a new PR for supporting of Cassandra later this afternoon after you merge this PR.

Thanks for the wonderful PR @CornDavid5 !!!!


Global errorChannel Listeners Issue in Exception Scenarios

We are seeing an issue where the Binder's Error MessageHandler that is handed to the framework is not being called if a developer throws an exception in their own custom code listening on the "errorChannel" via a @ServiceActivator. My assumption is that this issue is due to the MessageHandlers being executed in serial and the framework not catching an exception from the custom code and allowing the next MessageHandler to execute it's logic. Note my understanding is that the MessageHanders are subscribed to the errorChannel using the PubSub pattern so I would expect them all to execute and be decoupled from each other.
This can be reproduced with the Solace binder (and I assume the Rabbit binder as they follow the same pattern) using the code below. You will see the processError code executes, throws an exception and then the Solace/Rabbit error handler is not invoked. If you then change the processError method to not throw an exception you will see that the Solace/Rabbit error handler is indeed invoked.
@SpringBootApplication
public class Application {

	public static void main(String[] args) {
		SpringApplication.run(Application.class);
	}

	@Bean
	public Function<String, String> processDropoffRideAverages() {
		return tsup -> {
			System.out.println("Received tsup:" + tsup);
			throw new RuntimeException("oh no!");
		};
	}

	@ServiceActivator(inputChannel = "errorChannel")
	private void processError(ErrorMessage errMsg) {
		System.out.println("processError: Received on global errorChannel:" + errMsg);
		throw new RuntimeException("Exception from global error handler!");
	}
}

*Note that best practice would be to code defensively and not have the custom error handling code throw an exception but error happen :)

@olegz this is the issue that we discussed previously. Thanks for your continued guidance and support of the community!

Hey @Mrc0113
I know you and I talked about it extensively, but I guess I am still missing something.
Executing your code with rabbit and her e is what I get:
@ServiceActivator(inputChannel = "errorChannel")
private void processError(ErrorMessage errMsg) {
	System.out.println("processError: Received on global errorChannel:" + errMsg);
//		throw new RuntimeException("Exception from global error handler!");
}

stack trace
2021-01-23 08:47:55.893 ERROR 19574 --- [Wm2zouk3e--zA-1] o.s.integration.handler.LoggingHandler   : org.springframework.messaging.MessageHandlingException: error occurred in message handler [org.springframework.cloud.stream.function.FunctionConfiguration$FunctionToDestinationBinder$1@50d0e9fd]; nested exception is java.lang.RuntimeException: oh no!, failedMessage=GenericMessage [payload=byte[3], headers={amqp_receivedDeliveryMode=NON_PERSISTENT, amqp_receivedExchange=, amqp_deliveryTag=1, deliveryAttempt=3, amqp_consumerQueue=processDropoffRideAverages-in-0.anonymous.dgzxNi6MSWm2zouk3e--zA, amqp_redelivered=false, target-protocol=amqp, amqp_receivedRoutingKey=processDropoffRideAverages-in-0.anonymous.dgzxNi6MSWm2zouk3e--zA, id=bddb0aae-f866-a5d8-0354-a60a49f8f54a, amqp_consumerTag=amq.ctag-uU77k9JY2o0Ezp2deg_CGA, sourceData=(Body:'[B@24e1dc6b(byte[3])' MessageProperties [headers={}, contentLength=0, receivedDeliveryMode=NON_PERSISTENT, redelivered=false, receivedExchange=, receivedRoutingKey=processDropoffRideAverages-in-0.anonymous.dgzxNi6MSWm2zouk3e--zA, deliveryTag=1, consumerTag=amq.ctag-uU77k9JY2o0Ezp2deg_CGA, consumerQueue=processDropoffRideAverages-in-0.anonymous.dgzxNi6MSWm2zouk3e--zA]), contentType=application/json, timestamp=1611388072877}]
	at org.springframework.integration.support.utils.IntegrationUtils.wrapInHandlingExceptionIfNecessary(IntegrationUtils.java:192)
	. . .
Caused by: java.lang.RuntimeException: oh no!
	at org.springone.function.core.FunctionApplication.lambda$0(FunctionApplication.java:46)
	at org.springframework.cloud.function.context.catalog.SimpleFunctionRegistry$FunctionInvocationWrapper.invokeFunctionAndEnrichResultIfNecessary(SimpleFunctionRegistry.java:733)
	at org.springframework.cloud.function.context.catalog.SimpleFunctionRegistry$FunctionInvocationWrapper.invokeFunction(SimpleFunctionRegistry.java:689)
	. . .
	... 27 more

2021-01-23 08:47:55.894  INFO 19574 --- [Wm2zouk3e--zA-1] o.s.i.h.s.MessagingMethodInvokerHelper   : Overriding default instance of MessageHandlerMethodFactory with provided one.
processError: Received on global errorChannel:ErrorMessage [payload=org.springframework.messaging.MessageHandlingException: error occurred in message handler [org.springframework.cloud.stream.function.FunctionConfiguration$FunctionToDestinationBinder$1@50d0e9fd]; nested exception is java.lang.RuntimeException: oh no!, failedMessage=GenericMessage [payload=byte[3], headers={amqp_receivedDeliveryMode=NON_PERSISTENT, amqp_receivedExchange=, amqp_deliveryTag=1, deliveryAttempt=3, amqp_consumerQueue=processDropoffRideAverages-in-0.anonymous.dgzxNi6MSWm2zouk3e--zA, amqp_redelivered=false, target-protocol=amqp, amqp_receivedRoutingKey=processDropoffRideAverages-in-0.anonymous.dgzxNi6MSWm2zouk3e--zA, id=bddb0aae-f866-a5d8-0354-a60a49f8f54a, amqp_consumerTag=amq.ctag-uU77k9JY2o0Ezp2deg_CGA, sourceData=(Body:'[B@24e1dc6b(byte[3])' MessageProperties [headers={}, contentLength=0, receivedDeliveryMode=NON_PERSISTENT, redelivered=false, receivedExchange=, receivedRoutingKey=processDropoffRideAverages-in-0.anonymous.dgzxNi6MSWm2zouk3e--zA, deliveryTag=1, consumerTag=amq.ctag-uU77k9JY2o0Ezp2deg_CGA, consumerQueue=processDropoffRideAverages-in-0.anonymous.dgzxNi6MSWm2zouk3e--zA]), contentType=application/json, timestamp=1611388072877}], headers={amqp_raw_message=(Body:'[B@24e1dc6b(byte[3])' MessageProperties [headers={}, contentLength=0, receivedDeliveryMode=NON_PERSISTENT, redelivered=false, receivedExchange=, receivedRoutingKey=processDropoffRideAverages-in-0.anonymous.dgzxNi6MSWm2zouk3e--zA, deliveryTag=1, consumerTag=amq.ctag-uU77k9JY2o0Ezp2deg_CGA, consumerQueue=processDropoffRideAverages-in-0.anonymous.dgzxNi6MSWm2zouk3e--zA]), id=96c690d9-519c-eec4-c3e0-38d98130ef5b, sourceData=(Body:'[B@24e1dc6b(byte[3])' MessageProperties [headers={}, contentLength=0, receivedDeliveryMode=NON_PERSISTENT, redelivered=false, receivedExchange=, receivedRoutingKey=processDropoffRideAverages-in-0.anonymous.dgzxNi6MSWm2zouk3e--zA, deliveryTag=1, consumerTag=amq.ctag-uU77k9JY2o0Ezp2deg_CGA, consumerQueue=processDropoffRideAverages-in-0.anonymous.dgzxNi6MSWm2zouk3e--zA]), timestamp=1611388075891}] for original GenericMessage [payload=byte[3], headers={amqp_receivedDeliveryMode=NON_PERSISTENT, amqp_receivedExchange=, amqp_deliveryTag=1, deliveryAttempt=3, amqp_consumerQueue=processDropoffRideAverages-in-0.anonymous.dgzxNi6MSWm2zouk3e--zA, amqp_redelivered=false, target-protocol=amqp, amqp_receivedRoutingKey=processDropoffRideAverages-in-0.anonymous.dgzxNi6MSWm2zouk3e--zA, id=bddb0aae-f866-a5d8-0354-a60a49f8f54a, amqp_consumerTag=amq.ctag-uU77k9JY2o0Ezp2deg_CGA, sourceData=(Body:'[B@24e1dc6b(byte[3])' MessageProperties [headers={}, contentLength=0, receivedDeliveryMode=NON_PERSISTENT, redelivered=false, receivedExchange=, receivedRoutingKey=processDropoffRideAverages-in-0.anonymous.dgzxNi6MSWm2zouk3e--zA, deliveryTag=1, consumerTag=amq.ctag-uU77k9JY2o0Ezp2deg_CGA, consumerQueue=processDropoffRideAverages-in-0.anonymous.dgzxNi6MSWm2zouk3e--zA]), contentType=application/json, timestamp=1611388072877}]
2021-01-23 08:47:55.898  INFO 19574 --- [Wm2zouk3e--zA-1] o.s.a.r.c.CachingConnectionFactory       : Attempting to connect to: [localhost:5672]

==
And then with:
@ServiceActivator(inputChannel = "errorChannel")
private void processError(ErrorMessage errMsg) {
	System.out.println("processError: Received on global errorChannel:" + errMsg);
	throw new RuntimeException("Exception from global error handler!");
}

stack trace
2021-01-23 08:47:55.893 ERROR 19574 --- [Wm2zouk3e--zA-1] o.s.integration.handler.LoggingHandler   : org.springframework.messaging.MessageHandlingException: error occurred in message handler [org.springframework.cloud.stream.function.FunctionConfiguration$FunctionToDestinationBinder$1@50d0e9fd]; nested exception is java.lang.RuntimeException: oh no!, failedMessage=GenericMessage [payload=byte[3], headers={amqp_receivedDeliveryMode=NON_PERSISTENT, amqp_receivedExchange=, amqp_deliveryTag=1, deliveryAttempt=3, amqp_consumerQueue=processDropoffRideAverages-in-0.anonymous.dgzxNi6MSWm2zouk3e--zA, amqp_redelivered=false, target-protocol=amqp, amqp_receivedRoutingKey=processDropoffRideAverages-in-0.anonymous.dgzxNi6MSWm2zouk3e--zA, id=bddb0aae-f866-a5d8-0354-a60a49f8f54a, amqp_consumerTag=amq.ctag-uU77k9JY2o0Ezp2deg_CGA, sourceData=(Body:'[B@24e1dc6b(byte[3])' MessageProperties [headers={}, contentLength=0, receivedDeliveryMode=NON_PERSISTENT, redelivered=false, receivedExchange=, receivedRoutingKey=processDropoffRideAverages-in-0.anonymous.dgzxNi6MSWm2zouk3e--zA, deliveryTag=1, consumerTag=amq.ctag-uU77k9JY2o0Ezp2deg_CGA, consumerQueue=processDropoffRideAverages-in-0.anonymous.dgzxNi6MSWm2zouk3e--zA]), contentType=application/json, timestamp=1611388072877}]
	at org.springframework.integration.support.utils.IntegrationUtils.wrapInHandlingExceptionIfNecessary(IntegrationUtils.java:192)
	. . .
Caused by: java.lang.RuntimeException: oh no!
	at org.springone.function.core.FunctionApplication.lambda$0(FunctionApplication.java:46)
	at org.springframework.cloud.function.context.catalog.SimpleFunctionRegistry$FunctionInvocationWrapper.invokeFunctionAndEnrichResultIfNecessary(SimpleFunctionRegistry.java:733)
	at org.springframework.cloud.function.context.catalog.SimpleFunctionRegistry$FunctionInvocationWrapper.invokeFunction(SimpleFunctionRegistry.java:689)
	. . .
	... 27 more

2021-01-23 08:47:55.894  INFO 19574 --- [Wm2zouk3e--zA-1] o.s.i.h.s.MessagingMethodInvokerHelper   : Overriding default instance of MessageHandlerMethodFactory with provided one.
processError: Received on global errorChannel:ErrorMessage [payload=org.springframework.messaging.MessageHandlingException: error occurred in message handler [org.springframework.cloud.stream.function.FunctionConfiguration$FunctionToDestinationBinder$1@50d0e9fd]; nested exception is java.lang.RuntimeException: oh no!, failedMessage=GenericMessage [payload=byte[3], headers={amqp_receivedDeliveryMode=NON_PERSISTENT, amqp_receivedExchange=, amqp_deliveryTag=1, deliveryAttempt=3, amqp_consumerQueue=processDropoffRideAverages-in-0.anonymous.dgzxNi6MSWm2zouk3e--zA, amqp_redelivered=false, target-protocol=amqp, amqp_receivedRoutingKey=processDropoffRideAverages-in-0.anonymous.dgzxNi6MSWm2zouk3e--zA, id=bddb0aae-f866-a5d8-0354-a60a49f8f54a, amqp_consumerTag=amq.ctag-uU77k9JY2o0Ezp2deg_CGA, sourceData=(Body:'[B@24e1dc6b(byte[3])' MessageProperties [headers={}, contentLength=0, receivedDeliveryMode=NON_PERSISTENT, redelivered=false, receivedExchange=, receivedRoutingKey=processDropoffRideAverages-in-0.anonymous.dgzxNi6MSWm2zouk3e--zA, deliveryTag=1, consumerTag=amq.ctag-uU77k9JY2o0Ezp2deg_CGA, consumerQueue=processDropoffRideAverages-in-0.anonymous.dgzxNi6MSWm2zouk3e--zA]), contentType=application/json, timestamp=1611388072877}], headers={amqp_raw_message=(Body:'[B@24e1dc6b(byte[3])' MessageProperties [headers={}, contentLength=0, receivedDeliveryMode=NON_PERSISTENT, redelivered=false, receivedExchange=, receivedRoutingKey=processDropoffRideAverages-in-0.anonymous.dgzxNi6MSWm2zouk3e--zA, deliveryTag=1, consumerTag=amq.ctag-uU77k9JY2o0Ezp2deg_CGA, consumerQueue=processDropoffRideAverages-in-0.anonymous.dgzxNi6MSWm2zouk3e--zA]), id=96c690d9-519c-eec4-c3e0-38d98130ef5b, sourceData=(Body:'[B@24e1dc6b(byte[3])' MessageProperties [headers={}, contentLength=0, receivedDeliveryMode=NON_PERSISTENT, redelivered=false, receivedExchange=, receivedRoutingKey=processDropoffRideAverages-in-0.anonymous.dgzxNi6MSWm2zouk3e--zA, deliveryTag=1, consumerTag=amq.ctag-uU77k9JY2o0Ezp2deg_CGA, consumerQueue=processDropoffRideAverages-in-0.anonymous.dgzxNi6MSWm2zouk3e--zA]), timestamp=1611388075891}] for original GenericMessage [payload=byte[3], headers={amqp_receivedDeliveryMode=NON_PERSISTENT, amqp_receivedExchange=, amqp_deliveryTag=1, deliveryAttempt=3, amqp_consumerQueue=processDropoffRideAverages-in-0.anonymous.dgzxNi6MSWm2zouk3e--zA, amqp_redelivered=false, target-protocol=amqp, amqp_receivedRoutingKey=processDropoffRideAverages-in-0.anonymous.dgzxNi6MSWm2zouk3e--zA, id=bddb0aae-f866-a5d8-0354-a60a49f8f54a, amqp_consumerTag=amq.ctag-uU77k9JY2o0Ezp2deg_CGA, sourceData=(Body:'[B@24e1dc6b(byte[3])' MessageProperties [headers={}, contentLength=0, receivedDeliveryMode=NON_PERSISTENT, redelivered=false, receivedExchange=, receivedRoutingKey=processDropoffRideAverages-in-0.anonymous.dgzxNi6MSWm2zouk3e--zA, deliveryTag=1, consumerTag=amq.ctag-uU77k9JY2o0Ezp2deg_CGA, consumerQueue=processDropoffRideAverages-in-0.anonymous.dgzxNi6MSWm2zouk3e--zA]), contentType=application/json, timestamp=1611388072877}]
2021-01-23 08:52:04.563  WARN 20363 --- [mexT2mHfIC1FQ-1] s.a.r.l.ConditionalRejectingErrorHandler : Execution of Rabbit message listener failed.

org.springframework.amqp.rabbit.support.ListenerExecutionFailedException: Listener threw exception
	at org.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer.wrapToListenerExecutionFailedExceptionIfNeeded(AbstractMessageListenerContainer.java:1705) ~[spring-rabbit-2.3.0-M2.jar:2.3.0-M2]
	at org.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:1595) ~[spring-rabbit-2.3.0-M2.jar:2.3.0-M2]
	...
Caused by: org.springframework.messaging.MessageHandlingException: error occurred during processing message in 'MethodInvokingMessageProcessor' [org.springframework.integration.handler.MethodInvokingMessageProcessor@242df928]; nested exception is java.lang.RuntimeException: Exception from global error handler!
	at org.springframework.integration.support.utils.IntegrationUtils.wrapInHandlingExceptionIfNecessary(IntegrationUtils.java:192) ~[spring-integration-core-5.4.0-M2.jar:5.4.0-M2]
	at org.springframework.integration.handler.MethodInvokingMessageProcessor.processMessage(MethodInvokingMessageProcessor.java:111) ~[spring-integration-core-5.4.0-M2.jar:5.4.0-M2]
	at org.springframework.integration.handler.ServiceActivatingHandler.handleRequestMessage(ServiceActivatingHandler.java:105) ~[spring-integration-core-5.4.0-M2.jar:5.4.0-M2]
	...
Caused by: java.lang.RuntimeException: Exception from global error handler!
	at org.springone.function.core.FunctionApplication.processError(FunctionApplication.java:53) ~[classes/:na]
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
	...
	... 45 common frames omitted

What am I missing?

Hey @Mrc0113
I know you and I talked about it extensively, but I guess I am still missing something.
Executing your code with rabbit and her e is what I get:
@ServiceActivator(inputChannel = "errorChannel")
private void processError(ErrorMessage errMsg) {
	System.out.println("processError: Received on global errorChannel:" + errMsg);
//		throw new RuntimeException("Exception from global error handler!");
}

stack trace
2021-01-23 08:47:55.893 ERROR 19574 --- [Wm2zouk3e--zA-1] o.s.integration.handler.LoggingHandler   : org.springframework.messaging.MessageHandlingException: error occurred in message handler [org.springframework.cloud.stream.function.FunctionConfiguration$FunctionToDestinationBinder$1@50d0e9fd]; nested exception is java.lang.RuntimeException: oh no!, failedMessage=GenericMessage [payload=byte[3], headers={amqp_receivedDeliveryMode=NON_PERSISTENT, amqp_receivedExchange=, amqp_deliveryTag=1, deliveryAttempt=3, amqp_consumerQueue=processDropoffRideAverages-in-0.anonymous.dgzxNi6MSWm2zouk3e--zA, amqp_redelivered=false, target-protocol=amqp, amqp_receivedRoutingKey=processDropoffRideAverages-in-0.anonymous.dgzxNi6MSWm2zouk3e--zA, id=bddb0aae-f866-a5d8-0354-a60a49f8f54a, amqp_consumerTag=amq.ctag-uU77k9JY2o0Ezp2deg_CGA, sourceData=(Body:'[B@24e1dc6b(byte[3])' MessageProperties [headers={}, contentLength=0, receivedDeliveryMode=NON_PERSISTENT, redelivered=false, receivedExchange=, receivedRoutingKey=processDropoffRideAverages-in-0.anonymous.dgzxNi6MSWm2zouk3e--zA, deliveryTag=1, consumerTag=amq.ctag-uU77k9JY2o0Ezp2deg_CGA, consumerQueue=processDropoffRideAverages-in-0.anonymous.dgzxNi6MSWm2zouk3e--zA]), contentType=application/json, timestamp=1611388072877}]
	at org.springframework.integration.support.utils.IntegrationUtils.wrapInHandlingExceptionIfNecessary(IntegrationUtils.java:192)
	. . .
Caused by: java.lang.RuntimeException: oh no!
	at org.springone.function.core.FunctionApplication.lambda$0(FunctionApplication.java:46)
	at org.springframework.cloud.function.context.catalog.SimpleFunctionRegistry$FunctionInvocationWrapper.invokeFunctionAndEnrichResultIfNecessary(SimpleFunctionRegistry.java:733)
	at org.springframework.cloud.function.context.catalog.SimpleFunctionRegistry$FunctionInvocationWrapper.invokeFunction(SimpleFunctionRegistry.java:689)
	. . .
	... 27 more

2021-01-23 08:47:55.894  INFO 19574 --- [Wm2zouk3e--zA-1] o.s.i.h.s.MessagingMethodInvokerHelper   : Overriding default instance of MessageHandlerMethodFactory with provided one.
processError: Received on global errorChannel:ErrorMessage [payload=org.springframework.messaging.MessageHandlingException: error occurred in message handler [org.springframework.cloud.stream.function.FunctionConfiguration$FunctionToDestinationBinder$1@50d0e9fd]; nested exception is java.lang.RuntimeException: oh no!, failedMessage=GenericMessage [payload=byte[3], headers={amqp_receivedDeliveryMode=NON_PERSISTENT, amqp_receivedExchange=, amqp_deliveryTag=1, deliveryAttempt=3, amqp_consumerQueue=processDropoffRideAverages-in-0.anonymous.dgzxNi6MSWm2zouk3e--zA, amqp_redelivered=false, target-protocol=amqp, amqp_receivedRoutingKey=processDropoffRideAverages-in-0.anonymous.dgzxNi6MSWm2zouk3e--zA, id=bddb0aae-f866-a5d8-0354-a60a49f8f54a, amqp_consumerTag=amq.ctag-uU77k9JY2o0Ezp2deg_CGA, sourceData=(Body:'[B@24e1dc6b(byte[3])' MessageProperties [headers={}, contentLength=0, receivedDeliveryMode=NON_PERSISTENT, redelivered=false, receivedExchange=, receivedRoutingKey=processDropoffRideAverages-in-0.anonymous.dgzxNi6MSWm2zouk3e--zA, deliveryTag=1, consumerTag=amq.ctag-uU77k9JY2o0Ezp2deg_CGA, consumerQueue=processDropoffRideAverages-in-0.anonymous.dgzxNi6MSWm2zouk3e--zA]), contentType=application/json, timestamp=1611388072877}], headers={amqp_raw_message=(Body:'[B@24e1dc6b(byte[3])' MessageProperties [headers={}, contentLength=0, receivedDeliveryMode=NON_PERSISTENT, redelivered=false, receivedExchange=, receivedRoutingKey=processDropoffRideAverages-in-0.anonymous.dgzxNi6MSWm2zouk3e--zA, deliveryTag=1, consumerTag=amq.ctag-uU77k9JY2o0Ezp2deg_CGA, consumerQueue=processDropoffRideAverages-in-0.anonymous.dgzxNi6MSWm2zouk3e--zA]), id=96c690d9-519c-eec4-c3e0-38d98130ef5b, sourceData=(Body:'[B@24e1dc6b(byte[3])' MessageProperties [headers={}, contentLength=0, receivedDeliveryMode=NON_PERSISTENT, redelivered=false, receivedExchange=, receivedRoutingKey=processDropoffRideAverages-in-0.anonymous.dgzxNi6MSWm2zouk3e--zA, deliveryTag=1, consumerTag=amq.ctag-uU77k9JY2o0Ezp2deg_CGA, consumerQueue=processDropoffRideAverages-in-0.anonymous.dgzxNi6MSWm2zouk3e--zA]), timestamp=1611388075891}] for original GenericMessage [payload=byte[3], headers={amqp_receivedDeliveryMode=NON_PERSISTENT, amqp_receivedExchange=, amqp_deliveryTag=1, deliveryAttempt=3, amqp_consumerQueue=processDropoffRideAverages-in-0.anonymous.dgzxNi6MSWm2zouk3e--zA, amqp_redelivered=false, target-protocol=amqp, amqp_receivedRoutingKey=processDropoffRideAverages-in-0.anonymous.dgzxNi6MSWm2zouk3e--zA, id=bddb0aae-f866-a5d8-0354-a60a49f8f54a, amqp_consumerTag=amq.ctag-uU77k9JY2o0Ezp2deg_CGA, sourceData=(Body:'[B@24e1dc6b(byte[3])' MessageProperties [headers={}, contentLength=0, receivedDeliveryMode=NON_PERSISTENT, redelivered=false, receivedExchange=, receivedRoutingKey=processDropoffRideAverages-in-0.anonymous.dgzxNi6MSWm2zouk3e--zA, deliveryTag=1, consumerTag=amq.ctag-uU77k9JY2o0Ezp2deg_CGA, consumerQueue=processDropoffRideAverages-in-0.anonymous.dgzxNi6MSWm2zouk3e--zA]), contentType=application/json, timestamp=1611388072877}]
2021-01-23 08:47:55.898  INFO 19574 --- [Wm2zouk3e--zA-1] o.s.a.r.c.CachingConnectionFactory       : Attempting to connect to: [localhost:5672]

==
And then with:
@ServiceActivator(inputChannel = "errorChannel")
private void processError(ErrorMessage errMsg) {
	System.out.println("processError: Received on global errorChannel:" + errMsg);
	throw new RuntimeException("Exception from global error handler!");
}

stack trace
2021-01-23 08:47:55.893 ERROR 19574 --- [Wm2zouk3e--zA-1] o.s.integration.handler.LoggingHandler   : org.springframework.messaging.MessageHandlingException: error occurred in message handler [org.springframework.cloud.stream.function.FunctionConfiguration$FunctionToDestinationBinder$1@50d0e9fd]; nested exception is java.lang.RuntimeException: oh no!, failedMessage=GenericMessage [payload=byte[3], headers={amqp_receivedDeliveryMode=NON_PERSISTENT, amqp_receivedExchange=, amqp_deliveryTag=1, deliveryAttempt=3, amqp_consumerQueue=processDropoffRideAverages-in-0.anonymous.dgzxNi6MSWm2zouk3e--zA, amqp_redelivered=false, target-protocol=amqp, amqp_receivedRoutingKey=processDropoffRideAverages-in-0.anonymous.dgzxNi6MSWm2zouk3e--zA, id=bddb0aae-f866-a5d8-0354-a60a49f8f54a, amqp_consumerTag=amq.ctag-uU77k9JY2o0Ezp2deg_CGA, sourceData=(Body:'[B@24e1dc6b(byte[3])' MessageProperties [headers={}, contentLength=0, receivedDeliveryMode=NON_PERSISTENT, redelivered=false, receivedExchange=, receivedRoutingKey=processDropoffRideAverages-in-0.anonymous.dgzxNi6MSWm2zouk3e--zA, deliveryTag=1, consumerTag=amq.ctag-uU77k9JY2o0Ezp2deg_CGA, consumerQueue=processDropoffRideAverages-in-0.anonymous.dgzxNi6MSWm2zouk3e--zA]), contentType=application/json, timestamp=1611388072877}]
	at org.springframework.integration.support.utils.IntegrationUtils.wrapInHandlingExceptionIfNecessary(IntegrationUtils.java:192)
	. . .
Caused by: java.lang.RuntimeException: oh no!
	at org.springone.function.core.FunctionApplication.lambda$0(FunctionApplication.java:46)
	at org.springframework.cloud.function.context.catalog.SimpleFunctionRegistry$FunctionInvocationWrapper.invokeFunctionAndEnrichResultIfNecessary(SimpleFunctionRegistry.java:733)
	at org.springframework.cloud.function.context.catalog.SimpleFunctionRegistry$FunctionInvocationWrapper.invokeFunction(SimpleFunctionRegistry.java:689)
	. . .
	... 27 more

2021-01-23 08:47:55.894  INFO 19574 --- [Wm2zouk3e--zA-1] o.s.i.h.s.MessagingMethodInvokerHelper   : Overriding default instance of MessageHandlerMethodFactory with provided one.
processError: Received on global errorChannel:ErrorMessage [payload=org.springframework.messaging.MessageHandlingException: error occurred in message handler [org.springframework.cloud.stream.function.FunctionConfiguration$FunctionToDestinationBinder$1@50d0e9fd]; nested exception is java.lang.RuntimeException: oh no!, failedMessage=GenericMessage [payload=byte[3], headers={amqp_receivedDeliveryMode=NON_PERSISTENT, amqp_receivedExchange=, amqp_deliveryTag=1, deliveryAttempt=3, amqp_consumerQueue=processDropoffRideAverages-in-0.anonymous.dgzxNi6MSWm2zouk3e--zA, amqp_redelivered=false, target-protocol=amqp, amqp_receivedRoutingKey=processDropoffRideAverages-in-0.anonymous.dgzxNi6MSWm2zouk3e--zA, id=bddb0aae-f866-a5d8-0354-a60a49f8f54a, amqp_consumerTag=amq.ctag-uU77k9JY2o0Ezp2deg_CGA, sourceData=(Body:'[B@24e1dc6b(byte[3])' MessageProperties [headers={}, contentLength=0, receivedDeliveryMode=NON_PERSISTENT, redelivered=false, receivedExchange=, receivedRoutingKey=processDropoffRideAverages-in-0.anonymous.dgzxNi6MSWm2zouk3e--zA, deliveryTag=1, consumerTag=amq.ctag-uU77k9JY2o0Ezp2deg_CGA, consumerQueue=processDropoffRideAverages-in-0.anonymous.dgzxNi6MSWm2zouk3e--zA]), contentType=application/json, timestamp=1611388072877}], headers={amqp_raw_message=(Body:'[B@24e1dc6b(byte[3])' MessageProperties [headers={}, contentLength=0, receivedDeliveryMode=NON_PERSISTENT, redelivered=false, receivedExchange=, receivedRoutingKey=processDropoffRideAverages-in-0.anonymous.dgzxNi6MSWm2zouk3e--zA, deliveryTag=1, consumerTag=amq.ctag-uU77k9JY2o0Ezp2deg_CGA, consumerQueue=processDropoffRideAverages-in-0.anonymous.dgzxNi6MSWm2zouk3e--zA]), id=96c690d9-519c-eec4-c3e0-38d98130ef5b, sourceData=(Body:'[B@24e1dc6b(byte[3])' MessageProperties [headers={}, contentLength=0, receivedDeliveryMode=NON_PERSISTENT, redelivered=false, receivedExchange=, receivedRoutingKey=processDropoffRideAverages-in-0.anonymous.dgzxNi6MSWm2zouk3e--zA, deliveryTag=1, consumerTag=amq.ctag-uU77k9JY2o0Ezp2deg_CGA, consumerQueue=processDropoffRideAverages-in-0.anonymous.dgzxNi6MSWm2zouk3e--zA]), timestamp=1611388075891}] for original GenericMessage [payload=byte[3], headers={amqp_receivedDeliveryMode=NON_PERSISTENT, amqp_receivedExchange=, amqp_deliveryTag=1, deliveryAttempt=3, amqp_consumerQueue=processDropoffRideAverages-in-0.anonymous.dgzxNi6MSWm2zouk3e--zA, amqp_redelivered=false, target-protocol=amqp, amqp_receivedRoutingKey=processDropoffRideAverages-in-0.anonymous.dgzxNi6MSWm2zouk3e--zA, id=bddb0aae-f866-a5d8-0354-a60a49f8f54a, amqp_consumerTag=amq.ctag-uU77k9JY2o0Ezp2deg_CGA, sourceData=(Body:'[B@24e1dc6b(byte[3])' MessageProperties [headers={}, contentLength=0, receivedDeliveryMode=NON_PERSISTENT, redelivered=false, receivedExchange=, receivedRoutingKey=processDropoffRideAverages-in-0.anonymous.dgzxNi6MSWm2zouk3e--zA, deliveryTag=1, consumerTag=amq.ctag-uU77k9JY2o0Ezp2deg_CGA, consumerQueue=processDropoffRideAverages-in-0.anonymous.dgzxNi6MSWm2zouk3e--zA]), contentType=application/json, timestamp=1611388072877}]
2021-01-23 08:52:04.563  WARN 20363 --- [mexT2mHfIC1FQ-1] s.a.r.l.ConditionalRejectingErrorHandler : Execution of Rabbit message listener failed.

org.springframework.amqp.rabbit.support.ListenerExecutionFailedException: Listener threw exception
	at org.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer.wrapToListenerExecutionFailedExceptionIfNeeded(AbstractMessageListenerContainer.java:1705) ~[spring-rabbit-2.3.0-M2.jar:2.3.0-M2]
	at org.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:1595) ~[spring-rabbit-2.3.0-M2.jar:2.3.0-M2]
	...
Caused by: org.springframework.messaging.MessageHandlingException: error occurred during processing message in 'MethodInvokingMessageProcessor' [org.springframework.integration.handler.MethodInvokingMessageProcessor@242df928]; nested exception is java.lang.RuntimeException: Exception from global error handler!
	at org.springframework.integration.support.utils.IntegrationUtils.wrapInHandlingExceptionIfNecessary(IntegrationUtils.java:192) ~[spring-integration-core-5.4.0-M2.jar:5.4.0-M2]
	at org.springframework.integration.handler.MethodInvokingMessageProcessor.processMessage(MethodInvokingMessageProcessor.java:111) ~[spring-integration-core-5.4.0-M2.jar:5.4.0-M2]
	at org.springframework.integration.handler.ServiceActivatingHandler.handleRequestMessage(ServiceActivatingHandler.java:105) ~[spring-integration-core-5.4.0-M2.jar:5.4.0-M2]
	...
Caused by: java.lang.RuntimeException: Exception from global error handler!
	at org.springone.function.core.FunctionApplication.processError(FunctionApplication.java:53) ~[classes/:na]
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
	...
	... 45 common frames omitted

What am I missing?

Digging a bit more I see that global error channel has two subscribers [LoggingHandler, ServiceActivatingHandler] - in that order. And that matches the stack trace where first the LoggingHandler is called and then the actual error handler as ServiceActivator subscribed to 'errorChannel'.
Now, experimenting further, if I add another handler to the "errorChannel" and throw the exception in each, like so:
@ServiceActivator(inputChannel = "errorChannel")
private void processErrorA(ErrorMessage errMsg) {
	System.out.println("processError: Received on global errorChannel - 1:" + errMsg);
	throw new RuntimeException("Exception from global error handler!");
}
@ServiceActivator(inputChannel = "errorChannel")
private void processErrorB(ErrorMessage errMsg) {
	System.out.println("processError: Received on global errorChannel - 2:" + errMsg);
	throw new RuntimeException("Exception from global error handler!");
}

. . . then I do see the behavior that resembles what you are describing. Basically the subscribers are invoked sequentially and as soon as one throws an exception, no other subscribers are invoked. So basically with the exception I only see "SA Global: error - 1". Without i see "SA Global: error - 1" and "SA Global: error - 2".
Is that what you were saying? Perhaps that was the bit that was missing from your code?

Digging a bit more I see that global error channel has two subscribers [LoggingHandler, ServiceActivatingHandler] - in that order. And that matches the stack trace where first the LoggingHandler is called and then the actual error handler as ServiceActivator subscribed to 'errorChannel'.
Now, experimenting further, if I add another handler to the "errorChannel" and throw the exception in each, like so:
@ServiceActivator(inputChannel = "errorChannel")
private void processErrorA(ErrorMessage errMsg) {
	System.out.println("processError: Received on global errorChannel - 1:" + errMsg);
	throw new RuntimeException("Exception from global error handler!");
}
@ServiceActivator(inputChannel = "errorChannel")
private void processErrorB(ErrorMessage errMsg) {
	System.out.println("processError: Received on global errorChannel - 2:" + errMsg);
	throw new RuntimeException("Exception from global error handler!");
}

. . . then I do see the behavior that resembles what you are describing. Basically the subscribers are invoked sequentially and as soon as one throws an exception, no other subscribers are invoked. So basically with the exception I only see "SA Global: error - 1". Without i see "SA Global: error - 1" and "SA Global: error - 2".
Is that what you were saying? Perhaps that was the bit that was missing from your code?

One other possibility why I may not see it is that perhaps in Solace you do have some additional listener, at which point what you are describing makes perfect sense.
In any event, I was able to reproduce the behavior you are describing so need to figure out the way to fix it since most of it is actually happening on SI side.

One other possibility why I may not see it is that perhaps in Solace you do have some additional listener, at which point what you are describing makes perfect sense.
In any event, I was able to reproduce the behavior you are describing so need to figure out the way to fix it since most of it is actually happening on SI side.

@Mrc0113 so, after playing with it some more, I am now convinced that may be the reason why I don't see the behavior as you describe is because there may be some additional error handler in Solace that does not exist in Rabbit. That said, by simply adding another subscriber to the error channel reproduces the issue.
Easy fix, so will apply it shortly.
However, you can also do it now with a simple workaround (temporary).
Basically get access to the ApplicationContext and than:
PublishSubscribeChannel errorChannel = context.getBean("errorChannel", PublishSubscribeChannel.class);
errorChannel.setIgnoreFailures(true);

@Mrc0113 so, after playing with it some more, I am now convinced that may be the reason why I don't see the behavior as you describe is because there may be some additional error handler in Solace that does not exist in Rabbit. That said, by simply adding another subscriber to the error channel reproduces the issue.
Easy fix, so will apply it shortly.
However, you can also do it now with a simple workaround (temporary).
Basically get access to the ApplicationContext and than:
PublishSubscribeChannel errorChannel = context.getBean("errorChannel", PublishSubscribeChannel.class);
errorChannel.setIgnoreFailures(true);

One other possibility why I may not see it is that perhaps in Solace you do have some additional listener, at which point what you are describing makes perfect sense.
In any event, I was able to reproduce the behavior you are describing so need to figure out the way to fix it since most of it is actually happening on SI side.

@olegz Correct, I believe this is exactly the issue. The Solace Binder has an error handler that get handed to the framework here and I assume gets registered by the framework as a listener on the global error channel. However it must end up subscribing after the custom @ServiceActivator which is why it fails to be executed if the code in the case of an exception thrown on a previous subscriber.
Thanks for looking into this and for the temporary workaround!

One other possibility why I may not see it is that perhaps in Solace you do have some additional listener, at which point what you are describing makes perfect sense.
In any event, I was able to reproduce the behavior you are describing so need to figure out the way to fix it since most of it is actually happening on SI side.

@olegz Correct, I believe this is exactly the issue. The Solace Binder has an error handler that get handed to the framework here and I assume gets registered by the framework as a listener on the global error channel. However it must end up subscribing after the custom @ServiceActivator which is why it fails to be executed if the code in the case of an exception thrown on a previous subscriber.
Thanks for looking into this and for the temporary workaround!


Add an example page

To show off the power of this component and to aid with development it would be cool if we could have an example page. Perhaps with some interactivity so you can update the custom properties that are being applied.

Hey, @danbahrami is the example page ready? I went through your write-up on medium and it is interesting. However, an example would make it even easier.


Unable to disable users

🐛 Summary
The disable-inactive-freeipa-users.sh script is unable to actually disable users.
To reproduce
Simply run the script and observe the following output when it attempts to disable a user:
[root@ipa0 bin]# cd /usr/local/sbin
[root@ipa0 sbin]# ./disable_inactive_freeipa_users.sh
SASL/GSSAPI authentication started
SASL username<EMAIL_ADDRESS>SASL SSF: 256
SASL data security layer installed.
User <REDACTED> not disabled due to sufficiently recent authentication.
SASL/GSSAPI authentication started
SASL username<EMAIL_ADDRESS>SASL SSF: 256
SASL data security layer installed.
ipa: ERROR: Insufficient access: Insufficient 'write' privilege to the 'nsAccountLock' attribute of entry 'uid=admin,cn=users,cn=accounts,dc=staging,dc=cool,dc=cyber,dc=dhs,dc=gov'.

Expected behavior
I expect the script to have the ability to disable users.

I think the problem is that the host is explicitly denied the authority to disable any users in the admins user group.  I will modify the code to ignore such users.

I think the problem is that the host is explicitly denied the authority to disable any users in the admins user group. I will modify the code to ignore such users.

I confirmed that this is the problem.  We don't want to disable such users, nor do the FreeIPA hosts have that ability.  See #79.


[BUG] Changing default color for charts does not seem to work

Expected Behavior

When using Chart.defaults.global.defaultColor to specify a new default color for all charts, the new default color you specify should overwrite the initial one of 'rgba(0, 0, 0, 0.1)'.
Current Behavior

Specifying a new default color has no effect. The initial one persists.
Possible Solution

Steps to Reproduce (for bugs)

Go to live example: https://codepen.io/anon/pen/QvRQgW
I have set a new default color of '#FF0000' or red in the JavaScript code, but there is no change on the chart.

Context

I wanted to change the default color of all charts to one that was more suitable to a color scheme I'm using. By changing the global default color once using the line of code suggested in the documentation, the color should automatically affect all charts and save me the trouble of having to manually do it for every chart.
Environment

Chart.js version: 2.4.0
Browser name and version: Google Chrome, Version 58.0.3029.110 (64-bit), macOS

Glad I found this and confirmed it to be a bug. I tried other options as well:
Are there any workarounds beyond adding the background color manually to each chart?

@gtalarico the cause of this bug is that code like https://github.com/chartjs/Chart.js/blob/586b8c12fc546aabcac341b3a949b3891019bd36/src/elements/element.line.js#L13 runs at load time.
I don't think there is a workaround other than specifying it on all charts. One solution is to update the chart default options, and other global options, with the default colour you want

One solution is to update the chart default options, and other global options, with the default colour

But isn't that the part that's not working? Could please expand on that?

@gtalarico what I mean is instead of relying on the default merge code that uses the original default colour manually updating the global defaults on load. Something like https://jsfiddle.net/5f9cgovr/
It's not great because Chart.defaults._set is internal and I can't guarantee it won't change.

That's perfect, exactly what I needed.
Thank you so much for taking the time to answer this and for your work on this project.

@etimberg good catch, we should maybe remove these options from defaults and use the default color if undefined when updating the chart (as we do with many other options).
@gtalarico don't use Chart.defaults._set because as @etimberg said it's a private helper that can be removed without notice, so will break your code. Instead, you should use Chart.helpers.merge (fiddle) or simply

@simonbrunel that would be a good way to fix this. We did something similar around v2.3 or v2.4 for the font options. Doing it for the colours should not be too hard


Initial route not firing

It seems if the initial page load (in browser) already contains the local route then the route doesn't fire.
routes =
  '/test': -> debugger

router = new Router(routes)
router.init()

The only way I've found to get the initial route to trigger is with this little hack:
initialRoute = window.location.hash.replace(/^#/, '')
router.setRoute('/')
router.setRoute(initialRoute)

Anyone else experiencing this?

I'm using Version 1.2.6, but am having a slightly different problem.
My routing works so long as I delay the call to router.init()
So, I wrap it within a slight 500 millisecond timeout


Add new favicons.

Thanks to @dupstudio, we have the logo as a vector now so I was able to create crisp and shiny new favicions with http://realfavicongenerator.net/.

Some thoughts:

I ignored the invalid HTML error for Safari's mask-icon. We could just remove that altogether
The color I used Android is #ff7515; if you have any other preference let me know

@jdorfman I'll defer to you on those questions, but I don't have a strong opinion. 👍


ObjectMap copy ctor broken as of libgdx 1.7.2

Issue details
ObjectMap copy constructor fails as of libgdx 1.7.2 :
ObjectMap<String, Object> dataCopy = new ObjectMap<String, Object>(data);

See example below.
Reproduction steps/code
import com.badlogic.gdx.utils.ObjectMap;

public class ObjectMapCopyCtorBug
{
    public static void main(String[] args) throws Exception
    {
        ObjectMap<String, Object> data = new ObjectMap<String, Object>();
        for (int i = 0; i < 17; i++) // above a certain size copy fails
            data.put("key" + i, i + 0.5f);

        ObjectMap<String, Object> dataCopy = new ObjectMap<String, Object>(data); // copy ctor fails as of libgdx 1.7.2
        for (int i = 0; i < data.size; i++)
        {
            String key = "key" + i;
            Object dataValue = data.get(key);
            Object dataCopyValue = dataCopy.get(key);
            System.out.println(dataValue + " = " + dataCopyValue);
            if (!dataValue.equals(dataCopyValue))
                System.out.println("wrong copy for key " + key);
        }
    }
}

output:
0.5 = 0.5
1.5 = 1.5
2.5 = 2.5
3.5 = 3.5
4.5 = 4.5
5.5 = 5.5
6.5 = 6.5
7.5 = 7.5
8.5 = 8.5
9.5 = 9.5
10.5 = 10.5
11.5 = 11.5
12.5 = null
wrong copy for key key12
13.5 = null
wrong copy for key key13
14.5 = null
wrong copy for key key14
15.5 = null
wrong copy for key key15
16.5 = null
wrong copy for key key16
Version of LibGDX and/or relevant dependencies
version 1.7.2 and higher
Please select the affected platforms
All

Sounds very similar to issue #3843

Agreed, in my case I also saw differences in capacity/size between the original and the copy. In 1.7.2 some changes were made in parts of the code which affects the capacity/size (with next power of 2) but this has broken the original copy constructor code...

We can resolve these issues by just making a complete clone of all settings, not a very elegant solution mind you.  Generating with a load of 1 resolves most of the issues, but there are still one or two variables that are out of sync.

I don't know the code that well but the new constructor code has:
initialCapacity = MathUtils.nextPowerOfTwo((int)Math.ceil(initialCapacity / loadFactor));

and will get the next power of 2, so a copy with original size 64 gets size 128...
Will changing
public ObjectMap (ObjectMap<? extends K, ? extends V> map) {
 		this(map.capacity, map.loadFactor);

into
public ObjectMap (ObjectMap<? extends K, ? extends V> map) {
 		this(map.capacity-1, map.loadFactor);

Do the trick in this case? Maybe Nathan is available to check this?

	public ObjectMap (ObjectMap<? extends K, ? extends V> map) {
		this(map.capacity, 1f);
		stashSize = map.stashSize;
		loadFactor = map.loadFactor;
		threshold = map.threshold;
		size = map.size;
		System.arraycopy(map.keyTable, 0, keyTable, 0, map.keyTable.length);
		System.arraycopy(map.valueTable, 0, valueTable, 0, map.valueTable.length);
	}

Will give you an identical ObjectMap

Nice, is there any unit-testing code with these classes?
I guess not, otherwise this bug would have been caught earlier ;-)

I noticed that another way to solve the broken copy constructor is by adding this line, rather than setting the load factor to 1, but I have no clue if it's correct or not:
mask = map.mask;

There are unit tests (CollectionTests.java) but they do not test the copy constructors.
Will someone solve that issue? I would gladly do a pull request but I'm not sure I'm the most adequate person for that task.

Still actual


getting class type error when using gamerule script

[LibCD] Error executing tweaker script enchant:gamerule.js: TypeError: class com.martmists.libgamerule.compat.libcd.GameruleTweaker has no such function "addGamerule" in <eval> at line number 2 Is the error I'm talking about. and it's with this in the script, which is from your documentation. var GameruleTweaker = libcd.require("libgamerule.GameruleTweaker"); GameruleTweaker.addGamerule("DoCustomMobSpawning", "boolean", true); GameruleTweaker.addGamerule("CustomRegen", "boolean", true); this is in 20w11a

that's probably on me, I'll look into it soon.

same issue in 20w13b


c++/cli template

Now c++/cli is supported on .net core, so could you make templates for it?

It's only supported for Windows. Other platforms aren't supported, so we currently don't see enough value in it to spend our limited resources on C++/CLI support.
PRs are always welcome.


Add pixels and remove ATB

Task/Issue URL: https://app.asana.com/0/1204920898013511/1208577246155731/f
Description
Steps to test this PR
Feature 1

[ ]
[ ]

UI changes

Before
After

!(Upload before screenshot)
(Upload after screenshot)

[!WARNING]
This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

#5237  👈
#5221
#5213
#5187
#5172
#5171
develop

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @CrisBarreiro and the rest of your teammates on  Graphite


Allow to launch N time the same command.

Add the -d, --duplicate command line argument that will add a #PBS -t 0-4 to give the option to launch duplicate of the same command.
See: http://docs.adaptivecomputing.com/torque/3-0-5/2.1jobsubmission.php#jobarrays
It is also worth investigating if we should manage all jobs batches (with worker) this way.

PR #122 for feature #109 should allow to do this for now.


marcin-piela

Hey @marcin-piela, first of all I want to say that this is a really cool library. Unfortunately we had a problem using our Bearer token in each request. As described in the documentation we have implemented the token in a RequestInterceptor. Unfortunately your library only takes the token with which the client was initialized. Unfortunately the client does not update itself when the token changes. Would you have a suggestion or an example of how we could implement this? We would be very happy because we would like to use the package productively.

Hi @maxtotheguenther :)
This is how I use it
types
import { Action as BaseAction } from 'react-fetching-library';

export type Action = BaseAction<{
  skipAuth?: boolean;
}>;

requestAuthInterceptor.ts
import { Action } from 'api/types';

export const requestAuthInterceptor = (accessToken: string) => () => async (action: Action) => {
  if (action.skipAuth) {
    return action;
  }

  return {
    ...action,
    headers: {
      ...action.headers,
      'Authorization': `Bearer ${accessToken}`,
    },
  };
};

ClientContextController.tsx
import React, { useMemo } from 'react';
import { ClientContextProvider, createClient } from 'react-fetching-library';
import { requestAuthInterceptor } from 'api/interceptors';

export const ClientContextController: React.FC = ({ children }) => {
  const { accessToken, refreshToken } = useAuth(); // THIS IS CONTEXT WITH TOKEN etc.
  const dispatch = useAuthDispatch();

  const client = useMemo(() => {
    return createClient({
      requestInterceptors: [
        requestAuthInterceptor(accessToken),
      ],
    });
  }, [accessToken]);

  return <ClientContextProvider client={client}>{children}</ClientContextProvider>;
};

And the second options (simpler) is to pass function which return accessToken (from cookie, redux or whatever)
export const requestAuthInterceptor = (getAccessToken: () => string) => () => async (action: Action) => {
  if (action.skipAuth) {
    return action;
  }

  return {
    ...action,
    headers: {
      ...action.headers,
      'X-Auth-Token': `Bearer ${getAccessToken()}`,
    },
  };
};

import { store } from './redux-store';

const getAccessToken = () => {
    return store.getState().auth.token;
}

const client = createClient({
      requestInterceptors: [
        requestAuthInterceptor(getAccessToken),
      ]

@marcin-piela oh, sure, we could've just put a callback down there. Thank you for responding so quickly.

Thank you very much! :)


feat: Add HTTP API for cpu profiling

I hereby agree to the terms of the GreptimeDB CLA
What's changed and what's your intention?
This PR adds an HTTP API for CPU profiling. It also refactors the mem prof handler to make chaining handlers to the router easier.
Sample at 99 Hertz, for 5 seconds, output report in protobuf format.
curl -s '0:4000/v1/prof/cpu' > /tmp/pprof.out

Sample at 99 Hertz, for 60 seconds, output report in flamegraph format.
curl -s '0:4000/v1/prof/cpu?seconds=60&output=flamegraph' > /tmp/pprof.svg

Sample at 49 Hertz, for 10 seconds, output report in text format.
curl -s '0:4000/v1/prof/cpu?seconds=10&frequency=49&output=text' > /tmp/pprof.txt

Note that this might panic on Apple silicon chips (M1/M2)

https://github.com/tikv/pprof-rs/issues/203
https://github.com/tikv/pprof-rs/issues/210

Checklist

[ ]  I have written the necessary rustdoc comments.
[ ]  I have added the necessary unit tests and integration tests.

Refer to a related PR or issue link (optional)

The default timeout layer can abort the perf API
2023-06-02T13:15:24.719305Z ERROR tower_http::trace::on_failure: response failed classification=Error: request timed out latency=30000 ms


Create Add_Group

What type of PR is this? (check all applicable)

[ ] 🚀 Added Name
[x] ✨ Feature
[x] 🌟 stared the repo
[ ] 🐛 Grammatical Error
[ ] 📝 Documentation Update
[ ] 🚩 Other

Description
A java program which adds a group of numbers specified by the user.
Add Link of GitHub Profile
https://github.com/QueueElTee

your file's extension is missing

your file's extension is missing

Thanks, I've made a modification.


Consider What Database Option is Best for the Project

I'm currently using InfluxDB to store the timeseries greenhouse gas data. I'm not sure if this is the correct solution, so I need to look into other options.
I've seen https://thingsboard.io/ which seems promising. The most interesting feature is that it has a Map visualization widget that could be used to easily create a nice public dashboard.
Definitely open to any other suggestions that anyone has.

Yeah, it seems like the standard thing would be InfluxDB -> Grafana -> World Map Plugin. I'd like a centralized database to store all the data from multiple Balena devices in the central database. I was hoping for a solution that wouldn't involve two tools (InfluxDB + Grafana) to keep cost down, but it might be the best solution.

+1 for influx which I've hooked up to Dash with no problem (not a Grafana fan, gives me flashbacks to TVAC testing 😅)

Cool yeah I haven't really looked at Dash yet, but I'll check that out.

Ok it seems like InfluxDB + Dash for visualization is the best option for now, so going to proceed with that :)


test: some integration tests fail when using simulated time

It's not clear if these are all due to the same issue or not.
e.g.
test/integration:filter_manager_integration_test hangs when run under sim-time.

This blocks #4160

with https://github.com/envoyproxy/envoy/pull/10551 , test/extensions/filters/http/cache:cache_filter_integration_test passes consistently, but only with a real-time polling delay of 50ms (+ or -) which I believe should not be necessary.

More details on the cache_filter_integration_test.
[ RUN      ] Protocols/CacheIntegrationTest.GetRequestWithBodyAndTrailers/IPv4_HttpDownstream_HttpUpstream
test/extensions/filters/http/cache/cache_filter_integration_test.cc:115: Failure
Value of: response->headers()
Expected: is a superset of headers:
':status', '200'
'date', 'Thu, 01 Jan 1970 01:00:00 GMT'
'cache-control', 'public,max-age=3600'
'content-length', '42'

  Actual: 16-byte object <D8-A7 9C-04 00-00 00-00 78-AF 9C-04 00-00 00-00> (of type Envoy::Http::ResponseHeaderMap), where the following matchers don't match any elements:
matcher #1: is equal to ("date", "Thu, 01 Jan 1970 01:00:00 GMT")
Stack trace:
  0x1dc9846: Envoy::Extensions::HttpFilters::Cache::CacheIntegrationTest_GetRequestWithBodyAndTrailers_Test::TestBody()
  0x48c6a74: testing::internal::HandleSehExceptionsInMethodIfSupported<>()
  0x48b74cb: testing::internal::HandleExceptionsInMethodIfSupported<>()
  0x48a4d93: testing::Test::Run()
  0x48a5757: testing::TestInfo::Run()
... Google Test internal frames ...

[  FAILED  ] Protocols/CacheIntegrationTest.GetRequestWithBodyAndTrailers/IPv4_HttpDownstream_HttpUpstream, where GetParam() = 12-byte object <00-00 00-00 00-00 00-00 00-00 00-00> (365 ms)

The code in question is here:
    response->waitForEndStream();
    EXPECT_TRUE(response->complete());
    EXPECT_THAT(response->headers(), IsSupersetOfHeaders(response_headers));

It appears to me that response->headers() is populated, or at least std::moved in the main thread, so I am not understanding how there can be a race here, but adding the real-time delay appears to be needed.


Allow to launch Ammonite with class code wrapping with a CLI option

As it's tiny changes, I'll probably go ahead and merge that one myself as soon as I need it.

Go ahead :)
On Mon, 23 Jul 2018 at 4:22 PM, Alexandre Archambault <
<EMAIL_ADDRESS>wrote:

As it's tiny changes, I'll probably go ahead and merge that one myself as
soon as I need it.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/lihaoyi/Ammonite/pull/838#issuecomment-406978877, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AA5A_OnZ-c77OAKuP7hIJWgSCVB8qesnks5uJYfKgaJpZM4VYKK8
.

Merging!


synchronize ecs-logging spec

What
ECS logging specs automatic sync
Why
Changeset

https://github.com/elastic/all/commit/a617a44 Adding service.node.name to the spec (https://github.com/elastic/all/pull/61)

:green_heart: Build Succeeded

the below badges are clickable and redirect to their specific view in the CI or DOCS

Expand to view the summary

Build stats

Start Time: 2021-07-07T06:34:23.699+0000

Duration: 16 min 44 sec

Commit: ff9c157417767b633264fadfc4a9d81954e0857f

Test stats :test_tube:

Test
Results

Failed
0

Passed
80

Skipped
0

Total
80

Trends :test_tube: