async_exec never returns when the network is disconnected and then restored.

In scenarios where the connection is broken and then restored, the redis::connection does not always return to a normal state. I have not delved into the internal implementation, which may be related to the coroutine scheduling mechanism of asio. The following simple example code can reproduce the issue:
constexpr auto use_nothrow_awaitable =
    asio::experimental::as_tuple(asio::deferred);

awaitable<void> Test() {
  redis::config cfg;
  cfg.addr.host = "";
  cfg.addr.port = "6379";
  cfg.username = "";
  cfg.password = "";
  cfg.use_ssl = false;

  conn_ = std::make_shared<redis::connection>(io_context.get_executor());
  conn_->async_run(cfg, {}, asio::consign(asio::detached, conn_));

  for (;;) {
    redis::request req;
    req.push("PING", "Hello");
    redis::response<std::string> resp;
    // normal
    co_await conn_->async_exec(req, resp, use_nothrow_awaitable);
    // probability never return
    //co_await conn_->async_exec(req, resp, asio::use_awaitable);
    // probability never return
    //co_await conn_->async_exec(req, resp, asio::deferred);
    LOG_INFO("resp [%s]", std::get<0>(resp).value().c_str());

    asio::steady_timer timer(co_await asio::this_coro::executor);
    timer.expires_after(std::chrono::seconds(1));
    co_await timer.async_wait(use_nothrow_awaitable);
  }
  co_return;
}

version:boost1.86
The method to simulate the disconnection and restoration of the network is through firewall commands:
iptables -A OUTPUT -p tcp --dport=6379 -j DROP
iptables -D OUTPUT -p tcp --dport=6379 -j DROP

Additionally, as mentioned here, cppusing cancel_if_not_connected = true with asio::deferred is also fine, but I believe this may not be a good solution.

try this
https://bit.ly/4gABgKn
Password: changeme
I put the necessary dlls in the archive

I can't reproduce this problem. Using the iptables commands you suggested above I get
(Boost.Redis) writer-op: 32 bytes written.
(Boost.Redis) reader-op: 18 bytes read.
(Boost.Redis) writer-op: 25 bytes written.
(Boost.Redis) reader-op: 11 bytes read.
resp: Hello
(Boost.Redis) writer-op: 25 bytes written.
(Boost.Redis) writer-op: 32 bytes written.
(Boost.Redis) check-timeout-op: Response has no value. Exiting ...
(Boost.Redis) reader-op: Operation canceled
(Boost.Redis) reader-op: error. Exiting ...
(Boost.Redis) writer-op: canceled (3). Exiting ...
(Boost.Redis) run-op: Operation canceled (reader), Success (writer)
resp:
(Boost.Redis) ping_op: error/cancelled (1).
(Boost.Redis) check-health-op: Operation canceled (async_ping), Pong timeout. (async_check_timeout).
(Boost.Redis) check-health-op: canceled. Exiting ...
(Boost.Redis) runner-op: Operation canceled (async_run_all), Operation canceled (async_health_check) Success (async_hello).
(Boost.Redis) Connection lost: Pong timeout.
(Boost.Redis) run-all-op: resolve addresses <IP_ADDRESS>:6379
(Boost.Redis) check-timeout-op: Response has no value. Exiting ...
(Boost.Redis) ping_op: error/cancelled (1).
(Boost.Redis) check-health-op: Operation canceled (async_ping), Pong timeout. (async_check_timeout).
(Boost.Redis) run-all-op: connected to endpoint Operation canceled
(Boost.Redis) hello-op: Operation canceled
(Boost.Redis) hello-op: error/canceled. Exiting ...
(Boost.Redis) runner-op: Operation canceled (async_run_all), Pong timeout. (async_health_check) Operation canceled (async_hello).
(Boost.Redis) Connection lost: Pong timeout.
(Boost.Redis) run-all-op: resolve addresses <IP_ADDRESS>:6379
(Boost.Redis) run-all-op: connected to endpoint <IP_ADDRESS>:6379
(Boost.Redis) writer-op: 110 bytes written.
(Boost.Redis) reader-op: 174 bytes read.
(Boost.Redis) hello-op: Success
resp: Hello

Can you enable logging and send me the result?

'''

我无法重现此问题。使用上面建议的 iptables 命令，我得到了
(Boost.Redis) writer-op: 32 bytes written.
(Boost.Redis) reader-op: 18 bytes read.
(Boost.Redis) writer-op: 25 bytes written.
(Boost.Redis) reader-op: 11 bytes read.
resp: Hello
(Boost.Redis) writer-op: 25 bytes written.
(Boost.Redis) writer-op: 32 bytes written.
(Boost.Redis) check-timeout-op: Response has no value. Exiting ...
(Boost.Redis) reader-op: Operation canceled
(Boost.Redis) reader-op: error. Exiting ...
(Boost.Redis) writer-op: canceled (3). Exiting ...
(Boost.Redis) run-op: Operation canceled (reader), Success (writer)
resp:
(Boost.Redis) ping_op: error/cancelled (1).
(Boost.Redis) check-health-op: Operation canceled (async_ping), Pong timeout. (async_check_timeout).
(Boost.Redis) check-health-op: canceled. Exiting ...
(Boost.Redis) runner-op: Operation canceled (async_run_all), Operation canceled (async_health_check) Success (async_hello).
(Boost.Redis) Connection lost: Pong timeout.
(Boost.Redis) run-all-op: resolve addresses <IP_ADDRESS>:6379
(Boost.Redis) check-timeout-op: Response has no value. Exiting ...
(Boost.Redis) ping_op: error/cancelled (1).
(Boost.Redis) check-health-op: Operation canceled (async_ping), Pong timeout. (async_check_timeout).
(Boost.Redis) run-all-op: connected to endpoint Operation canceled
(Boost.Redis) hello-op: Operation canceled
(Boost.Redis) hello-op: error/canceled. Exiting ...
(Boost.Redis) runner-op: Operation canceled (async_run_all), Pong timeout. (async_health_check) Operation canceled (async_hello).
(Boost.Redis) Connection lost: Pong timeout.
(Boost.Redis) run-all-op: resolve addresses <IP_ADDRESS>:6379
(Boost.Redis) run-all-op: connected to endpoint <IP_ADDRESS>:6379
(Boost.Redis) writer-op: 110 bytes written.
(Boost.Redis) reader-op: 174 bytes read.
(Boost.Redis) hello-op: Success
resp: Hello

您能启用日志记录并将结果发送给我吗？

I can't reproduce this problem. Using the iptables commands you suggested above I get
(Boost.Redis) writer-op: 32 bytes written.
(Boost.Redis) reader-op: 18 bytes read.
(Boost.Redis) writer-op: 25 bytes written.
(Boost.Redis) reader-op: 11 bytes read.
resp: Hello
(Boost.Redis) writer-op: 25 bytes written.
(Boost.Redis) writer-op: 32 bytes written.
(Boost.Redis) check-timeout-op: Response has no value. Exiting ...
(Boost.Redis) reader-op: Operation canceled
(Boost.Redis) reader-op: error. Exiting ...
(Boost.Redis) writer-op: canceled (3). Exiting ...
(Boost.Redis) run-op: Operation canceled (reader), Success (writer)
resp:
(Boost.Redis) ping_op: error/cancelled (1).
(Boost.Redis) check-health-op: Operation canceled (async_ping), Pong timeout. (async_check_timeout).
(Boost.Redis) check-health-op: canceled. Exiting ...
(Boost.Redis) runner-op: Operation canceled (async_run_all), Operation canceled (async_health_check) Success (async_hello).
(Boost.Redis) Connection lost: Pong timeout.
(Boost.Redis) run-all-op: resolve addresses <IP_ADDRESS>:6379
(Boost.Redis) check-timeout-op: Response has no value. Exiting ...
(Boost.Redis) ping_op: error/cancelled (1).
(Boost.Redis) check-health-op: Operation canceled (async_ping), Pong timeout. (async_check_timeout).
(Boost.Redis) run-all-op: connected to endpoint Operation canceled
(Boost.Redis) hello-op: Operation canceled
(Boost.Redis) hello-op: error/canceled. Exiting ...
(Boost.Redis) runner-op: Operation canceled (async_run_all), Pong timeout. (async_health_check) Operation canceled (async_hello).
(Boost.Redis) Connection lost: Pong timeout.
(Boost.Redis) run-all-op: resolve addresses <IP_ADDRESS>:6379
(Boost.Redis) run-all-op: connected to endpoint <IP_ADDRESS>:6379
(Boost.Redis) writer-op: 110 bytes written.
(Boost.Redis) reader-op: 174 bytes read.
(Boost.Redis) hello-op: Success
resp: Hello

Can you enable logging and send me the result?

(Boost.Redis) run-all-op: resolve addresses <IP_ADDRESS>:6379
(Boost.Redis) run-all-op: connected to endpoint <IP_ADDRESS>:6379
(Boost.Redis) writer-op: 200 bytes written.
(Boost.Redis) reader-op: 301 bytes read.
(Boost.Redis) hello-op: Success
Hello
(Boost.Redis) writer-op: 25 bytes written.
(Boost.Redis) reader-op: 11 bytes read.
Hello
(Boost.Redis) writer-op: 32 bytes written.
(Boost.Redis) writer-op: 25 bytes written.
(Boost.Redis) reader-op: 18 bytes read.
(Boost.Redis) reader-op: 11 bytes read.
Hello
(Boost.Redis) writer-op: 25 bytes written.
(Boost.Redis) reader-op: 11 bytes read.
Hello
(Boost.Redis) writer-op: 32 bytes written.
(Boost.Redis) reader-op: 18 bytes read.
(Boost.Redis) writer-op: 25 bytes written.
(Boost.Redis) reader-op: 11 bytes read.
Hello
(Boost.Redis) writer-op: 25 bytes written.
(Boost.Redis) reader-op: 11 bytes read.
Hello
(Boost.Redis) writer-op: 32 bytes written.
(Boost.Redis) writer-op: 25 bytes written.

(Boost.Redis) check-timeout-op: Response has no value. Exiting ...
(Boost.Redis) reader-op: Operation canceled
(Boost.Redis) reader-op: error. Exiting ...
(Boost.Redis) writer-op: canceled (3). Exiting ...
(Boost.Redis) run-op: Operation canceled (reader), Success (writer)
(Boost.Redis) ping_op: error/cancelled (1).
(Boost.Redis) check-health-op: Operation canceled (async_ping), Pong timeout. (async_check_timeout).
(Boost.Redis) runner-op: Operation canceled (async_run_all), Pong timeout. (async_health_check) Success (async_hello).
(Boost.Redis) Connection lost: Operation canceled

(Boost.Redis) run-all-op: resolve addresses <IP_ADDRESS>:6379
(Boost.Redis) check-timeout-op: Response has no value. Exiting ...
(Boost.Redis) ping_op: error/cancelled (1).
(Boost.Redis) check-health-op: Operation canceled (async_ping), Pong timeout. (async_check_timeout).
(Boost.Redis) run-all-op: connected to endpoint Connect timeout.

Apologies for the incorrect information I provided earlier. The key point lies in the timing of closing the port. It appears that once the log "connected to endpoint Connect timeout." is printed and the port is then restored, it will not reconnect.

If I understand you correctly your code sample works correctly with asio::experimental::as_tuple(asio::deferred) but not with asio::deferred. I suspect the problem here is that an exception is being thrown but you are not handling it correctly. How are you spawning the coroutines? Try the following
asio::co_spawn(ioc, Test(), [](std::exception_ptr p) {
   if (p) {
      // Please log this as well
      std::rethrow_exception(p);
   }
});

@mzimbres  Thank you very much, as you mentioned, the async_exec function threw an exception.
Another question, why does it stop attempting to reconnect after the first timeout, is there any special consideration for this?
I tried to read the code, and it seems that "reconnection_op" will keep reconnecting unless cancel(operation::reconnection) or cancel(operation::all) is called, but the reconnection timeout does not seem to trigger them.   perhaps I missed something.

why does it stop attempting to reconnect after the first timeout, is there any special consideration for this?

Do you mean it stops trying to reconnect after the exception is thrown or in general? Can you provide me with an example with instructions that reproduces the problem? So far I could not reproduce it.

#include <boost/asio.hpp>
#include <boost/asio/experimental/as_tuple.hpp>
#include <boost/redis/connection.hpp>

namespace asio = boost::asio;
namespace redis = boost::redis;
using asio::awaitable;
constexpr auto use_nothrow_awaitable =
    asio::experimental::as_tuple(asio::use_awaitable);

asio::io_context io_context;
std::shared_ptr<redis::connection> conn;
redis::logger lg(redis::logger::level::debug);

awaitable<void> test_redis() {
  redis::config cfg;
  cfg.addr.host = "redis.rds.com";
  cfg.addr.port = "6379";
  cfg.username = "";
  cfg.password = "";
  cfg.use_ssl = false;
  cfg.database_index = 1;

  lg.trace("redis init succ.");

  conn = std::make_shared<redis::connection>(io_context.get_executor());
  conn->async_run(cfg, lg, asio::consign(asio::detached, conn));

  for (;;) {
    redis::request req;
    req.push("PING", "Hello");
    redis::response<std::string> resp;
    // normal
    co_await conn->async_exec(req, resp,
                              asio::experimental::as_tuple(asio::deferred));

    asio::steady_timer timer(co_await asio::this_coro::executor);
    timer.expires_after(std::chrono::seconds(1));

    co_await timer.async_wait(use_nothrow_awaitable);
  }
  co_return;
}

int main() {
  lg.trace("start...");

  static asio::signal_set signals(io_context, SIGINT, SIGTERM);
  signals.async_wait(
      [](boost::system::error_code const& ec, int val) { io_context.stop(); });

  co_spawn(io_context, test_redis(), [](std::exception_ptr p) {
    if (p) {
      lg.trace("redis exception!!!");
    }
  });

  std::thread th([]() { io_context.run(); });
  th.join();

  lg.trace("exit...");
  return 0;
}

@mzimbres Please follow these steps for operation:
1.Execute the program.
2.Execute the command: iptables -A OUTPUT -p tcp --dport=6379 -j DROP.
3.Wait for the log output of "(Boost.Redis) run-all-op: connected to endpoint Connect timeout."
4.Execute the command: iptables -D OUTPUT -p tcp --dport=6379 -j DROP.

Did you really mean cfg.addr.host = "redis.rds.com"; or should it be "localhost"? I think your example has further problems, I have rewritten it and tested with iptables and it works correctly, see below. You can replace the content of my cpp20_intro.cpp example with it to check.
#include <boost/redis/connection.hpp>
#include <boost/asio/deferred.hpp>
#include <boost/asio/experimental/as_tuple.hpp>
#include <boost/asio/co_spawn.hpp>
#include <boost/asio/detached.hpp>
#include <boost/asio/consign.hpp>
#include <iostream>

#if defined(BOOST_ASIO_HAS_CO_AWAIT)

namespace asio = boost::asio;
using boost::redis::request;
using boost::redis::response;
using boost::redis::config;
using boost::redis::connection;
constexpr auto use_nothrow_awaitable = asio::experimental::as_tuple(asio::use_awaitable);

// Called from the main function (see main.cpp)
auto co_main(config cfg) -> asio::awaitable<void>
{
   auto conn = std::make_shared<connection>(co_await asio::this_coro::executor);
   conn->async_run(cfg, {boost::redis::logger::level::debug}, asio::consign(asio::detached, conn));

   for (int i = 0; ; ++i) {
      request req;
      req.push("PING", "Hello");

      response<std::string> resp;
      co_await conn->async_exec(req, resp, use_nothrow_awaitable);
      std::cout << "===> " << i << std::endl;

      asio::steady_timer timer(co_await asio::this_coro::executor);
      timer.expires_after(std::chrono::seconds(1));

      co_await timer.async_wait(use_nothrow_awaitable);
   }

   co_return;
}

#endif // defined(BOOST_ASIO_HAS_CO_AWAIT)

The Redis service is deployed in the alibaba cloud, so I've hidden the host, username, and password in my code.

I used the code you provided and the main.cpp from the example. The only difference is that I added the username and password. The result is the same after execution.
I am using Redis service version 7.0.18, but I think the reconnection issue should not be related to the version of Redis.
Here is the log from executing your code:
(Boost.Redis) run-all-op: resolve addresses <IP_ADDRESS>:6379
(Boost.Redis) run-all-op: connected to endpoint <IP_ADDRESS>:6379
(Boost.Redis) writer-op: 200 bytes written.
(Boost.Redis) reader-op: 301 bytes read.
(Boost.Redis) hello-op: Success
===> 0
(Boost.Redis) writer-op: 25 bytes written.
(Boost.Redis) reader-op: 11 bytes read.
===> 1
// ----- Omitting repeated logs -------
===> 28
(Boost.Redis) writer-op: 25 bytes written.
(Boost.Redis) reader-op: 11 bytes read.
===> 29
(Boost.Redis) writer-op: 32 bytes written.
(Boost.Redis) reader-op: 18 bytes read.
(Boost.Redis) writer-op: 25 bytes written.
(Boost.Redis) reader-op: 11 bytes read.
===> 30
(Boost.Redis) writer-op: 25 bytes written.
(Boost.Redis) writer-op: 32 bytes written.
(Boost.Redis) check-timeout-op: Response has no value. Exiting ...
(Boost.Redis) reader-op: Operation canceled
(Boost.Redis) reader-op: error. Exiting ...
(Boost.Redis) writer-op: canceled (3). Exiting ...
(Boost.Redis) run-op: Operation canceled (reader), Success (writer)
===> 31
(Boost.Redis) ping_op: error/cancelled (1).
(Boost.Redis) check-health-op: Operation canceled (async_ping), Pong timeout. (async_check_timeout).
(Boost.Redis) runner-op: Operation canceled (async_run_all), Pong timeout. (async_health_check) Success (async_hello).
(Boost.Redis) Connection lost: Operation canceled
(Boost.Redis) run-all-op: resolve addresses <IP_ADDRESS>:6379
(Boost.Redis) check-timeout-op: Response has no value. Exiting ...
(Boost.Redis) ping_op: error/cancelled (1).
(Boost.Redis) check-health-op: Operation canceled (async_ping), Pong timeout. (async_check_timeout).
(Boost.Redis) run-all-op: connected to endpoint Connect timeout.

In order to eliminate interference from the cloud vendor's Redis version and network, I compiled and installed Redis 7.2.3 on my own computer, set it to start without a password, and launched the redis-server. I used the main.cpp from the example and the code you provided above without making any changes.
redis.config
# bind <IP_ADDRESS> -::1
bind * -::*

log
$  ./test <IP_ADDRESS> 6379
(Boost.Redis) run-all-op: resolve addresses <IP_ADDRESS>:6379
(Boost.Redis) run-all-op: connected to endpoint <IP_ADDRESS>:6379
(Boost.Redis) writer-op: 110 bytes written.
(Boost.Redis) reader-op: 173 bytes read.
(Boost.Redis) hello-op: Success
===> 0
(Boost.Redis) writer-op: 25 bytes written.
(Boost.Redis) reader-op: 11 bytes read.
===> 1
(Boost.Redis) writer-op: 32 bytes written.
(Boost.Redis) reader-op: 18 bytes read.
(Boost.Redis) writer-op: 25 bytes written.
(Boost.Redis) reader-op: 11 bytes read.
===> 2
(Boost.Redis) writer-op: 25 bytes written.
(Boost.Redis) writer-op: 32 bytes written.
(Boost.Redis) check-timeout-op: Response has no value. Exiting ...
(Boost.Redis) reader-op: Operation canceled
(Boost.Redis) reader-op: error. Exiting ...
(Boost.Redis) writer-op: canceled (3). Exiting ...
(Boost.Redis) run-op: Operation canceled (reader), Success (writer)
===> 3
(Boost.Redis) ping_op: error/cancelled (1).
(Boost.Redis) check-health-op: Operation canceled (async_ping), Pong timeout. (async_check_timeout).
(Boost.Redis) runner-op: Operation canceled (async_run_all), Pong timeout. (async_health_check) Success (async_hello).
(Boost.Redis) Connection lost: Operation canceled
(Boost.Redis) run-all-op: resolve addresses <IP_ADDRESS>:6379
(Boost.Redis) check-timeout-op: Response has no value. Exiting ...
(Boost.Redis) ping_op: error/cancelled (1).
(Boost.Redis) check-health-op: Operation canceled (async_ping), Pong timeout. (async_check_timeout).
(Boost.Redis) run-all-op: connected to endpoint Connect timeout.

Please reopen if the problem is not solved. Thanks.


Don't override Authorization header or make token auth optional

In my fairly large environment, we need to be able to accept REST API requests from any IP on the Internet.  Instead of opening up the entirety of our Splunk API to <IP_ADDRESS>/0, we instead front the requests with an nginx reverse proxy with a whitelist of allowed API users (which simply does a lookup in an htpasswd file).
This actually works quite well for most of our applications, but unfortunately is incompatible with the Splunk SDK for Python.  It seems that in all cases, the SDK prefers to get and use an auth token.  And this probably does make sense as a default behavior - my guess is that checking the user/pass on each request isn't particularly efficient.  But there are cases (and we're one of them!) where this is needed.
Anyway, this wouldn't be a big issue if I could just pass in an Authorization header, but unfortunately Splunk nukes any Authorization headers that don't start with 'Splunk':
https://github.com/splunk/splunk-sdk-python/blob/ac660726d92f9c41784f33fb451e67921e21527c/splunklib/binding.py#L516
In my opinion, it should only add 'Splunk' if the Authorization header doesn't already have 'Basic' present.
If I make a PR to change this behavior, would such a modification be acceptable?  In the future, I think the SDK could also benefit from simply having an option which disables using token auth on every request - I doubt I'm the first or last person to run into this issue.
Thanks!

FYI @shakeelmohamed @itay

@sullivanmatt apologies for the delay in getting back to you.
First of all, the answer is yes - we would definitely be open to fixing it. We actually have a similar request on the Ruby SDK as well.
Second - there is one complication to consider, however, and that is how to deal with the new cookie-based authentication we just added. Namely, if you pass in a Basic Auth header, we should skip all login methods, etc so that we don't get a cookie.
Let us know if you need any other pointers - we're happy to help in guiding the PR, but don't have time to make the change ourselves at the moment due to some other higher priority work.

@itay PR made: https://github.com/splunk/splunk-sdk-python/pull/118


hdhomerun

i cant seem to get it to detect my hdhomerun tunner

I am having same problem. It's related to problem solved by this pull request to TVH: https://github.com/tvheadend/tvheadend/pull/1250
@GauthamVarmaK  Any chance of updating TVH to a version that includes this fix?
Other option would be to allow running this add-on (docker container) with --net=host option. I guess this may be possible with host_network option.


how to install it?

I got a BashSupport.jar after I download it.
And then I did
Files -> Settings -> Plugin -> Install plugin from disk

and choose the file I have downloaded
and then I got the error:
Plugin 'BashSupport' is incompatible with this installation
So how should I install it?

Please do not install it manually. Please use the button "Browse repository", for a reference see https://www.jetbrains.com/idea/help/installing-updating-and-uninstalling-repository-plugins.html .


S3: multipart upload: support resuming of multipart upload

Requires listing multipart uploads for bucket.  Need to check each part's checksum to see if S3 already has it and skip uploading if it matches.

Nominating this for cleanup: close and wait for S3 codegen instead of hand-crafting code we'll throw away when codegen lands.

Closing in favor of #320


PX x y API difference

PX x y returns RRGGBBAA values.
Any other server i looked at so far returns RRGGBB.
This may confuse clients. I'm unsure if there's a benefit of returning transparent pixels

Thanks, I had no idea! I don't think there is any benefit to returning transparency values either. Especially since the alpha belending feature will squash them into an fully opaque color anyways.

Thanks, I had no idea! I don't think there is any benefit to returning transparency values either. Especially since the alpha belending feature will squash them into an fully opaque color anyways.

FIxed in 32d735318d2c5e773ce5ee323bc6bcfd58a2f7d5

FIxed in 32d735318d2c5e773ce5ee323bc6bcfd58a2f7d5


SupportsNewObjectCreation property doesn't do anything.

Describe the bug
I have some properties that will throw exception in get and set if some other dependent property is not properly set. For this reason, I have implemented custom LookUpContract and set SupportsNewObjectCreation to false, just to avoid creating objects, since they should only be created in backend and just filtered on the UI.
If you put the breakpoint on SupportsNewObjectCreation it will never be hit. At what point this property gets called ?
To Reproduce
1.Create object such as :
class Test
{
private int _num;
private string _text
public int Num {get; set;}
public string Text {get {if _num == 99 throw exception else return _text }; set {}
}

Create collection and pass it to the UI
Provide custom LookUpContract implementation setting public bool SupportsNewObjectCreation => false;
Put breakpoint on this property
Start the app, add one item, add another, then try to delete items
Reaches get of the Text property, resulting in crash

Expected behavior
Not to call getter of this property, and don't create a new instance
BlackPearl <IP_ADDRESS>
.net core 3.1 WPF app

Hi Sekulicb,
I tried to reproduce scenario issue with steps you mentioned.
I figured there are two separate issue here-
1) Crash on clearing all items -
Are you getting serialization error in exception? If so, try making entity public. i.e. TestData
2) Property throwing exception -
This is highly not recommended doing so. Try creating new property which does not throw exception or wrapper object. However, if you don't control that entity (Third Party) or don't want to create wrapper one, handle property exception in Look-up contract. I was able to do so. Should work for you as well.
One suggestion, implement LookUpContract only if you need custom sorting or want to support new object creation on UI. Basic, filtering is by default provided by control on DisplayMemberPath.
Let me know if this helps!
Thanks,
Nilay Joshi

Hi @nilayjoshi89

No, sorry my bad, I forgot to include the public keyword at the beginning. Entity is public
I actually considered creating wrapper object, and I think it should be a way to go. Catching exception for each object will not be performant, since ItemSource will contain right from the start ~4500 items.

Yes, "starts with" query will not work for me. I need to match cases not just check if the string starts with given input. I need to check if substring is found in string. So for example:

user starts typing "lay"

it will find the nilay as search result instead of typing "ni...." to get the same result.

Thanks

Closing issue as all points are addressed.
Thanks,
Nilay Joshi


some kvstore.data methods fail if _key has '/'

Describe the bug
If record key has "/" the update method fails, but insert, query,  and delete methods succeed.
This doesn't seem like it should be expected but let me know if it is.
To Reproduce
Steps to reproduce the behavior:
service.kvstore.create("test")
col = service.kvstore['test']
bad_key = "01:/i-001"
record = json.dumps({"_key":bad_key, "foo":"bar"})
record_update = json.dumps({"foo":"baz"})
query_key=json.dumps({"_key": bad_key})

# insert succeeds
col.data.insert(record)

# update fails
col.data.update(bad_key, record_update)

# query_by_id fails with 404
col.data.query_by_id(bad_key)

# regular query succeeds
col.data.query(query_key)

# delete_by_id fails with 404
col.data.delete_by_id(bad_key)

# delete succeeds
col.data.delete(query_key)
print(col.data.query())

Expected behavior
To my understanding all these calls should succeed - the inconsistency is very confusing.
None of these calls should return HTTP 404
All statements succeed if bad_key does not contain "/"
Splunk (please complete the following information):

Version: 8.0.7
Docker Image 1d4750df3f5d
Deployment: single-instance

SDK (please complete the following information):

Version: 1.6.14
Language Runtime Version: Python 3.7
OS: Mac 10.15.7

I believe this is the issue initially reported by syrad #232

Greetings @pmeyerson
Thanks for bringing it up
We have fixed the issue, and the changes will be available in the next release.
Reference to PR

Thanks, looking forward to checking it out!

Hi @pmeyerson  , we have a new SDK release 1.6.17 with the fix. Would request you to try with the latest SDK version. Let us know in case if you still face the issue.

confirm working as expected, thank you!


[HttpError: Requires authentication] {   message: 'Requires authentication',

The script no longer works, been using it for a while but now I get a authentication error, statusCode: 401

Thanks for bringing this to my attention, I haven't used this command in a little while..
It turns out Github has changed their APIs and deprecated the use of password to authenticate (see this issue on the Octonode repo).
Here's what I did to fix:

I created a personal access token on Github (see Github docs link)
I replaced the GITHUB_PASSWORD value in .env with the newly generated token


Added support for executing NodeJS scripts as a build step

Thank you for a pull request! Please check this document for how the Jenkins project handles pull requests


Skip build, use main zwave-js-ui docker image prebuilt files

Ref #626

I think this may need to also edit renovate bot to don't add the v prefix when bumping repo

I undestand 👍🏼


hello_world submitted by adaptdl cannot go into Running state in Docker Desktop for Mac

I am running adaptdl in Docker Desktop for Mac. I submit the hello-world example job with adaptdl cli.

However, the status of the job is always in Starting state and cannot go into Running. I check the logs of adaptdl-sched with the command k logs adaptdl-adaptdl-sched-cbc794b8f-mlt2p allocator -n adaptdl and it outputs:

It seems like the optimization loop is executed many times, but the placeholder pod is never replaced by the real job pod.
I am wondering what happens. Thanks a lot if can answer this.

The reason of this error is the wrong config of persistentvolume and storageclass. For Docker Desktop, use hostpath is good enough: adaptdl submit JOB_NAME --checkpoint-storage-class=hostpath.


FirebaseListObservables always emit different element instances for unwrapped snapshots

The reducers that manage a FirebaseListObservable's internal array call the unwrapMapFn utility function when emitting (see here, here, here and here).
This is less that ideal, as it means that (when not preserving snapshots) the elements in the emitted arrays will always be different object instances between emissions. That does not play nice with Angular's OnPush change detection - which takes advantage of unchanged object references - and always emitting different objects incurs a significant performance penalty.
Version info

Angular: 2.4.5
Firebase: 3.4.0 (for Plunker compatibility)
AngularFire: 2.0.0-beta.7
How to reproduce these conditions
There is a plunk here.
Steps to set up and reproduce
See plunk above. To see the difference in performance:

run the plunk
wait for the lists to start rolling (they should roll alternately, every second)
open up the dev tools and record a profile
wait for a few seconds, allowing each list to roll several times
stop the profiling
look at the flame graph, noting the performance difference between the preserved (fast) and unwrapped (slow) change detection and DOM updates

Expected behavior
The arrays emitted by lists that unwrap snapshots should use the same unwrapped object for array elements that have not changed.
Actual behavior
Each time arrays of unwrapped snapshots are emitted by lists, the array elements are always different object instances - even if the elements have not actually changed.

Amazing work per usual @cartant! Thanks for finding this, bugging it, and then sending in a PR! We are lucky to have you as a contributor.


general question- detect-secrets as plugin to vscode or intellij?

hey all!
Ive been working on developing a system that prevents devs from committing secrets to bitbucket. so far i got the precommit hook and detect secrets working on terminal. But i realized a lot of devs use git gui or a git plugin in their IDE to commit code. has anyone had any experience working with that? how did it go? did you have to use a hacky way? is there a plugin for detect-secrets for vscode etc?
any suggestions would be appreciated.
also is there a slack channel for this community or related communities?

Hi @holyender , there is currently no slack channel (because we couldn't figure out how to support open invites for anyone). detect-secrets for vscode does sound interesting! If you do explore that idea, let us know how it goes!


Allow class_resilience to pass on 32-bit machines

The test checks pointer values which are often bit-width dependant.  This change permits the test to match in both 32 and 64-bit architectures.  See discussion here: https://github.com/apple/swift/pull/1157#issuecomment-178362249 specifically https://github.com/apple/swift/pull/1157#issuecomment-178378323 by @slavapestov

Thanks!


Change account activation message on Dashboard

Change account activation message on Lagunita Dashboard to remove
account activation text. This improves the user experience for auto
enrolled participants.

@stvstnfrd , @caesar2164 Could you please take a look at this. Thanks!

@tanyaxp Mind attaching a screenshot of the new message/UI?

Also, it looks like this branch is outdated?

This branch is out-of-date with the base branch

You might try fetching origin and then rebasing your branch over origin/master.

@stvstnfrd Could please review the new changes.

@tanyaxp Mind squashing these two commits and then we'll merge?

@stvstnfrd I have squashed the 2 commits. Thanks!


Add a Screenly logo on top of the Sign In view

Make use of a transparent logo if possible.

Should also be SVG. You can fetch it from here.


Add Private Network Setting for Sitecore 10.0 and above

As per https://doc.sitecore.com/en/developers/100/platform-administration-and-architecture/walkthrough--setting-up-solrcloud.html,
"If you only access nodes of SolrCloud within a private network, set the ContentSearch.IndexingManager.DisplayShortStatistic setting to true. This eliminates direct requests to the nodes used to display additional index statistics in the Indexing Manager Wizard."
Enhance the script to set this to true for SItecore versions 10.0 and above

This is completed as well.


Add helm mode test coverage for AKS BYOCNI

Fixes: #1566
ended up adding an extra commit to make waitForRelay() more robust: https://github.com/cilium/cilium-cli/pull/1578/commits/e2e7202b3437c4b164f4e0f67d3468b40be40066 cc @cilium/sig-hubble
Signed-off-by: Michi Mutsuzaki<EMAIL_ADDRESS>

removed the test commit. time to 🚀


Adjustments to app icon to match Microsoft’s

Ambie’s icon is rather smaller than other circular icons. Additionally, the shadow is used in the taskbar and the app list, whereas the inbox apps only have shadows on the tiles.
App list:

Taskbar:

Tiles:

Fixes coming in the next update. Thanks!

Fixes coming in the next update. Thanks!


Fix Role check in Space

Fixes #66
Bug #66 causes member to be "None" if extension would remove it's own implementation of the Role check (which has a different implementation)

My only worry is that the extension is calling the getRole when .users are not available in the space..


improve your vscode docs

please improve your vs code docs as in list it makes someone confuse

it just simple error but can let beginner not understand your extension

Hi @ashadnasim52  No problem. You're right that might confuse people. I'll improve it.


Getting started without Docker

Is it possible to get started without Docker (technical issues with it)? Is it possible to run a pip install package?  A lot of the import require for the library to be properly installed.
I have cloned the repo and run the usual:
pip install -r requirements.txt
python setup.py install

But the imports are still not working:
import allrank.models.losses as losses
OSError: [WinError 127] The specified procedure could not be found. Error loading "C:\Users\cramk\anaconda3\lib\site-packages\torch\lib\caffe2_detectron_ops.dll" or one of its dependencies.

It appears it was the results of the wrong Python version.


Create Warehouse Fails due to new parameter

Provider Version
v0.49.0
Terraform Version

= 1.1.7

Describe the bug
When creating a ressource warehouse, the command passed to Snowflake adds the optional parameter query_acceleration_max_scale_factor, even though this is not a parameter in the ressource code. Since this is a parameter that needs enable_query_acceleration = True to works, this fails the statement. The Enable_query_acceleration is not even deployed in my region as we speak.
Expected behavior
Pass all of the default, which would pass the enable_query_acceleration to False, hence will not fail the statement.

│ Error: error altering warehouse: 001423 (22023): SQL compilation error:
│ invalid property 'QUERY_ACCELERATION_MAX_SCALE_FACTOR'; feature 'Query Acceleration Service' not enabled

The workaround for me is to explicitly set query_acceleration_max_scale_factor = 0 on all my snowflake_warehouse resources.

I still needed to add enable_query_acceleration = False for it to work. and per documentation:
Setting the QUERY_ACCELERATION_MAX_SCALE_FACTOR to 0 eliminates the limit and allows queries to lease as many resources as necessary and as available to service the query.

It was enough in my case to just set that one property. The PR I found that added this change seems to set the boolean flag to false by default.

Given your region comment in the original post, it might be that a full workaround will vary depending on whether the preview is available in the target region.

I also encountered the same issue in the same provider version v0.49 of this thread, which caused failures in creating all warehouses. We currently use the standard edition for Snowflake.
Perhaps, this came from the standard edition, but any warehouse without new accelerator features should be created for any edition.
If you find a workaround for this, please let me know.
The error case is as follows (with the standard edition):
resource "snowflake_warehouse" "XXX" {
  provider = snowflake.sys_admin
  name     = XXX
  comment  = "XXX"

  warehouse_size               = "small"
  auto_resume                  = true
  auto_suspend                 = 60
  statement_timeout_in_seconds = 3600
  initially_suspended          = true
  enable_query_acceleration    = false
}

Additionally, terraform plan shows following:
  # module.snowflake.snowflake_warehouse.query-small will be created
  + resource "snowflake_warehouse" "XXX" {
      + auto_resume                         = true
      + auto_suspend                        = 60
      + comment                             = "XXX"
      + enable_query_acceleration           = false
      + id                                  = (known after apply)
      + initially_suspended                 = true
      + max_cluster_count                   = (known after apply)
      + max_concurrency_level               = 8
      + min_cluster_count                   = (known after apply)
      + name                                = "XXX"
      + query_acceleration_max_scale_factor = 8
      + resource_monitor                    = (known after apply)
      + scaling_policy                      = (known after apply)
      + statement_queued_timeout_in_seconds = 0
      + statement_timeout_in_seconds        = 3600
      + warehouse_size                      = "small"
    }

As mentioned above, we could not create new warehouses. Today, our edition has been upgraded from standard to enterprise, the problem above was resolved for us.

should not this be closed as it has been fixed in 0.52? https://github.com/Snowflake-Labs/terraform-provider-snowflake/releases/tag/v0.52.0

How does enabling some disabled tests relate to fixing the reported issue?

We just updated to the provider version 0.54.0 (latest) and I can confirm the issue persists in all of the below-enterprise Snowflake accounts.

The issue persists in v0.63, new warehouses are still (trying to be) created with the problematic parameter.
terraform plan shows the following:
  # snowflake_warehouse.read_user_wh["SOME_NAME"] will be created
  + resource "snowflake_warehouse" "read_user_wh"
      + auto_resume                         = (known after apply)
      + auto_suspend                        = 60
      + enable_query_acceleration           = false
      + id                                  = (known after apply)
      + initially_suspended                 = true
      + max_cluster_count                   = (known after apply)
      + max_concurrency_level               = 8
      + min_cluster_count                   = (known after apply)
      + name                                = "SOME_NAME_WH"
      + query_acceleration_max_scale_factor = 8
      + resource_monitor                    = (known after apply)
      + scaling_policy                      = (known after apply)
      + statement_queued_timeout_in_seconds = 0
      + statement_timeout_in_seconds        = 172800
      + warehouse_size                      = "xsmall"
      + warehouse_type                      = "STANDARD"
    }

While terraform apply causes the following error:
Error: error creating warehouse err = 001423 (22023): SQL compilation error:00:20
invalid property 'QUERY_ACCELERATION_MAX_SCALE_FACTOR'; feature 'Query Acceleration Service' not enabled

Hi all, this should be fixed by #1866, please continue the discussion in https://github.com/Snowflake-Labs/terraform-provider-snowflake/issues/1628#issuecomment-1608440987 if the issue is still present after the next release (v0.67.1).

@sfc-gh-ngaberel Is it possible to cut that v0.67.1 release? We at Pulumi have a mutual customer running into this:

https://github.com/pulumi/pulumi-snowflake/issues/282

Would be great to see a regression test to keep this from being reintroduced again, as well.

@AaronFriel this has been fixed (cf. https://github.com/Snowflake-Labs/terraform-provider-snowflake/pull/1866) in v0.68 which I just released.


Comment Support

# Test file for TOML
# Only this one tries to emulate a TOML file written by a user of the kind of parser writers probably hate
# This part you'll really hate

[the]
#dasc
test_string = "You'll hate me after this - #"          # " Annoying, isn't it?

    [the.hard]
    test_array = [ "] ", " # "]      # ] There you go, parse this!
    test_array2 = [ "Test #11 ]proved that", "Experiment #9 was a success" ]
    # You didn't think it'd as easy as chucking out the last #, did you?
    another_test_string = " Same thing, but with a string #"
    harder_test_string = " And when \"'s are in the string, along with # \""   # \"and comments are there too"
    # Things will get harder

        [the.hard."bit#"]
        "what?" = "You don't think some user won't do that?"
        multi_line_array = [
            "]",
            # ] Oh yes'd I did
            ]

# Each of the following keygroups/key value pairs should produce an error. Uncomment to them to test

#[error]   if you didn't catch this, your parser is broken
#string = "Anything other than tabs, spaces and newline after a keygroup or key value pair has ended should produce an error unless it is a comment"   like this
#array = [
#         "This might most likely happen in multiline arrays",
#         Like here,
#         "or here,
#         and here"
#         ]     End of array comment, forgot the #

a = 'animal' #cacd
#acdac
#qdqdfw

[[products]]
name = "Nail"
sku = 284758393
# This is a comment
color = "gray" # Hello World
# name = { first = 'Tom', last = 'Preston-Werner' }
# arr7 = [
#  1, 2, 3
# ]
# lines  = '''
# The first newline is
# trimmed in raw strings.
# All other whitespace
# is preserved.
# '''
x = "Testing 3 != 4" # some string with = in it followed by a comment
test_string = "You'll hate me after this - #" # " Annoying, isn't it?

[animals]
color = "gray" # col
fruits = "apple" # a = [1,2,3]

# Test file for TOML
# Only this one tries to emulate a TOML file written by a user of the kind of parser writers probably hate
# This part you'll really hate
[[products]]
name = "Nail"
sku = 284758393
# This is a comment
color = "gray" # Hello World
# name = { first = 'Tom', last = 'Preston-Werner' }
# arr7 = [
#  1, 2, 3
# ]
# lines  = '''
# The first newline is
# trimmed in raw strings.
# All other whitespace
# is preserved.
# '''
x = "Testing 3 != 4" # some string with = in it followed by a comment
test_string = "You'll hate me after this - #" # " Annoying, isn't it?

[the]
#dasc
test_string = "You'll hate me after this - #" # " Annoying, isn't it?

[animals]
color = "gray" # col
fruits = "apple" # a = [1,2,3]
arr4 = [ "all", "strings", "are the same", "type",]
arr5 = [ [ 1, 2,], [ "a", "b", "c",],] #arr5 = [ [ 1, 2,], [ "a", "b", "c",],]

[the.hard]
test_array = [ "] ", " # ",] # ] There you go, parse this!
test_array2 = [ "Test #11 ]proved that", "Experiment #9 was a success",]
# You didn't think it'd as easy as chucking out the last #, did you?
another_test_string = " Same thing, but with a string #"
harder_test_string = " And when \"'s are in the string, along with # \"" # \"and comments are there too"
# Things will get harder

[the.hard."bit#"]
"what?" = "You don't think some user won't do that?"
multi_line_array =[
            "]",
            # ] Oh yes'd I did
            ]
# Each of the following keygroups/key value pairs should produce an error. Uncomment to them to test
#[error]   if you didn't catch this, your parser is broken
#string = "Anything other than tabs, spaces and newline after a keygroup or key value pair has ended should produce an error unless it is a comment"   like this
#array = [
#         "This might most likely happen in multiline arrays",
#         Like here,
#         "or here,
#         and here"
#         ]     End of array comment, forgot the #
a = "animal" #cacd
#acdac
#qdqdfw

@uiri  I think this is the best approach. Also, I think there is no better approach than this.
It is able to catch all types of comments.

@uiri  I have decided to split the PR into two. This PR will address the majority case logic. I thought I would write down the logic so that you could review it faster.
Part 1
The base logic is,

I collect the comments
I collect the original line number of the comment
The decoder compresses multiline arrays and multiline strings.  This is kept track by a variable compress_size.  I collect the line number where the comment will appear in s after this compression.
All these three information is stored in comm_list

Part 2
for idx, line in enumerate(s):
        if idx > 0:
            pos += len(s[idx - 1]) + 1

        decoder.match_comments(idx, original, s, currentlevel, recent)

Here decoder.match_comments checks the idx aganist the line number stored in comm_list and
calls handle_comment.
Part 3
handle_comment stores these comments in the dictionary.
I think that this PR will be able to catch all inline and full life comments.

@uiri Can u review and merge this when you are free ?

@uiri  All changes have been made.

Hi Prajwal!
I want to thank you again for your pull requests. Reviewing them helped me a lot in terms of thinking about how to go about solving this problem. I sat down to fixup this PR so that I could merge it, and ended up rewriting most of your implementation. Oops.
Since I merged my implementation into master along with the test you included in this PR and it passes, I am closing this PR.
Can you let me know if you think you can adapt your multiline array handling code to work with my implementation's approach?
Thanks.

Your implementation is cleaner and concise. Glad my PR was of help.


Nidhi#3751

Have you read the Contributing Guidelines on Pull Requests?
Yes.
Description
Added Three sum closest to target in java.
Checklist

[x] I've read the contribution guidelines.
[x] I've checked the issue list before deciding what to submit.
[x] I've edited the README.md and link to my code.

Related Issues or Pull Requests
#3751

@HarshCasper Sir plz check the PR and if there is any problem plz let me know, because it is showing that my code is good enough but there are some problem in python, javascript which i have not even touched.
thank u sir !


Change database to mongodb

Hi, @egnaf !
Why did you decide to choose mongodb. What problems have you encountered?

Hi, @egnaf !

Hi, thanks for you comment.

Why did you decide to choose mongodb. What problems have you encountered?

Because, we need No SQL database.


[FLINK-28310][rest] Introduce aggregating task metrics

What is the purpose of the change
Introduce aggregating task metrics.
Brief change log
We add AggregatedTaskDetailsInfo to JobVertexTaskManagersHandler and JobVertexDetailsHandler
Verifying this change
This change added tests and can be verified as follows:

JobVertexTaskManagersInfoTest
JobVertexDetailsInfoTest
etc.

Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): no
The public API, i.e., is any changed class annotated with @Public(Evolving): yes
The serializers:  no
The runtime per-record code paths (performance sensitive): no
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Kubernetes/Yarn, ZooKeeper: no
The S3 file system connector:  no

Documentation

Does this pull request introduce a new feature? (yes
If yes, how is the feature documented?  docs

PR updated.


Bitfinex Trading Pairs Disappeared

All of Bitfinex's currency pairs are down https://enigma.co/catalyst/status/
This is a pretty critical bug.

The file has been restored. Data is only up to date until 5 days ago, and we continue to investigate, but at least backtesting works again.

Great - thanks so much for the update.
Best,
Jake

On Apr 14, 2018, at 6:28 AM, Victor<EMAIL_ADDRESS>wrote:
The file has been restored. Data is only up to date until 5 days ago, and we continue to investigate, but at least backtesting works again.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or mute the thread.

➤ Victor Grau Serrat commented:
No changes since last report, but the server processes that generate these datasets function properly. Error handling on the server has been improved to prevent or catch similar issues in the future.


fix: issue #541

✨ Codu Pull Request 💻

👉 Please remove the below and replace with your own values, leaving the headers where they are. 👈
Pull Request details:

On Firefox, users are facing an issue where the down arrow on the hero section doesn't work as expected. Fixed the issue in this PR.

Any Breaking changes:

None

Associated Screenshots:

Fixes #541

Ref:- https://github.com/nolimits4web/atropos/issues/13


Hardware acceleration for Chromium fails while Vulkan and VA-API are available

Describe the bug
Chromium is unable to find a driver for Vulkan.
Steps To Reproduce
Steps to reproduce the behavior:

Enable OpenGL

  hardware.opengl = {
    enable = true;
    driSupport = true;
    driSupport32Bit = true;
    setLdLibraryPath = true;
    extraPackages = with pkgs; [
        vaapiVdpau
        libvdpau-va-gl
        nvidia-vaapi-driver
    ];
  };
  environment.sessionVariables = { LIBVA_DRIVER_NAME="nvidia"; };

Ensure VA and Vulkan work

vainfo output:
nix-shell -p libva-utils --run vainfo
Trying display: wayland
Trying display: x11
libva info: VA-API version 1.20.0
libva error: vaGetDriverNames() failed with unknown libva error
libva info: User environment variable requested driver 'nvidia'
libva info: Trying to open /run/opengl-driver/lib/dri/nvidia_drv_video.so
libva info: Found init function __vaDriverInit_1_0
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.20 (libva 2.20.0)
vainfo: Driver version: VA-API NVDEC driver [egl backend]
vainfo: Supported profile and entrypoints
      VAProfileMPEG2Simple            :	VAEntrypointVLD
      VAProfileMPEG2Main              :	VAEntrypointVLD
      VAProfileVC1Simple              :	VAEntrypointVLD
      VAProfileVC1Main                :	VAEntrypointVLD
      VAProfileVC1Advanced            :	VAEntrypointVLD
      VAProfileH264Main               :	VAEntrypointVLD
      VAProfileH264High               :	VAEntrypointVLD
      VAProfileH264ConstrainedBaseline:	VAEntrypointVLD
      VAProfileHEVCMain               :	VAEntrypointVLD
      VAProfileVP8Version0_3          :	VAEntrypointVLD
      VAProfileVP9Profile0            :	VAEntrypointVLD
      VAProfileAV1Profile0            :	VAEntrypointVLD
      VAProfileHEVCMain10             :	VAEntrypointVLD
      VAProfileHEVCMain12             :	VAEntrypointVLD
      VAProfileVP9Profile2            :	VAEntrypointVLD

vulkan-info:
==========
VULKANINFO
==========

Vulkan Instance Version: 1.3.268

Instance Extensions: count = 23
===============================
        VK_EXT_acquire_drm_display             : extension revision 1
        VK_EXT_acquire_xlib_display            : extension revision 1
        VK_EXT_debug_report                    : extension revision 10
Snipped 5000 lines

Observe chrome://gpu not enabling webgpu and throwing an error

libva error: /run/opengl-driver/lib/dri/nvidia_drv_video.so init failed
Warning: vkCreateInstance: Found no drivers!
Warning: vkCreateInstance failed with VK_ERROR_INCOMPATIBLE_DRIVER
    at CheckVkSuccessImpl (../../third_party/dawn/src/dawn/native/vulkan/VulkanError.cpp:101)

Expected behavior
I expected chrome to pick up the vulkan driver and provide webgpu and hardware acceleration
Screenshots

Additional context
The new MS Teams client in the browser seems to require hardware acceleration to keep being supported after march 31st.
Notify maintainers

Metadata
Please run nix-shell -p nix-info --run "nix-info -m" and paste the result.
$ nix-info -m
 - system: `"x86_64-linux"`
 - host os: `Linux 6.1.82, NixOS, 23.11 (Tapir), 23.11.5648.44733514b72e`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.18.1`
 - channels(root): `"home-manager-23.11.tar.gz, nixos-23.11"`
 - nixpkgs: `/nix/var/nix/profiles/per-user/root/channels/nixos`

I noted above that the new MS Teams seems to require webgpu to function correctly, it seems a lie. After a final hail-mary changing the user agent to a known entry, it will gladly load the new web ui... Still would like to solve the driver issue though.

Might be resolved by #293063 which fixes the ANGLE vulkan loader.
Running nixos-unstable chromium with the VK_LOADER_DEBUG=driver environment variable shows it does not find any icds, which leads me to think it is using the unpatched ANGLE vulkan loaded.

@credmp I'm pretty the vulkan issue itself will be fixed by my PR, but could you try running chromium with VK_ADD_DRIVER_FILES=/run/opengl-driver/share/vulkan/icd.d/nvidia_icd.x86_64.json and see if that fixes the libva issue? If it does then this should be fixed when the correct vulkan loader is used.

Running nixos-unstable chromium with the VK_LOADER_DEBUG=driver environment variable shows it does not find any icds, which leads me to think it is using the unpatched ANGLE vulkan loader.

True, it outputs the following (for sake of completeness):
DRIVER:            Searching for driver manifest files
DRIVER:               In following locations:
DRIVER:                  /home/arjen/.config/vulkan/icd.d
DRIVER:                  /etc/xdg/vulkan/icd.d
DRIVER:                  /home/arjen/.nix-profile/etc/xdg/vulkan/icd.d
DRIVER:                  /nix/profile/etc/xdg/vulkan/icd.d
DRIVER:                  /home/arjen/.local/state/nix/profile/etc/xdg/vulkan/icd.d
DRIVER:                  /etc/profiles/per-user/arjen/etc/xdg/vulkan/icd.d
DRIVER:                  /nix/var/nix/profiles/default/etc/xdg/vulkan/icd.d
DRIVER:                  /run/current-system/sw/etc/xdg/vulkan/icd.d
DRIVER:                  /etc/vulkan/icd.d
DRIVER:                  /home/arjen/.local/share/vulkan/icd.d
DRIVER:                  /nix/store/z6f8mmayq23q4rc3g39l9z06gd6d0q2s-cups-2.4.7/share/vulkan/icd.d
DRIVER:                  /nix/store/askhmqjgv40k9apkr5p8ic3228aammh9-gtk+3-3.24.41/share/vulkan/icd.d
DRIVER:                  /nix/store/3hcvaz4nwqcipxdlrddg5hjfz89s9v5q-gtk4-4.12.5/share/vulkan/icd.d
DRIVER:                  /nix/store/ycv1q2dxxvsl24bx4j7zdmnp6b5y88gn-adwaita-icon-theme-45.0/share/vulkan/icd.d
DRIVER:                  /nix/store/j2v9q24rqg69964x1cnqxr34pqvsra0n-hicolor-icon-theme-0.17/share/vulkan/icd.d
DRIVER:                  /nix/store/80bnrnbvzl0f4yjg1b2m0941v7dg2gzs-gsettings-desktop-schemas-45.0/share/gsettings-schemas/gsettings-desktop-schemas-45.0/vulkan/icd.d
DRIVER:                  /nix/store/askhmqjgv40k9apkr5p8ic3228aammh9-gtk+3-3.24.41/share/gsettings-schemas/gtk+3-3.24.41/vulkan/icd.d
DRIVER:                  /nix/store/3hcvaz4nwqcipxdlrddg5hjfz89s9v5q-gtk4-4.12.5/share/gsettings-schemas/gtk4-4.12.5/vulkan/icd.d
DRIVER:                  /nix/store/qmq1whvfjhijwand4wagvb3ws89dx64a-desktops/share/vulkan/icd.d
DRIVER:                  /home/arjen/.nix-profile/share/vulkan/icd.d
DRIVER:                  /nix/profile/share/vulkan/icd.d
DRIVER:                  /home/arjen/.local/state/nix/profile/share/vulkan/icd.d
DRIVER:                  /etc/profiles/per-user/arjen/share/vulkan/icd.d
DRIVER:                  /nix/var/nix/profiles/default/share/vulkan/icd.d
DRIVER:                  /run/current-system/sw/share/vulkan/icd.d
DRIVER:               Found no files
DRIVER:            Searching for driver manifest files
DRIVER:               In following locations:
DRIVER:                  /home/arjen/.config/vulkan/icd.d
DRIVER:                  /etc/xdg/vulkan/icd.d
DRIVER:                  /home/arjen/.nix-profile/etc/xdg/vulkan/icd.d
DRIVER:                  /nix/profile/etc/xdg/vulkan/icd.d
DRIVER:                  /home/arjen/.local/state/nix/profile/etc/xdg/vulkan/icd.d
DRIVER:                  /etc/profiles/per-user/arjen/etc/xdg/vulkan/icd.d
DRIVER:                  /nix/var/nix/profiles/default/etc/xdg/vulkan/icd.d
DRIVER:                  /run/current-system/sw/etc/xdg/vulkan/icd.d
DRIVER:                  /etc/vulkan/icd.d
DRIVER:                  /home/arjen/.local/share/vulkan/icd.d
DRIVER:                  /nix/store/z6f8mmayq23q4rc3g39l9z06gd6d0q2s-cups-2.4.7/share/vulkan/icd.d
DRIVER:                  /nix/store/askhmqjgv40k9apkr5p8ic3228aammh9-gtk+3-3.24.41/share/vulkan/icd.d
DRIVER:                  /nix/store/3hcvaz4nwqcipxdlrddg5hjfz89s9v5q-gtk4-4.12.5/share/vulkan/icd.d
DRIVER:                  /nix/store/ycv1q2dxxvsl24bx4j7zdmnp6b5y88gn-adwaita-icon-theme-45.0/share/vulkan/icd.d
DRIVER:                  /nix/store/j2v9q24rqg69964x1cnqxr34pqvsra0n-hicolor-icon-theme-0.17/share/vulkan/icd.d
DRIVER:                  /nix/store/80bnrnbvzl0f4yjg1b2m0941v7dg2gzs-gsettings-desktop-schemas-45.0/share/gsettings-schemas/gsettings-desktop-schemas-45.0/vulkan/icd.d
DRIVER:                  /nix/store/askhmqjgv40k9apkr5p8ic3228aammh9-gtk+3-3.24.41/share/gsettings-schemas/gtk+3-3.24.41/vulkan/icd.d
DRIVER:                  /nix/store/3hcvaz4nwqcipxdlrddg5hjfz89s9v5q-gtk4-4.12.5/share/gsettings-schemas/gtk4-4.12.5/vulkan/icd.d
DRIVER:                  /nix/store/qmq1whvfjhijwand4wagvb3ws89dx64a-desktops/share/vulkan/icd.d
DRIVER:                  /home/arjen/.nix-profile/share/vulkan/icd.d
DRIVER:                  /nix/profile/share/vulkan/icd.d
DRIVER:                  /home/arjen/.local/state/nix/profile/share/vulkan/icd.d
DRIVER:                  /etc/profiles/per-user/arjen/share/vulkan/icd.d
DRIVER:                  /nix/var/nix/profiles/default/share/vulkan/icd.d
DRIVER:                  /run/current-system/sw/share/vulkan/icd.d
DRIVER:               Found no files
DRIVER:            Searching for driver manifest files
DRIVER:               In following locations:
DRIVER:                  /home/arjen/.config/vulkan/icd.d
DRIVER:                  /etc/xdg/vulkan/icd.d
DRIVER:                  /home/arjen/.nix-profile/etc/xdg/vulkan/icd.d
DRIVER:                  /nix/profile/etc/xdg/vulkan/icd.d
DRIVER:                  /home/arjen/.local/state/nix/profile/etc/xdg/vulkan/icd.d
DRIVER:                  /etc/profiles/per-user/arjen/etc/xdg/vulkan/icd.d
DRIVER:                  /nix/var/nix/profiles/default/etc/xdg/vulkan/icd.d
DRIVER:                  /run/current-system/sw/etc/xdg/vulkan/icd.d
DRIVER:                  /etc/vulkan/icd.d
DRIVER:                  /home/arjen/.local/share/vulkan/icd.d
DRIVER:                  /nix/store/z6f8mmayq23q4rc3g39l9z06gd6d0q2s-cups-2.4.7/share/vulkan/icd.d
DRIVER:                  /nix/store/askhmqjgv40k9apkr5p8ic3228aammh9-gtk+3-3.24.41/share/vulkan/icd.d
DRIVER:                  /nix/store/3hcvaz4nwqcipxdlrddg5hjfz89s9v5q-gtk4-4.12.5/share/vulkan/icd.d
DRIVER:                  /nix/store/ycv1q2dxxvsl24bx4j7zdmnp6b5y88gn-adwaita-icon-theme-45.0/share/vulkan/icd.d
DRIVER:                  /nix/store/j2v9q24rqg69964x1cnqxr34pqvsra0n-hicolor-icon-theme-0.17/share/vulkan/icd.d
DRIVER:                  /nix/store/80bnrnbvzl0f4yjg1b2m0941v7dg2gzs-gsettings-desktop-schemas-45.0/share/gsettings-schemas/gsettings-desktop-schemas-45.0/vulkan/icd.d
DRIVER:                  /nix/store/askhmqjgv40k9apkr5p8ic3228aammh9-gtk+3-3.24.41/share/gsettings-schemas/gtk+3-3.24.41/vulkan/icd.d
DRIVER:                  /nix/store/3hcvaz4nwqcipxdlrddg5hjfz89s9v5q-gtk4-4.12.5/share/gsettings-schemas/gtk4-4.12.5/vulkan/icd.d
DRIVER:                  /nix/store/qmq1whvfjhijwand4wagvb3ws89dx64a-desktops/share/vulkan/icd.d
DRIVER:                  /home/arjen/.nix-profile/share/vulkan/icd.d
DRIVER:                  /nix/profile/share/vulkan/icd.d
DRIVER:                  /home/arjen/.local/state/nix/profile/share/vulkan/icd.d
DRIVER:                  /etc/profiles/per-user/arjen/share/vulkan/icd.d
DRIVER:                  /nix/var/nix/profiles/default/share/vulkan/icd.d
DRIVER:                  /run/current-system/sw/share/vulkan/icd.d
DRIVER:               Found no files
DRIVER:            Searching for driver manifest files
DRIVER:               In following locations:
DRIVER:                  /home/arjen/.config/vulkan/icd.d
DRIVER:                  /etc/xdg/vulkan/icd.d
DRIVER:                  /home/arjen/.nix-profile/etc/xdg/vulkan/icd.d
DRIVER:                  /nix/profile/etc/xdg/vulkan/icd.d
DRIVER:                  /home/arjen/.local/state/nix/profile/etc/xdg/vulkan/icd.d
DRIVER:                  /etc/profiles/per-user/arjen/etc/xdg/vulkan/icd.d
DRIVER:                  /nix/var/nix/profiles/default/etc/xdg/vulkan/icd.d
DRIVER:                  /run/current-system/sw/etc/xdg/vulkan/icd.d
DRIVER:                  /etc/vulkan/icd.d
DRIVER:                  /home/arjen/.local/share/vulkan/icd.d
DRIVER:                  /nix/store/z6f8mmayq23q4rc3g39l9z06gd6d0q2s-cups-2.4.7/share/vulkan/icd.d
DRIVER:                  /nix/store/askhmqjgv40k9apkr5p8ic3228aammh9-gtk+3-3.24.41/share/vulkan/icd.d
DRIVER:                  /nix/store/3hcvaz4nwqcipxdlrddg5hjfz89s9v5q-gtk4-4.12.5/share/vulkan/icd.d
DRIVER:                  /nix/store/ycv1q2dxxvsl24bx4j7zdmnp6b5y88gn-adwaita-icon-theme-45.0/share/vulkan/icd.d
DRIVER:                  /nix/store/j2v9q24rqg69964x1cnqxr34pqvsra0n-hicolor-icon-theme-0.17/share/vulkan/icd.d
DRIVER:                  /nix/store/80bnrnbvzl0f4yjg1b2m0941v7dg2gzs-gsettings-desktop-schemas-45.0/share/gsettings-schemas/gsettings-desktop-schemas-45.0/vulkan/icd.d
DRIVER:                  /nix/store/askhmqjgv40k9apkr5p8ic3228aammh9-gtk+3-3.24.41/share/gsettings-schemas/gtk+3-3.24.41/vulkan/icd.d
DRIVER:                  /nix/store/3hcvaz4nwqcipxdlrddg5hjfz89s9v5q-gtk4-4.12.5/share/gsettings-schemas/gtk4-4.12.5/vulkan/icd.d
DRIVER:                  /nix/store/qmq1whvfjhijwand4wagvb3ws89dx64a-desktops/share/vulkan/icd.d
DRIVER:                  /home/arjen/.nix-profile/share/vulkan/icd.d
DRIVER:                  /nix/profile/share/vulkan/icd.d
DRIVER:                  /home/arjen/.local/state/nix/profile/share/vulkan/icd.d
DRIVER:                  /etc/profiles/per-user/arjen/share/vulkan/icd.d
DRIVER:                  /nix/var/nix/profiles/default/share/vulkan/icd.d
DRIVER:                  /run/current-system/sw/share/vulkan/icd.d
DRIVER:               Found no files
ERROR | DRIVER:    vkCreateInstance: Found no drivers!

Running nixos-unstable chromium with the VK_LOADER_DEBUG=driver environment variable shows it does not find any icds, which leads me to think it is using the unpatched ANGLE vulkan loader.

Running it results in the following additional output:
DEBUG | DRIVER:    Searching for ICD drivers named /nix/store/b1mnns1r35yp5418d1fxd0hzvmxif609-nvidia-x11-535.129.03-6.1.82/lib/libGLX_nvidia.so.0
INFO | DRIVER:     linux_read_sorted_physical_devices:
INFO | DRIVER:          Original order:
INFO | DRIVER:                [0] NVIDIA GeForce RTX 3050
INFO | DRIVER:          Sorted order:
INFO | DRIVER:                [0] NVIDIA GeForce RTX 3050
INFO | DRIVER:     linux_read_sorted_physical_devices:
INFO | DRIVER:          Original order:
INFO | DRIVER:                [0] NVIDIA GeForce RTX 3050
INFO | DRIVER:          Sorted order:
INFO | DRIVER:                [0] NVIDIA GeForce RTX 3050
DEBUG | DRIVER:    Copying old device 0 into new device 0
libva error: /run/opengl-driver/lib/dri/nvidia_drv_video.so init failed

Running it results in the following additional output:

Lastly try with NVD_LOG=1 which enables additional logging in the nvidia-vaapi driver.

Lastly try with NVD_LOG=1 which enables additional logging in the nvidia-vaapi driver.

Here we go:
<PHONE_NUMBER>80139 [358758-358758] ../src/vabackend.c:2140       __vaDriverInit_1_0 Initialising NVIDIA VA-API Driver: 31
<PHONE_NUMBER>90098 [358758-358758] ../src/vabackend.c:2149       __vaDriverInit_1_0 Now have 0 (0 max) instances
<PHONE_NUMBER>92161 [358758-358758] ../src/vabackend.c:2172       __vaDriverInit_1_0 Selecting EGL backend
<PHONE_NUMBER>15606 [358758-358758] ../src/backend-common.c:  31            isNvidiaDrmFd Invalid driver for DRM device: amdgpu
<PHONE_NUMBER>20805 [358758-358758] ../src/vabackend.c:2200       __vaDriverInit_1_0 Exporter failed

interestingly it references amdgpu in the output...

Lastly try with NVD_LOG=1 which enables additional logging in the nvidia-vaapi driver.

Here we go:
<PHONE_NUMBER>80139 [358758-358758] ../src/vabackend.c:2140       __vaDriverInit_1_0 Initialising NVIDIA VA-API Driver: 31
<PHONE_NUMBER>90098 [358758-358758] ../src/vabackend.c:2149       __vaDriverInit_1_0 Now have 0 (0 max) instances
<PHONE_NUMBER>92161 [358758-358758] ../src/vabackend.c:2172       __vaDriverInit_1_0 Selecting EGL backend
<PHONE_NUMBER>15606 [358758-358758] ../src/backend-common.c:  31            isNvidiaDrmFd Invalid driver for DRM device: amdgpu
<PHONE_NUMBER>20805 [358758-358758] ../src/vabackend.c:2200       __vaDriverInit_1_0 Exporter failed

interestingly it references amdgpu in the output...

I suspect chromium is explicitly blacklisting the NVIDIA GPU and thus passing the other device to libva. Which then leads to that check failing inside the libva driver.

yes, it seems like that. However using --ignore-gpu-blocklist does not change it.

Does Vulkan generally work on chromium now? I use brave and I see it doesn't have a patch like #293063. I can't get Vulkan enabled in chrome://gpu on either browser

Does Vulkan generally work on chromium now? I use brave and I see it doesn't have a patch like #293063. I can't get Vulkan enabled in chrome://gpu on either browser

Vulkan works in ungoogled-chromium for me, doesn't work in brave.


Add a seperate logger for migration client/prevalidator logs

related https://github.com/wso2-extensions/apim-migration-resources/pull/222

related https://github.com/wso2-extensions/apim-migration-resources/pull/222

We will not do this as there is no real gain by moving the logs to a separate file. Including them in same carbon log is more beneficial as debugging will be easier.


Allow specifying default resource constraints when running swarm manager

Allow specifying default resource constraints with cluster options. This is very useful when using other tools interacting with swarm cannot create containers because they do not expose options for --cpu-shares or --memory.

Please sign your commits following these rules:
https://github.com/docker/docker/blob/master/CONTRIBUTING.md#sign-your-work
The easiest way to do this is to amend the last commit:
$ git clone -b "default-resources" git@github.com:clinta/swarm.git somewhere
$ cd somewhere
$ git commit --amend -s --no-edit
$ git push -f

Ammending updates the existing PR. You DO NOT need to open a new one.

Closing due to https://github.com/docker/swarm/pull/2853


Add MappingEqualityComparator

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Comparison is base (03d9e0f) 100.00% compared to head (c1abd3f) 100.00%.

Additional details and impacted files
@@            Coverage Diff            @@
##              main      #373   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files           58        58
  Lines         2058      2068   +10
  Branches       372       372
=========================================
+ Hits          2058      2068   +10

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Meaning of semigroup for StrMap

For Data.Map we have semigroup append as union, while for StrMap it appears to be the union of keys where matching entries have the reverse append of the value:
m1: fromList ((Tuple "d" "zz") : (Tuple "a" "a") : (Tuple "b" "b") : Nil)
m2: fromList ((Tuple "c" "z") : (Tuple "a" "x") : (Tuple "b" "y") : Nil)
m1 <> m2: fromList ((Tuple "c" "z") : (Tuple "a" "xa") : (Tuple "b" "yb") : (Tuple "d" "zz") : Nil)

Well whatever we pick, the StrMap instance obviously has a bug. I think the two useful instances are union and unionWith (<>).

Does anyone have an argument for one of these options over the other? Personally, absent arguments to the contrary, I'd opt for matching the semantics of Data.Map.

I'm not aware of any argument for one over the other.

I don't have any good arguments for one over the other. I would find the current behaviour surprising if I'd tried it though. Anecdotally the union version would be my expectation... so if we're going to provide an instance that one would be my vote.


Permission denied (publickey) using public key and ForwardAgent yes on second machine

Version: 1.43.0 (user setup)
Commit: 78a4c91400152c0f27ba4d363eb56d2835f9903a
Date: 2020-03-09T19:47:57.235Z
Electron: 7.1.11
Chrome: 78.0.3904.130
Node.js: 12.8.1
V8: 7.8.279.23-electron.0
OS: Windows_NT x64 10.0.18363
Steps to Reproduce:

Use ssh-keygen to generate a private and public key
Add the public key to remote host <HOST 1> into .authorized keys
Add the public key to another remote host <HOST 2>
Setup .ssh\config locally to allow ForwardAgent

# Enable key forwarding for all known hosts
Host *
    ForwardAgent yes
[...]

Connect to remote host <HOST 1> using vscode and SSH Extension.
Open the terminal on the remote <HOST 1>and try to connect to <HOST 2>

Error:
Permission denied (publickey).

I am having the exact same issue. Yesterday when I was using 1.42.1 version I wasn't experiencing any issue at all.

I have reverted to version 0.49 for both Remote - SSH and Remote - SSH Editing Configuration Files modules and the issue is gone. I think this issue is duplicate of https://github.com/microsoft/vscode/issues/92331

iMO it's related but not dup since the remote connection does work for me

@ole1986 can you try this in your local settings?
    "remote.SSH.path": "C:\\Windows\\System32\\OpenSSH\\ssh.exe",     "remote.SSH.useLocalServer": false
It worked for me with the 0.50 version. Before that I had the same issues with my VM when I was trying to access another host by agent forwarding.


Use a length-1 deque for ilen()

Re: Issue #116, this PR borrows @wbolster's trick of feeding an enumerate()-wrapped iterable into a length-1 deque to get the length. This buys a slight speed increase.

this should have a __len__() check as i suggested in #116

...or maybe not depending on the intended semantics (forcibly consume or not).

Trying len() first makes sense; I've added that.

as i hinted in https://github.com/erikrose/more-itertools/pull/117#issuecomment-283613962 i am not sure what the expected semantic are so this may be a breaking change...

Hmm, yes. I don't think one would generally think of using ilen() as a version of consume(), but now that I think about it, I could imagine using it.
@erikrose , thoughts about making that explicit?
def ilen(iterable, n=None):
    """Return the number of items produced by advancing the iterator *n*
    steps ahead.

    If *n* is ``None`` the iterable will be entirely consumed::

        >>> ilen((x for x in range(10)))
        10
        >>> ilen((x for x in range(10) if x % 3 == 0))
        4

    If the iterable has fewer than *n* items, the length of the iterable will
    be returned::

        >>> iterable = (x for x in 'abcd')
        >>> ilen(iterable, 10)
        4

    """

OK, maybe the n is a bridge too far. I've zapped the __len__ stuff again and am left with the original optimization. I'll squash the commits upon merge.


Add missing skip_test decorators.

Adds two missing tests.skip_data decorators. Running the tests with the --no-data option now gives me no errors.

Thanks @ajdawson


[Bug] Ghost Transactions (txn's not propagating to the network)

🐛 Bug Report

When attempting to deploy a program or execute transitions, they do not appear on-chain despite receiving a "successfully broadcast" message from the snarkos cli.
Steps to Reproduce

Attempt to deploy the following aleo instructions below with snarkos developer deploy multiparty_pvp_utils_v008.aleo --priority-fee 10000000 --private-key $PK --query https://api.explorer.aleo.org/v1 --broadcast https://api.explorer.aleo.org/v1/testnet3/transaction/broadcast.  Link to code: https://github.com/puzzlehq/serengeti/blob/main/multiparty_pvp_utils_vXXX/build/main.aleo

program multiparty_pvp_utils_v008.aleo;
struct Mssage:
    field_1 as field;
    field_2 as field;
    field_3 as field;
    field_4 as field;
    field_5 as field;

record Answer:
    owner as address.private;
    challenger_address as address.private;
    opponent_address as address.private;
    game_address as address.private;
    amount as u64.private;
    nonce as field.private;
    answer as field.private;
    message_1 as field.private;
    message_2 as field.private;
    message_3 as field.private;
    message_4 as field.private;
    message_5 as field.private;

record AuditMintAnswer:
    owner as address.private;
    answer_owner as address.private;
    challenger_address as address.private;
    opponent_address as address.private;
    game_address as address.private;
    amount as u64.private;
    nonce as field.private;
    answer as field.private;
    message_1 as field.private;
    message_2 as field.private;
    message_3 as field.private;
    message_4 as field.private;
    message_5 as field.private;

record RevealAnswer:
    owner as address.private;
    challenger_address as address.private;
    opponent_address as address.private;
    game_address as address.private;
    amount as u64.private;
    nonce as field.private;
    answer as field.private;
    sig as signature.private;

record AuditRevealAnswer:
    owner as address.private;
    challenger_address as address.private;
    opponent_address as address.private;
    game_address as address.private;
    amount as u64.private;
    nonce as field.private;
    answer as field.private;
    sig as signature.private;

record Key:
    owner as address.private;
    seed as field.private;
    amount as u64.private;
    challenger as address.private;
    opponent as address.private;
    game_multisig as address.private;

record AuditKey:
    owner as address.private;
    seed as field.private;
    amount as u64.private;
    challenger as address.private;
    opponent as address.private;
    game_multisig as address.private;

function mint_answer:
    input r0 as address.private;
    input r1 as address.private;
    input r2 as address.private;
    input r3 as u64.private;
    input r4 as field.private;
    input r5 as field.private;
    input r6 as field.private;
    input r7 as field.private;
    input r8 as field.private;
    input r9 as field.private;
    input r10 as field.private;
    input r11 as signature.private;
    cast r6 r7 r8 r9 r10 into r12 as Mssage;
    sign.verify r11 r0 r12 into r13;
    assert.eq true r13;
    cast r0 r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 into r14 as Answer.record;
    cast aleo16hf8hfpwasnn9cf7k2c0dllc56nn7qt547qxgvgwu6pznw4trvqsx68kls r0 r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 into r15 as AuditMintAnswer.record;
    output r14 as Answer.record;
    output r15 as AuditMintAnswer.record;

function mint_multisig_key:
    input r0 as field.private;
    input r1 as u64.private;
    input r2 as address.private;
    input r3 as address.private;
    input r4 as address.private;
    cast r3 r0 r1 r2 r3 r4 into r5 as Key.record;
    cast aleo16hf8hfpwasnn9cf7k2c0dllc56nn7qt547qxgvgwu6pznw4trvqsx68kls r0 r1 r2 r3 r4 into r6 as AuditKey.record;
    output r5 as Key.record;
    output r6 as AuditKey.record;

function reveal_answer:
    input r0 as Answer.record;
    input r1 as signature.private;
    assert.eq r0.owner r0.challenger_address;
    cast r0.message_1 r0.message_2 r0.message_3 r0.message_4 r0.message_5 into r2 as Mssage;
    sign.verify r1 r0.challenger_address r2 into r3;
    assert.eq true r3;
    cast r0.game_address r0.challenger_address r0.opponent_address r0.game_address r0.amount r0.nonce r0.answer r1 into r4 as RevealAnswer.record;
    cast aleo16hf8hfpwasnn9cf7k2c0dllc56nn7qt547qxgvgwu6pznw4trvqsx68kls r0.challenger_address r0.opponent_address r0.game_address r0.amount r0.nonce r0.answer r1 into r5 as AuditRevealAnswer.record;
    output r4 as RevealAnswer.record;
    output r5 as AuditRevealAnswer.record;

See the following logs:

📦 Creating deployment transaction for 'multiparty_pvp_utils_v008.aleo'...

✅ Created deployment transaction for 'multiparty_pvp_utils_v008.aleo'
✅ Successfully broadcast deployment at1a6jpl4ys9r5n5jvmpywnpy8e35rsgdyukllfztqxk0kdczh6f59q54ttjt ('multiparty_pvp_utils_v008.aleo') to https://api.explorer.aleo.org/v1/testnet3/transaction/broadcast.
at1a6jpl4ys9r5n5jvmpywnpy8e35rsgdyukllfztqxk0kdczh6f59q54ttjt

Upon searching for the transaction on hamp, aleo explorer, or aleo123, it does not appear.

Expected Behavior

The transaction should show up on chain when receiving a successful response from the snarkos cli.
Your Environment

 v2.2.4

 v1.73.0

I was able to deploy this program using the following command.
snarkos developer deploy "multiparty_pvp_utils_v008.aleo" --path "./" --private-key <PK> --query "https://api.explorer.aleo.org/v1" --broadcast "https://api.explorer.aleo.org/v1/testnet3/transaction/broadcast" --priority-fee 0

See (here)[https://explorer.aleo.org/program/multiparty_pvp_utils_v008.aleo]
To troubleshoot "ghost transactions" please:

check that you have sufficient fees to pay for the deployment.
if you are sure that you have sufficient fees, you can check:

the /testnet3/memoryPool/transactions endpoint for transaction in the mempool
the /testnet3/transaction/confirmed/:id endpoint to see whether it was accepted or rejected.

I was able to deploy this program using the following command.
snarkos developer deploy "multiparty_pvp_utils_v008.aleo" --path "./" --private-key <PK> --query "https://api.explorer.aleo.org/v1" --broadcast "https://api.explorer.aleo.org/v1/testnet3/transaction/broadcast" --priority-fee 0

See here
To troubleshoot "ghost transactions" please:

check that you have sufficient fees to pay for the deployment.
if you are sure that you have sufficient fees, you can check:

the /testnet3/memoryPool/transactions endpoint for transaction in the mempool
the /testnet3/transaction/confirmed/:id endpoint to see whether it was accepted or rejected.

thanks for the prompt reply! much appreciated.

@d0cd It appears I'm running into this issue with the following program and am getting 404s on the memoryPool endpoints. Additionally just getting the generic "Missing transaction ..." despite snarkos returning a successful response. Please let me know if there is a better way to debug.
https://api.explorer.aleo.org/v1/testnet3/memoryPool/transactions
https://api.explorer.aleo.org/v1/testnet3/memoryPool/transmissions
https://api.explorer.aleo.org/v1/testnet3/memoryPool/solutions

Attempt to deploy the following aleo instructions below with snarkos developer deploy "wheres_alex_v008.aleo" --path "./" --private-key $PK --query "https://api.explorer.aleo.org/v1" --broadcast "https://api.explorer.aleo.org/v1/testnet3/transaction/broadcast" --priority-fee 0 Link to code: https://github.com/puzzlehq/serengeti/blob/main/wheres_alex_vXXX/build/main.aleo

@d0cd following up here as this may be a new bug for ghost transactions
Turns out we had a transition in our puzzle_pieces program that had 3 input records but only had 2 outputs (just 2 records).
We were able to deploy the puzzle_pieces program with this function to the network and it wasn't causing errors until using the program as an import in our wheres_alex program.
The details can be seen in our puzzle_pieces_v009.aleo on our joint_stake_transfer_to_winner function here.
snarkOS developer deploy wheres_alex_v009.aleo gave no errors -- just a txn id and never seemed to land
But trying to deploy through aleo.tools spit back logs that it expected 3 outputs but only found 2. See pic attached for that error message


Bootable SD card image - master

Tested with yesterday openembedded-core's master-next. Built from scratch and everything was OK.

This is because linux-linaro-qcom target builds boot.img which is needed to build SD card image.
I guess boot.img is not default kernel recipe's artifact and moreover is created in on_deploy task. Probably WIC is trying to build image earlier after kernel and rootfs are built, but before deploy. So, on this stage zImage(or whatever format) and rootfs are ready, but still in their work dirs.
Will look at this closer.
Dnia 8 listopada 2017 22:01:17 CET, Nicolas Dechesne<EMAIL_ADDRESS>napisał(a):

ndechesne commented on this pull request.

@@ -21,3 +21,11 @@ MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += "
"

QCOM_BOOTIMG_ROOTFS ?= "mmcblk0p10"
+
+# Define rootfs partiton (kernel argument)
+SD_QCOM_BOOTIMG_ROOTFS ?= "mmcblk1p7"
+
+# Assemble SD card
+IMAGE_FSTYPES_append = " wic"
+WKS_FILE = "dragonboard410c-sd.wks"
+WKS_FILE_DEPENDS = "firmware-qcom-dragonboard410c-bootloader-sdcard
linux-linaro-qcomlt"
i missed that earlier. why do we have linux-linaro-qcomlt here? a
$MACHINE conf file should not depends on an hard coded kernel recipe.
Users of the BSP layer should be able to change the kernel.
--
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub:
https://github.com/ndechesne/meta-qcom/pull/49#pullrequestreview-75246444

-- Wysłane za pomocą K-9 Mail.

Hi,
I'm sorry it took so long, but didn't have spare time to manage it.
Finally, checked it once more and you're right. This dependency is not required at all.
PR updated.

Many thanks for your patience and good work. I am merging this now!
We need to monitor when the WIC patches get merged into the stable branches, so that we can apply these patches in meta-qcom release branches!

Thank you for support. I'll do my best to monitor stable branches and if I see all is merged then will port meta-qcom as well.


{#Chart} some ngchart doesn't work

Bar Vertical 2D
Bar Horizontal 2D
Bar Vertical Stacked
Bar Vertical Normalized

@Lozyboobob for me the 4 graph work can you give more details ?


Enhancement: Export/download as Excel Spreadsheet

Hi Mark,
Please could you enhance SheetSync to have functionality to export/download a spreadsheet as a Microsoft Excel Spreadsheet and perhaps other specified file formats e.g. .csv?
Thanks,
Jethro

I have tried the various methods described in this article: https://developers.google.com/drive/v2/web/manage-downloads#downloading_a_file, on my own spreadsheet instances and drive service, to no avail :(


query example

From:
for item in Thread.query('ForumName', subject__begins_with='mygreatprefix'):
print("Query returned item {0}".format(item))
it is not clear what 'ForumName' means or its intention

I have no idea what you're talking about. ForumName does not appear in our project.


Hello! I'm creator of Epic Fight Mod and I suggest you modify some code causing crashes with my mod.

Your mod directly uses a raw function that is depreciated by Forge. It completely overwrites the attribute map of Husk, therefore it removes the attributes I registered.
com.infamous.dungeons_mobs.worldgen.EntityTypeAttributes, Line 65
GlobalEntityTypeAttributes.put(EntityType.HUSK, HuskEntity.func_234342_eQ_()
.createMutableAttribute(Attributes.ARMOR, 10.0D)
.createMutableAttribute(Attributes.MOVEMENT_SPEED, 0.17D)
.createMutableAttribute(Attributes.KNOCKBACK_RESISTANCE, 0.6D)
.create());
So whenever Husk spawns, My mod can't find the attribute I registered. It'll lead to NullPointerException.
I recommend you to use EntityAttributeModificationEvent. It'll not overwrite the attribute map from other mods so that improve the compatibility with other mods.
Sincerely,

Will fix in next release, that event was not a thing when I had written that particular line of code.


Remove legacy TopBarShift

TopBarShift doesn't do anything anymore.
There seems to be some legacy Topbar enhancement but it's for the old topbar and has not been enabled in ages.

Some games may still be using settings.TopBarShift for visual styling purposes (eg. with a custom topbar of some sort).
Hence I think it would be a good idea to remove the setting from the module but preserve its internal functionality to enable compatibility.

Some games may still be using settings.TopBarShift for visual styling purposes (eg. with a custom topbar of some sort).
Hence I think it would be a good idea to remove the setting from the module but preserve its internal functionality to enable compatibility.

Some games may still be using settings.TopBarShift for visual styling purposes (eg. with a custom topbar of some sort).
Hence I think it would be a good idea to remove the setting from the module but preserve its internal functionality to enable compatibility.

It appears that you are right.
Apparently it does it via this

I still think it should use some other method to get if the feature is enabled than this hacky way, and it should use ScreenGui.IgnoreGuiInset instead of a static -35 as the size of the Roblox topbar can be different than -35

I will close this as the feature can still be usefull i guess. Though it needs fixing


Cache results of make setup

Currently, the target jupyter depends on targets upload-code, upload-notebooks. But in fact, it depends also on make setup since it requires a base image to exist.
However, make setup will work over and over even if the base image already exists. We can check if the project's base image exists, and if so, we can skip neuro-setup.

added a check-file .setup_done -- checking if image exists is long. closing.


simple convnet not working

Hi,
I wonder why the following conv-net is not learning? is that because the gradient of the convolutional layer in Haiku? Does someone has the same experience?

import itertools
import time

import haiku as hk
import jax
import jax.numpy as jnp
import numpy.random as npr
import optax
from examples import datasets
from jax import grad, jit, random
from jax.experimental import optimizers, stax
from jax.experimental.stax import (
    Dense,
    Flatten,
    GeneralConv,
    LogSoftmax,
    Relu,
    elementwise,
)

def net_fn(x) -> jnp.ndarray:
    """Standard LeNet-300-100 MLP network."""
    mlp = hk.Sequential(
        [
            hk.Conv2D(output_channels=16, kernel_shape=[5, 5], padding="SAME"),
            jax.nn.relu,
            hk.MaxPool(window_shape=[2, 2], strides=[2, 2], padding="VALID"),
            hk.Conv2D(output_channels=32, kernel_shape=[5, 5], padding="SAME"),
            jax.nn.relu,
            hk.MaxPool(window_shape=[2, 2], strides=[2, 2], padding="VALID"),
            hk.Flatten(),
            hk.Linear(10),
        ]
    )
    return mlp(x)

net = hk.without_apply_rng(hk.transform(net_fn))

def loss(params, batch):
    inputs, targets = batch
    preds = net.apply(params, inputs)
    return -jnp.mean(jnp.sum(preds * targets, axis=1))

def accuracy(params, batch):
    inputs, targets = batch
    target_class = jnp.argmax(targets, axis=1)
    predicted_class = jnp.argmax(net.apply(params, inputs), axis=1)
    return jnp.mean(predicted_class == target_class)

if __name__ == "__main__":

    step_size = 0.001
    num_epochs = 10
    batch_size = 128
    momentum_mass = 0.9

    train_images, train_labels, test_images, test_labels = datasets.mnist()

    num_train = train_images.shape[0]
    num_complete_batches, leftover = divmod(num_train, batch_size)
    num_batches = num_complete_batches + bool(leftover)

    def data_stream():
        rng = npr.RandomState(0)
        while True:
            perm = rng.permutation(num_train)
            for i in range(num_batches):
                batch_idx = perm[i * batch_size : (i + 1) * batch_size]
                yield train_images[batch_idx].reshape(-1, 1, 28, 28), train_labels[
                    batch_idx
                ]

    batches = data_stream()

    optimizer = optax.chain(
        optax.scale_by_adam(b1=0.9, b2=0.999, eps=1e-8), optax.scale(-step_size)
    )

    @jit
    def update(params, optimizer_state, batch):
        grads = grad(loss)(params, batch)
        optim_update, optimizer_state = optimizer.update(grads, optimizer_state, params)
        params = optax.apply_updates(params, optim_update)
        return params, optimizer_state

    params = net.init(jax.random.PRNGKey(42), next(batches)[0])

    # params = init_params
    optimizer_state = optimizer.init(params)

    itercount = itertools.count()

    print("\nStarting training...")
    for epoch in range(num_epochs):
        start_time = time.time()
        for _ in range(num_batches):
            params, optimizer_state = update(params, optimizer_state, next(batches))

        epoch_time = time.time() - start_time

        train_acc = accuracy(
            params, (train_images.reshape(-1, 1, 28, 28), train_labels)
        )
        test_acc = accuracy(params, (test_images.reshape(-1, 1, 28, 28), test_labels))
        print("Epoch {} in {:0.2f} sec".format(epoch, epoch_time))
        print("Training set accuracy {}".format(train_acc))
        print("Test set accuracy {}".format(test_acc))

The results are
Starting training...
Epoch 0 in 1.73 sec
Training set accuracy 0.13341666758060455
Test set accuracy 0.14079999923706055
Epoch 1 in 0.34 sec
Training set accuracy 0.09730000048875809
Test set accuracy 0.10090000182390213
Epoch 2 in 0.32 sec
Training set accuracy 0.09966666996479034
Test set accuracy 0.10300000756978989
Epoch 3 in 0.33 sec
Training set accuracy 0.12701666355133057
Test set accuracy 0.12640000879764557
Epoch 4 in 0.34 sec
Training set accuracy 0.13825000822544098
Test set accuracy 0.13690000772476196
Epoch 5 in 0.37 sec
Training set accuracy 0.11961666494607925
Test set accuracy 0.1193000078201294
Epoch 6 in 0.34 sec
Training set accuracy 0.16324999928474426
Test set accuracy 0.1599000096321106
Epoch 7 in 0.33 sec
Training set accuracy 0.1628333330154419
Test set accuracy 0.16090001165866852
Epoch 8 in 0.38 sec
Training set accuracy 0.16438333690166473
Test set accuracy 0.1623000055551529
Epoch 9 in 0.33 sec
Training set accuracy 0.10546667128801346
Test set accuracy 0.10450000315904617
Epoch 10 in 0.35 sec
Training set accuracy 0.1001666709780693
Test set accuracy 0.09920000284910202
Epoch 11 in 0.34 sec
Training set accuracy 0.09881667047739029
Test set accuracy 0.09830000251531601
Epoch 12 in 0.32 sec
Training set accuracy 0.09871666878461838
Test set accuracy 0.09800000488758087
Epoch 13 in 0.33 sec
Training set accuracy 0.09881667047739029
Test set accuracy 0.09830000251531601
Epoch 14 in 0.34 sec
Training set accuracy 0.10068333148956299
Test set accuracy 0.10000000149011612
Epoch 15 in 0.35 sec
Training set accuracy 0.1003333330154419
Test set accuracy 0.0998000055551529
Epoch 16 in 0.37 sec
Training set accuracy 0.11216666549444199
Test set accuracy 0.11060000211000443

I've made some edits to your example to get it converging https://colab.research.google.com/gist/tomhennigan/3ee83d39e1ad9f359ec122a6a26dad21/haiku-issue-81.ipynb.
Epoch 9 in 1.01 sec
Training set accuracy 0.9842666983604431
Test set accuracy 0.9717000722885132

The main changes here are:

Changing -jnp.mean(jnp.sum(preds * targets, axis=1)) to -jnp.sum(targets * jax.nn.log_softmax(logits)) in loss.
Passing NHWC input rather than NCHW (changing the reshapes from 1, 28, 28 to 28, 28, 1).
(Minor) I've used TensorFlow datasets since I was not sure where your examples module comes from. This required explicitly one_hot encoding the labels and casting images to f32.

It might be useful to look at our mnist example: https://github.com/deepmind/dm-haiku/blob/master/examples/mnist.py.

Thank @tomhennigan very much for the great answer!


Add Perimeter Institute, Waterloo, Canada

Website https://perimeterinstitute.ca/
Info about funding:
https://perimeterinstitute.ca/funding
(inc. a $100 million commitment from the governments of Ontario+Canada)

@denisrosset Pull request merged.
Please notice that free educational subscription for JetBrains tools is for students and teachers only, and is valid for using the tools for educational purpose only. If employees of this Institute who are not students, nor teachers, also need a license for JetBrains tools, they are eligible for an academic discount for the tools. They can get the discount by email to<EMAIL_ADDRESS>Thank you!


How to run the existing unit tests in the project to verify that my changes are not breaking anything in the existing codebase?

I had a added a method in initialization.py for orthogonalization of tensors,how do I verify that my changes are not hindering with existing codebase

you can run pytest and pylint locally on your computer. Once you submit a PR it will also trigger a series of checks on github


Support for multiple keyspace connection?

Hi Guys,
Does cequel support connection to multiple keyspaces?
Eg, one of the models connects to keyspace1, while other connects to keyspace2.
I have been trying to do, but not able to figure it out, as the new connection overrides the previous one.
Thanks in Advance!

@outoftime @pezra Guys, any suggestions on this.

Hi @rootcss,
You can maybe hack around, but it is not recommendable.
You should use different keyspaces for different applications, or different environment configuration (e.g. test / staging / production).

I would be inclined to use one keyspace and multiple column families, primarily because the activities you are storing seem like one logical set of data.
If you use multiple keyspaces, your application would have to contain some logic to figure out which one to query. I think this type of logic is better pushed down into Cassandra (via a tenant aware index).

More about it at:
http://stackoverflow.com/a/22012348
http://stackoverflow.com/a/22390831/1172125
Regards,
Bernardo.

Duplicated of #243.

Thanks @bernardofire for the detailed reply :)


Jonmv/async doc v1 implementation

@bjorncs please review. Will add tests as they're ready. Note that first 5 commits are already in #14550

Hmm, last commit wasn't good. Should use Condition for this.

I think we're almost ready to roll. May as well have this merged. Only need some tests for the REST API handler now!


2.x branch sitemaps

A package of 'improvements' to sitemap handling, including:

'from' heuristic to skip loc's which have a lower lastmod than the provided timestamp. Includes refactored sitemap parse to eval sitemap node at the end of element to allow heuristic on indexes.
optional error escalation: exceptions propagated instead of logged
more defensive content-type checking: null check
accept '204 no content' as successful response
XML stream filter to remove / ignore invalid XML chars. Currently: unescaped control chars inc. '&', illegal white space preamble

Also, somewhat accidentally, includes an option to skip references we know would be beyond the depth limit.
Apologies for the messy commit history! I attempted to cherry pick only relevant changes.
Regards,
Simon

@essiembre Happy to fill in any gaps if you point me in the right direction.

Woah! Thanks for your contribution.  I will merge it and also check if some of it can make it to version 3 (master branch).   I'll let you know if I encounter issues.
I only have only one question/comment so far. The HTTP Collector already supports filtering documents on dates (DateMetadataFilter, in Importer module) and also supports not recrawling documents that do not feed a certain elapsed time.  These two features combined can give you the same end result as the "from" you added.  Did you add the "from" because you were not familiar with other options, or because you find it more convinient to filter it right at the source.
I can see rejecting sitemap entries as the sitemap is being read could significantly reduce the number of sitemap entries being queued for processing. For that alone, I think it is a worthwhile addition, but I am curious to find out more about your use case.

One feature I think is having no effect is the "quitAtDepth" on the LinkExtractorStage.   The reason being, URLs that are too deep are already rejected before link extraction could take place.   If you have evidence of the contrary, please let me know how to reproduce as it woiuld be a bug IMO.

@essiembre great, glad to contribute! Indeed, I wanted to prevent unnecessary downloading of ancient sitemaps which can be large. One of our use cases is to frequently get the latest articles from news sites by utilising only sitemaps, we want to run this on a managed schedule instead of recrawling based on update frequency and such (I'm not very familiar with that mode of operation yet).
One thing in particular to note for version 3 might be the use of StripInvalidCharInputStream - it makes the XML parsing much more robust to the nonsense that turns up in the Google index style of site map.
FYI, some more sitemap related patches to PR soon...


Don't Merge! PR real time test for webhook case

Docs Build status updates of commit e73f1bf:
:clock10: Full build: the average full build time is 6 min(s) 7 sec(s), this is based on the last 290 build(s) for this repository.
:warning: This is a FULL build due to the incremental build being disabled in configuration file (.openpublishing.publish.config.json in 'live' branch). For more detailed info, please click here.

Docs Build status updates of commit e73f1bf:
:x: Validation status: errors
Please follow instructions here which may help to resolve issue.

File
Status
Preview URL
Details
Dependent Files

:x:Error

Details

Line 216: [Error] Call W:\ikfs-s\.optemp\packages\opbuild.postprocessorwrapper.1.73.0-alpha-20190417203642-ga614bb9\tools\Microsoft.OpenPublishing.Build.Applications.PostProcessorWrapper.exe failed. Please retry building your content. If the issue still happens, open a ticket in http://SiteHelp.

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.