PhantomJS #10522: Function.prototype.bind() breaks when running under 'webserver' module (test case attached)

Here's a minimal test case that will fail when run. It's using the common trick of making a short alias using Function.prototype.bind(), ie,:
var log = console.log.bind(console)

Here's the test case:
#!/usr/bin/env casperjs

var casper = require('casper').create();
var server = require('webserver').create();
var ipAndPort = '<IP_ADDRESS>:8585';

var log = console.log.bind(console)

server.listen(ipAndPort, function(req, res) {

	casper.start('https://google.com');
	casper.then(function(){
		log('THIS LINE FAILS')
	});

	// This is somewhat misnamed: casper.run() starts the casper job, then runs the callback runs when complete
	casper.run(function(){
		res.close();
	});
});
log('CasperJS server running at http://'+ipAndPort+'/');

The log('THIS LINE FAILS') will fail with
TypeError: instanceof called on an object with an invalid prototype property

Note the object is a simple string, nothing special. It shouldn't have an invalid prototype.

What does give
casper.echo('THIS LINE FAILS')

?

Why do you use
var log = console.log.bind(console);

instead of simply
var log = console.log;

? The former creates a new function with this bound to console, while the latter keeps the call to console.log intact.
Could you demonstrate the bind problem with a function other than console.log and/or a different value bound to this?

The console object methods need to be bound to the console object when passed as a reference, otherwise it fails. This is most probably for security reasons.

Ok, @n1k0 thanks for explanation.
I verified the (modified) test case, it fails with phantomjs 1.9.6 and works with 2.0.0:
ENGINE_EXECUTABLE=~/bin/phantomjs-1.9.6 bin/casperjs bindconsole
CasperJS server running at http://<IP_ADDRESS>:8585/
[info] [phantom] Starting...
[info] [phantom] Running suite: 3 steps
[debug] [phantom] opening url: https://google.com/, HTTP GET
[debug] [phantom] Navigation requested: url=https://google.com/, type=Other, willNavigate=true, isMainFrame=true
[debug] [phantom] Navigation requested: url=https://www.google.de/?gfe_rd=cr&ei=iPacVpbfC8eA8QeV2ZTIDg, type=Other, willNavigate=true, isMainFrame=true
[debug] [phantom] url changed to "https://www.google.de/?gfe_rd=cr&ei=iPacVpbfC8eA8QeV2ZTIDg"
[debug] [phantom] Successfully injected Casper client-side utilities
[debug] [phantom] start page is loaded
[info] [phantom] Step anonymous 3/3 https://www.google.de/?gfe_rd=cr&ei=iPacVpbfC8eA8QeV2ZTIDg (HTTP 200)
ECHO
CONSOLE

ENGINE_EXECUTABLE=~/bin/phantomjs-2.0.0 bin/casperjs bindconsole
CasperJS server running at http://<IP_ADDRESS>:8585/
[info] [phantom] Starting...
[info] [phantom] Running suite: 3 steps
[debug] [phantom] opening url: https://google.com/, HTTP GET
[debug] [phantom] Navigation requested: url=https://google.com/, type=Other, willNavigate=true, isMainFrame=true
[debug] [phantom] Navigation requested: url=https://www.google.de/?gfe_rd=cr&ei=IvecVpCaBYKh8wfAsZz4CQ, type=Other, willNavigate=true, isMainFrame=true
[debug] [phantom] url changed to "https://www.google.de/?gfe_rd=cr&ei=IvecVpCaBYKh8wfAsZz4CQ"
[debug] [phantom] Successfully injected Casper client-side utilities
[debug] [phantom] start page is loaded
[info] [phantom] Step anonymous 3/3 https://www.google.de/?gfe_rd=cr&ei=IvecVpCaBYKh8wfAsZz4CQ (HTTP 200)
ECHO
CONSOLE
THIS LINE FAILS
ECHO
ECHO
[info] [phantom] Step anonymous 3/3: done in 680ms.
[info] [phantom] Done 3 steps in 699ms

Test case used
var casper = require('casper').create({
  verbose: true,
  logLevel: 'debug'
});
var server = require('webserver').create();
var ipAndPort = '<IP_ADDRESS>:8585';

var log = console.log.bind(console)

server.listen(ipAndPort, function(req, res) {

    casper.start('https://google.com');
    casper.then(function(){
        casper.echo('ECHO');
        console.log('CONSOLE');
        log('THIS LINE FAILS');
        casper.echo('ECHO');
        casper.echo('ECHO');
    });

    // This is somewhat misnamed: casper.run() starts the casper job, then runs the callback runs when complete
    casper.run(function() {
        res.statusCode = 200;
        res.write('OK');
        res.close();
    });
});
log('CasperJS server running at http://'+ipAndPort+'/');

Thanks @istr!

This is a well-known issue:
http://stackoverflow.com/questions/34046318/how-to-deal-with-console-log-bindconsole-throwing-error-in-phantomjs and it seems that many people have tried to get grips on this with the best known workaround to use underscore.bind.
It seems, however that there is a slight chance fixing this in CasperJS, using a different shim for bind in bootstrap.js.
@mikemaccana Would be nice if you try out different shims there and come up with a PR if you succeed with a different shim.

After a quick check it turns out that the cujos polyfill mentioned here solves the issue for me.
I will create a bugfix branch for that and a PR.

PR created: https://github.com/n1k0/casperjs/pull/1404. Please check if this works for you.

Ok, thanks for merging. Will reduce the test case for this issue and integrate it in the test suite in a second PR.

Thanks @n1k0 and @istr. I'm about to try the cujo polyfill here now. Will Phantom 2 be default for Casper at some point in future?

Hrm using the cujo polyfill from the PR doesn't seem to fix the test case. See below:
var casper = require('casper').create({
	verbose: true,
	logLevel: 'debug'
});
var server = require('webserver').create();
var ipAndPort = '<IP_ADDRESS>:8585';

// cujos bind shim instead of MDN shim, see #1396
var isFunction = function(o) {
	return 'function' === typeof o;
};
var bind;
var slice = [].slice;
var proto = Function.prototype;
var featureMap = {
	'function-bind': 'bind'
};
function has(feature) {
	var prop = featureMap[feature];
	return isFunction(proto[prop]);
}
// check for missing features
if (!has('function-bind')) {
	// adapted from Mozilla Developer Network example at
	// https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/bind
	bind = function bind(obj) {
		var args = slice.call(arguments, 1),
			self = this,
			nop = function() {
			},
			bound = function() {
				return self.apply(this instanceof nop ? this : (obj || {}), args.concat(slice.call(arguments)));
			};
		nop.prototype = this.prototype || {}; // Firefox cries sometimes if prototype is undefined
		bound.prototype = new nop();
		return bound;
	};
	proto.bind = bind;
}

var log = console.log.bind(console)

server.listen(ipAndPort, function(req, res) {

	casper.start('https://google.com');
	casper.then(function(){
		casper.echo('ECHO');
		console.log('CONSOLE');
		log('THIS LINE FAILS');
		casper.echo('ECHO');
		casper.echo('ECHO');
	});

	// This is somewhat misnamed: casper.run() starts the casper job, then runs the callback runs when complete
	casper.run(function() {
		res.statusCode = 200;
		res.write('OK');
		res.close();
	});
});
log('CasperJS server running at http://'+ipAndPort+'/');

@mikemaccana  No, this is not meant to be replicated in your test case, of course.
Just check out current master (the bugfix is merged) and try your original test case against it.
This works for me.

@istr sorry, I should have mentioned: the test case above includes the cujo fix - that's why I pasted it. I'll try casper master tomorrow though...

@istr Ah actually my test above only patched it if it wasn't already patched. I just tried installing master and running the original test: confirmed it's fixed now!!!


: attempt to perform arithmetic on field 'KONG_HEADER_FILTER_STARTED_AT' (a nil value)

I see many error log in /usr/local/kong/logs/error.log
2016/03/04 10:31:34 [error] 2043#0: 41194 failed to run body_filter_by_lua: /usr/local/share/lua/5.1/kong/core/handler.lua:96: attempt to perform arithmetic on field 'KONG_HEADER_FILTER_STARTED_AT' (a nil value)
stack traceback:
/usr/local/share/lua/5.1/kong/core/handler.lua:96: in function 'after'
/usr/local/share/lua/5.1/kong.lua:194: in function 'body_filter'
body_filter_by_lua:2: in function <body_filter_by_lua:1>, client: <IP_ADDRESS>, server: _, request: "GET /oauth/user.json HTTP/1.1", host: "test.abc.com"
I don't know what problem, and how to fix it.
Thanks.

I was looking at the code and it seems like ngx.ctx.KONG_HEADER_FILTER_STARTED_AT is being set only if ngx.ctx.KONG_PROXIED is true.
For some reason in your case ngx.ctx.KONG_PROXIED is false.
@thibaultCha maybe can help on this one.

What makes this strange is that this block is never accessed unless ngx.ctx.KONG_PROXIED is true either, so I really don't see what could be causing this without more information. Was the code changed, is there a custom Nginx module running here? Or a custom Kong plugin?

@jimmypk any update on this?

@jimmypk are you still having this issue? Otherwise I'll close it.

Please re-open if you still experience the issue.


Fix headline formatting in README

Github changed the parser, headlines need a space after ## now.

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


Add more github actions

Codecov Report

Merging #133 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #133   +/-   ##
=======================================
  Coverage   80.88%   80.88%
=======================================
  Files           9        9
  Lines         272      272
=======================================
  Hits          220      220
  Misses         52       52

Continue to review full report at Codecov.

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


ERROR: lazy loading failed for package 'Robyn'

When I installed from CRAN, and tried to load the library(Robyn), Rstudio had a fatal error and the whole app had to restart.
install.packages("Robyn")
library(Robyn)

Then when I tried to run the dev installation as below, I encountered a lazy error.
remotes::install_github("facebookexperimental/Robyn/R")

Downloading GitHub repo facebookexperimental/Robyn@HEAD
── R CMD build ──────────────────────────────────────────────────────────────────────────────────────────────────────────────
✔  checking for file 'C:\Users\james\AppData\Local\Temp\RtmpU978VK\remotes567010ba7135\facebookexperimental-Robyn-16ac224\R/DESCRIPTION' (347ms)
─  preparing 'Robyn':
✔  checking DESCRIPTION meta-information ...
─  checking for LF line-endings in source and make files and shell scripts
─  checking for empty or unneeded directories
─  building 'Robyn_3.8.2.tar.gz'

Installing package into ‘D:/James/R_libs’
(as ‘lib’ is unspecified)
* installing *source* package 'Robyn' ...
** using staged installation
** R
** data
*** moving datasets to lazyload DB
** byte-compile and prepare package for lazy loading
ERROR: lazy loading failed for package 'Robyn'
* removing 'D:/James/R_libs/Robyn'
Warning message:
In i.p(...) :
  installation of package ‘C:/Users/james/AppData/Local/Temp/RtmpU978VK/file56703d4d3ec3/Robyn_3.8.2.tar.gz’ had non-zero exit status

my session info is as below:
> packageVersion("Robyn")
[1] ‘3.7.2’
> sessionInfo()
R version 4.2.2 (2022-10-31 ucrt)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 22621)

Matrix products: default

locale:
[1] LC_COLLATE=English_Australia.utf8  LC_CTYPE=English_Australia.utf8    LC_MONETARY=English_Australia.utf8 LC_NUMERIC=C
[5] LC_TIME=English_Australia.utf8

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base

loaded via a namespace (and not attached):
[1] compiler_4.2.2 tools_4.2.2

Can you please re-try running options(timeout = 500) first?

Tried the options(timeout = 500) option. Nope. Didn't help

Hey! I am facing the exactly same issue here! I also tried Robyn::robyn_update(), it shows the same error, non-zero exit status.

@tsengj Did you ever find a way around this? Currently running into the same thing but for RobynLearn.
* installing *source* package ‘RobynLearn’ ...
** using staged installation
** R
** byte-compile and prepare package for lazy loading
Error in loadNamespace(j <- i[[1L]], c(lib.loc, .libPaths()), versionCheck = vI[[j]]) :
  there is no package called ‘h2o’
Calls: <Anonymous> ... loadNamespace -> withRestarts -> withOneRestart -> doWithOneRestart
Execution halted
ERROR: lazy loading failed for package ‘RobynLearn’
* removing ‘/Library/Frameworks/R.framework/Versions/4.2-arm64/Resources/library/RobynLearn’
Warning message:
In i.p(...) :
  installation of package ‘/var/folders/gt/cj3mn54x4tg587x7qy787jyr0000gp/T//RtmpZp17yn/fileb8753d01b477/RobynLearn_1.0.1.tar.gz’ had non-zero exit status

Session Info:
R version 4.2.2 (2022-10-31)
Platform: aarch64-apple-darwin20 (64-bit)
Running under: macOS Monterey 12.5.1

Matrix products: default
LAPACK: /Library/Frameworks/R.framework/Versions/4.2-arm64/Resources/lib/libRlapack.dylib

locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base

other attached packages:
[1] remotes_2.4.2

loaded via a namespace (and not attached):
 [1] processx_3.8.0    compiler_4.2.2    R6_2.5.1          rprojroot_2.0.3
 [5] cli_3.6.0         prettyunits_1.1.1 tools_4.2.2       withr_2.5.0
 [9] curl_4.3.3        crayon_1.5.2      desc_1.4.2        callr_3.7.3
[13] pkgbuild_1.4.0    ps_1.7.2

@tsengj for your specific case, try installing h2o with install.packages("h2o", type="source", repos=(c("http://h2o-release.s3.amazonaws.com/h2o/latest_stable_R"))) and retry in a fresh new session.

Nope. same error. Installed h2o, restarted the RStudio app, reran the installation, and as soon as i type library(Robyn), R Session is Aborted.

It looks like a windows specific issue to me. Can you check this solution here ? https://community.rstudio.com/t/cant-update-any-packages-lazy-loading-failed/150854/2

If it is Rtools the link is referring to, i have that installed, but still the same issue.

Closing this task given it's been inactive for some months. Feel free to re-open.


Add HDFS as a backend for modelstore

Thanks for the suggestion @sayandigital!
I was looking at the opinions on stackoverflow, and so thought I'd ask you: what's your preferred Python client for HDFS?

pydoop/pyhdfs

Great, I'll add this in soon 🔜

@sayandigital Sorry for the delay with this. I've started implementing it (there's a draft PR), I hope to have this finished asap

This is now merged and will go out in the next release 🙏🏽 let me know if you see any issues!

Released!


shadowsocks-rust: 1.18.4 -> 1.19.2

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/shadowsocks/shadowsocks-rust/releases.
meta.description for shadowsocks-rust is: A Rust port of Shadowsocks
meta.homepage for shadowsocks-rust is: https://github.com/shadowsocks/shadowsocks-rust
meta.changelog for shadowsocks-rust is: https://github.com/shadowsocks/shadowsocks-rust/raw/v1.19.0/debian/changelog
Updates performed

Rust version update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 1.19.0 with grep in /nix/store/7nnr8j1a27f6z6wjxrihhrrmmcf1b4kc-shadowsocks-rust-1.19.0
found 1.19.0 in filename of file in /nix/store/7nnr8j1a27f6z6wjxrihhrrmmcf1b4kc-shadowsocks-rust-1.19.0

Rebuild report (if merged into master) (click to expand)

3 total rebuild path(s)

3 package rebuild(s)

First fifty rebuilds by attrpath

mullvad
shadowsocks-rust

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/7nnr8j1a27f6z6wjxrihhrrmmcf1b4kc-shadowsocks-rust-1.19.0 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A shadowsocks-rust https://github.com/r-ryantm/nixpkgs/archive/0bc0e1e3b3826dec265d88321aff8a5fdf0fb2f8.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/0bc0e1e3b3826dec265d88321aff8a5fdf0fb2f8#shadowsocks-rust

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/7nnr8j1a27f6z6wjxrihhrrmmcf1b4kc-shadowsocks-rust-1.19.0
ls -la /nix/store/7nnr8j1a27f6z6wjxrihhrrmmcf1b4kc-shadowsocks-rust-1.19.0/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review --extra-nixpkgs-config '{ allowInsecurePredicate = x: true; }' run on x86_64-linux 1

2 packages built:

mullvad
shadowsocks-rust

Maintainer pings

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/shadowsocks/shadowsocks-rust/releases.
meta.description for shadowsocks-rust is: A Rust port of Shadowsocks
meta.homepage for shadowsocks-rust is: https://github.com/shadowsocks/shadowsocks-rust
meta.changelog for shadowsocks-rust is: https://github.com/shadowsocks/shadowsocks-rust/raw/v1.19.2/debian/changelog
Updates performed

Rust version update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 1.19.2 with grep in /nix/store/sq0ilq4r6c7wib3pqwa1m6qcp0zjrm0s-shadowsocks-rust-1.19.2
found 1.19.2 in filename of file in /nix/store/sq0ilq4r6c7wib3pqwa1m6qcp0zjrm0s-shadowsocks-rust-1.19.2

Rebuild report (if merged into master) (click to expand)

3 total rebuild path(s)

3 package rebuild(s)

First fifty rebuilds by attrpath

mullvad
shadowsocks-rust

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/sq0ilq4r6c7wib3pqwa1m6qcp0zjrm0s-shadowsocks-rust-1.19.2 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A shadowsocks-rust https://github.com/r-ryantm/nixpkgs/archive/b3416e89e4d84f3fedc83c21b7852bee495e2800.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/b3416e89e4d84f3fedc83c21b7852bee495e2800#shadowsocks-rust

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/sq0ilq4r6c7wib3pqwa1m6qcp0zjrm0s-shadowsocks-rust-1.19.2
ls -la /nix/store/sq0ilq4r6c7wib3pqwa1m6qcp0zjrm0s-shadowsocks-rust-1.19.2/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review --extra-nixpkgs-config '{ allowInsecurePredicate = x: true; }' run on x86_64-linux 1

2 packages built:

mullvad
shadowsocks-rust

Maintainer pings


Update - 2023 Feb version

Checklist

[x] Used a personal fork of the feedstock to propose changes
[x] Bumped the build number (if the version is unchanged)
[x] Reset the build number to 0 (if the version changed)
[x] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[x] Ensured the license file is being packaged.

@conda-forge-admin, please rerender

/home/conda/feedstock_root/build_artifacts/lammps_1680144027990/work/lib/lepton/asmjit/core/cpuinfo.cpp:18:12: fatal error: sys/auxv.h: No such file or directory
   18 |   #include <sys/auxv.h>
      |            ^~~~~~~~~~~~
compilation terminated.

@conda-forge-admin, please rerender

#elif defined(__APPLE__) && TARGET_OS_OSX
                            ^
1 error generated.


fixing spelling in main.py

This fixes minor spelling issues in main.py so that it looks clean to users

Rebasing this to master as is becuase it contains single commit


SSH not working when container runs as non-root in Kubernetes

While working on getting the container working on Kubernetes (as mentioned here https://github.com/itzg/docker-minecraft-bedrock-server/issues/86) I faced following issue:
Bedrockifier wasn't able to open the SSH connection to the Bedrock container. When trying it manually, I got the following error:
No user exists for uid 1000

I then tried it with a modified image like this:
FROM kaiede/minecraft-bedrock-backup:latest
RUN adduser --uid 1000 bedrockifier

This worked. I can see you have logic to add a user in entry.sh:
https://github.com/Kaiede/Bedrockifier/blob/8af09d05bf217e5e2bc8ab5d6869cde6ab2b6e41/Docker/entry.sh#L8-L12
This cannot work if the container is not running as root. Not only in my use case, I assume also in rootless Docker installations and Podman environments. If you'd like a better solution than my Dockerfile above, I would suggest to add this line to the Dockerfile:
https://github.com/Kaiede/Bedrockifier/blob/8af09d05bf217e5e2bc8ab5d6869cde6ab2b6e41/Docker/entry.sh#L11
In most cases, if not all cases, it should be possible to fix the permissions on the storage end. You could still leave the part in the entry.sh and wrap it into a if condition to check whether or not the container runs as root.
I'll open a "minimal solution" PR to "fix" this. However, I'm open for a more sophisticated solution like described above.

Neither approach is a complete fix, as SSH needs a valid user for whatever UID it picks up when it is started. Because of how the entry point demotes the service down to whatever user owns the backups folder, it's going to pick up the UID of that owner, which can be pretty much anything. Even with root disabled, there's no guarantee that the UID is what would be configured in the Dockerfile.
For example:

If I'm not the first user on a system.
If I'm on a system where UIDs for regular users start at different values (Mac using Docker Desktop).
If I give ownership of the backups to a service account for off-site uploads or the like.

Bringing the line into the Dockerfile uses the docker build environment, rather than the actual runtime environment, so I'm not sure how that's a better solution?
The "best" solution is to bring the SSH functionality in-process where we aren't having to deal with the environment when all we want is a secure pipe. And this is something I've been playing with locally, but it isn't remotely ready yet. Partly because there's multiple prototypes I'm playing with: using SwiftNIO's SSH functionality, using Golang for the whole service (saves a bunch of space, potentially fixes Windows bugs), and using Golang for a "dialer" tool that replaces rcon-cli/ssh/docker-cli in the container.

I do just want to say thanks for opening the issue. This is a good catch.

I discovered that (at least in my case) it also works without specifying a specific id:
FROM kaiede/minecraft-bedrock-backup:latest
RUN adduser bedrockifier

Docker users may use the --user parameter (https://docs.docker.com/engine/reference/run/#user) to specify a specific userid? I have something similar in Kubernetes (https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod). However, I didn't had the time to test what happens if I use it, as it would have also implications on the Bedrock container in my setup. But it will still need a username for SSH.
Having users in Dockerfiles is not unusual. Instead , it's considered best practice. While I was searching for I reference for this, I came across this: https://sysdig.com/blog/dockerfile-best-practices/#1 and found out that using a specific user id is something I should have avoided. Therefore I suggest to drop the user id :-) sorry about that!

Having users in Dockerfiles is not unusual. Instead , it's considered best practice.

Don’t disagree, but it’s so much easier when services aren’t having to reach across into other services’ volumes. Or when not dealing with interesting setups that entrypoint-demoter was built to solve: https://github.com/itzg/entrypoint-demoter, such as when --user doesn’t play nice with attached volumes like Synology’s setup.
But ultimately, the only reason this specific account is even needed is because the SSH CLI demands the UID it is started with be a real user inside the container. So what UID ‘bedrockifier’ gets during container creation still needs to match the UID of the process when it is later run. It’s… not fun.
With this in mind, I still think the more appropriate long-term fix is to ditch the SSH CLI and use the underlying library instead. It removes the whole requirement of a “real user” from SSH.

With this in mind, I still think the more appropriate long-term fix is to ditch the SSH CLI and use the underlying library instead. It removes the whole requirement of a “real user” from SSH.

I'm fine with that, but sounds like a lot of work for you, I'm afraid. I can work with my customized image for the time being. It gets rebuilt automatically with the latest version of your image (btw. would you be open to versioning your images instead of using only latest?).

sounds like a lot of work for you, I'm afraid.

Depends. Managing PTYs to use client apps rather than libraries is always a pain and introduces overhead. Moving to a library pays down that technical debt and makes things cheaper to maintain. The SSH client in particular is hostile to automation (for good reason though), so it's an even bigger pain to work with than the docker CLI tool.
As mentioned earlier in the thread, I have been looking at what the future looks like in a couple ways, as Swift isn't exactly the easiest to work with for a tool like this (lack of good networking packages for non-HTTP things, really, which is why there is PTY hell instead).

would you be open to versioning your images instead of using only latest?

This is something I've been kicking around, but just haven't updated the Github workflows to do it yet. Backwards compatibility with previous behaviors hasn't been an issue (yet).

Just wanted to add a progress update here on this, as I am done prototyping things.
I've demonstrated to myself that I can integrate an SSH client into the service as-is without much trouble. That's good. Even better, SwiftNIO is built such that I should be able to directly attach the input/output of the SSH channel to the "Terminal" object I use which handles all the read/write and expectations that handle automating communication with the container. That makes it even better.
mc-server-runner will also need changes though. SwiftNIO's SSH client doesn't currently support RSA, just ECDSA. I've made some changes to mc-server-runner that makes it generate and use both keys for compatibility. There's a bug before I can open a PR against the project though, as it doesn't fully handle backwards compatibility with the old host keys properly which needs to be done properly.
The catch is that this will introduce a breaking change, as the new SSH client won't support the current mc-server-runner, but if this is the worst of it, that's fine.

Pulled the PR for mc-server-runner changes needed as I got some time this weekend to address the backwards compatibility. Will need to wait for this to filter through to the Bedrock and Java server containers.
I've also got an early branch with the changes needed for Bedrockifier, but the error reporting for the integrated SSH client needs some work, and I need to do some testing of the end-to-end to ensure it all works as expected.

Managed to get the end-to-end working now that the mc-server-runner changes are merged and the java/bedrock servers have been updated to include them.
Things are actually looking pretty good right now. Backup worked as expected first try, commands were sent and received over the SSH pipe and that all worked quite cleanly. There’s a couple bugs that I need to address, related to the PTY used by the SSH client, before the changes are ready to make a PR for.

I’ve been running some long-term testing, but things have been a bit busy with the day job, and I’ve had to step back from a couple things to avoid burn out. Things are looking generally good as I’ve been getting reliable backups over the last month with our primary server though, although I’ve hit a couple issues I want to fix, and there’s still one missing bit of functionality:

Connection errors from the network library I’m using aren’t terribly helpful for diagnostics when logged. ‘ChannelError error 9’ rather than ‘password was rejected’ for example.
When using passwordFile, which people should, if the server reboots for any reason the backup service will refuse to pick up the new password that was generated until it is also rebooted. This is an existing bug, but I’d like to fix it now.
Right now the backup service accepts all host keys. I want it to remember host keys it’s seen and (by default) error when a host key unexpectedly changes.

Not a lot of work here, so I’ll see if I can get to it soon. As work is now back into a normal rhythm, it will be a bit easier. Let me see what I can get done this week.

The integrated SSH server is now in the test tag and will be in the next release.


pineflash: init at 0.5.1

Description of changes
https;//github.com/spagett1/pineFlash/

Things done

Built on platform(s)

[X] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[X] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[X] Tested basic functionality of all binary files (usually in ./result/bin/)
23.11 Release Notes (or backporting 23.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[X] Fits CONTRIBUTING.md.

I have some problems with dfu-util when trying to flash a pinecil with pineflash it complaints about not finding dfu-util no matter iif I put it into buildInputs, nativeBuildInputs or propagatedBuildInputs what does work is spawning a nix-shell like that: nix-shell -p dfu-util and then opening pineflash from that nix-shell. I'm guessing this is caused by some wired behavior of $PATH but I don't know.

#227474 has to get merged before this one since blisp is needed to flash the pincil v2

blisp is now packaged. Does anything else need to be done before this PR is ready for merging?

Thanks for the review and the ping, I'll try to work on it this weekend :D

I applied your suggested patches and building works fine, but executing ./result/bin/pineflash results in A massive error occured, not sure whats goin on here. and funnily enough exit code 0. Do you have a idea why that happens?

Hmm I'm on Nixos unstable with sway

Any news? Had the time to test pineflash in hyperland and sway. Works fine here.

I wonder whats different on your host. I tried bisecting egui earlier but to no avail all the hello_world examples even the one from the 0.21 release fail with:
Failed to initialize any backend! Wayland status: NoWaylandLib X11 status: LibraryOpenError(OpenError { kind: Library, detail: "opening library failed (libX11.so.6: cannot open shared object file: No such file or directory); opening library failed (libX11.so: cannot open shared object file: No such file or directory)" })

How about moving this from pkgs/tools/misc/pineflash/default.nix to pkgs/by-name/pi/pineflash/package.nix? Then you don't need to change pkgs/top-level/all-packages.nix.

There will be a pr with automated tooling to do this. No need for extra manual labor

❯ ./result/bin/pineflash
A massive error occured, not sure whats goin on here.

I tried this on NixOS unstable running KDE Plasma 5.27.10; I also got the A massive error occured, not sure whats goin on here. error too

updated, but still getting the same error on wayland :(

I actually got a different error this time, same system. I also forgot to mention in my previous comment that my desktop is using X11 and not Wayland
A massive error occured, not sure whats goin on here:
 Found no glutin configs matching the template: ConfigTemplate { color_buffer_type: Rgb { r_size: 8, g_size: 8, b_size: 8 }, alpha_size: 8, depth_size: 0, stencil_size: 0, num_samples: None, min_swap_interval: None, max_swap_interval: None, config_surface_types: WINDOW, api: None, transparency: false, single_buffering: false, stereoscopy: None, float_pixels: false, max_pbuffer_width: None, hardware_accelerated: None, max_pbuffer_height: None, native_window: None }. error: Error { raw_code: None, raw_os_message: None, kind: NotFound }

I'm also getting
A massive error occured, not sure whats goin on here:
 Found no glutin configs matching the template: ConfigTemplate { color_buffer_type: Rgb { r_size: 8, g_size: 8, b_size: 8 }, alpha_size: 8, depth_size: 0, stencil_size: 0, num_samples: None, min_swap_interval: None, max_swap_interval: None, config_surface_types: WINDOW, api: None, transparency: false, single_buffering: false, stereoscopy: None, float_pixels: false, max_pbuffer_width: None, hardware_accelerated: None, max_pbuffer_height: None, native_window: None }. error: Error { raw_code: None, raw_os_message: None, kind: NotFound }

I'm running GNOME with Wayland.

Hey I gave it a try once again after updating it and it's still erroring out on X11
A massive error occured, not sure whats goin on here:
 Found no glutin configs matching the template: ConfigTemplate { color_buffer_type: Rgb { r_size: 8, g_size: 8, b_size: 8 }, alpha_size: 8, depth_size: 0, stencil_size: 0, num_samples: None, min_swap_interval: None, max_swap_interval: None, config_surface_types: WINDOW, api: None, transparency: false, single_buffering: false, stereoscopy: None, float_pixels: false, max_pbuffer_width: None, hardware_accelerated: None, max_pbuffer_height: None, native_window: None }. error: Error { raw_code: None, raw_os_message: None, kind: NotFound }

I guess this is a upstream error and not one with our packaging but not sure.

With the new version I'm still getting the error :(
A massive error occured, not sure whats goin on here:
 Found no glutin configs matching the template: ConfigTemplate { color_buffer_type: Rgb { r_size: 8, g_size: 8, b_size: 8 }, alpha_size: 8, depth_size: 0, stencil_size: 0, num_samples: None, min_swap_interval: None, max_swap_interval: None, config_surface_types: ConfigSurfaceTypes(WINDOW), api: None, transparency: false, single_buffering: false, stereoscopy: None, float_pixels: false, max_pbuffer_width: None, hardware_accelerated: None, max_pbuffer_height: None, native_window: None }. Error: Error { raw_code: None, raw_os_message: None, kind: NotFound }

I get the same error when I rebase the PR on top of the version of Nixpkgs I'm currently running on my NixOS system (5c24cf2f0a12ad855f444c30b2421d044120c66f) I also tried rebasing on top of the latest master with the same result.

Whoops. I just found this PR.
I had opened gh-369458.
The 0 exit status with no stack trace was in part an upstream bug, which should be fixed in the next version.
strace revealed it to be crashing after searching for libxkbcommon-x11.so and libGL.so; adding those to buildInputs and rpath resolved that specific issue.
How should we go about merging these? My PR doesn’t have the desktop icons currently, and has not been tested on Darwin, but functions for me on x86_64-linux.
Note: The license is now out of date here, it was changed to gpl2Only.


Import not working

After the import of a Swagger file there are only groups in Paw, no actual requests. This is what the console shows:
Event Loaded extension com.luckymarmot.PawExtensions.SwaggerImporter

JS Error @serializer failed with error TypeError: Objective-C blocks called as constructors must return an object. {"line":2882,"column":108} [native code]
[native code]
_castParameterToDynamicString
_toDynamicString
_generateUrl
_createPawRequest
_importPawRequest
__iterate
_applyFuncOverGroupTree
__iterate
_applyFuncOverGroupTree
_importPawRequests
promiseReactionJob@[native code]

JS Error @resolver caught error TypeError: Objective-C blocks called as constructors must return an object. {"line":2882,"column":108} [native code]
[native code]
_castParameterToDynamicString
_toDynamicString
_generateUrl
_createPawRequest
_importPawRequest
__iterate
_applyFuncOverGroupTree
__iterate
_applyFuncOverGroupTree
_importPawRequests
promiseReactionJob@[native code]

Thanks for the report, I'll look into it!

No, unfortunately I cannot share the file in question. Sorry.


Update renewals.md

I found this very hard to find so am trying to make a link to the place it can be done. I don't know of a way to reference the current logged in user to reach /addresses/username but this would be preferable.

I don't know of a way to reference the current logged in user to reach /addresses/username but this would be preferable.
Some people, like me, own multiple addresses:

I don't know of a way to reference the current logged in user to reach /addresses/username but this would be preferable.

Some people, like me, own multiple addresses:
Perhaps linking to https://home.omg.lol/addresses would make more sense?

I totally see your point, however there's no option to get to renewal from that page, no way to get through to /addresses/username/billing :/

You can click on the address name and you will get to the /addresses/username page.


Getting "Credentials are required to create a Client" when submitting the form

Version of PHP:
> php --version
PHP 8.0.10 (cli) (built: Aug 26 2021 15:36:17) ( NTS )

Composer.json modification (I've added PHP ^8.0 as a supported version)
    "require": {
        "php": "^7.2.5|^8.0",
        "twilio/sdk": "^6.1.0",

Expectation: A call will go through from your Twilio number to the provided phone number.
Actual behavior: An exception is thrown.
[Wed Sep 15 13:43:03 2021] PHP Fatal error:  Uncaught Twilio\Exceptions\ConfigurationException: Credentials are required to create a Client in /Users/mmenschig/Projects/dev/php/clicktocall-php/vendor/twilio/sdk/src/Twilio/Rest/Client.php:170
Stack trace:
#0 /Users/mmenschig/Projects/dev/php/clicktocall-php/src/call.php(36): Twilio\Rest\Client->__construct('', '')
#1 {main}
  thrown in /Users/mmenschig/Projects/dev/php/clicktocall-php/vendor/twilio/sdk/src/Twilio/Rest/Client.php on line 170
[Wed Sep 15 13:43:03 2021] [::1]:60740 [200]: POST /call.php - Uncaught Twilio\Exceptions\ConfigurationException: Credentials are required to create a Client in /Users/mmenschig/Projects/dev/php/clicktocall-php/vendor/twilio/sdk/src/Twilio/Rest/Client.php:170
Stack trace:
#0 /Users/mmenschig/Projects/dev/php/clicktocall-php/src/call.php(36): Twilio\Rest\Client->__construct('', '')
#1 {main}
  thrown in /Users/mmenschig/Projects/dev/php/clicktocall-php/vendor/twilio/sdk/src/Twilio/Rest/Client.php on line 170
[Wed Sep 15 13:43:03 2021] [::1]:60740 Closing

The issue appears to stem from the following lines in call.php:
Link: https://github.com/TwilioDevEd/clicktocall-php/blob/15d16f2ecef9624b1aa74f35ada525f9d86100cb/src/call.php#L30-L33
Note that both getenv() and putenv() are not thread safe and their usage is strongly discouraged: https://github.com/vlucas/phpdotenv#putenv-and-getenv
One workaround is to access the $_ENV object instead:
    $client = new Client(
        $_ENV["TWILIO_ACCOUNT_SID"],
        $_ENV["TWILIO_AUTH_TOKEN"]
    );

NB: The same workaround needs to be applied to retrieving the $TWILIO_NUMBER as well:
$TWILIO_NUMBER = $_ENV['TWILIO_NUMBER'];
Once these changes are applied the application works as expected.

I had the same issue, I'm also using php 8.0 thanks for the workaround.

@dkundel FYI - do you think this can get addressed sometime down the line?


Example tests

Hi,
I'm new to the Clojure ecosystem and I'm trying to grasp re-frame.
Ideally, I'd like to play with the examples and its tests, but the latter are missed.
Can anyone point me to an idiomatic way to do it?
Thanks.

HI @gonzaloserrano, welcome to Clojure!
The GitHub issues for re-frame are for bug reports and feature requests. Support requests and usage questions should go to the #re-frame Clojure Slack channel, the ClojureScript mailing list, or the Reagent mailing list.

Ideally, I'd like to play with the examples and its tests, but the latter are missed.

The re-frame tests are at https://github.com/Day8/re-frame/tree/master/test/re_frame.

Can anyone point me to an idiomatic way to do it?

I'm not sure what "it" refers to here sorry. There's some good examples here, and a list of external resources which has a bunch more good stuff to learn from. Feel free to jump in #re-frame on Clojurians Slack if you have any questions. Thanks!


Connect Vehicles and Maintenance Events

What it Does

Closes #141
This PR will add a Picker (pop-up) menu to AddMaintenanceView & EditMaintenanceView

How I Tested

I added sample vehicles data to show in the preview

Notes

There is no validation upon adding/editing to ensure a vehicle has been selected

Screenshot

It's almost there! In the AddMaintenanceView and the EditEventDetailView it's not keeping track when you select a vehicle in the list, the row isn't changing.
Also can you show which vehicle is selected, in the DashboardView

Regarding showing which vehicle is selected, do you mean like in the picture?

Regarding showing which vehicle is selected, do you mean like in the picture?

Yes just show the name, and it's fine to just add it into the VStack that's already there (it can be a separate issue for someone to style it better)

Also be sure to merge the dev branch into your branch (and resolve the merge conflicts)

@mikaelacaron I added the fix for the picker menu & added the vehicle info to the Dashboard view

@mikaelacaron Thank you for the changes. I added #174 so someone can style DashboardView better!


Nicer cache invalidation

Seeing https://github.com/jackfranklin/jspm-dev-builder/blob/master/index.js#L13 this is definitely fiddly to put together. Perhaps we can do something nicer here.
If the cache was itself a class, we could have invalidation methods on it like:
var cache = new Builder.Cache();

builder.setCache(cache);
// do build stuff
cache.invalidate('some/file.js') // automatically invalidates everything relying on the source of this file
cache.inject('some/file.js', source); // set the source of a file programatically
cache.toString() // get the serialized cache representation

new Builder.Cache(cache.toString()) // deserialize cache strings

Just some random ideas.
//cc @jackfranklin

@guybedford this looks great - pinging @oliverjash who I was also chatting this through with. You're right in saying it's pretty fiddly right now, and something like this would really help with that.

I'm wondering if we should just make this builder.invalidate(moduleName) rather than a special cache object, which can then act on the caches in the right ways.

:+1: the tricky bit was the fact that the name in the trace cache isn't just the file name - it would be good to not have to have knowledge of that to be able to invalidate a file. Feels like leaky internals.

I've created a PR in https://github.com/systemjs/builder/pull/341.

Released in 0.14.8.


⚠ Ansible Galaxy API has degraded performance

In 7340265, Ansible Galaxy API (https://galaxy.ansible.com/api/v2/) experienced degraded performance:

HTTP code: 200
Response time: 11508 ms

Resolved: Ansible Galaxy API performance has improved in 63c2c71.


[consensus] better prepare chained bft smr for per-epoch structure

Motivation
I wrote down how the start up should work friendly with reconfiguration in the comment of start function.
We can potentially move Step 1 & 2 one layer higher to chained_bft_consensus_provider if we want.

Reorganize how we start following the steps.
Change some function to take &ValidatorVerifier instead of Arc.

Have you read the Contributing Guidelines on pull requests?
Y
Test Plan
Existing tests.
Related PRs
(If this PR adds or changes functionality, please take some time to update the docs at https://github.com/libra/website, and link to your PR here.)

I'm taking a look at this.

:v: @zekun000 can now approve this pull request

@bors-libra r=aching

:pushpin: Commit 0d0178d has been approved by aching

:hourglass: Testing commit 0d0178daf041adb4e505fdb9512f01087db2b420 with merge 5cf8247386174504b1db438f6427f9b896673df9...

:sunny: Test successful - checks-circle_commit_workflow
Approved by: aching
Pushing 5cf8247386174504b1db438f6427f9b896673df9 to master...


Add title and content descriptions for profile screen

MA-2718
Previously, UserProfileFragment set the username as the Activity title if the username was scrolled out of the visible layout, as there was no predefined title. However, since there is now a static title defined for UserProfileActivity, this behaviour has been removed.
Reviewers
If you've been tagged for review, please check your corresponding box once you've given the :+1:.

 Last update a3e4960...d3f3ff9

@1zaman I made one comment to recommend "Profile" rather than "User Profile" for the title. Otherwise 👍 from me.

When I open the User Profile screen, TalkBack doesn't say what screen it is. It should say "User Profile" right ?

When I open the User Profile screen, TalkBack doesn't say what screen it is. It should say "User Profile" right ?

This was pointed out and discussed at https://github.com/edx/edx-app-android/pull/808#discussion_r75348280, and fixed in commit 06bff39952cd2c75417dea94152e76cb282cabbb.

LGTM now 👍

Looks good

@mdinino FYI


rdCoordGen.AddCoords returning empty conformer for large system

I have coordgen set as the default layout function for systems with many rings, and this large molecule triggers that, but the conformer returned is empty in this case.
mol = MolFromSmiles('OC[C@H]1O[C@@H](n2cnc3c(=O)[nH]c(N)nc23)C[C@@H]1OP(=S)(O)OC[C@H]1O[C@@H](n2ccc(N)nc2=O)C[C@@H]1OP(=S)(O)OC[C@H]1O[C@@H](n2cnc3c(=O)[nH]c(N)nc23)C[C@@H]1OP(=S)(O)OC[C@H]1O[C@@H](n2cc(C)c(=O)[nH]c2=O)C[C@@H]1OP(=S)(O)OC[C@H]1O[C@@H](n2cc(C)c(=O)[nH]c2=O)C[C@@H]1OP(=S)(O)OC[C@H]1O[C@@H](n2cc(C)c(=O)[nH]c2=O)C[C@@H]1OP(=S)(O)OC[C@H]1O[C@@H](n2cnc3c(=O)[nH]c(N)nc23)C[C@@H]1OP(=S)(O)OC[C@H]1O[C@@H](n2ccc(N)nc2=O)C[C@@H]1OP(=S)(O)OC[C@H]1O[C@@H](n2cc(C)c(=O)[nH]c2=O)C[C@@H]1OP(=S)(O)OC[C@H]1O[C@@H](n2ccc(N)nc2=O)C[C@@H]1OP(=S)(O)OC[C@H]1O[C@@H](n2cc(C)c(=O)[nH]c2=O)C[C@@H]1OP(=S)(O)OC[C@H]1O[C@@H](n2cc(C)c(=O)[nH]c2=O)C[C@@H]1OP(=S)(O)OC[C@H]1O[C@@H](n2ccc(N)nc2=O)C[C@@H]1OP(=S)(O)OC[C@H]1O[C@@H](n2cc(C)c(=O)[nH]c2=O)C[C@@H]1OP(=S)(O)OC[C@H]1O[C@@H](n2cc(C)c(=O)[nH]c2=O)C[C@@H]1OP(=S)(O)OC[C@H]1O[C@@H](n2ccc(N)nc2=O)C[C@@H]1OP(=S)(O)OC[C@H]1O[C@@H](n2cc(C)c(=O)[nH]c2=O)C[C@@H]1OP(=S)(O)OC[C@H]1O[C@@H](n2cc(C)c(=O)[nH]c2=O)C[C@@H]1OP(=S)(O)OC[C@H]1O[C@@H](n2cnc3c(=O)[nH]c(N)nc23)C[C@@H]1OP(=S)(O)OC[C@H]1O[C@@H](n2ccc(N)nc2=O)C[C@@H]1OP(=S)(O)OC[C@H]1O[C@@H](n2cnc3c(=O)[nH]c(N)nc23)C[C@@H]1O')
rdCoordGen.AddCoords(mol)

for x in range(5):
    pos = mol.GetConformer().GetAtomPosition(x)
    print(pos.x, pos.y, pos.z)

0.0 0.0 0.0
0.0 0.0 0.0
0.0 0.0 0.0
0.0 0.0 0.0
0.0 0.0 0.0

Obviously this molecule is large and difficult to lay out in 2D, but I would have expected AddCoords to return -1 to indicate failure.
For what it's worth, I am finding the avalon tools to be the best layout for these larger biomolecules.
>>>from rdkit import rdBase
>>>rdBase.rdkitVersion

 "2021.03.1"

This seems likely to be a coordgen bug, can you please create an issue for it here? https://github.com/schrodinger/coordgenlibs/issues

@greglandrum reported here.  The only reason I reported here originally is I don't have a standalone example calling coordgen directly.

@greglandrum reported. The only reason I reported here originally is I don't have a standalone example calling coordgen directly.

oh, no worries, I wasn't complaining about you opening it here. I just wanted to be sure it was on the coordgen team's radar.
Thanks for creating that other issue.


[zh-cn] updated contribute/suggesting-improvements.md

Use the actual UI term, add anchors, and remove redundant spaces.
content/zh-cn/docs/contribute/suggesting-improvements.md

Preview: https://deploy-preview-36019--kubernetes-io-main-staging.netlify.app/zh-cn/docs/contribute/suggesting-improvements/

Thanks
/lgtm
/approve


Accuracy Problem2

Code version (Git Hash) and PyTorch version
979ae91 / pytorch 1.0.1
Dataset used
NTU-RGB-D
Expected behavior
around 88% accuracy
Actual behavior
68~70% accuracy
Steps to reproduce the behavior

run ntu_gendata.py --data_path /media/lee/ssd/nturgb+d_skeletons

I got 4 npy,pkl files(987.5MB for training, 511.9MB for eval).

and then run main.py recognition -c config/st_gcn/ntu-xview/train.yaml

Other comments
Dear @yysijie, I'm trying to improve your model and testing it.
After clone this repo(new stgcn version), I'm using 2 GPUs (2x1080 == 2x8GB) and just set the batch size to 32 instead of 64 and device to [0,1]
after several trials, I just only see always the mAP of around 68~70.
I can't reproduce even the same result as the original paper.
Do I need to set "random_choose/random_move" when I generate the dataset?
Now, I'm trying to use 4 or 8 GPUs (4~8x16GB) again and use the same default hyper parameters, but the result stilll seems similar(even little bit worse).
By the way, when I evaluate the provided NTURGB model, the mAP is right(89%).
Hum anybody can guess the reason??
Thank you!

is it related to the unbalanced distribution of NTU-RGB-D? If so, what should I do for managing the balance? Please give me a hint.


Can not apply Quaternion rotation to Vector3d

Normally to apply a rotation stored in a Quaternion you would just multiply the quaternion by the Vector3: Quaternion.Euler(0f, 45f, 0f) * Vector3.forward. This is part of the Quaternion multiply operator.
I was thinking that it would be possible to add an implicit operator but you can only define them within the class. A helper method on the Vector3d class would work or a helper extension method of Quaternion would really help out when working with Quaternions with these classes.

Ah man this is too old

There is no quaternion overload operator. you can write one yourself but for the best accuracy might also need a double precision quaternion too.


feat(ServiceListTabsView): add explanatory sentences for service type views

Moved and rephrased the title of the ServiceListTabView to separate explanatory sentences for each service type. For most of the services I included a link to the docs.

Closes #2928

Looks good! I just had a few of q's:

I'd consider making the inline links open in a target="_blank" so we don't leave the app.
IMO they sentences should be full-width so they look the same as the rest of the app, thats my opinion tho, wdyt? Do you think its worth making this consistent with the rest or don't we mind here?
If we are going to link the name of the resource in the sentence we should probably do that in all the other sentences across the app? wdyt? (if you agree we can do this in a separate PR)
I just noticed we need to do the same as we do here for gateways ([builtin]/[delegated]). 🤔 probably good to do that in another follow up PR unless you were keen to do it here also, up to you.

Lmk, what you think then I reckon I can approve this, thanks!

Looks good! I just had a few of q's:

I'd consider making the inline links open in a target="_blank" so we don't leave the app.
IMO they sentences should be full-width so they look the same as the rest of the app, thats my opinion tho, wdyt? Do you think its worth making this consistent with the rest or don't we mind here?
If we are going to link the name of the resource in the sentence we should probably do that in all the other sentences across the app? wdyt? (if you agree we can do this in a separate PR)
I just noticed we need to do the same as we do here for gateways ([builtin]/[delegated]). 🤔 probably good to do that in another follow up PR unless you were keen to do it here also, up to you.

Lmk, what you think then I reckon I can approve this, thanks!

Yes, that'd me much better 👍
Ah yes, I also think we should aim for consistency 🙂
Generally I think that linking to the docs improves the UX because it's more accessible. But probably also requires extra efforts here to keep it up to date and in sync with the docs 🤔 but I would agree to add links for the other resources to the docs (if available). Could also be multiple PRs then?
Makes sense 🙂  I'd prefer to keep PRs smaller and therefore go for a separate PR 🙂

Sounds good, lets do 1 and 2 here then and do 3 and 4 separately 👍
I had 1 or 2 q's on the actual text/copy also, 1 tic.

jfyi: after the changes I updated the screenshot in the description


Text Font, Text Size, Text color, erase it are not changing according to the selection in post doubt forum.

Describe the bug
Features like Text font change, Text color, Text Size, Eraser are not changing accordingly to the selection in the post doubt forum. not changing in preview.
To Reproduce
Steps to reproduce the behavior:

click on the forum
click on start discussion
enter text and select font, size, color in the given option
post discussion

Expected behavior
changes according to the selection
Environment (please complete the following information):

OS: Windows 10
Browser: Chrome

Additional context

cc: @Abhishek-kumar09 @adarsh-technocrat

can I work on it?

Sure @Abhijay007  go ahead :)

@Abhijay007  they do change the thing is you need to select the specific text that you want to change !

@Abhijay007  we have used Draf.js here you can quickly checkout  documentation

@Abhijay007 they do change the thing is you need to select the specific text that you want to change!

yes, it is working but I think that the "eraser feature" is not working even after selection. And thanks for pointing it out I will raise other issues soon.

@Abhijay007 we have used Draf.js here you can quickly checkout documentation

sure :)


FactorioLab Website suddenly marked as malicious (AntiVirus Software)

Hello,
I'm using the calculator for DSP for approx 2 weeks now, with no problems. But suddenly (today) my AntiVirus Software (Avast) seals the page and prevents me from opening/enter it. Saying it's "malicious" and marked as phising website.
Any idea why or what's wrong?
Regards

This happened once before, see issue #520. I should be able to submit a report to avast to have it fixed, though it's a little discouraging that this happened again so soon.

I see and sorry to hear. That's indeed annoying. Thank you for your quick answer and I hope you can fix it again!
Regards

I've raised this with Avast and AVG again, it seems like whatever they did last time may have been set to only last one month so hopefully they can address it more permanently this time or let me know what I can do to avoid being detected as a false positive.

Hello,
Great, I hope they will mark it permanently. And thanks to you for this great tool!
Have a nice day!
Regards

Thanks for closing but do you mind verifying that it's fixed now? AVG and Avast have both notified me that the issue has been resolved again.

Oh wow, that was a misundertanding, I'm very sorry. Yes, I checked it and it's working again. With Avast Plugin active, the site/tool loads normally. No more malicious warning! :-)
Regards

It's not a problem that you closed it, just wanted to verify it was actually fixed now 🙂. Thanks for checking!


ServiceResolver should be scheduled as described in RFC (Continuous Multicast DNS Querying)?

I have some issues on some devices when starting service discovery
Currently JmDNS when a listener is added starts a ServiceResolver that sends 3 questions with an interval of 225 milliseconds.
On some devices sometimes the answers are missed (packet loss, OS issues etc) and services will not be discovered anymore unless they respond to someone else or announce themselves.
At RFC 6762 5.2 Continuous Multicast DNS Querying is described a technique that should avoid this issue to happen.
The query should be sent the first time with a random delay of 20-120ms, the second time with a delay of 1 sec and then consecutive queries should use a delay increased by a factor of two.
Is this something that should be implemented?

Sounds like a useful feature to me.
Do you feel familiar enough with the code base for implementing this?

Currently i don't have time to follow this, i have used some hacks internally to solve quickly my problem
I have just thought to warn the project on this strange issue and on the existing technique described in the RFC


Large GeoJSON file

I have a large GeoJSON file which contains a layer of specific pois all over the world. Currently the entire file is loaded even if the zoom is just on one country/ region/ city. What are my options to improve performance?
I would think serving just the data relevant for the 'current viewport' would be a massive improvement, what is needed for that? To name some things I can imagine:

make vector tiles of the data so it is smaller
serve the layer from a server (needed to have the 'current viewport' behavior?!).

Are these feasible options to pursue? Any suggestions on how to approach this are very welcome.

Making a single vector tile over the whole world would make the file itself smaller, but would still take up a similar amount of memory in the user's browser, I think. So it sounds like a better thing would be to generate a series of static tiles, perhaps at a single zoom level, and host them on a website or from S3 or something similar.
It looks like TileStache might be able to do something like that. There's an example in this mailing list thread with a config for producing a single tile, so that should be easy to extend to all tiles. Then you should be able to point Leaflet or whatever you're using client-side to the static tiles and load them on the fly.
Sorry I couldn't be more helpful, but I hope that's useful info.

Ok, so sounds like I am headed in the right direction. Thanks.


Update installer URL

Updates dotnet-install.sh installer URL to the new one. The -L option is not provided to cURL so it would fail to follow the redirect. Probably best to keep it that way for security.

@emersonsoares your test appears to have your repo's url hardcoded so it doesn't actually end up testing the PR, as far as I can tell.


Accessing individual qubits of a lineQubit object

As a relatively new user to Cirq, accessing individual qubits from a LineQubit object feels cumbersome. From what I understand, you can either put them all in a list method (as in the range() method) and access them from the list. Or you can explicitly set variables q0,...,qN = LineQubit(N+1). I think it would be a nice feature to be able to access individual qubits from a LineQubit object q with an indexing operator like q[idx]. As an example,
circuit = cirq.Circuit()
q = LineQubit(num_qubits)
circuit.append(cirq.Gate(q[idx]))

Instead of
circuit = cirq.Circuit()
q = LineQubit(num_qubits)
q_range = q.range(num_qubits)
circuit.append(cirq.Gate(q_range[idx]))

It seems this sort of functionality exists for the doubly indexed GridQubit object, see this example. Could something similar to the implementation of the GridQubit accessor method be used for a LineQubit accessor method?

A LineQubit is a single qubit. When you say LineQubit(n) it creates one qubit id object which refers to the nth qubit in some line, and if you try to unpack this into separate variables it will fail:
In [1]: a, b, c = cirq.LineQubit(3)
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-1-4a38dccedd6f> in <module>
----> 1 a, b, c = cirq.LineQubit(3)

TypeError: cannot unpack non-iterable LineQubit object

The range method is actually a static method defined on the LineQubit class, so while python makes it possible to call it on an instance it is intended to be called directly on the class instead:
a, b, c = cirq.LineQubit.range(3)
q_range = cirq.LineQubit.range(num_qubits)  # list of length num_qubits

Ahh, thanks. Dumb mistake.


omnibus: vcredist: move the actual file copy to the recipe

What does this PR do?
Extract the files to their final destination without an intermediate folder and implicit dependency on python recipe.
Motivation
This way we get something to cache in the omnibus cache and avoid problem when restoring vcredist and not python
Describe how you validated your changes

Possible Drawbacks / Trade-offs
Additional Notes

/merge


MPI Scaling fix

TLDR - netcdf cache and partition remotes hinder mpi scaling
The netcdf per feature data provider cache is expensive to create and the performance penalty increases with mpi rank count. Depending on the machine, it can be faster to have it disabled at just 2 ranks .
The mid-simulation mpi communication to accumulate nexus outputs adds a lot of overhead that can be deferred to the end of the simulation for another large speedup.
A 916 second simulation takes 401s on 96 ranks without these changes and 21s with these changes both applied.
With one netcdf file per rank, cache enabled, and remotes disabled, the speedup on 96 cores over serial is now ~80x. Without these changes 96 cores is ~1x-2x faster than serial.
There are a few different things included in this PR that probably could and should be implemented better than the way I've done them, but I thought it would be better share what I've got so far before revising it further.
Major Differences
Netcdf Cache
The reason this is so expensive is that it caches the value for every catchment at a given timestep for a given variable. Serially this seems to make things run 1.3x-1.5x faster than with no cache. When using mpi partitions, each process reads the values for all of the catchments, including catchments not in the current mpi rank. The result is a huge amount of IO that gets worse with the number of mpi ranks and the number of catchments.

Profiling showed ~80% of the simulation runtime was read syscalls for 55 mpi ranks. Reading from a netcdf was taking 180s but per catchment csv files was taking 50s.
I tested just duplicating the netcdf for each rank which was worse ~214s and then splitting the original input up by rank so only the relevant data would be read. Splitting up the netcdf reduced the simulation time to 39s, disabling the cache entirely also gave me a 39s runtime.
I think the machine I did most of my testing on has some large system level cache as serially the ngen cache only gives me a <7% performance boost on inputs <1Gb.
The best performance seems to be splitting up the netcdf by rank and keeping cache enabled, but it's not that much faster than just disabling the cache.
Remotes partitioning
This might be a bit specific to how I'm running ngen, but for cfe+noah-owp-modular it seems like I can just treat each catchment as an individual cell unaffected by those around it and the only communication needed is to sum up the outputs in cases where more than one catchment feeds into a nexus.
Removing the remotes saves on the overhead of the mpi communication and decouples the ranks. If a nexus output is being written from multiple ranks it will corrupt the output. To fix this I just add the mpi rank number to the output file name and make sure each nexus appears at most once per rank. I do this by sorting the catchment to nexus pairs by nexus then assigning them round robin to the partitions. This will break if the number of partitions is smaller than the maximum number of catchments flowing to a single nexus in your network.
The additional post processing to rename the output files and sum up the different ranks is a tiny fraction of the time saved by partitioning this way.
For now this is just a python script as it was much faster for me to write.
As is the script to generate the round robin partitions.
Minor changes
option to disable catchment outputs
I couldn't figure out if there was another way to disable this so I added a root level realization config option "write_catchment_output" that sets the catchment stream out to /dev/null.
MPI Barrier
I noticed before in #846  that the MPI barriers during t-route execution were slowing down troute a bit because troute tries to parallelize without using MPI. A similar but less noticeable effect is happening during the model execution phase too. It's less noticeable because there aren't other processes trying to use the cores, but when a rank finishes the poll rate of the mpi barrier busy wait is so high that it maxes out that core. On my machine this was causing the overall clock speed to drop and the simulation was taking ~5% longer to execute. This seems like something that should be a configurable mpi build arg or environment variable but I couldn't find it so I replaced the barriers with non-blocking Ibarriers that poll every 100ms.
{{partition_id}} {{id}} substitution in forcing input path
As part of the testing I did with one netcdf per mpi rank, I added a rank id placeholder to the "path" variable in the forcing provider config. I also added {{id}} to it to speed up the csv init load time similar to #843.
Testing
To make this easier to test I built a multi-platform docker image called joshcu/ngiab_dev  from this dockerfile https://github.com/JoshCu/NGIAB-CloudInfra/blob/datastream/docker/Dockerfile
and put together some example data for 157 catchments 84 nexuses for one year.
The partitioning is handled by a bash script that calls a python script in the docker file and troute won't work with remote partitioning disabled. These things can be run manually though with scripts inside the container.
# Running the docker container
docker run --rm -it -v "/mnt/raid0/ngiab_netcdf/speedup_example:/ngen/ngen/data" joshcu/ngiab_dev /ngen/ngen/data/ auto <num_desired_partitions>
# I had io performance issues on mac related to bind mounts and did the following as a workaround
# Run the container
docker run --rm -it joshcu/ngiab_dev
# make the data destination directory
mkdir /ngen/ngen/
# copy the speedup_example data to /ngen/ngen/data with docker cp
/ngen/HelloNGEN.sh /ngen/ngen/data auto <num_desired_partitions>

# Partition generation
python /dmod/utils/partitioning/round_robin_partioning.py -n <num_partitions> <hydrofabric_path> <output_filename>
# Merging the per rank output files if remotes are disabled
python /dmod/utils/data_conversion/no_remote_merging.py /ngen/ngen/data/outputs/ngen/
# Running t-route manually
python -m nwm_routing -V4 -f config/troute.yaml

Configuration in realization.json
        "forcing": {
            "path": "./forcings/by_catchment/forcings.nc",
            "provider": "NetCDF",
            "enable_cache": false
        }
    },
    "time": {
        "start_time": "2010-01-01 00:00:00",
        "end_time": "2011-01-01 00:00:00",
        "output_interval": 3600
    },
    "write_catchment_output": false,
    "remotes_enabled": false, # routing will not work with this set to false
    "output_root": "/ngen/ngen/data/outputs/ngen"
}

157 cats, 1 year
All of the x86 tests were on ubuntu 24 machines running docker using -v bind mounts
x86 96 core dual Xeon Platinum 8160
serial cache = 916s
serial no-cache = 924s

remotes
no-remotes

cache
401s
386s

no-cache
76s
21s

x86 56 core dual Xeon E5-2697
serial cache = 528s
serial no-cache = 771s

remotes
no-remotes

cache
215s
146s

no-cache
129s
35s

x86 24 core i9-12900
serial cache = 180s
serial no-cache = 256s

remotes
no-remotes

cache
146s
94s

no-cache
106s
33.5s

arm64 mac mini m2
10 ranks 2-cores bind mount
disk io seems to be terrible with docker -v bind mounts on mac
and kubernetes was only running with 2 cores
serial cache = 301s
serial no-cache = 375s

remotes
no-remotes

cache
358s
358s

no-cache
263s
249s

10 ranks 2-cores, in memory
I started up the container then used docker cp to load the input files
serial cache = 233s
serial no-cache = 299s

remotes
no-remotes

cache
309s
287s

no-cache
207s
157s

8 ranks 8 cores, in memory

remotes
no-remotes

cache
190s
68s

no-cache
169s
50s

55 cats 31 nexus 10 years
all done on the 96 core machine
serially : ~1700s

31 ranks
remotes
no-remotes

cache
838s
121s

no-cache
N/A
76s

csv files
N/A
94s

55 ranks
remotes
no-remotes

cache
N/A
187s

no-cache
N/A
39s

csv files
N/A
50s

~1600 cats 2 years
numbers prefixed with ~ were run for 3 months then multiplied by 8
serially with cache ~324m
serially with no-cache ~399m

96 ranks
remotes
no-remotes

cache
~316m
~23.5m

no-cache
~11.7m
232s

cache + partitioned nc
N/A
184s

I did some additional testing for 14k catchments on 96 cores and it took 570s to run the simulation with cache and remotes disabled.
The original python script to merge them took too long so I parallelised it and it now takes ~30s.
I also tried it in rust for fun here. Although it's not that useful here except maybe for demonstrating that the per rank files + reformatting could be quite fast if integrated into ngen in c++


chore(builder): analyze mode warning rewording

The "analyze" build warning has been sitting on a screen in front of me for a while now, as I develop a site in Nuxt, and it's worded a little clumsily. Hopefully this fix is okay.

Types of changes

[ ] Bug fix (a non-breaking change which fixes an issue)
[ ] New feature (a non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Description

Checklist:

[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly. (PR: #)
[ ] I have added tests to cover my changes (if not applicable, please state why)
[ ] All new and existing tests are passing.

Thanks @markhoney


[Graph Coloring] Add Kata Implementation

This commit implements a Kata exploring using Grover's search to solve
the constraint satisfaction problem of graph coloring, coloring nodes of
a graph in such a way that no adjacent nodes share the same color.
This project was done as part of UW CSE 490 Q as its final project.
The authors are Dan Tran, Daniel Snitkovskiy, and Frederik Schmitt.

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.:x: Dan-Tran sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.

Thank you for the feedback! I really appreciate it. Unfortunately, due to school and a relatively busy schedule, I'll be unable to keep working on it. I hope that my work though is a good stepping stone for the development of the kata! Thank you for the opportunity.


Fix instancemonitor init.d

File name of instancemonitor is 'masakari_instancemonitor.py' not
'masakari-instancemonitor.py'.  The inconsistency causes service starting error.

@muroi Thank you for fix.
This work with ubuntu.
though, one point we have to keep in mind.
In CentOS, process path of the instance_monitor is different.
rpm package puts the script as /usr/bin/masakari-instancemonitor and 'ps' output give something similar.
we have to make things consistent between rpm packaging and deb packaging.
For now, I thing its better to leave comment in proc.list.sample file, but im not sure processmonitor,sh can skip the comment lines in proc.list.

I agree anytime we should support CentOS.  But we need to fix it ASAP since instancemonitor isn't working now.
Currently, processmonitor doesn't support comment line in proc.list, so we have 2 options to work it.

Enables processmonirot to work with comment line in proc.list and adds the comment to proc.list.sample
Just adds the comment line to proc.list
Adds the comment line to proc.list and https://github.com/ntt-sic/masakari-deploy supports it

Thought?

Agree to fix this asap. If im correct, currently proc.list is deploy by ucf in debian postinst. Since processmonitor cant skip the comments, if we make commet in the file then it will make things more complex. So, my opnion is lets stick to original fix and raise an issue on github for centos. Sorry for made things coplex

#26 to address this issue for CentOS.


add workflow to run examples in ci

https://github.com/scylladb/scylla-rust-driver/issues/839 suggested putting examples into into CI. I took a look into doing so on my own fork. As @piodul pointed out, these examples are not all fundamentally similar. This PR excludes the cloud and tls examples since it seems like the cloud credentials may need to be reviewed and the tls example already runs in CI against a specific tls image.
Furthermore, when running all examples in series, tables persist between example runs causing errors when tables share names. See https://github.com/scylladb/scylla-rust-driver/issues/844
Possible fix for https://github.com/scylladb/scylla-rust-driver/issues/839
Pre-review checklist

[x] I have split my patch into logically separate commits.
[x] All commit messages clearly explain what they change and why.
[x] I added relevant tests for new features and bug fixes.
[ ] All commits compile, pass static checks and pass test.
[x] PR description sums up the changes and reasons why they should be introduced.
[x] I have provided docstrings for the public items that I want to introduce.
[x] I have adjusted the documentation in ./docs/source/.
[x] I added appropriate Fixes: annotations to PR description.

Sorry for the long wait.
Generally looks good to me, assuming that CI passes. I see that it didn't, but the logs already expired.
Could you rebase on current main, drop the merge commit and squash the remaining 2?
Then CI will run again and we'll see if everything works.

@nsipplswezey What's the status of this?


Small description error in ice essence shop

The frozen skin perk in the ice essence shop under miscellaneous has the wrong description it being:
- "Increases your Defense by 2-10 while on Jerry's Workshop"
Whereas it should say:
- "Grants 2-10❄Cold Resistance"
I'm not personally bothered by this; I just wanted to give a heads-up so it won't confuse anyone looking at it.

Changed it, waiting for review


Script to find undocumented options

This script browses the manpages and tries all command line options and
shows where the two differ: Undocumented options (i.e., where an option
the help page mentions, but that doesn't appear in the manpage) and
unsupported options (i.e., where an option appears in the manpage, but
not in the help page).
I'm aware that most other scripts are written in Perl, but I'm unable to code any perl and wrote this script just to find discrepancies in the docs. So I thought I'd give it a shot to anyone who is interested.

For the record, I wrote this because I believed https://github.com/openssl/openssl/issues/3043 to have the root cause in an option that's undocumented in the manpage (-ignore_errs). For reference, this is what it spits out for current master:
ca: Undocumented options are:
	* crlsec
	* sigopt
ciphers: Unsupported options are:
	* ssl3
	* tls1_3
cms: Undocumented options are:
	* EncryptedData_decrypt
	* aes128-wrap
	* aes192-wrap
	* aes256-wrap
	* allow_proxy_certs
	* debug_decrypt
	* des3-wrap
	* engine
	* indef
	* issuer_checks
	* keyform
	* no_attr_verify
	* no_content_verify
	* nosigs
	* noverify
	* pwri_password
	* receipt_request_first
	* verify_retcode
cms: Unsupported options are:
	* no_signer_cert_verify
crl: Undocumented options are:
	* badsig
	* crlnumber
	* fingerprint
	* gendelta
	* hash_old
	* key
	* keyform
	* no-CAfile
	* no-CApath
	* verify
dgst: Undocumented options are:
	* debug
	* mac
	* macopt
	* sigopt
dgst: Unsupported options are:
	* I
dsa: Undocumented options are:
	* pvk-none
	* pvk-strong
	* pvk-weak
enc: Undocumented options are:
	* base64
	* v
enc: Unsupported options are:
	* z
engine: Undocumented options are:
	* help
	* vvvv
errstr: Undocumented options are:
	* help
exit: Manpage for command entirely missing
gendsa: Undocumented options are:
	* passout
genpkey: Unsupported options are:
	* cipher
genrsa: Undocumented options are:
	* F4
help: Manpage for command entirely missing
list: Undocumented options are:
	* missing-help
ocsp: Undocumented options are:
	* allow_proxy_certs
	* badsig
	* ignore_err
	* issuer_checks
	* rmd
	* timeout
ocsp: Unsupported options are:
	* md5
passwd: Undocumented options are:
	* reverse
pkcs12: Undocumented options are:
	* LMK
	* engine
	* nodes
	* nomac
	* nomaciter
pkcs7: Undocumented options are:
	* print
pkey: Unsupported options are:
	* cipher
prime: Manpage for command entirely missing
rand: Undocumented options are:
	* engine
rehash: Undocumented options are:
	* compat
	* h
	* help
	* n
	* old
	* v
req: Undocumented options are:
	* pkeyopt
	* sigopt
rsa: Undocumented options are:
	* pvk-none
	* pvk-strong
	* pvk-weak
rsautl: Undocumented options are:
	* engine
	* oaep
	* passin
	* rev
	* x931
s_client: Undocumented options are:
	* CRL
	* CRLform
	* allow_proxy_certs
	* brief
	* build_chain
	* cert_chain
	* chainCAfile
	* chainCApath
	* client_sigalgs
	* crl_download
	* debug_broken_protocol
	* dhparam
	* groups
	* host
	* issuer_checks
	* keymatexport
	* keymatexportlen
	* legacy_renegotiation
	* legacy_server_connect
	* msgfile
	* mtu
	* name
	* named_curve
	* no_legacy_server_connect
	* no_renegotiation
	* no_resumption_on_reneg
	* nocommands
	* noct
	* port
	* prexit
	* psk
	* psk_identity
	* psk_session
	* record_padding
	* security_debug
	* security_debug_verbose
	* srp_lateuser
	* srp_moregroups
	* srp_strength
	* srppass
	* srpuser
	* ssl_client_engine
	* ssl_config
	* strict
	* timeout
	* use_srtp
	* verifyCAfile
	* verifyCApath
	* verify_quiet
	* xcert
	* xcertform
	* xchain
	* xchain_build
	* xkey
	* xkeyform
s_client: Unsupported options are:
	* sctp
	* ssl3
	* tls1_3
s_server: Undocumented options are:
	* psk_session
s_server: Unsupported options are:
	* sctp
	* ssl3
	* tls1_3
	* trace
s_time: Undocumented options are:
	* cafile
s_time: Unsupported options are:
	* CAfile
	* nbio
	* ssl3
sess_id: Undocumented options are:
	* cert
smime: Undocumented options are:
	* allow_proxy_certs
	* engine
	* issuer_checks
	* keyform
	* no_check_time
	* noattr
	* nocerts
	* nochain
	* nodetach
	* nointern
	* nosigs
	* nosmimecap
	* noverify
speed: Undocumented options are:
	* async_jobs
	* mb
	* misalign
	* mr
	* multi
srp: Manpage for command entirely missing
ts: Undocumented options are:
	* allow_proxy_certs
	* attime
	* auth_level
	* check_ss_sig
	* crl_check
	* crl_check_all
	* explicit_policy
	* extended_crl
	* help
	* ignore_critical
	* inhibit_any
	* inhibit_map
	* issuer_checks
	* no_alt_chains
	* no_check_time
	* partial_chain
	* policy
	* policy_check
	* policy_print
	* purpose
	* query
	* reply
	* suiteB_128
	* suiteB_128_only
	* suiteB_192
	* trusted_first
	* use_deltas
	* verify
	* verify_depth
	* verify_email
	* verify_hostname
	* verify_ip
	* verify_name
	* x509_strict
ts: Unsupported options are:
	* sha1
verify: Undocumented options are:
	* issuer_checks
version: Undocumented options are:
	* r
x509: Undocumented options are:
	* badsig
	* checkemail
	* checkhost
	* checkip
	* issuer_hash_old
	* next_serial
	* nocert
	* sigopt
	* subject_hash_old

wow, long comment :)
I like this.  It probably has to be in perl.  (Which is sad because I prefer python) And perhaps part of find-doc-nits?  I can use your python script as the basis for find-doc-nits integration if necessary.

Hi Rich, yup I feared this -- maybe it's still useful for someone, even when it never makes it mainline :-)

Is having a Python script in the distro okay if it isn't run by the build system?
This seems like it would be useful even if only manually run (by those who've got Python installed).

Or in the tools repo?

I'm going to translate to perl and put it in the find-doc-nits script.  I think it's highly useful!

BTW, you should look at the "list --missing-help" command.

Closing in favor of #4144.
Thanks for the idea!


Support VectorDrawable not supported yet?

I tried to use a vector drawable (with support enabled) using the following code:
 <de.hdodenhof.circleimageview.CircleImageView                 android:id="@+id/profile_image"                 android:layout_width="150dp"                 android:layout_height="150dp"                 app:srcCompat="@drawable/ic_vector_drawable" />
But the background becomes totally white. Do vector drawables are not supported yet?

Please have a look at #122 and #138 for the state of vector drawable support.

Thanks for the quick reply @hdodenhof . I'll follow your sugestions!


Benchmarking: Determine why single-channel throughput test is flaking in GCE

The temporary workaround is PR #6250 . We need to root-cause the problem.

FTR:
+ bins/opt/qps_json_driver '--scenarios_json={"scenarios": [{"name": "cpp_single_channel_throughput_secure", "warmup_seconds": 5, "benchmark_seconds": 30, "num_servers": 1, "server_config": {"async_server_threads": 0, "core_limit": 4, "security_params": {"use_test_ca": true, "server_host_override": "foo.test.google.fr"}, "payload_config": {"bytebuf_params": {"resp_size": 65536, "req_size": 65536}}, "server_type": "ASYNC_GENERIC_SERVER"}, "client_config": {"client_type": "ASYNC_CLIENT", "security_params": {"use_test_ca": true, "server_host_override": "foo.test.google.fr"}, "payload_config": {"bytebuf_params": {"resp_size": 65536, "req_size": 65536}}, "client_channels": 1, "async_client_threads": 0, "outstanding_rpcs_per_channel": 100, "rpc_type": "STREAMING", "load_params": {"closed_loop": {}}, "histogram_params": {"max_possible":<PHONE_NUMBER>0.0, "resolution": 0.01}}, "num_clients": 1}]}' --scenario_result_file=scenario_result.json
RUNNING SCENARIO: cpp_single_channel_throughput_secure
I0421 18:10:05.072179138   21327 socket_utils_common_posix.c:170] Disabling AF_INET6 sockets because ::1 is not available.
I0421 18:10:05.075903514   21326 driver.cc:246]              Starting server on grpc-performance-server1:10000 (worker #0)
I0421 18:10:05.092287827   21326 driver.cc:309]              Starting client on grpc-performance-client1:10000 (worker #1)
I0421 18:10:05.096191303   21326 driver.cc:352]              Warming up
I0421 18:10:10.096316084   21326 driver.cc:358]              Starting
I0421 18:12:05.588090237   21326 driver.cc:379]              Running
I0421 18:12:05.588174367   21326 driver.cc:390]              Finishing clients

TIMEOUT: qps_json_driver.cpp_single_channel_throughput_secure [pid=21323]

https://grpc-testing.appspot.com/job/gRPC_performance_experiment/166/console

Looking at the build history, this time the test times out is https://grpc-testing.appspot.com/job/gRPC_performance_experiment/147/    - which is right after we merged #6236. So it's definitely one of the changes from that PR (but probably not the one we are trying to revert in #6250)

@vjpai any updates on tracking down this flake?

No, getting back to this today. I had to set it aside for a bit to put in #7018 since that code needed to get reviewed (even though it's not important for GA)

Ok, I have root-caused this.
This happens as a result of BeginSwap/EndSwap in the client histogram management.
The thread that is calling CQ.next is actually out of work, so it gets stuck waiting for CQ.next to complete. This could theoretically happen with any test but is more likely with large message tests since they inherently send fewer messages at a time. However, its completion is expected so that the histogram can be swapped out and EndSwap can continue. So we have a simple deadlock in the test. This is not a core flake; it is a test flake. I propose that we downgrade this from GA-blocking.

Removing this from GA blocking per @vjpai's comment earlier.

@vjpai -  I should have checked with you before looking at this - my apologies.
(I can't believe you worked on this during your vacation! :)). I missed your update; refreshed the page too late.
Craig and I also looked at this. You are correct about the root case. I am just documenting our findings as FYI:
The bug happens (i.e cq.next() never returns for one of the threads) because of the following code.
In this case the config.client_channels() == 1 but the cli_cqs_ are more than 1 (we create as many completion queues as the number of client threads). Which means that only cli_cqs_[0] has any rpcs. All other completion queues are idle and threads on them will block.
File: client_async.cc
   AsyncClient(const ClientConfig& config,
              std::function<ClientRpcContext*(
                  StubType*, std::function<gpr_timespec()> next_issue,
                  const RequestType&)>
                  setup_ctx,
              std::function<std::unique_ptr<StubType>(std::shared_ptr<Channel>)>
                  create_stub)
      : ClientImpl<StubType, RequestType>(config, create_stub),
        num_async_threads_(NumThreads(config)) {
    ..
    for (int ch = 0; ch < config.client_channels(); ch++) {
      for (int i = 0; i < config.outstanding_rpcs_per_channel(); i++) {
        auto* cq = cli_cqs_[t].get();
        auto ctx =
            setup_ctx(channels_[ch].get_stub(), next_issuers_[t], request_);
        ctx->Start(cq);
      }
      t = (t + 1) % cli_cqs_.size();    // <<<<<< [sreek] This is the problem. >>>>
    }

No activity here for long time, closing.


Backport:UI:New Monitoring Prometheus PVC doesn't work with OpenEBS

https://github.com/rancher/rancher/issues/19608

Version: v2.2.3-rc7
I can confirm that when monitoring is enabled it will now automatically set this answer:
prometheus.persistent.useReleaseName = true
You will see it added after you enable monitoring for cluster or project level monitoring.
This essentially shortens the name of the prometheus-project-monitoring-db-prometheus-project-monitoring-0 which is the issue that was observed here #19410
I confirmed that this indeed resulted in the shortening of that name and thus this should resolve the issue with OpenEBS.
The name is now about as short as prometheus-project-monitoring and all  names stay under the 63 char limit OpenEBS has. This should resolve the issue.

This is NOT FIXED in v2.2.3 !
We had to cut a release for v2.2.3 to fix an important issue with monitoring so v2.2.3 only has that one monitoring fix. Please wait for v2.2.4 for this fix.


[Event Request] report 393 "Suggest Vendor Payments" - MakeGenJnlLines

Hello,
Please add the following events:

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.


Batch update is not supported

Seems batch update is not supported. Just wonder if it will be supported in near future? A great library anyway 👍

Does DynamoDB support batched updates?


has not check commitVotes

In the Finalize stage, the number of precommitVotes is checked instead of the number of commitVotes. Does that mean that even if there is no commit stage, as long as timeout triggers enterFinalize, the block will grow? Thank you!

pls, give a link to code for reference this issue.

pls, give a link to code for reference this issue.

src/main/java/com/fusionbank/blockchain/consensus/bft/BFT.java
    protected void enterFinalize() {

        Optional<byte[]> blockHash = precommitVotes.anyApproved();

I think here should be commitVotes.anyApproved();
thx!

Reopening it, this was not resolved in ec75fc9, but #306

Reopening it, this was not resolved in ec75fc9, but #306

I think #306 has not resolved this problem

Yup, I ment this commit solved other issue

There are two paths that could lead to enterFinalize:

When 2/3 of the validators have signalled COMMIT vote (see the 2/3 vote check here)
Time out after the commit phase (see this code)

Compared with the original PBFT algorithm, SemuxBFT works as follows:
PRE_PREPARE message     -> BFT_PROPOSAL message

PREPARE message         -> BFT_VOTE message (VALIDATE vote)

<prepared certificate>  -> 2/3 VALIATE certificate

COMMIT message          -> BFT_VOTE message (PRECOMMIT vote)

<commited certificate>  -> 2/3 PRECOMMIT certificate

Commit state change     -> Broadcast BFT_VOTE message (COMMIT vote)
                           Wait for 2/3 COMMIT votes or timeout (whichever comes first)
                           Commit state change

As you see, the COMMIT votes are mainly for network synchronization purpose. It is not part of the certificates and is not related to COMMIT messages in PBFT.

I see. Thank you


Feat/self loop stories

related to : #258
Allow a story to link to itself if the story has branches
You need an "intro story" to enter the loop, e.g : the Get started story could link to the story with the self links
     |
Get started
     |
     |
+----+
|    |
|    V
|
|  Start
|    |
|    +--------+-----+--------+
|    |        |     |        |
|   Back     Fwd   Info     Exit
+----+        |     |        |
|             |     |        |
+-------------+     |        |
|                   |        |
+-------------------+        |
			     |
                             +-------> Something Else

[x] I wrote tests for the feature
[ ] I documented the feature if needed

If the feature is a refactor, please explain why your way is better

/gcbrun


Adds accessibility testing

Adds accessibility testing.
Additions

Adds gulp test:a11y accessibility testing using node-wcag.

Removals

Changes

Adds binaryDirectory parameter to fsHelper.getBinary helper function.

Testing

See bottom of TEST.md

Review

@sebworks
@KimberlyMunoz
@jimmynotjim

Todos

NOTE: The change noted in https://github.com/cfpb/node-wcag/issues/35 needs to be fixed before merging this PR or this will only work with the homepage.

A couple or errors when running gulp lint.

This is ready to review again cc @sebworks @jimmynotjim @KimberlyMunoz

Runs well locally, :+1:

:+1:


Failure on GHC 7.10

http://hackage.haskell.org/package/timerep points to this repo, so I'm reporting here.
[1 of 2] Compiling Data.Time.RFC2822 ( Data/Time/RFC2822.hs, dist/dist-sandbox-c7fca7f4/build/Data/Time/RFC2822.o )

Data/Time/RFC2822.hs:75:16:
    Ambiguous occurrence ‘defaultTimeLocale’
    It could refer to either ‘Data.Time.Format.defaultTimeLocale’,
                             imported from ‘Data.Time.Format’ at Data/Time/RFC2822.hs:39:1-23
                             (and originally defined in ‘time-<IP_ADDRESS>:Data.Time.Format.Locale’)
                          or ‘System.Locale.defaultTimeLocale’,
                             imported from ‘System.Locale’ at Data/Time/RFC2822.hs:43:1-20

Data/Time/RFC2822.hs:96:25:
    Ambiguous occurrence ‘defaultTimeLocale’
    It could refer to either ‘Data.Time.Format.defaultTimeLocale’,
                             imported from ‘Data.Time.Format’ at Data/Time/RFC2822.hs:39:1-23
                             (and originally defined in ‘time-<IP_ADDRESS>:Data.Time.Format.Locale’)
                          or ‘System.Locale.defaultTimeLocale’,
                             imported from ‘System.Locale’ at Data/Time/RFC2822.hs:43:1-20

Thank you so much :) i merged and uploaded the new version to hackage.

Is there a pending issue, or can we close this issue ?


Node min version?

I'm running Node 16.x and I can't install it successfully, I presume this requires the latest version?

Yes, this is correct


API doesn't work

I'm trying to use the API in the simplest possible way, but it breaks on any call to bundle(). Of course I may be doing things wrong, but it's hard to tell because there is no example usage of the api (none that I can find anyways). I did look at the tests though and this looks as though it should word:
npm install watchify
npm install browserify

index.js
var browserify = require('browserify')
	, watchify = require('watchify')
	, b = browserify('./a.js', watchify.args)
	, w = watchify(b)

w.on('update', function () {
	w.bundle(function (err, src) {
		console.log('err', err)
		console.log('src', src)
	})
})

w.bundle(function (err, src) {
  console.log('err', err)
	console.log('src', src)
})

Running index.js produces the following error:
Error: bundle() no longer accepts option arguments.
Move all option arguments to the browserify() constructor.
    at Browserify.bundle (/Users/shawnfreyssonnet-inder/Work/gaston/node_modules/browserify/index.js:569:15)
    at Browserify.b.bundle (/Users/shawnfreyssonnet-inder/Work/gaston/node_modules/watchify/index.js:129:25)
    at Object.<anonymous> (/Users/shawnfreyssonnet-inder/Work/gaston/tests/perf/browserify/index.js:15:3)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Function.Module.runMain (module.js:497:10)
    at startup (node.js:119:16)
    at node.js:906:3

I also tried removing the functions in the calls to bundle() but that changes nothing

This should work. Please open a new issue if you're still having this problem.

Problem solved, thanks a lot!


Not able to run in Ubuntu 20.04 for error related to PyQt5

Following advice from another closed issue from this repo tried this alternative way to run.
import pandas as pd
from pandasgui import show
from PyQt5 import QtCore, QtGui, QtWidgets, QtWebEngineWidgets
from PyQt5.QtWebEngineWidgets import QWebEngineView
app = QtWidgets.QApplication([])
df = pd.DataFrame(([[1, 2, 3], [4, 5, 6], [7, 8, 9]]), columns=['a', 'b', 'c'])
show(df)

But getting below error
---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-1-8c40c842eba1> in <module>
      1 import pandas as pd
----> 2 from pandasgui import show
      3 from PyQt5 import QtCore, QtGui, QtWidgets, QtWebEngineWidgets
      4 from PyQt5.QtWebEngineWidgets import QWebEngineView
      5 app = QtWidgets.QApplication([])

~/.local/lib/python3.8/site-packages/pandasgui/__init__.py in <module>
----> 1 from pandasgui.gui import show
      2
      3 __all__ = ["show"]

~/.local/lib/python3.8/site-packages/pandasgui/gui.py in <module>
     12 from pandasgui.store import Store, PandasGuiDataFrame
     13 from pandasgui.utility import fix_ipython, fix_pyqt, get_logger, as_dict, delete_datasets
---> 14 from pandasgui.widgets.dataframe_explorer import DataFrameExplorer
     15 from pandasgui.widgets.find_toolbar import FindToolbar
     16 from pandasgui.widgets.json_viewer import JsonViewer

~/.local/lib/python3.8/site-packages/pandasgui/widgets/dataframe_explorer.py in <module>
      7 from pandasgui.utility import get_logger, nunique
      8 from pandasgui.widgets.dataframe_viewer import DataFrameViewer
----> 9 from pandasgui.widgets.grapher import Grapher
     10 from pandasgui.widgets.reshaper import Reshaper
     11 from pandasgui.widgets.filter_viewer import FilterViewer

~/.local/lib/python3.8/site-packages/pandasgui/widgets/grapher.py in <module>
     13
     14 from pandasgui.utility import flatten_df, get_logger
---> 15 from pandasgui.widgets.plotly_viewer import PlotlyViewer
     16 from pandasgui.widgets.spinner import Spinner
     17 from pandasgui.widgets.dragger import Dragger, ColumnArg, Schema

~/.local/lib/python3.8/site-packages/pandasgui/widgets/plotly_viewer.py in <module>
     27         app.__init__(sys.argv)
     28     else:
---> 29         raise e
     30
     31

~/.local/lib/python3.8/site-packages/pandasgui/widgets/plotly_viewer.py in <module>
     15 # https://stackoverflow.com/a/57436077/3620725
     16 try:
---> 17     from PyQt5 import QtWebEngineWidgets
     18 except ImportError as e:
     19     if e.msg == "QtWebEngineWidgets must be imported before a QCoreApplication instance is created":

ImportError: /lib/x86_64-linux-gnu/libQt5Network.so.5: undefined symbol: _ZN15QIPAddressUtils8toStringER7QStringPh, version Qt_5

And I already have installed and upgraded PyQt5 as below
pip3 install --user --upgrade PyQt5

pip3 install --user --upgrade PyQt5-sip

I think you might have a corrupted PyQt5 installation. Can you try just running from PyQt5 import QtWebEngineWidgets? Should be the same error, so it's not related to PandasGUI specifically.
First thing I'd try to fix it is reinstall all PyQt packages:
pip uninstall -y PyQt5 PyQtWebEngine PyQt5-sip
pip install PyQt5 PyQtWebEngine PyQt5-sip
And if that doesn't work what's the output of pip freeze | grep -i pyqt?

@adamerose I have the same problem. The output of pip freeze | grep -i pyqt is
PyQt5==5.14.1
PyQt5-sip==12.8.1
PyQtWebEngine==5.14.0

Thanks

So I finally resolved in Ubuntu 20.04 it as below.

Main reason for my case was, I had broken pyqt5 - so I was not able to uninstall it and also NOT able to install a fresh version of PyQt5.

So finally had to manually delete  PyQt5 + PyQt5-sip + PyQtWebEngine  respective installed directories from the below three locations.

/usr/lib/python3/dist-packages

/usr/local/lib/python3.8/dist-packages

/home/user_name/.local/lib/python3.8/site-packages

Then install them back with pip install PyQt5 PyQtWebEngine PyQt5-sip

Now, check the installed versions of those packages by running pip freeze | grep -i pyqt

Now got the upgraded and correct package version as below
PyQt5==5.15.1
PyQt5-sip==12.8.1
PyQtWebEngine==5.15.1

Then also had to uninstall pandasgui by running pip uninstall pandasgui and then reinstall it again.

And now pandasgui	is running fine.