single threaded asio client falls in to infinite loop when integrated with asio grpc

I am seeing a tight loop with below stack trace. The application is a boost asio single threaded app which is now integrated with asio grpc. The boost version is 1.81. I have followed the client example in the examples directory ( share-io-context-client.cpp ).
Please throw some light on what could possibly go wrong.
(gdb) bt
#0  0x00007fb21bf778e9 in __GI___libc_realloc (oldmem=0x557a957fd180, bytes=90) at ./malloc/malloc.c:3496
#1  0x00007fb21cd7d8e5 in gpr_realloc () from /lib/x86_64-linux-gnu/libgrpc.so.10
#2  0x00007fb21cd06fe5 in grpc_error_string(grpc_error*) () from /lib/x86_64-linux-gnu/libgrpc.so.10
#3  0x00007fb21cd60518 in ?? () from /lib/x86_64-linux-gnu/libgrpc.so.10
#4  0x00007fb21ce5015c in grpc_impl::CompletionQueue::AsyncNextInternal(void**, bool*, gpr_timespec) () from /lib/x86_64-linux-gnu/libgrpc++.so.1
#5  0x0000557a66c7cddd in grpc_impl::CompletionQueue::AsyncNext<gpr_timespec> (this=0x557a6766ddf0, tag=0x7fff16a2e388, ok=0x7fff16a2e390, deadline=...) at /usr/include/grpcpp/impl/codegen/completion_queue_impl.h:198
#6  0x0000557a66c7ccd0 in agrpc::b::detail::get_next_event (cq=0x557a6766ddf0, event=..., deadline=...) at opensource/base/asio-grpc-2.4.0/src/agrpc/detail/grpc_context_implementation.ipp:165
#7  0x0000557a66c7c6c4 in agrpc::b::detail::GrpcContextImplementation::handle_next_completion_queue_event (grpc_context=..., deadline=..., invoke=agrpc::b::detail::InvokeHandler::YES)
at opensource/base/asio-grpc-2.4.0/src/agrpc/detail/grpc_context_implementation.ipp:173
#8  0x0000557a66c7c4bd in agrpc::b::detail::GrpcContextImplementation::do_oneagrpc::b::detail::IsGrpcContextStoppedPredicate (grpc_context=..., deadline=..., invoke=agrpc::b::detail::InvokeHandler::YES, stop_predicate=...)
at opensource/base/asio-grpc-2.4.0/src/agrpc/detail/grpc_context_implementation.ipp:214
#9  0x0000557a66c7ba9a in agrpc::b::detail::GrpcContextDoOne::poll (grpc_context=..., deadline=...) at opensource/base/asio-grpc-2.4.0/src/agrpc/run.hpp:164
#10 0x0000557a66c7b6fa in agrpc::b::detail::run_impl<agrpc::b::detail::GrpcContextDoOne, agrpc::b::DefaultRunTraits, boost::asio::io_context, agrpc::b::detail::AreContextsStoppedConditionboost::asio::io_context > (grpc_context=...,
execution_context=..., stop_condition=...) at opensource/base/asio-grpc-2.4.0/src/agrpc/run.hpp:191
#11 0x0000557a66c7b5bd in agrpc::b::run<agrpc::b::DefaultRunTraits, boost::asio::io_context, agrpc::b::detail::AreContextsStoppedConditionboost::asio::io_context > (grpc_context=..., execution_context=..., stop_condition=...)
at opensource/base/asio-grpc-2.4.0/src/agrpc/run.hpp:214
#12 0x0000557a66c7b545 in agrpc::b::run<agrpc::b::DefaultRunTraits, boost::asio::io_context> (grpc_context=..., execution_context=...) at opensource/base/asio-grpc-2.4.0/src/agrpc/run.hpp:207
#13 0x0000557a668c11d2 in main::$_3::operator() (this=0x7fff16a2e718) at
#14 0x0000557a668c1185 in boost::asio::detail::binder0main::$_3::operator() (this=0x7fff16a2e718) at opensource/base/boost_1_81_0/boost/asio/detail/bind_handler.hpp:60
#15 0x0000557a668c1165 in boost::asio::asio_handler_invoke<boost::asio::detail::binder0main::$_3 > (function=...) at opensource/base/boost_1_81_0/boost/asio/handler_invoke_hook.hpp:88
#16 0x0000557a668c113f in boost_asio_handler_invoke_helpers::invoke<boost::asio::detail::binder0main::$_3, main::$_3> (function=..., context=...) at opensource/base/boost_1_81_0/boost/asio/detail/handler_invoke_helpers.hpp:54
#17 0x0000557a668c110d in boost::asio::detail::asio_handler_invoke<boost::asio::detail::binder0main::$_3, main::$_3> (function=..., this_handler=0x7fff16a2e718) at opensource/base/boost_1_81_0/boost/asio/detail/bind_handler.hpp:111
#18 0x0000557a668c0ffd in boost_asio_handler_invoke_helpers::invoke<boost::asio::detail::binder0main::$_3, boost::asio::detail::binder0main::$_3 > (function=..., context=...)
at opensource/base/boost_1_81_0/boost/asio/detail/handler_invoke_helpers.hpp:54
#19 0x0000557a668c12d3 in boost::asio::detail::executor_op<boost::asio::detail::binder0main::$_3, std::allocator, boost::asio::detail::scheduler_operation>::do_complete (owner=0x557a67661f00, base=0x557a97e2c740)
at opensource/base/boost_1_81_0/boost/asio/detail/executor_op.hpp:70
#20 0x0000557a6697293e in boost::asio::detail::scheduler_operation::complete (this=0x557a97e2c740, owner=0x557a67661f00, ec=..., bytes_transferred=0) at opensource/base/boost_1_81_0/boost/asio/detail/scheduler_operation.hpp:40
#21 0x0000557a669722a7 in boost::asio::detail::scheduler::do_run_one (this=0x557a67661f00, lock=..., this_thread=..., ec=...) at opensource/base/boost_1_81_0/boost/asio/detail/impl/scheduler.ipp:492
#22 0x0000557a66971d77 in boost::asio::detail::scheduler::run (this=0x557a67661f00, ec=...) at opensource/base/boost_1_81_0/boost/asio/detail/impl/scheduler.ipp:210
#23 0x0000557a66954e9e in boost::asio::io_context::run (this=0x7fff16a2ff78) at opensource/base/boost_1_81_0/boost/asio/impl/io_context.ipp:63
#24 0x0000557a668bf69c in main (argc=40, argv=0x7fff16a33c18)

I assume that by infinite loop you mean that "the application blocks forever".
The usual flow of an asio application is that you submit some work to an execution context and then run() it. In the example we  add some work to the io_context and then we run it. The call to run() will block until all work is done.
If you would like asio and asio-grpc to work on a background thread then you can simply do this. Note that you probably want to create a asio::make_work_guard(io_context) to prevent run() from returning early in that case. And the end of your program you simply release the work guards and it will run to completion cleanly.

i am sorry for being vague, infinite loop in the sense the application is busy polling and traversing the mentioned code path when there is no work. I have not added work guard , let me get back after adding the work guard. The application main loop is a io_context and the asio grpc is in a post lambda like below.
boost::asio::post( ioc,
[&] {
ioc.get_executor().on_work_finished();
agrpc::run ( grpc_context, ioc );
ioc.get_executor().on_work_started();
});

I understand. This behavior is expected. It is the unfortunate side-effect of trying to run two event loops on the same thread. It should however not consume any notice amount of CPU. If it does then you could adjust the latency. Let me know if you do and what value works for you:
struct RunTraits
{
    /**
     * @brief The desired maximum latency
     *
     * The maximum latency between consecutive polls of the execution context.
     */
    static constexpr std::chrono::microseconds MAX_LATENCY{500};
};

agrpc::run<RunTraits>(...);

Btw, this is also the reason why this function is still considered experimental.

You may also find this article from the documentation helpful: https://tradias.github.io/asio-grpc/md_doc_using_asio_io_context.html

I am confused now, so i still need to add work_guard ?? pls clarify.
The default latency is not working for me, the core utilization is shooting 100% , this started the investigation in first place.

Work tracking and the related work_guard are features coming from Asio itself. Asio-grpc supports them in exactly the same way. If want to learn a bit more about this concept you might want to check the Asio documentation, for example this tutorial:

The asio library provides a guarantee that completion handlers will only be called from threads that are currently calling io_context::run(). Therefore unless the io_context::run() function is called the completion handler for the asynchronous wait completion will never be invoked.

The io_context::run() function will also continue to run while there is still "work" to do. In this example, the work is the asynchronous wait on the timer, so the call will not return until the timer has expired and the completion handler has returned.

It is important to remember to give the io_context some work to do before calling io_context::run(). For example, if we had omitted the above call to steady_timer::async_wait(), the io_context would not have had any work to do, and consequently io_context::run() would have returned immediately.

Regarding the CPU consumption: Ok, here you can either adjust the MAX_LATENCY of the RunTraits or see whether the Implicit io_context or running io_context and grpc_context on different threads would suit your needs.

I tried out these things as you suggested , but the issue still persists.
added work guard to the agrpc context as per the client example.
changed the MAX_LATENCY from default 250 micoseconds to 1 millisecond.
The core util comes down to normal from 100 when i comment out the
boost::asio::post( ioc,
[&] {
ioc.get_executor().on_work_finished();
agrpc::run ( grpc_context, ioc );
ioc.get_executor().on_work_started();
});
This is just done to isolate the root cause of core shoot up .  i will add a thread as recommended and will see if it helps.  let me test out the examples and see if i see the same.

I think it might help to see a more complete example:

struct RunTraits
{
    static constexpr std::chrono::milliseconds MAX_LATENCY{1};
};

void start(auto& io_context, agrpc::GrpcContext& grpc_context, const asio::ip::port_type tcp_port, auto& stub,
           auto& grpc_context_work_guard)
{
    asio::co_spawn(
        io_context,
        [&, tcp_port]() -> asio::awaitable<void>
        {
            // The two operations below will run concurrently on the same thread.
            using namespace asio::experimental::awaitable_operators;
            co_await (make_grpc_request(grpc_context, stub) && make_tcp_request(tcp_port));
            grpc_context_work_guard.reset();
        },
        asio::detached);
}

int main(int argc, const char** argv)
{
    const auto grpc_port = argc >= 2 ? argv[1] : "50051";
    const auto host = std::string("localhost:") + grpc_port;
    const auto tcp_port = static_cast<asio::ip::port_type>(argc >= 3 ? std::stoul(argv[2]) : 8001);

    example::v1::Example::Stub stub{grpc::CreateChannel(host, grpc::InsecureChannelCredentials())};
    agrpc::GrpcContext grpc_context;
    auto grpc_context_work_guard = asio::make_work_guard(grpc_context);

    // --- Chose one of the following three models:

    // Implicit two-thread model:
    start(grpc_context, grpc_context, tcp_port, stub, grpc_context_work_guard);
    grpc_context.run();

    // Explicit two-thread model:
    asio::io_context io_context{1};
    start(io_context, grpc_context, tcp_port, stub, grpc_context_work_guard);
    std::thread t{[&]
                  {
                      io_context.run();
                  }};
    grpc_context.run();
    t.join();

    // Single-thread model. Adjust MAX_LATENCY as needed:
    asio::io_context io_context{1};
    start(io_context, grpc_context, tcp_port, stub, grpc_context_work_guard);
    asio::post(io_context,
               [&]
               {
                   io_context.get_executor().on_work_finished();
                   agrpc::run<RunTraits>(grpc_context, io_context);
                   io_context.get_executor().on_work_started();
               });
    io_context.run();
}

able to reproduce issue with the example code as well, my usage might be wrong, please take a look and correct.
on client side making io_context wait will trigger the issue making the client to shoot to 100 % core.
just add this one line  on both client and server to make io_context loop forever.
on client and sever :

std::unique_ptr<boost::asio::io_context::work> work ( new boost::asio::io_context::work ( io_context ) );

on server:
in addition to the above make the coroutine loop forever in a while ( 1 )
asio::awaitable handle_grpc_request(agrpc::GrpcContext& grpc_context, example::v1::Example::AsyncService& service)
{
grpc::ServerContext server_context;
example::v1::Request request;
while ( 1 ) {               // <------------ while loop added to make it stay.
grpc::ServerAsyncResponseWriterexample::v1::Response writer{&server_context};
if (!co_await agrpc::request(&example::v1::Example::AsyncService::RequestUnary, service, server_context, request,
writer, asio::bind_executor(grpc_context, asio::use_awaitable)))
{
co_return;
}
example::v1::Response response;
response.set_integer(request.integer());
co_await agrpc::finish(writer, response, grpc::Status::OK, asio::bind_executor(grpc_context, asio::use_awaitable));
}
}
once we run both the cilent and server with above modifications , we can see client shooting to 100% core.

I managed to reproduce the issue on my Linux x86_64 machine. The problem is that in your case the grpc_context has already stopped, yet agrpc::run relies on it doing the "sleep" for MAX_LATENCY. I think this can be considered a bug in asio-grpc. For an immediate workaround, you can modify the single-thread model to:
    asio::post(io_context,
               [&]
               {
                   agrpc::run(grpc_context, io_context,
                              [&]
                              {
                                  return !grpc_context.is_stopped();
                              });
               });
    io_context.run();

Thanks for making me aware of this issue.

Thank you for confirmation let me test and get back.

Is it possible to prioritize the fix ?? the quick fix didnt help much.  ... Thanks

What do you mean by the workaround didn't help what. What exactly did it not help with? In my tests it does not show 100% CPU consumption anymore and the rest of the application behaves as expected.

In my case the 100% util was still there, just to be clear , it was gone in the example app but still i could see it in our app. let me dig more deep and get back. i will paste the stack trace later in the day.

I double checked , here is the stack trace of the code. The agrpc::run() is commented and the cpu hike disappears.
stack trace :
Thread 1 (Thread 0x7f727c571ac0 (LWP 458363) ):
#0  __GI___libc_malloc (bytes=bytes@entry=300) at ./malloc/malloc.c:3299
#1  0x00007f727c6e06a2 in __GI__IO_str_overflow (fp=0x7ffd250ad050, c=58) at ./libio/strops.c:106
#2  0x00007f727c6deeb4 in __GI__IO_default_xsputn (n=, data=, f=) at ./libio/genops.c:399
#3  __GI__IO_default_xsputn (f=0x7ffd250ad050, data=, n=347) at ./libio/genops.c:370
#4  0x00007f727c6c808c in outstring_func (done=30, length=347, string=0x556ecb40d1f0 "{"created":"@1678112971.528365277","description":"pollset_work","file":"src/core/lib/iomgr/ev_epollex_linux.cc","file_line":324,"referenced_errors":[{"created":"@1678112971.528365073","description":"I"..., s=0x7ffd250ad050) at ../libio/libioP.h:947
#5  __vfprintf_internal (s=s@entry=0x7ffd250ad050, format=format@entry=0x7f727d5426d8 "Completion queue next failed: %s", ap=ap@entry=0x7ffd250ad1a0, mode_flags=mode_flags@entry=2) at ./stdio-common/vfprintf-internal.c:1517
#6  0x00007f727c6d915a in __vasprintf_internal (result_ptr=0x7ffd250ad198, format=0x7f727d5426d8 "Completion queue next failed: %s", args=0x7ffd250ad1a0, mode_flags=2) at ./libio/vasprintf.c:57
#7  0x00007f727d4fcbaf in gpr_log () from /lib/x86_64-linux-gnu/libgrpc.so.10
#8  0x00007f727d4df53a in ?? () from /lib/x86_64-linux-gnu/libgrpc.so.10
#9  0x00007f727d5cf15c in grpc_impl::CompletionQueue::AsyncNextInternal(void**, bool*, gpr_timespec) () from /lib/x86_64-linux-gnu/libgrpc++.so.1
#10 0x0000556e9c9c5f1d in grpc_impl::CompletionQueue::AsyncNext<gpr_timespec> (this=0x556e9d273df0, tag=0x7ffd250ad4a8, ok=0x7ffd250ad4b0, deadline=...) at /usr/include/grpcpp/impl/codegen/completion_queue_impl.h:198
#11 0x0000556e9c9c5e10 in agrpc::b::detail::get_next_event (cq=0x556e9d273df0, event=..., deadline=...) at opensource/base/asio-grpc-2.4.0/src/agrpc/detail/grpc_context_implementation.ipp:165
#12 0x0000556e9c9c5804 in agrpc::b::detail::GrpcContextImplementation::handle_next_completion_queue_event (grpc_context=..., deadline=..., invoke=agrpc::b::detail::InvokeHandler::YES) at opensource/base/asio-grpc-2.4.0/src/agrpc/detail/grpc_context_implementation.ipp:173
#13 0x0000556e9c9c55fd in agrpc::b::detail::GrpcContextImplementation::do_oneagrpc::b::detail::IsGrpcContextStoppedPredicate (grpc_context=..., deadline=..., invoke=agrpc::b::detail::InvokeHandler::YES, stop_predicate=...) at opensource/base/asio-grpc-2.4.0/src/agrpc/detail/grpc_context_implementation.ipp:214
#14 0x0000556e9c9c4c5a in agrpc::b::detail::GrpcContextDoOne::poll (grpc_context=..., deadline=...) at opensource/base/asio-grpc-2.4.0/src/agrpc/run.hpp:165
#15 0x0000556e9c60a427 in agrpc::b::detail::run_impl<agrpc::b::detail::GrpcContextDoOne, agrpc::b::DefaultRunTraits, boost::asio::io_context, main::$_3::operator()() const::{lambda()#1}>(agrpc::b::GrpcContext&, boost::asio::io_context&, main::$_3::operator()() const::{lambda()#1}) (grpc_context=..., execution_context=..., stop_condition=...) at opensource/base/asio-grpc-2.4.0/src/agrpc/run.hpp:192
#16 0x0000556e9c60a2dd in agrpc::b::run<agrpc::b::DefaultRunTraits, boost::asio::io_context, main::$_3::operator()() const::{lambda()#1}>(agrpc::b::GrpcContext&, boost::asio::io_context&, main::$_3::operator()() const::{lambda()#1}) (grpc_context=..., execution_context=..., stop_condition=...) at opensource/base/asio-grpc-2.4.0/src/agrpc/run.hpp:215
#17 0x0000556e9c60a2a7 in main::$_3::operator() (this=0x7ffd250ad7d8) at wsvr.cpp:619
#18 0x0000556e9c60a275 in boost::asio::detail::binder0main::$_3::operator() (this=0x7ffd250ad7d8) at opensource/base/boost_1_81_0/boost/asio/detail/bind_handler.hpp:60
#19 0x0000556e9c60a255 in boost::asio::asio_handler_invoke<boost::asio::detail::binder0main::$_3 > (function=...) at opensource/base/boost_1_81_0/boost/asio/handler_invoke_hook.hpp:88
#20 0x0000556e9c60a22f in boost_asio_handler_invoke_helpers::invoke<boost::asio::detail::binder0main::$_3, main::$_3> (function=..., context=...) at opensource/base/boost_1_81_0/boost/asio/detail/handler_invoke_helpers.hpp:54
#21 0x0000556e9c60a1fd in boost::asio::detail::asio_handler_invoke<boost::asio::detail::binder0main::$_3, main::$_3> (function=..., this_handler=0x7ffd250ad7d8) at opensource/base/boost_1_81_0/boost/asio/detail/bind_handler.hpp:111
#22 0x0000556e9c60a0ed in boost_asio_handler_invoke_helpers::invoke<boost::asio::detail::binder0main::$_3, boost::asio::detail::binder0main::$_3 > (function=..., context=...) at opensource/base/boost_1_81_0/boost/asio/detail/handler_invoke_helpers.hpp:54
#23 0x0000556e9c60a5f3 in boost::asio::detail::executor_op<boost::asio::detail::binder0main::$_3, std::allocator, boost::asio::detail::scheduler_operation>::do_complete (owner=0x556e9d267f00, base=0x556ecb3f3f50) at opensource/base/boost_1_81_0/boost/asio/detail/executor_op.hpp:70
#24 0x0000556e9c6bbe5e in boost::asio::detail::scheduler_operation::complete (this=0x556ecb3f3f50, owner=0x556e9d267f00, ec=..., bytes_transferred=0) at opensource/base/boost_1_81_0/boost/asio/detail/scheduler_operation.hpp:40
#25 0x0000556e9c6bb7c7 in boost::asio::detail::scheduler::do_run_one (this=0x556e9d267f00, lock=..., this_thread=..., ec=...) at opensource/base/boost_1_81_0/boost/asio/detail/impl/scheduler.ipp:492
#26 0x0000556e9c6bb297 in boost::asio::detail::scheduler::run (this=0x556e9d267f00, ec=...) at opensource/base/boost_1_81_0/boost/asio/detail/impl/scheduler.ipp:210
#27 0x0000556e9c69e3fe in boost::asio::io_context::run (this=0x7ffd250aef88) at opensource/base/boost_1_81_0/boost/asio/impl/io_context.ipp:63
#28 0x0000556e9c6087d1 in main (argc=40, argv=0x7ffd250b2c28) at ...

Totally agreed !!! thanks for the pointers, let me dig a bit deep and get back.

Infinite loop no longer seen after the new post handler.
asio::post(io_context,   [&]  {
agrpc::run(grpc_context, io_context,     [&]   {
return grpc_context.is_stopped();
});
});


LIN-2191: Add step 1 of paywall

LIN-2191

Refactored the previous paywall a bit to extract the common views
Add the new first step

is the top padding correct?

is the top padding correct?

Yes, when used on a real device it looks like this:


Update list of tier 4 visa sponsoring establishments

PT story: https://www.pivotaltracker.com/story/show/111519804
Updates the list of sponsoring establishments and their application methods for Tier 4 visas.
Fact check
https://pt-111519804.herokuapp.com/apply-tier-4-visa
Expected changes

URL on gov.uk
The Moat School is now capitalised

Before

After

Note: This PR supersedes #2237

Sent to Home Office for factchecking.

Home Office have approved the changes.

This looks ok to merge from the code perspective, but do some entities really need to be all caps?
Looking at this file it doesn't seem to be consistent. Perhaps thats for @keithiopia to answer?

@tadast I'm not particularly happy about the inconsistency in case either. I think there are also typos. The Home Office assured me that they'll be sending me a cleaned up version at some point, so this is just an interim to correct the missing or incorrect sponsors.

:+1:

I've just rebased this with the master branch and force pushed back to the branch of this PR


debian: remove old usage jars during upgrade

This removes old cloudstack-usage jars during upgrade as part of
the pre-install step of cloudstack-usage deb package.
This fixes #2542
Types of changes

[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] New feature (non-breaking change which adds functionality)
[x] Bug fix (non-breaking change which fixes an issue)
[ ] Enhancement (improves an existing feature and functionality)
[ ] Cleanup (Code refactoring and cleanup, that may add test cases)

Screenshots (if appropriate):
How Has This Been Tested?

Checklist:

[x] I have read the CONTRIBUTING document.
[x] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
Testing
[ ] I have added tests to cover my changes.
[x] All relevant new and existing integration tests have passed.
 I'll keep you posted as I make progress.

Packaging result: ✔centos6 ✔centos7 ✔debian. JID-1887

@DaanHoogland thanks, I've kept the changes limited to address the issue https://github.com/apache/cloudstack/issues/2542

ok, @rhtyd

Upgrade test is not done by Trillian, tested upgrade manually on Ubuntu xenial 16.04. Seems working okay for me. I'll merge this based on reviews and manual upgrade test.


Adds structure hash method + acl stmt type

This should be good to go @dtbuchholz. Once you give me the 👍 , I'll merge this, and push the tags to main to kick off the release. Then your fix, plus a few other nice-to-haves will be included in this minor release. Minor, because it adds APIs and response types, but is backward compatible.


[Interop] Pass Action / Delegate in object

I'm currently porting the Web Notifications API from JavaScript to Blazor see: Blazor.Notifications.
To do so I'm passing an object via interop and registering the onClick functions via the new features of the interop introduced in 0.4.0 to callback to C# functions. However it would be nice if we could pass Action<UIMouseEventArgs> in the object directly via interop to JavaScript.
Is this even possible?

Eventually we intend to extend the JS interop APIs to support passing arbitrary .NET objects by reference into JS, and arbitrary JS objects by reference into .NET. Then we'll make it possible to invoke instance methods on those objects.
This allows for a lot of additional use cases. Your goal to pass delegates and then invoke them would be one of those use cases.
Until that is fully designed and implemented, the best way to achieve what you want is to put the .NET delegate into some static dictionary on the .NET side, keyed by some unique identifier such as a GUID or incrementing series of int values. Then pass the unique identifier over to the JS side. When it wants to "invoke" the delegate, make a call back into .NET passing the unique identifier, where your .NET logic will retrieve the delegate from the dictionary by ID and then call Invoke on it. Of course, it's up to you to manage the lifetimes of these instances (you don't want to accumulate more and more delegates in the dictionary forever, as that's leaking memory).


Install via pip?

Come on people, is there an actual way to install this and Malmo via pip?? The instructions are a mess and don't work, e.g. the following line presupposes that malmo has been installed via pip, but the step to install via pip comes way later and in turn presupposes that this step has been made:
python3 -c 'import malmo.minecraftbootstrap; malmo.minecraftbootstrap.download()'

There is absolutely no issue getting Minecraft to run but every import fails although everything has been installed as described (if at all possible). Will this ever be fixed or are we just going to rely on anaconda and keep wrecking peoples' system python?

I've made some minor changes to the documentation for the non-conda install. Installing the Python gym environment for Malmo (https://github.com/microsoft/malmo/tree/master/MalmoEnv) or MineRL (http://minerl.io/) is simpler and does not require Anaconda.


JAVA-2131: Figure out our testing strategy for Mapper 4.1

Force-pushed to rebase on latest java2078.


Add iopooleco 0.5.1 to stable

Please update my adapter ioBroker.iopooleco to version 0.5.1.
This pull request was created by https://www.iobroker.dev c0726ff.

Your Adapter has been added to stable repository. If you like you can extend the news message here:
https://github.com/ioBroker/ioBroker.docs/blob/master/docs/en/history/history.md
If you add some more information / description, please consider to add this information to README.md too.
If you have any questions related to the news file, please contact @Apollon77 for further information.
Please note, that the PR announcing the new adapter at stable might not be merged.
https://github.com/ioBroker/ioBroker.docs/pull/
Please create a thread at https://forum.iobroker.net/category/91/tester titled like "Test Adapter " to collect some user feedback.
Note: If an other testing topic already exists, it' OK to continue using this topic too.


{"installed":[{"name":"com.fibaro.yrWeather","predefined":true},{"name":"com.fibaro.hunterDouglas","predefined":false},{"name":"com.fibaro.philipsHue","predefined":false},{"name":"com.fibaro.logitechHarmonyAccount","predefined":false},{"name":"com.fibaro.setPointForwarder","predefined":false}],"all":{"types":[{"category":0,"plugins":[{"type":"com.fibaro.alphatechFarfisa","name":"IP Bell","defaultMainDeviceName":"IP Bell","description":"IP Bell – Take care about the safety of your home with just a few clicks by integrating video entry system and Fibaro. Plugin enables controlling IP Bell video entry system and camera image preview using Fibaro interface.","user":"Fibar Group S.A.","compatibility":["iPad","iPhone","Android Phone","Android Tablet","Home Center 3"],"predefined":false,"version":"1.0","url":"","installed":false},{"type":"com.fibaro.dahuaCamera","name":"Dahua camera","defaultMainDeviceName":"Dahua camera","description":"Use this device if you want to add a Dahua IP camera to the system. You will be able to view the stream from your camera, both locally and remotely, using the web and mobile interface.","user":"Fibar Group S.A.","compatibility":["iPad","iPhone","Android Phone","Android Tablet","Home Center 3"],"predefined":false,"version":"1.0","url":"","installed":false},{"type":"com.fibaro.dscAlarm","name":"DSC Alarm","defaultMainDeviceName":"DSC Alarm","description":"Voeg een DSC Alarmsysteem toe waarna u de status van zones en blokken kunt controleren.","user":"Fibar Group S.A.","compatibility":["iPad","iPhone","Android Phone","Android Tablet","Home Center 3"],"predefined":false,"version":"1.0","url":"","installed":false},{"type":"com.fibaro.envisaLinkAlarm","name":"EnvisaLink Alarm","defaultMainDeviceName":"EnvisaLink Alarm","description":"Voeg een EnvisaLink Alarmsysteem toe waarna u de status van zones en blokken kunt controleren.","user":"Fibar Group S.A.","compatibility":["iPad","iPhone","Android Phone","Android Tablet","Home Center 3"],"predefined":false,"version":"1.0","url":"","installed":false},{"type":"com.fibaro.fibaroIntercom","name":"Fibaro Intercom FGIC-001","defaultMainDeviceName":"Fibaro Intercom FGIC-001","description":"Fibaro Intercom FGIC-001 – Take care of the safety of your home with just a few clicks by integrating video entry system and Fibaro. Plugin enables controlling Fibaro Intercom video entry system and camera image preview using Fibaro interface.","user":"Fibar Group S.A.","compatibility":["iPad","iPhone","Android Phone","Android Tablet","Home Center 3"],"predefined":false,"version":"1.0","url":"","installed":false},{"type":"com.fibaro.heliosBasic","name":"Helios Basic","defaultMainDeviceName":"Helios Basic","description":"Helios Basic – Take care about the safety of your home with just a few clicks by integrating video entry system and Fibaro. Plugin enables controlling Helios Basic video entry system and camera image preview using Fibaro interface.","user":"Fibar Group S.A.","compatibility":["iPad","iPhone","Android Phone","Android Tablet","Home Center 3"],"predefined":false,"version":"1.0","url":"","installed":false},{"type":"com.fibaro.heliosGold","name":"Helios Gold","defaultMainDeviceName":"Helios Gold","description":"Helios Gold – Take care about the safety of your home with just a few clicks by integrating video entry system and Fibaro. Plugin enables controlling Helios Gold video entry system and camera image preview using Fibaro interface.","user":"Fibar Group S.A.","compatibility":["iPad","iPhone","Android Phone","Android Tablet","Home Center 3"],"predefined":false,"version":"1.0","url":"","installed":false},{"type":"com.fibaro.mobotix","name":"Mobotix","defaultMainDeviceName":"Mobotix","description":"Mobotix – Take care about the safety of your home with just a few clicks by integrating video entry system and Fibaro. Plugin enables controlling Mobotix video entry system and camera image preview using Fibaro interface.","user":"Fibar Group S.A.","compatibility":["iPad","iPhone","Android Phone","Android Tablet","Home Center 3"],"predefined":false,"version":"1.0","url":"","installed":false},{"type":"com.fibaro.pko","name":"PKO Intelligent Home","defaultMainDeviceName":"PKO Intelligent Home","description":"Not available in your region","user":"Fibar Group S.A.","compatibility":["iPad","iPhone","Android Phone","Android Tablet","Home Center 3","Home Center 3 Lite","Yubii Home"],"predefined":false,"version":"1.0","url":"","installed":false},{"type":"com.fibaro.satelAlarm","name":"Satel Alarm","defaultMainDeviceName":"Satel Alarm","description":"Voeg een Satel Alarmsysteem toe waarna u de status van zones, uitgangen en blokken kunt controleren.","user":"Fibar Group S.A.","compatibility":["iPad","iPhone","Android Phone","Android Tablet","Home Center 3"],"predefined":false,"version":"1.0","url":"","installed":false},{"type":"com.fibaro.tedeeAccount","name":"Tedee","defaultMainDeviceName":"Tedee","description":"Control your Tedee locks with Home Center 3 integration.","user":"Fibar Group S.A.","compatibility":["iPad","iPhone","Android Phone","Android Tablet","Home Center 3"],"predefined":false,"version":"1.0","url":"","installed":false}],"installed":0},{"category":1,"plugins":[{"type":"com.fibaro.WeatherProvider","name":"Weather Provider","defaultMainDeviceName":"Weather Provider","description":"Install and configure your own weather plugin based on sensors in your home and get the latest data on the weather in your location. Plugin allows to choose temperature, wind and humidity sensors. If you want the weather data from this plugin to be displayed in the main interface and used in scene, select it as a main weather plugin in Configuration / General tab.","user":"Fibar Group S.A.","compatibility":["iPad","iPhone","Android Phone","Android Tablet","Home Center 3","Home Center Lite"],"predefined":false,"version":"1.0","url":"","installed":false},{"type":"com.fibaro.coolAutomation","name":"CoolAutomation","defaultMainDeviceName":"CoolAutomation","description":"Use FIBARO Home Center to control air conditioners connected to CoolMaster bridge.","user":"Fibar Group S.A.","compatibility":["iPad","iPhone","Android Phone","Android Tablet","Home Center 3","Home Center Lite"],"predefined":false,"version":"1.0","url":"","installed":false},{"type":"com.fibaro.davisVantage","name":"WS Davis Vantage","defaultMainDeviceName":"WS Davis Vantage","description":"Weather Station Davis Vantage – plugin for viewing weather data registered by Davis Vantage Weather Station which measures barometric pressure, temperature, humidity, rainfall, wind speed and direction, UV/solar and much more! You'll get highs and lows (and/or totals or averages) for virtually all weather variables for the past 24 days, months, or years, and your own local forecast.","user":"Fibar Group S.A.","compatibility":["iPad","iPhone","Android Phone","Android Tablet","Home Center 3"],"predefined":false,"version":"1.0","url":"","installed":false},{"type":"com.fibaro.fibaroHeatActivator","name":"Fibaro Heat Activator","defaultMainDeviceName":"Fibaro Heat Activator","description":"Add thermostats to the list and select the switch for the thermostats to automatically turn it on.","user":"Fibar Group S.A.","compatibility":["iPad","iPhone","Android Phone","Android Tablet","Home Center 3"],"predefined":false,"version":"1.0","url":"","installed":false},{"type":"com.fibaro.setPointForwarder","name":"Thermostat & Heating Zone","defaultMainDeviceName":"Thermostat & Heating Zone","description":"Choose Manual time below, which will be used to set heating setpoint for a zone according to reported setpoint value by thermostat from configuration. Thermostat must be added to the same climate zone (configured in "heating" mode).","user":"Fibar Group S.A.","compatibility":["iPad","iPhone","Android Phone","Android Tablet","Home Center 3"],"predefined":false,"version":"1.0","url":"","installed":true},{"type":"com.fibaro.yrWeather","name":"yrWeather","defaultMainDeviceName":"yrWeather","description":"Default weather plugin that uses information from www.yr.no website. If you want the weather data from this plugin to be displayed in the main interface and used in scene, select it as a main weather plugin in Configuration / General tab. ","user":"Fibar Group S.A.","compatibility":["iPad","iPhone","Android Phone","Android Tablet","Home Center 3","Home Center Lite"],"predefined":true,"version":"1.0","url":"plugins/index.html?type=climate&name=com.fibaro.yrWeather","installed":true}],"installed":2},{"category":2,"plugins":[{"type":"com.fibaro.husqvarnaMower","name":"Husqvarna Mower","defaultMainDeviceName":"Husqvarna Mower","description":"Control your Husqvarna Mower","user":"Fibar Group S.A.","compatibility":["iPad","iPhone","Android Phone","Android Tablet","Home Center 3","Home Center Lite"],"predefined":false,"version":"1.0","url":"","installed":false},{"type":"com.fibaro.initialstate","name":"Initial State","defaultMainDeviceName":"Initial State","description":"Interactively visualize events from HC in your web browser using Initial State platform. One or more Home Center can be connected to one account. Plugin provides real time streaming of chosen data. In order to use the web based Initial State platform the account should be created on initialstate.com website.","user":"Fibar Group S.A.","compatibility":["iPad","iPhone","Android Phone","Android Tablet","Home Center 3"],"predefined":false,"version":"1.0","url":"","installed":false},{"type":"com.fibaro.onyx","name":"Onyx","defaultMainDeviceName":"Onyx","description":"It has never been easier to use daylight in your own four walls. The ONYX control allows you control convenience at the highest level, letting the sun in only where it is wanted. Use blinds, shades, rollershutters and more controlled by ONYX along with Hub.","user":"Fibar Group S.A.","compatibility":["iPad","iPhone","Android Phone","Android Tablet","Home Center 2"],"predefined":false,"version":"1.0","url":"","installed":false},{"type":"com.fibaro.wakeOnLan","name":"Wake on LAN","defaultMainDeviceName":"Wake on LAN","description":"WakeOnLan – plugin enables the device to be turned on from another location over a network connection or Internet using Fibaro interface. Just find their IP and MAC addresses and use remote access to switch them on from anywhere in the world.","user":"Fibar Group S.A.","compatibility":["iPad","iPhone","Android Phone","Android Tablet","Home Center 3"],"predefined":false,"version":"1.0","url":"","installed":false}],"installed":0},{"category":3,"plugins":[{"type":"com.fibaro.denonHeos","name":"HEOS DENON","defaultMainDeviceName":"HEOS System","description":"Connect your favourite music with your intelligent home using the HEOS by Denon sound system and a plugin for integration with FIBARO Home Center. Selected plugin allows for remote management of HEOS using easy and intuitive navigation powered by FIBARO interface. You can control playback, adjust volume level or mute/unmute the music.","user":"Fibar Group S.A.","compatibility":["iPad","iPhone","Android Phone","Android Tablet","Home Center 3","Home Center Lite"],"predefined":false,"version":"1.0","url":"","installed":false},{"type":"com.fibaro.nuvoPlayer","name":"NuVo","defaultMainDeviceName":"NuVo","description":"Connect your favourite music with your intelligent home using NuVo Whole Home Audio and plugin for integration with FIBARO Home Center. Selected plugin allows for remote management of NuVo multiroom wireless sound system using easy and intuitive navigation powered by FIBARO interface. You can control playback, adjust volume level or mute/unmute the music.","user":"Fibar Group S.A.","compatibility":["iPad","iPhone","Android Phone","Android Tablet","Home Center 3","Home Center Lite"],"predefined":false,"version":"1.0","url":"","installed":false},{"type":"com.fibaro.russoundMCA88X","name":"Russound MCA-88X","defaultMainDeviceName":"Russound MCA-88X","description":"Connect your favourite music with your intelligent home using the Russound sound system and a plugin for integration with FIBARO Home Center. Selected plugin allows for remote management of Russound System using easy and intuitive navigation powered by FIBARO interface. You can control playback, adjust volume level of the speakers or mute/unmute the music.","user":"Fibar Group S.A.","compatibility":["iPad","iPhone","Android Phone","Android Tablet","Home Center 3","Home Center Lite"],"predefined":false,"version":"1.0","url":"","installed":false},{"type":"com.fibaro.russoundX5","name":"Russound X5","defaultMainDeviceName":"Russound X5","description":"Connect your favourite music with your intelligent home using the Russound sound system and a plugin for integration with FIBARO Home Center. Selected plugin allows for remote management of Russound System using easy and intuitive navigation powered by FIBARO interface. You can control playback, adjust volume level of the speakers or mute/unmute the music.","user":"Fibar Group S.A.","compatibility":["iPad","iPhone","Android Phone","Android Tablet","Home Center 3","Home Center Lite"],"predefined":false,"version":"1.0","url":"","installed":false},{"type":"com.fibaro.russoundXSource","name":"Russound XSource","defaultMainDeviceName":"Russound XSource","description":"Connect your favourite music with your intelligent home using the Russound sound system and a plugin for integration with FIBARO Home Center. Selected plugin allows for remote management of Russound System using easy and intuitive navigation powered by FIBARO interface. You can control playback, adjust volume level of the speakers or mute/unmute the music.","user":"Fibar Group S.A.","compatibility":["iPad","iPhone","Android Phone","Android Tablet","Home Center 3","Home Center Lite"],"predefined":false,"version":"1.0","url":"","installed":false},{"type":"com.fibaro.russoundXZone4","name":"Russound XZone4","defaultMainDeviceName":"Russound XZone4","description":"Connect your favourite music with your intelligent home using the Russound sound system and a plugin for integration with FIBARO Home Center. Selected plugin allows for remote management of Russound System using easy and intuitive navigation powered by FIBARO interface. You can control playback, adjust volume level of the speakers or mute/unmute the music.","user":"Fibar Group S.A.","compatibility":["iPad","iPhone","Android Phone","Android Tablet","Home Center 3","Home Center Lite"],"predefined":false,"version":"1.0","url":"","installed":false},{"type":"com.fibaro.sonosSpeaker","name":"Sonos Speaker","defaultMainDeviceName":"Sonos Speaker","description":"Sonos Speakers – Connect your favorite music with your intelligent home. Plugin enables remote management of Sonos network speaker using Fibaro interface: control playback, adjust volume level, select input source or group the devices.","user":"Fibar Group S.A.","compatibility":["iPad","iPhone","Android Phone","Android Tablet","Home Center 3"],"predefined":false,"version":"1.0","url":"","installed":false},{"type":"com.fibaro.xbmc","name":"XBMC remote control","defaultMainDeviceName":"XBMC remote control","description":"XBMC remote control – Make your home not only intelligent but also fully multimedia and make collection of your photos, videos and music available at your fingertips. Plugin enables remote control of XBMC Media Center multimedia player or client application using Fibaro interface.","user":"Fibar Group S.A.","compatibility":["iPad","iPhone","Android Phone","Android Tablet","Home Center 3"],"predefined":false,"version":"1.0","url":"","installed":false}],"installed":0},{"category":5,"plugins":[{"type":"com.fibaro.philipsHue","name":"Philips Hue","defaultMainDeviceName":"Philips Hue","description":"Philips Hue – Create personalized lighting environment and control it from wherever you are. Plugin enables remote control of intelligent Philips Hue lights: turn on/off, change hue, saturation and brightness using Fibaro interface.","user":"Fibar Group S.A.","compatibility":["iPad","iPhone","Android Phone","Android Tablet","Home Center 3"],"predefined":false,"version":"1.0","url":"","installed":true}],"installed":1},{"category":6,"plugins":[{"type":"com.fibaro.planikaFLA3","name":"Planika Fireplace","defaultMainDeviceName":"Planika Fireplace","description":"Create an atmosphere and heat up the room with an endless line of fire. Control your Planika fireplace with Fibaro Home Center. After integrating with our Smart Home system you can easily check its status, turn on/off and regulate the flame size. When your WiFi connection is lost, the plugin can turn off the fireplace after a specified time with a linked binary switch.","user":"Fibar Group S.A.","compatibility":["iPad","iPhone","Android Phone","Android Tablet","Home Center 3"],"predefined":false,"version":"1.0","url":"","installed":false}],"installed":0},{"category":7,"plugins":[{"type":"com.fibaro.hunterDouglas","name":"PowerView","defaultMainDeviceName":"PowerView","description":"Connect your Hunter Douglas PowerView blinds with FIBARO Home Center.","user":"Fibar Group S.A.","compatibility":["iPad","iPhone","Android Phone","Android Tablet","Home Center 3","Home Center Lite"],"predefined":false,"version":"1.00","url":"","installed":true}],"installed":1},{"category":8,"plugins":[{"type":"com.fibaro.logitechHarmonyAccount","name":"Logitech Harmony","defaultMainDeviceName":"Harmony Account","description":"Control even more devices in your house using Fibaro Home Center plugin for Logitech Harmony Home Hub. Using plugin you can control any devices compatible with Logitech Harmony Home Hub directly from Fibaro Home Center. Plugin allows to excecute any “activity” defined inside Home Hub manually or via Fibaro Home Center scenes. Experience benefits from powerful integration of both platforms.","user":"Fibar Group S.A.","compatibility":["iPad","iPhone","Android Phone","Android Tablet","Home Center 3"],"predefined":false,"version":"2.0","url":"","installed":true}],"installed":1}]},"promo":[{"image":{"big":"/plugins/img/promo/com.fibaro.alarm-promoBig.png","small":"/plugins/img/promo/com.fibaro.alarm-promoSmall.png"},"url":"panels/fibaro-alarm.html"},{"image":{"big":"/plugins/img/promo/com.fibaro.location-promoBig.png","small":"/plugins/img/promo/com.fibaro.location-promoSmall.png"},"url":"panels/locations.html"},{"image":{"big":"/plugins/img/promo/com.fibaro.drencher-promoBig.png","small":"/plugins/img/promo/com.fibaro.drencher-promoSmall.png"},"url":"panels/drenchers.html"}]}

plugins v2
CLICK ME

[{"compatibility":["iPad","iPhone","Android Phone","Android Tablet","Home Center 3","Home Center Lite"],"defaultMainDeviceName":"Weather Provider","description":"Install and configure your own weather plugin based on sensors in your home and get the latest data on the weather in your location. Plugin allows to choose temperature, wind and humidity sensors. If you want the weather data from this plugin to be displayed in the main interface and used in scene, select it as a main weather plugin in Configuration / General tab.","type":"com.fibaro.WeatherProvider","url":"","author":"Fibar Group S.A.","version":"1.0","name":"Weather Provider","manufacturer":"Weather","model":"Provider","category":"climate","icon":{"path":"/plugins/com.fibaro.WeatherProvider/img/icon.png"}},{"compatibility":["iPad","iPhone","Android Phone","Android Tablet","Home Center 3"],"defaultMainDeviceName":"IP Bell","description":"IP Bell – Take care about the safety of your home with just a few clicks by integrating video entry system and Fibaro. Plugin enables controlling IP Bell video entry system and camera image preview using Fibaro interface.","type":"com.fibaro.alphatechFarfisa","url":"","author":"Fibar Group S.A.","version":"1.0","name":"IP Bell","manufacturer":"IP","model":"Bell","category":"security","icon":{"path":"/plugins/com.fibaro.alphatechFarfisa/img/icon.png"}},{"compatibility":["iPad","iPhone","Android Phone","Android Tablet","Home Center 3","Home Center Lite"],"defaultMainDeviceName":"CoolAutomation","description":"Use FIBARO Home Center to control air conditioners connected to CoolMaster bridge.","type":"com.fibaro.coolAutomation","url":"","author":"Fibar Group S.A.","version":"1.0","name":"CoolAutomation","manufacturer":"CoolAutomation","model":"CoolAutomation","category":"climate","icon":{"path":"/plugins/com.fibaro.coolAutomation/img/icon.png"}},{"compatibility":["iPad","iPhone","Android Phone","Android Tablet","Home Center 3"],"defaultMainDeviceName":"Dahua camera","description":"Use this device if you want to add a Dahua IP camera to the system. You will be able to view the stream from your camera, both locally and remotely, using the web and mobile interface.","type":"com.fibaro.dahuaCamera","url":"","author":"Fibar Group S.A.","version":"1.0","name":"Dahua camera","manufacturer":"Dahua","model":"camera","category":"security","icon":{"path":"/plugins/com.fibaro.dahuaCamera/img/icon.png"}},{"compatibility":["iPad","iPhone","Android Phone","Android Tablet","Home Center 3"],"defaultMainDeviceName":"WS Davis Vantage","description":"Weather Station Davis Vantage – plugin for viewing weather data registered by Davis Vantage Weather Station which measures barometric pressure, temperature, humidity, rainfall, wind speed and direction, UV/solar and much more! You'll get highs and lows (and/or totals or averages) for virtually all weather variables for the past 24 days, months, or years, and your own local forecast.","type":"com.fibaro.davisVantage","url":"","author":"Fibar Group S.A.","version":"1.0","name":"WS Davis Vantage","manufacturer":"WS","model":"Davis Vantage","category":"climate","icon":{"path":"/plugins/com.fibaro.davisVantage/img/icon.png"}},{"compatibility":["iPad","iPhone","Android Phone","Android Tablet","Home Center 3","Home Center Lite"],"defaultMainDeviceName":"HEOS System","description":"Connect your favourite music with your intelligent home using the HEOS by Denon sound system and a plugin for integration with FIBARO Home Center. Selected plugin allows for remote management of HEOS using easy and intuitive navigation powered by FIBARO interface. You can control playback, adjust volume level or mute/unmute the music.","type":"com.fibaro.denonHeos","url":"","author":"Fibar Group S.A.","version":"1.0","name":"HEOS DENON","manufacturer":"HEOS","model":"DENON","category":"multimedia","icon":{"path":"/plugins/com.fibaro.denonHeos/img/icon.png"}},{"compatibility":["iPad","iPhone","Android Phone","Android Tablet","Home Center 3"],"defaultMainDeviceName":"DSC Alarm","description":"Voeg een DSC Alarmsysteem toe waarna u de status van zones en blokken kunt controleren.","type":"com.fibaro.dscAlarm","url":"","author":"Fibar Group S.A.","version":"1.0","name":"DSC Alarm","manufacturer":"DSC","model":"Alarm","category":"security","icon":{"path":"/plugins/com.fibaro.dscAlarm/img/icon.png"}},{"compatibility":["iPad","iPhone","Android Phone","Android Tablet","Home Center 3"],"defaultMainDeviceName":"EnvisaLink Alarm","description":"Voeg een EnvisaLink Alarmsysteem toe waarna u de status van zones en blokken kunt controleren.","type":"com.fibaro.envisaLinkAlarm","url":"","author":"Fibar Group S.A.","version":"1.0","name":"EnvisaLink Alarm","manufacturer":"EnvisaLink","model":"Alarm","category":"security","icon":{"path":"/plugins/com.fibaro.envisaLinkAlarm/img/icon.png"}},{"compatibility":["iPad","iPhone","Android Phone","Android Tablet","Home Center 3"],"defaultMainDeviceName":"Fibaro Heat Activator","description":"Add thermostats to the list and select the switch for the thermostats to automatically turn it on.","type":"com.fibaro.fibaroHeatActivator","url":"","author":"Fibar Group S.A.","version":"1.0","name":"Fibaro Heat Activator","manufacturer":"Fibaro","model":"Heat Activator","category":"climate","icon":{"path":"/plugins/com.fibaro.fibaroHeatActivator/img/icon.png"}},{"compatibility":["iPad","iPhone","Android Phone","Android Tablet","Home Center 3"],"defaultMainDeviceName":"Fibaro Intercom FGIC-001","description":"Fibaro Intercom FGIC-001 – Take care of the safety of your home with just a few clicks by integrating video entry system and Fibaro. Plugin enables controlling Fibaro Intercom video entry system and camera image preview using Fibaro interface.","type":"com.fibaro.fibaroIntercom","url":"","author":"Fibar Group S.A.","version":"1.0","name":"Fibaro Intercom FGIC-001","manufacturer":"Fibaro","model":"Intercom FGIC-001","category":"security","icon":{"path":"/plugins/com.fibaro.fibaroIntercom/img/icon.png"}},{"compatibility":["iPad","iPhone","Android Phone","Android Tablet","Home Center 3"],"defaultMainDeviceName":"Helios Basic","description":"Helios Basic – Take care about the safety of your home with just a few clicks by integrating video entry system and Fibaro. Plugin enables controlling Helios Basic video entry system and camera image preview using Fibaro interface.","type":"com.fibaro.heliosBasic","url":"","author":"Fibar Group S.A.","version":"1.0","name":"Helios Basic","manufacturer":"Helios","model":"Basic","category":"security","icon":{"path":"/plugins/com.fibaro.heliosBasic/img/icon.png"}},{"compatibility":["iPad","iPhone","Android Phone","Android Tablet","Home Center 3"],"defaultMainDeviceName":"Helios Gold","description":"Helios Gold – Take care about the safety of your home with just a few clicks by integrating video entry system and Fibaro. Plugin enables controlling Helios Gold video entry system and camera image preview using Fibaro interface.","type":"com.fibaro.heliosGold","url":"","author":"Fibar Group S.A.","version":"1.0","name":"Helios Gold","manufacturer":"Helios","model":"Gold","category":"security","icon":{"path":"/plugins/com.fibaro.heliosGold/img/icon.png"}},{"compatibility":["iPad","iPhone","Android Phone","Android Tablet","Home Center 3","Home Center Lite"],"defaultMainDeviceName":"PowerView","description":"Connect your Hunter Douglas PowerView blinds with FIBARO Home Center.","type":"com.fibaro.hunterDouglas","url":"","author":"Fibar Group S.A.","version":"1.00","name":"PowerView","manufacturer":"PowerView","model":"PowerView","category":"blinds","icon":{"path":"/plugins/com.fibaro.hunterDouglas/img/icon.png"}},{"compatibility":["iPad","iPhone","Android Phone","Android Tablet","Home Center 3","Home Center Lite"],"defaultMainDeviceName":"Husqvarna Mower","description":"Control your Husqvarna Mower","type":"com.fibaro.husqvarnaMower","url":"","author":"Fibar Group S.A.","version":"1.0","name":"Husqvarna Mower","manufacturer":"Husqvarna","model":"Mower","category":"other","icon":{"path":"/plugins/com.fibaro.husqvarnaMower/img/icon.png"}},{"compatibility":["iPad","iPhone","Android Phone","Android Tablet","Home Center 3"],"defaultMainDeviceName":"Initial State","description":"Interactively visualize events from HC in your web browser using Initial State platform. One or more Home Center can be connected to one account. Plugin provides real time streaming of chosen data. In order to use the web based Initial State platform the account should be created on initialstate.com website.","type":"com.fibaro.initialstate","url":"","author":"Fibar Group S.A.","version":"1.0","name":"Initial State","manufacturer":"Initial","model":"State","category":"other","icon":{"path":"/plugins/com.fibaro.initialstate/img/icon.png"}},{"compatibility":["iPad","iPhone","Android Phone","Android Tablet","Home Center 3"],"defaultMainDeviceName":"Harmony Account","description":"Control even more devices in your house using Fibaro Home Center plugin for Logitech Harmony Home Hub. Using plugin you can control any devices compatible with Logitech Harmony Home Hub directly from Fibaro Home Center. Plugin allows to excecute any “activity” defined inside Home Hub manually or via Fibaro Home Center scenes. Experience benefits from powerful integration of both platforms.","type":"com.fibaro.logitechHarmonyAccount","url":"","author":"Fibar Group S.A.","version":"2.0","name":"Logitech Harmony","manufacturer":"Logitech","model":"Harmony","category":"remotes","icon":{"path":"/plugins/com.fibaro.logitechHarmonyAccount/img/icon.png"}},{"compatibility":["iPad","iPhone","Android Phone","Android Tablet","Home Center 3"],"defaultMainDeviceName":"Mobotix","description":"Mobotix – Take care about the safety of your home with just a few clicks by integrating video entry system and Fibaro. Plugin enables controlling Mobotix video entry system and camera image preview using Fibaro interface.","type":"com.fibaro.mobotix","url":"","author":"Fibar Group S.A.","version":"1.0","name":"Mobotix","manufacturer":"Mobotix","model":"Mobotix","category":"security","icon":{"path":"/plugins/com.fibaro.mobotix/img/icon.png"}},{"compatibility":["iPad","iPhone","Android Phone","Android Tablet","Home Center 3","Home Center Lite"],"defaultMainDeviceName":"NuVo","description":"Connect your favourite music with your intelligent home using NuVo Whole Home Audio and plugin for integration with FIBARO Home Center. Selected plugin allows for remote management of NuVo multiroom wireless sound system using easy and intuitive navigation powered by FIBARO interface. You can control playback, adjust volume level or mute/unmute the music.","type":"com.fibaro.nuvoPlayer","url":"","author":"Fibar Group S.A.","version":"1.0","name":"NuVo","manufacturer":"NuVo","model":"NuVo","category":"multimedia","icon":{"path":"/plugins/com.fibaro.nuvoPlayer/img/icon.png"}},{"compatibility":["iPad","iPhone","Android Phone","Android Tablet","Home Center 2"],"defaultMainDeviceName":"Onyx","description":"It has never been easier to use daylight in your own four walls. The ONYX control allows you control convenience at the highest level, letting the sun in only where it is wanted. Use blinds, shades, rollershutters and more controlled by ONYX along with Hub.","type":"com.fibaro.onyx","url":"","author":"Fibar Group S.A.","version":"1.0","name":"Onyx","manufacturer":"Onyx","model":"Onyx","category":"other","icon":{"path":"/plugins/com.fibaro.onyx/img/icon.png"}},{"compatibility":["iPad","iPhone","Android Phone","Android Tablet","Home Center 3"],"defaultMainDeviceName":"Philips Hue","description":"Philips Hue – Create personalized lighting environment and control it from wherever you are. Plugin enables remote control of intelligent Philips Hue lights: turn on/off, change hue, saturation and brightness using Fibaro interface.","type":"com.fibaro.philipsHue","url":"","author":"Fibar Group S.A.","version":"1.0","name":"Philips Hue","manufacturer":"Philips","model":"Hue","category":"lights","icon":{"path":"/plugins/com.fibaro.philipsHue/img/icon.png"}},{"compatibility":["iPad","iPhone","Android Phone","Android Tablet","Home Center 3","Home Center 3 Lite","Yubii Home"],"defaultMainDeviceName":"PKO Intelligent Home","description":"Not available in your region","type":"com.fibaro.pko","url":"","author":"Fibar Group S.A.","version":"1.0","name":"PKO Intelligent Home","manufacturer":"PKO","model":"Intelligent Home","category":"security","icon":{"path":"/plugins/com.fibaro.pko/img/icon.png"}},{"compatibility":["iPad","iPhone","Android Phone","Android Tablet","Home Center 3"],"defaultMainDeviceName":"Planika Fireplace","description":"Create an atmosphere and heat up the room with an endless line of fire. Control your Planika fireplace with Fibaro Home Center. After integrating with our Smart Home system you can easily check its status, turn on/off and regulate the flame size. When your WiFi connection is lost, the plugin can turn off the fireplace after a specified time with a linked binary switch.","type":"com.fibaro.planikaFLA3","url":"","author":"Fibar Group S.A.","version":"1.0","name":"Planika Fireplace","manufacturer":"Planika","model":"Fireplace","category":"ambience","icon":{"path":"/plugins/com.fibaro.planikaFLA3/img/icon.png"}},{"compatibility":["iPad","iPhone","Android Phone","Android Tablet","Home Center 3","Home Center Lite"],"defaultMainDeviceName":"Russound MCA-88X","description":"Connect your favourite music with your intelligent home using the Russound sound system and a plugin for integration with FIBARO Home Center. Selected plugin allows for remote management of Russound System using easy and intuitive navigation powered by FIBARO interface. You can control playback, adjust volume level of the speakers or mute/unmute the music.","type":"com.fibaro.russoundMCA88X","url":"","author":"Fibar Group S.A.","version":"1.0","name":"Russound MCA-88X","manufacturer":"Russound","model":"MCA-88X","category":"multimedia","icon":{"path":"/plugins/com.fibaro.russoundMCA88X/img/icon.png"}},{"compatibility":["iPad","iPhone","Android Phone","Android Tablet","Home Center 3","Home Center Lite"],"defaultMainDeviceName":"Russound X5","description":"Connect your favourite music with your intelligent home using the Russound sound system and a plugin for integration with FIBARO Home Center. Selected plugin allows for remote management of Russound System using easy and intuitive navigation powered by FIBARO interface. You can control playback, adjust volume level of the speakers or mute/unmute the music.","type":"com.fibaro.russoundX5","url":"","author":"Fibar Group S.A.","version":"1.0","name":"Russound X5","manufacturer":"Russound","model":"X5","category":"multimedia","icon":{"path":"/plugins/com.fibaro.russoundX5/img/icon.png"}},{"compatibility":["iPad","iPhone","Android Phone","Android Tablet","Home Center 3","Home Center Lite"],"defaultMainDeviceName":"Russound XSource","description":"Connect your favourite music with your intelligent home using the Russound sound system and a plugin for integration with FIBARO Home Center. Selected plugin allows for remote management of Russound System using easy and intuitive navigation powered by FIBARO interface. You can control playback, adjust volume level of the speakers or mute/unmute the music.","type":"com.fibaro.russoundXSource","url":"","author":"Fibar Group S.A.","version":"1.0","name":"Russound XSource","manufacturer":"Russound","model":"XSource","category":"multimedia","icon":{"path":"/plugins/com.fibaro.russoundXSource/img/icon.png"}},{"compatibility":["iPad","iPhone","Android Phone","Android Tablet","Home Center 3","Home Center Lite"],"defaultMainDeviceName":"Russound XZone4","description":"Connect your favourite music with your intelligent home using the Russound sound system and a plugin for integration with FIBARO Home Center. Selected plugin allows for remote management of Russound System using easy and intuitive navigation powered by FIBARO interface. You can control playback, adjust volume level of the speakers or mute/unmute the music.","type":"com.fibaro.russoundXZone4","url":"","author":"Fibar Group S.A.","version":"1.0","name":"Russound XZone4","manufacturer":"Russound","model":"XZone4","category":"multimedia","icon":{"path":"/plugins/com.fibaro.russoundXZone4/img/icon.png"}},{"compatibility":["iPad","iPhone","Android Phone","Android Tablet","Home Center 3"],"defaultMainDeviceName":"Satel Alarm","description":"Voeg een Satel Alarmsysteem toe waarna u de status van zones, uitgangen en blokken kunt controleren.","type":"com.fibaro.satelAlarm","url":"","author":"Fibar Group S.A.","version":"1.0","name":"Satel Alarm","manufacturer":"Satel","model":"Alarm","category":"security","icon":{"path":"/plugins/com.fibaro.satelAlarm/img/icon.png"}},{"compatibility":["iPad","iPhone","Android Phone","Android Tablet","Home Center 3"],"defaultMainDeviceName":"Thermostat & Heating Zone","description":"Choose Manual time below, which will be used to set heating setpoint for a zone according to reported setpoint value by thermostat from configuration. Thermostat must be added to the same climate zone (configured in "heating" mode).","type":"com.fibaro.setPointForwarder","url":"","author":"Fibar Group S.A.","version":"1.0","name":"Thermostat & Heating Zone","manufacturer":"Thermostat","model":"& Heating Zone","category":"climate","icon":{"path":"/plugins/com.fibaro.setPointForwarder/img/icon.png"}},{"compatibility":["iPad","iPhone","Android Phone","Android Tablet","Home Center 3"],"defaultMainDeviceName":"Sonos Speaker","description":"Sonos Speakers – Connect your favorite music with your intelligent home. Plugin enables remote management of Sonos network speaker using Fibaro interface: control playback, adjust volume level, select input source or group the devices.","type":"com.fibaro.sonosSpeaker","url":"","author":"Fibar Group S.A.","version":"1.0","name":"Sonos Speaker","manufacturer":"Sonos","model":"Speaker","category":"multimedia","icon":{"path":"/plugins/com.fibaro.sonosSpeaker/img/icon.png"}},{"compatibility":["iPad","iPhone","Android Phone","Android Tablet","Home Center 3"],"defaultMainDeviceName":"Tedee","description":"Control your Tedee locks with Home Center 3 integration.","type":"com.fibaro.tedeeAccount","url":"","author":"Fibar Group S.A.","version":"1.0","name":"Tedee","manufacturer":"Tedee","model":"Tedee","category":"security","icon":{"path":"/plugins/com.fibaro.tedeeAccount/img/icon.png"}},{"compatibility":["iPad","iPhone","Android Phone","Android Tablet","Home Center 3"],"defaultMainDeviceName":"Wake on LAN","description":"WakeOnLan – plugin enables the device to be turned on from another location over a network connection or Internet using Fibaro interface. Just find their IP and MAC addresses and use remote access to switch them on from anywhere in the world.","type":"com.fibaro.wakeOnLan","url":"","author":"Fibar Group S.A.","version":"1.0","name":"Wake on LAN","manufacturer":"Wake","model":"on LAN","category":"other","icon":{"path":"/plugins/com.fibaro.wakeOnLan/img/icon.png"}},{"compatibility":["iPad","iPhone","Android Phone","Android Tablet","Home Center 3"],"defaultMainDeviceName":"XBMC remote control","description":"XBMC remote control – Make your home not only intelligent but also fully multimedia and make collection of your photos, videos and music available at your fingertips. Plugin enables remote control of XBMC Media Center multimedia player or client application using Fibaro interface.","type":"com.fibaro.xbmc","url":"","author":"Fibar Group S.A.","version":"1.0","name":"XBMC remote control","manufacturer":"XBMC","model":"remote control","category":"multimedia","icon":{"path":"/plugins/com.fibaro.xbmc/img/icon.png"}},{"compatibility":["iPad","iPhone","Android Phone","Android Tablet","Home Center 3","Home Center Lite"],"defaultMainDeviceName":"yrWeather","description":"Default weather plugin that uses information from www.yr.no website. If you want the weather data from this plugin to be displayed in the main interface and used in scene, select it as a main weather plugin in Configuration / General tab. ","type":"com.fibaro.yrWeather","url":"plugins/index.html?type=climate&name=com.fibaro.yrWeather","author":"Fibar Group S.A.","version":"1.0","name":"yrWeather","manufacturer":"yrWeather","model":"yrWeather","category":"climate","icon":{"path":"/plugins/com.fibaro.yrWeather/img/icon.png"}}]

@alexander-vitishchenko
Small update from my side, i contacted fibaro support. And they acknowledge that
"the process status is left hanging at the "STARTING_SERVICES". They will do further analysis.

Having the same message now on my HC3:
Unexpected response status "STARTING_SERVICES", muting any repeated warnings for 60 seconds
If I can test or help let me know, but I think we need to wait on Fibaro support.

Having the same message now on my HC3:
Unexpected response status "STARTING_SERVICES", muting any repeated warnings for 60 seconds
If I can test or help let me know, but I think we need to wait on Fibaro support.

If you not already did. It might be a good idea to make a support ticket at fibaro, and send in your logs.

Any specific log file needed?

@rwijbenga
Did you update to 5.131.57 (beta) ?
I didnt, since everything is working pretty good for the rest.
I'll wait for an answer from support, and that might take a while.

I am running the latest beta, and Fibaro support have been requesting access to my HC3. So hopefully news soon....

I am running the latest beta, and Fibaro support have been requesting access to my HC3. So hopefully news soon....

Nice! Thanks for the feedback.

@rwijbenga, @ppeterrr please advise if we have any more news/solution from Fibaro?

@rwijbenga, @ppeterrr please advise if we have any more news/solution from Fibaro?

Hey Alexander,  no news from Fibaro. Though there is a new firmware 5.140.17
As i am typing this, my HC3 is updating - i will report back

5.140.17
problem is still there

Fibaro Support is still looking into it... Last mail was friday from them.

Hi @ppeterrr, @rwijbenga,
Please let me know if we should keep this ticket open, or better close as we don't observe any issues because of the WARNING messages?

Hi @ppeterrr, @rwijbenga,
Please let me know if we should keep this ticket open, or better close as we don't observe any issues because of the WARNING messages?

Hi Alexander, i think there is no need to keep this ticket open.  Though the warning is still there, the quickapp runs fine, and there is no response anymore from fibaro. If tthere is any news i will pm you. And if needed we maybe can re-open this issue.
Thanks for your time.


Error removing build directory

On travis CI, I'm currently experiencing an error when bakery tries to remove an existing build dir. The traceback originates from this line and can be seen in this log.
This happens due to similtaneous execution of the testsuite in a way that will not happen in production (and that I stopped for now).

What do you think we could do to fix this?


WSL2 won't load when loading with kernel with CONFIG_DM_ZERO & CONFIG_DM_SNAPSHOT

Environment
Windows build number: Microsoft Windows [Version 10.0.19631.1]
Your Distribution version: Ubuntu 20.04
Whether the issue is on WSL 2 and/or WSL 1: WSL2

Steps to reproduce
I ran WSL2 with a custom built kernel, according to these instructions.
I also added the following kernel options:
CONFIG_DM_ZERO=y
CONFIG_DM_SNAPSHOT=y

Expected behavior
I expected WSL to start.

Actual behavior
WSL won't and I get the following errors in the Debug Console:
[    1.818509] Run /init as init process
<3>ERROR: ConnectHvSocket:670: connect failed 19
[    1.824506] kvm: exiting hardware virtualization
[    1.829331] ACPI: Preparing to enter system sleep state S5
[    1.834333] reboot: Power down
[    1.846798] acpi_power_off called

Can you upload the kernel you are using? Just rename the vmlinux file to vmlinux.txt and drag it to the message box here.

ENODEV from the connect is strange, but I suspect somehow one or all of the CONFIG_VSOCKET config options got disabled.

The problem is that the Kconfig from the repos is outdated and won't work with later insider builds.
You can try this 4.19.121 kernel with CONFIG_DM_ZERO & CONFIG_DM_SNAPSHOT enabled:
bzImage.txt
You can get the KConfig from the running kernel with zcat /proc/config.gz > wsl-config to see what config options were missing.

It is now working, thanks!

Can you post the kernel you are using? Get the bzImage file from WSL2-Linux-Kernel/arch/x86/boot, rename it to bzImage.txt and drag it to the message box here.

I cant find bzImage file in the path you mentioned. Any idea how to get it?

@zoe9216 You need to compile the kernel and it will appear on that folder.

@zoe9216 You need to compile the kernel and it will appear on that folder.

I did. But from root rather than /mnt/c. Got the file bzImage.


script unable to log in,

user/pass removed for security, but unable to log in with script.

python3 KijijiBot -u user -p password post ad-01.yml
Traceback (most recent call last):
File "/usr/local/Cellar/python/3.7.3/Frameworks/Python.framework/Versions/3.7/lib/python3.7/runpy.py", line 193, in _run_module_as_main
"main", mod_spec)
File "/usr/local/Cellar/python/3.7.3/Frameworks/Python.framework/Versions/3.7/lib/python3.7/runpy.py", line 85, in _run_code
exec(code, run_globals)
File "KijijiBot/main.py", line 204, in
main()
File "KijijiBot/main.py", line 51, in main
args.function(args)
File "KijijiBot/main.py", line 87, in post_ad
while not check_ad(args) and attempts < 5:
File "KijijiBot/main.py", line 176, in check_ad
api.login(args.username, args.password)
File "KijijiBot/kijiji_api.py", line 102, in login
raise KijijiApiException("Could not log in.", resp.text)
kijiji_api.KijijiApiException: Could not log in.
See kijijiapi_dump_20200228T180809.html in current directory for latest dumpfile.

I cannot reproduce. Can you tell me what category?

Don’t think the category should matter I can’t even log in. But real estate lease
--
Erich D'Atri-Guiran

On Mar 1, 2020, at 12:38 PM, Arthur Guo<EMAIL_ADDRESS>wrote:
I cannot reproduce. Can you tell me what category?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or unsubscribe.

Cannot repro.


Fix AST.Restore() restore char(1) to char(1,0)

What problem does this PR solve?
See issue: pingcap/tidb#11470
Check List
Tests

Unit test

@kennytm @AilinKid PTAL

😕 Why ft.Decimal == 0 in the first place?

/LGTM

@kennytm PTAL again

blocked by https://github.com/pingcap/tidb/pull/11553


Files no longer appearing in pipe function body

Bug Report
The generate_function_chat_completion in backend/apps/webui/main.py now only includes files if tools are used. Is this intentional?

Fixed on dev!


build(release): github token env ci

:tada: This PR is included in version 1.0.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


\u2028 in filename kills header parsing

Support plan

which support plan is this issue covered by? (e.g. Community, Sponsor, or
Enterprise): community
is this issue currently blocking your project? (yes/no): no
is this issue affecting a production system? (yes/no): yes

Context

node version: v12.18.3
module (formidable) version: 1.2.2, 2.0.0-canary.20200402.2
environment (e.g. node, browser, native, OS): node
used with (i.e. popular names of modules): none
any other relevant information:

What are you trying to achieve or the steps to reproduce?
Some user-agents seem to allow sending filenames with the infamous \u2028 LINE SEPARATOR. It seems that the header parser dies with Request aborted on such filenames, since the character is parsed as a line feed. The value passed to _getFileName is cut at the \u2028.
I tried to modify test/fixture/js/special-chars-in-filename.js and *.http files to add a test but ran out of time. To test, try copy-pasting a literal \u2028 (not the string but the actual character) to one of the *.http files.
What was the result you got?
The header parser dies with Request aborted.
What result did you expect?
The filename is reported even if it contains \u2028.

How did you manage to put that character in a filename ?

How did you manage to put that character in a filename ?

@GrosSacASac, well - I didn't, but I noticed the character in some legitimate files uploaded by a client. I noticed them since I used this library to migrate a big number of files from a legacy system. This legacy system had saved the upload filenames, so I believe at least some clients (OS/browser combinations) might be able to produce such stuff.
Unfortunately, I think they were uploaded about two years ago, so I didn't have detailed logs about e.g. user-agent.
So, quite an edge case.

@GrosSacASac, well - I didn't, but I noticed the character in some legitimate files uploaded by a client. I noticed them since I used this library to migrate a big number of files from a legacy system. This legacy system had saved the upload filenames, so I believe at least some clients (OS/browser combinations) might be able to produce such stuff.
Unfortunately, I think they were uploaded about two years ago, so I didn't have detailed logs about e.g. user-agent.
So, quite an edge case.

At least on macos, one can create a file with this char in the name with e.g.:
echo foo > $(perl -C -wle 'print "foo\x{2028}bar.txt"')

Checking:
ls | hexdump -C
00000000  66 6f 6f e2 80 a8 62 61  72 2e 74 78 74 0a        |foo...bar.txt.|
0000000e

NB: e2 80 a8 is the UTF-8 representation of \u2028.

At least on macos, one can create a file with this char in the name with e.g.:
echo foo > $(perl -C -wle 'print "foo\x{2028}bar.txt"')

Checking:
ls | hexdump -C
00000000  66 6f 6f e2 80 a8 62 61  72 2e 74 78 74 0a        |foo...bar.txt.|
0000000e

NB: e2 80 a8 is the UTF-8 representation of \u2028.

I did some additional testing and decided it is not worth it to handle this case because

The user should already handle file.name === null
There are maybe other characters that will give null as a result

From my findings: You got Request aborted. because it threw an error somewhere. But \u2028 can be handled gracefully.
I am going to update the examples a bit to better handle common errors.
Code I used to manually test
import "../patchNode/fetch.js";
import FormData from 'form-data';
var form = new FormData();

form.append('file', `Hello`, {
  filename: String.raw`

.txt`, // put here \u2028 (github removes it)
  contentType: 'text/plain',
});

form.append('my_field', 'my value');
fetch(`http://localhost:3000/api/upload`, {
    method: `POST`,
    body: form,
    headers: form.getHeaders(),
}).then(response => {
    if(!response.ok) {
        throw response.statusText;
    }
    return response.text();
}).then(console.log).catch(console.error);

and
    form.on("fileBegin",(formName, file) => {
      if (file.name === null) {
        file.name = "invalid-characters"
      }
    })

@tunnckoCore How to handle this lint error https://github.com/node-formidable/formidable/runs/1882614195 ?

@tunnckoCore How to handle this lint error https://github.com/node-formidable/formidable/runs/1882614195 ?

I think it was
// eslint-disable-next-line no-param-reassign
file.name = 'dsadasd';


Stat rate limit

For example, DSTM writes few lines / minute so there's like 4 stat blocks / screen, looks lame. Gotta check current window, if there's already a stat block, wait till next cycle (60 seconds).

https://gallery.technet.microsoft.com/scriptcenter/e8fbffde-7d95-42d9-81de-5eb3d9c089e0


[Runtime][IRGen] Sign type context descriptor pointers.

Ensure that context descriptor pointers are signed in the runtime by putting the ptrauth_struct attribute on the types.
We use the new __builtin_ptrauth_struct_key/disc to conditionally apply ptrauth_struct to TrailingObjects based on the signing of the base type, so that pointers to TrailingObjects get signed when used with a context descriptor pointer.
We add new runtime entrypoints that take signed pointers where appropriate, and have the compiler emit calls to the new entrypoints when targeting a sufficiently new OS.
rdar://111480914

@swift-ci please test

@swift-ci please test

@swift-ci please test

could you run the preset that corresponds to https://ci.swift.org/job/oss-swift_tools-RA_stdlib-DA_test-device-non_executable/
It could be that some tests on iphoneos-arm64e might need updating

preset=buildbot,tools=RA,stdlib=RD,test=non_executable
@swift-ci please test with preset

From the failures I got before, I think PR testing covers iOS ARM64e non-executable tests, but I'll run that preset too just to make sure.

@swift-ci please test windows platform

@swift-ci please test windows


[Tests] Remove ".atMost" definitions for Awaitility in most cases

Motivation
Some tests are flaky because the time limits set for Awaitility are too strict.
It's better to avoid specifying the time limit and rely on the default value that is 10 seconds.
This improves the readability of the test.
Modifications

drop .atMost definitions used to configure Awaitility in tests.

/pulsarbot run-failure-checks

/pulsarbot run-failure-checks


jsx comments

hi scrooloose,
Is there a way to integrate jsx style comments in your plugin?
Instead of
//<View>

I'd like to get
{/* <View> */}

I guess this won't be trivial since you need to detect whether the current line is jsx code or regular javascript. But that would be damn useful!

See #280 for history and discussion of this issue.

After some searches, I found this feature implemented in vim-commentary but not accurately implemented, so I created this issue there.
What I want to say, I think it is somehow possible to bring this feature to vim.

Oh it's definitely possible, it's just quite a bit of work and doesn't fit well with the current layout of the code in this plugin. I'd love to see it done too because I'd benefit as well, but I haven't had time to implement it myself. Anybody is welcome to, I think if you look at the history this project has been pretty open to contributions. A tad slow reviewing sometimes, but we generally accept things when they are found to be ship shape.

Hopefully this is helpful. I solved this by setting custom delimiters on javascript files, then using ca to toggle between primary and alternative when working in jsx.
let g:NERDCustomDelimiters = {'javascript': { 'left': '//', 'right': '', 'leftAlt': '{/* ', 'rightAlt': ' */}' }}

A tree-sitter-based plugin did awesome work to support jsx and I'm now happy with it:
nvim-ts-context-commentstring & Comment.nvim

Hi @MuhammadSawalhy -- ok, you're saying I need to switch from vim-commentary to the Comment.nvim to make this work? I added nvim-ts-context-commentstring but that did not fix the issue using vim-commentary (even though  nvim-ts-context-commentstring actually recommends using vim-commentary ...)


link not found

The hyperlink for Teams Essentials designed for small and mid-size businesses (SMB), pointing to https://www.microsoft.com/en-in/microsoft-365/blog/2021/12/01/new-microsoft-teams-essentials-is-built-for-small-businesses/ page is not found. Please correct the link

Docs Build status updates of commit b9e4405:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

Teams/get-started-kaizala-teams.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

@JohanFreelancer9

Thank you @JohanFreelancer9 !
@Divya-RP Could you please review?

Hi Team,
The link is invalid, it gives 404 error: Page not found - Microsoft 365 Bloghttps://www.microsoft.com/en-in/microsoft-365/blog/2021/12/01/new-microsoft-teams-essentials-is-built-for-small-businesses/
We need to add the correct link here.
Regards,
Divya
From: Manuela Scanu @.>
Sent: Tuesday, October 4, 2022 9:15 AM
To: MicrosoftDocs/OfficeDocs-SkypeForBusiness @.>
Cc: Divya R P @.>; Assign @.>
Subject: Re: [MicrosoftDocs/OfficeDocs-SkypeForBusiness] link not found (PR #9273)
Assigned #9273https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FMicrosoftDocs%2FOfficeDocs-SkypeForBusiness%2Fpull%2F9273&data=05|01|divyarp%40microsoft.com|e7d8bc1ef5b74b8bfe3c08daa5bae233|72f988bf86f141af91ab2d7cd011db47|1|0|638004519351902462|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=0t7IN%2FqbEJor%2BHJQ8qRtWGZjF8xwNyfjVO4YiB9OHoQ%3D&reserved=0 to @Divya-RPhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FDivya-RP&data=05|01|divyarp%40microsoft.com|e7d8bc1ef5b74b8bfe3c08daa5bae233|72f988bf86f141af91ab2d7cd011db47|1|0|638004519351902462|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=SS%2F%2BwLwlfARJNus3ioCCBFeNbkvD7UaL55X%2B3oOugkU%3D&reserved=0.

Reply to this email directly, view it on GitHubhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FMicrosoftDocs%2FOfficeDocs-SkypeForBusiness%2Fpull%2F9273%23event-7512551028&data=05|01|divyarp%40microsoft.com|e7d8bc1ef5b74b8bfe3c08daa5bae233|72f988bf86f141af91ab2d7cd011db47|1|0|638004519351902462|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=zFVoZB%2FfAKm%2BdtD8ssH1LEKkKxRpGZDgAFBRuohI3Hw%3D&reserved=0, or unsubscribehttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAKXHUJ6ZWIPBMIVMSD4JJPDWBOR5TANCNFSM6AAAAAAQDBXKCQ&data=05|01|divyarp%40microsoft.com|e7d8bc1ef5b74b8bfe3c08daa5bae233|72f988bf86f141af91ab2d7cd011db47|1|0|638004519351902462|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=3voyT9l%2BYIM383NuKCvV%2FqKQ2SlMOwjx8GG5byxoN5E%3D&reserved=0.
You are receiving this because you were assigned.Message ID<EMAIL_ADDRESS>

We appreciate any feedback that improves the content in the Microsoft docs but we haven't had any response from you so we are going to close this issue.
Please feel free to re-open this issue if there is a specific area of the docs that we can improve or make better. Thank you.


RDP Login while the account is logged in mess the session

xrdp version
0.9.17
Detailed xrdp version, build options
xrdp 0.9.17
  A Remote Desktop Protocol Server.
  Copyright (C) 2004-2020 Jay Sorg, Neutrino Labs, and all contributors.
  See https://github.com/neutrinolabs/xrdp for more information.

  Configure options:
      --enable-ipv6
      --enable-jpeg
      --enable-fuse
      --enable-rfxcodec
      --enable-opus
      --enable-painter
      --enable-vsock
      --build=x86_64-linux-gnu
      --prefix=/usr
      --includedir=${prefix}/include
      --mandir=${prefix}/share/man
      --infodir=${prefix}/share/info
      --sysconfdir=/etc
      --localstatedir=/var
      --disable-silent-rules
      --libdir=${prefix}/lib/x86_64-linux-gnu
      --libexecdir=${prefix}/lib/x86_64-linux-gnu
      --disable-maintainer-mode
      --disable-dependency-tracking
      --with-socketdir=/run/xrdp/sockdir
      build_alias=x86_64-linux-gnu
      CFLAGS=-g -O2 -ffile-prefix-map=/build/xrdp-asBei3/xrdp-0.9.17=. -flto=auto -ffat-lto-objects -flto=auto -ffat-lto-objects -fstack-protector-strong -Wformat -Werror=format-security
      LDFLAGS=-Wl,-Bsymbolic-functions -flto=auto -ffat-lto-objects -flto=auto -Wl,-z,relro -Wl,-z,now -Wl,--as-needed
      CPPFLAGS=-Wdate-time -D_FORTIFY_SOURCE=2 -Wno-error=deprecated-declarations
      PKG_CONFIG_PATH=/build/xrdp-asBei3/xrdp-0.9.17/pkgconfig

  Compiled with OpenSSL 3.0.2 15 Mar 2022

Operating system & version
Pop OS 22.04 (Ubuntu deriv)
Installation method
dnf / apt / zypper / pkg / etc
Which backend do you use?
xorg
What desktop environment do you use?
tested with Gnome and Cinnamon
Environment xrdp running on
Physical
What's your client?
No response
Area(s) with issue?
Authentication
Steps to reproduce
On your Main PC that contains xrdp, login to your user account.
On your laptop, connect to the same account as the Main PC.
✔ Expected Behavior
Either the RDP session close (which is the case) and the Main PC session works fine.
Or the Main PC disconnect to let the RDP session open.
❌ Actual Behavior
The RDP session close (expected) but the Main PC sessions is kinda broken :

I cannot open files
I cannot open terminal
I can open some application (File explorer, Firefox)

Look like the current user is half connected
After a logout / login everything works again.
Anything else?
No response

@ibaraki-douji - this is a known issue. See the FAQ
As I hope the FAQ makes clear this is a problem on all systemd-based systems. The workaround is to use a different user for xrdp access.


Add in ACi support in ntp.conf #207

Description
This adds in the DSCP value for ACI network support.
Issues Resolved
issue #207
Check List

[x] A summary of changes made is included in the CHANGELOG under ## Unreleased
[x] New functionality includes testing.
[x] New functionality has been documented in the README if applicable.

Nice!
Thanks for the small constrained PR ❤

I understand this is something Cisco ACI needs, but it is not cisco ACI only (https://manpages.debian.org/testing/ntp/ntp.conf.5.en.html).
I'd favour making this a generic dscp option and making a remark in the documentation that cisco ACI needs it.

Putting this on hold for a bit whilst I look at our webhook issues.

Released as: 3.12.0

Thank you for all the support and assistance, really appreciate it.
Thanks for merging, I have tested on our side and all is 100%


calculate last bit in myers1999_block once

Similar to myers1999_simple this calculates the index of the last bit only once.
On my system this improves the runtime by approximately 10%.

@maxbachmann I took a look at your patch. It looks good to me.
FWIW, before merging your work, I am considering to migrate polyleven
to a more standard licensing model.

The current license model depends on the fact that I'm the
single author of polyleven ("I have all the copyrights on this
work, and I abandon my rights")

However, once I accept other people's contribution, it does not
work like that anymore.

The following is what I am thinking to do:

Apply MIT License to polyleven from v0.7 (v0.6 is the last version released
under public domain)

Add Max Bachmann (you) as the co-author to LICENSE.

In other words, polyleven becomes a joint work of two authors,
each agreeing to release their work under MIT license.

This migration seems to be good for two reasons: 1) it leaves little uncertainty
regarding the license status, and 2) it also gives you an explicit acknowledgement
for your contribution
If you are fine with the above, please insert your name to LICENSE as follows:
Copyright (c) 2021 Fujimoto Seiji<EMAIL_ADDRESS>Copyright (c) 2021 Max Bachmann<EMAIL_ADDRESS>
Permission is hereby granted, free of charge, ...

After you update this PR accordingly, I'm going to merge your patch.

@fujimotos sure the MIT License is fine with me

@maxbachmann Thank you. I just merged your PR.


desktop installer errors

clean install of freebsd
13.0-RELEASE FreeBSD 13.0-RELEASE #0 releng/13.0-n244733-ea31abc261f: Fri Apr  9 04:24:09 UTC 2021
install desktop-installer according to your instructions, no ports tree
errors:
Press return to continue...
Installing src tree...
/usr/local/sbin/auto-install-base-components: 13.0-RELEASE: not found
Fetching ftp://ftp.freebsd.org/pub/FreeBSD/snapshots/amd64/13.0-RELEASE/src.txz...
fetch: ftp://ftp.freebsd.org/pub/FreeBSD/snapshots/amd64/13.0-RELEASE/src.txz: File unavailable (e.g., file not found, no access)

What version of auto-admin is installed?  This issue was recently fixed and should not be happening with 0.7.9.

Slight delay in getting the quarterly package fixed.  The problem is in /usr/local/sbin/auto-install-base-components.  If you apply the following fix, it should work:
-           if `uname -r` | fgrep -q RELEASE; then
+           if uname -r | fgrep -q RELEASE; then

Fix has been committed to 2022Q1 ports.  The binary package should be updated within a few days (at least for amd64 and probably aarch64, not sure about 2nd tier platforms).
Thanks for the report!

It looks like package builds are delayed due to build cluster upgrades, so this fix hasn't made it into the binary packages yet.
For now, you can work around it by installing the WIP port before running desktop-installer:
pkg install auto-admin
auto-freebsd-wip-checkout
wip-reinstall-port auto-admin
wip-reinstall-port desktop-installer
desktop-installer

Apologies for the broken quarterly package.  I failed to test fully before the Jan 1 branch.  This is unusual, as I generally give auto-admin and desktop-installer a lot of attention to prevent regressions.

Build farm has caught up and everything is working out-of-the-box again with binary packages for both quarterly and latest selections.  Thanks again for the heads-up and I apologize for the mishap.  Making desktop-installer trouble-free is my highest priority and I have updated my commit procedures to prevent a repeat of this error.

@halfagascan comparable to the closure here in GitHub, you can (should) mark your topic as Solved in FreeBSD Forums.
https://forums.freebsd.org/posts/554378 "You can add the Solved prefix …"


Some LEDA fixes

I had some uncommited changes to leda I wanted to commit to #150, but it was merged during my vacation.
Here are they. Can you review them?

I had some uncommited changes to leda I wanted to commit to #150, but it was merged during my vacation.
Here are they. Can you review them?

For sure

Looks good


refactor: :recycle: remove struts-core dependency

replace maven dependency plugin with maven download plugin that doesn't use<EMAIL_ADDRESS>updates openapi generator from 4.x to 5.x since javadoc plugin in 4.x had sub dependency of struts-core

probably out of date so closing


OIDC Token Validation Issue - fetch app_tid

Question Summary

client library: sap.cloud.security.version:2.17.2
Environment: Kubernetes
Additional information

We have recently upgraded our maven package for our java application com.sap.cloud.security in pom xml from version 2.8.12 to 2.17.2 and now get the following error:

ValidationResults: Token signature can not be validated because: OIDC token must provide the app_tid claim for tenant validation when issuer is not the same as the url from the service credentials

We currently use this method OAuth2ServiceConfigurationBuilder in our java application to pass the client, url and client secret and then set up our token authenticator iasTokenAuthenticator.withServiceConfiguration(oAuth2ServiceConfiguration). I am wondering to get app_tid as part of the OIDC token, do we pass in the application id of the app in our Cloud Identity Services to one of these methods or do we change a setting of the application itself inside of Cloud Identity Services. Thanks!
	public IasTokenAuthenticator configTokenAuthenticator(BrokerConfig config) {
		OAuth2ServiceConfiguration oAuth2ServiceConfiguration = OAuth2ServiceConfigurationBuilder
			.forService(Service.IAS).withClientId(config.getOIDCProperties().getClientId())
			.withClientSecret(config.getOIDCProperties().getClientSecret())
			.withUrl(config.getOIDCProperties().getTokenUrl()).build();
		IasTokenAuthenticator iasTokenAuthenticator = new IasTokenAuthenticator();
		iasTokenAuthenticator.withServiceConfiguration(oAuth2ServiceConfiguration);
		return iasTokenAuthenticator;
	}

Hi @jeswant,
By default the IAS Signature validator requires app_tid claim in the OIDC token for the token validation. There are 2 options how to deal with this requirement:

You can disable tenant ID check https://github.com/SAP/cloud-security-services-integration-library/blob/main/java-security/src/main/java/com/sap/cloud/security/token/validation/validators/JwtValidatorBuilder.java#L194
Provide the app_tid in the OIDC token (not 100% sure if that is possible)

Kind Regards,
Liga


Added Indexformat option to exceed 65k facets limit

Issue #12

Tested and works with smooth option turned on, but it makes a right mess of the model with hard normals for whatever reason.

Thanks for the PR 👍


sublink无效

Version
4.8.0
Steps to reproduce
1. sublink not work
the sublink cannot open ，but title link function well。such as the example in https://echarts.apache.org/examples/zh/editor.html?c=map-HK， sublink is not work，if change to link，function well，after this ,change to sublink again, sublink can work。
副标题链接无法打开，改成主标题链接则可以打开，此时再改为副标题链接则可以正常打开。
2. 'www.xxxx' link not work
in the case https://echarts.apache.org/examples/zh/editor.html?c=map-HK,set the sublink to <www.baidu.com>,the sublink refer to https://echarts.apache.org/examples/zh/undefined,change sublink to link, it refer to https://echarts.apache.org/examples/zh/www.baidu.com. if set the link to http://www.baidu.com,funtion well。
如果把上述例子中的链接改为<www.baidu.com>时，sublink改为link的时候仍然无法打开，会跳转到https://echarts.apache.org/examples/zh/www.baidu.com，但是改为http://www.baidu.com，则可以正常跳转
What is expected?
click sublink to jump to the specific link
What is actually happening?
jump to an undefined page

sublink does not work is indeed a bug, but maybe www.xxx is not a bug.
This feature uses window.open to open the links, if no protocol is specified for url, the browser will open it by current context path.

It is indeed a bug that sublink does not work, but www.xxx may be not.
This feature uses window.open to open the links, if no protocol is specified for url, the browser will open it by current context path.

got it ,thx! hope fix this sublink bug

Thanks for your reporting. It has been fixed in #12842.


Detect used Metamask network

In the current state, if user use a different network than Kovan, Cherryswap.deployed() will just throw an exception and the user will not notice what's happening without inspecting the console.
This PR fix detect if the network used, if different than Kovan show a message (Related to #13 ).
PS: First time with Vue.js so the code may not be perfect or need improvement! idk :dancer:

@chrisjgf When you have time please check this PR, the modification here help notifying the user to use the correct network to interact with the smart contracts. It only need improvement in the frontend for the alert styling.


Add bower.json for bower functionality

This allows consumption of Leaflet.utfgrid via Bower; whether to register it in https://github.com/bower/registry feels optional, but I'm OK linking to the GitHub URL too.

:+1:


CI: rerun tests on network errors

This should help with test failures like this one https://github.com/scikit-hep/uproot4/pull/407/checks?check_run_id=3363231826#step:9:360

Thanks! I didn't know about that.

Strangely there are now some new failures for python3.5 in version solver of conda.

I think this is good to go. I've restarted the jobs three times in my fork and didn't see any failures (although I did not see any HTTP errors). As usual, let me know if you encounter any problems with this one.


Importing a WSL2 distro with wsl --imoprt --vhd doesn't set default user

When transferring a WSL2 Ubuntu distribution between systems, I used the following commands:
First, on the source system to export the distribution:
wsl --export --vhd Ubuntu-24.04 ubuntu-24.04.vhdx

Then, on the destination system to import it:
wsl --import --vhd Ubuntu-24.04 \ubuntu-24.04.vhdx

After importing the distribution, I noticed two configuration issues that need to be addressed to match the default setup that comes with a Microsoft Store installation.
First, the imported distribution defaults to using the root user instead of a default user account. When installing Ubuntu from the Microsoft Store, it automatically sets up and uses a default user account for all operations.
Second, the shell environment isn't initializing properly. The login shell doesn't start automatically, which means .profile and .bashrc files aren't being loaded at startup. Currently, this requires manually running bash --login to get the proper shell environment. In contrast, a Microsoft Store installation handles all of this automatically, providing a properly configured bash login shell that loads all user profile files on startup.
The goal is to replicate the Microsoft Store's automatic configuration to achieve the same seamless experience with our imported distribution.

/feature
You should be able to export and import a WSL2 image along with its settings bundled together.


Query: Perf: Large perf improvement in Include.

Eliminated dynamic delegate creations during Include query execution.

Fix #6623

@maumar

:shipit:


Finish support for Informix

I need to get a Informix VM up to do full testing.

For 1.1.1 and 2.0.0 - Added TestInformix unit tests. All passed! :)