text:
improve efficiency of copy command for single files

I'm developing a backup program, HashBackup, that can send backup files to destinations.  After a customer wrote in to say he was going to use rclone to sync his backup to ACD (not directly supported by HB), I realized I could write an HB shell destination script to use rclone for send, get, and rm operations.  It just uses the copy and delete operations on single files, by using --include  (implying exclude everything else).  It works great, and is easy to setup.  Thanks!
But when copying a single file, either from local-to-remote, or remote-to-local, rclone reads the entire remote object list.  It seems like for local-to-remote copy, rclone only needs to build the local list of files and check them against the remote.  (I will try -I when it's released; I'd rather it didn't do any remote checks and just transfer the file.)  For remote-to-local copy, it seems like rclone would only need to traverse the remote object list if there are wildcards involved in the filter list.  For a simple --include  that isn't a wildcard, it could just copy the one file and be done.
Here is a remote-to-local copy:
Running command: rclone -v  --no-gzip-encoding --include DESTID copy b2:hashbackup /home/jim/hb/tmpbGxzl1.b2
2016/04/05 20:18:26 B2 bucket hashbackup: Modify window not supported
2016/04/05 20:18:26 Local file system at /home/jim/hb/tmpbGxzl1.b2: Building file list
(below files are all on B2, not local)
2016/04/05 20:18:28 arc.0.0: Excluded from sync (and deletion)
2016/04/05 20:18:28 arc.1.0: Excluded from sync (and deletion)
2016/04/05 20:18:28 dest.db: Excluded from sync (and deletion)
2016/04/05 20:18:28 hb.db.0: Excluded from sync (and deletion)
2016/04/05 20:18:28 hb.db.1: Excluded from sync (and deletion)
2016/04/05 20:18:28 test/arc.0.0: Excluded from sync (and deletion)
2016/04/05 20:18:28 test/arc.0.1: Excluded from sync (and deletion)
2016/04/05 20:18:28 test/arc.0.10: Excluded from sync (and deletion)
2016/04/05 20:18:28 test/arc.0.12: Excluded from sync (and deletion)
2016/04/05 20:18:28 test/arc.0.2: Excluded from sync (and deletion)
2016/04/05 20:18:28 test/arc.0.3: Excluded from sync (and deletion)
2016/04/05 20:18:28 test/arc.0.4: Excluded from sync (and deletion)
2016/04/05 20:18:28 test/arc.0.6: Excluded from sync (and deletion)
2016/04/05 20:18:28 test/arc.0.7: Excluded from sync (and deletion)
2016/04/05 20:18:28 test/arc.0.9: Excluded from sync (and deletion)
2016/04/05 20:18:28 test/arc.1.0: Excluded from sync (and deletion)
2016/04/05 20:18:28 test/hb.db.0: Excluded from sync (and deletion)
2016/04/05 20:18:28 Local file system at /home/jim/hb/tmpbGxzl1.b2: Waiting for checks to finish
2016/04/05 20:18:28 Local file system at /home/jim/hb/tmpbGxzl1.b2: Waiting for transfers to finish
2016/04/05 20:18:29 DESTID: Copied (new)
Here is a local-to-remote copy:
Running command: rclone -v  --include DESTID copy /home/jim/hb/tmppkcpii.b2 b2:hashbackup
2016/04/05 20:19:59 B2 bucket hashbackup: Modify window not supported
2016/04/05 20:20:00 B2 bucket hashbackup: Building file list
2016/04/05 20:20:02 arc.0.0: Excluded from sync (and deletion)
2016/04/05 20:20:02 arc.1.0: Excluded from sync (and deletion)
2016/04/05 20:20:02 dest.db: Excluded from sync (and deletion)
2016/04/05 20:20:02 hb.db.0: Excluded from sync (and deletion)
2016/04/05 20:20:02 hb.db.1: Excluded from sync (and deletion)
2016/04/05 20:20:02 test/arc.0.0: Excluded from sync (and deletion)
2016/04/05 20:20:02 test/arc.0.1: Excluded from sync (and deletion)
2016/04/05 20:20:02 test/arc.0.10: Excluded from sync (and deletion)
2016/04/05 20:20:02 test/arc.0.12: Excluded from sync (and deletion)
2016/04/05 20:20:02 test/arc.0.2: Excluded from sync (and deletion)
2016/04/05 20:20:02 test/arc.0.3: Excluded from sync (and deletion)
2016/04/05 20:20:02 test/arc.0.4: Excluded from sync (and deletion)
2016/04/05 20:20:02 test/arc.0.6: Excluded from sync (and deletion)
2016/04/05 20:20:02 test/arc.0.7: Excluded from sync (and deletion)
2016/04/05 20:20:02 test/arc.0.9: Excluded from sync (and deletion)
2016/04/05 20:20:02 test/arc.1.0: Excluded from sync (and deletion)
2016/04/05 20:20:02 test/hb.db.0: Excluded from sync (and deletion)
2016/04/05 20:20:02 B2 bucket hashbackup: Waiting for checks to finish
2016/04/05 20:20:02 DESTID: Sizes identical
2016/04/05 20:20:02 DESTID: Unchanged skipping
2016/04/05 20:20:02 B2 bucket hashbackup: Waiting for transfers to finish
It works great when deleting files, and doesn't list the remote directory.  This example is a little messy because B2 and Hubic are executing concurrently:
HB shell [29839] command: rm ['dest.db']
Running command: rclone -c -v  --include dest.db delete b2:hashbackup
HB shell [29843] command: rm ['DESTID']
Running command: rclone -c -v  --include DESTID delete hubic:test
HB shell [29849] command: rm ['DESTID']
Running command: rclone -c -v  --include DESTID delete b2:hashbackup
HB shell [29850] command: rm ['dest.db']
Running command: rclone -c -v  --include dest.db delete hubic:test
2016/04/05 21:04:34 B2 bucket hashbackup: Modify window not supported
2016/04/05 21:04:34 Waiting for deletions to finish
2016/04/05 21:04:35 B2 bucket hashbackup: Modify window not supported
2016/04/05 21:04:35 Waiting for deletions to finish
2016/04/05 21:04:36 Hubic: Got swift credentials (expiry 2016-04-06 16:42:50 +0200 +0200 in 13h38m13.988498139s)
2016/04/05 21:04:36 Hubic Swift container test: Modify window is 1ns
2016/04/05 21:04:36 Waiting for deletions to finish
2016/04/05 21:04:36 Hubic: Got swift credentials (expiry 2016-04-06 16:42:50 +0200 +0200 in 13h38m13.885441402s)
2016/04/05 21:04:36 Hubic Swift container test: Modify window is 1ns
2016/04/05 21:04:36 Waiting for deletions to finish
Transferred:            0 Bytes (   0.00 kByte/s)
Errors:                 0
Checks:                 0
Transferred:            0
Elapsed time:        1.8s
2016/04/05 21:04:36 Go routines at exit 4
Removed dest.db from hubic
2016/04/05 21:04:38 dest.db: Deleted
Transferred:            0 Bytes (   0.00 kByte/s)
Errors:                 0
Checks:                 1
Transferred:            0
Elapsed time:        4.3s
2016/04/05 21:04:38 Go routines at exit 6
Removed dest.db from b2
2016/04/05 21:04:38 DESTID: Deleted
Transferred:            0 Bytes (   0.00 kByte/s)
Errors:                 0
Checks:                 1
Transferred:            0
Elapsed time:        4.5s
2016/04/05 21:04:38 Go routines at exit 4
Removed DESTID from hubic
2016/04/05 21:04:40 DESTID: Deleted
Transferred:            0 Bytes (   0.00 kByte/s)
Errors:                 0
Checks:                 1
Transferred:            0
Elapsed time:        5.7s
2016/04/05 21:04:40 Go routines at exit 6
Removed DESTID from b2
All backups removed
Thanks again for an interesting tool that lets HashBackup interface with even more destinations!

This will get fixed shortly as part of the directory listing refactor!

Great, thanks!
On 4/6/16, Nick Craig-Wood notifications@github.com wrote:

This will get fixed shortly as part of the directory listing refactor!

You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub:
https://github.com/ncw/rclone/issues/422#issuecomment-206246622

--
HashBackup: easy onsite and offsite Unix backup
http://www.hashbackup.com

This has been fixed as part of af4ef8ad8d1dcae105138d8046d6793c89de9a7b and f6a053df6e0ec83a8a4fce9db436285d99cafba5 .

Hi Nick - I added --no-traverse, and now can copy files from local to remote without any directory listings.  That's good!
But when copying files from remote to local, rclone 1.35 is still doing a remote directory listing when it doesn't have to.  Here is a session transcript with debugging (the ... in the pathname I added for posting):
Running command: rclone -c -q --stats=0 -v --no-traverse --no-gzip-encoding --include hb.db.2 copy acd:test /Users/.../hbrclone/tmpWBlEYl.acd
2017/01/09 22:14:53 rclone: Version "v1.35" starting with parameters ["rclone" "-c" "-q" "--stats=0" "-v" "--no-traverse" "--no-gzip-encoding" "--include" "hb.db.2" "copy" "acd:test" "/Users/.../hbrclone/tmpWBlEYl.acd"]
2017/01/09 22:15:00 amazon drive root 'test': Modify window not supported
2017/01/09 22:15:00 amazon drive root 'test': Reading ""
2017/01/09 22:15:00 amazon drive root 'test': Finished reading ""
2017/01/09 22:15:00 arc.0.0: Excluded from sync (and deletion)
2017/01/09 22:15:00 hb.db.1: Excluded from sync (and deletion)
2017/01/09 22:15:00 DESTID: Excluded from sync (and deletion)
2017/01/09 22:15:00 arc.2.0: Excluded from sync (and deletion)
2017/01/09 22:15:00 hb.db.0: Excluded from sync (and deletion)
2017/01/09 22:15:00 dest.db: Excluded from sync (and deletion)
2017/01/09 22:15:00 hb.db.2: Copied (new)
2017/01/09 22:15:00 Go routines at exit 10

Is there any way I can suppress this remote directory listing?  On a large backup, say 5TB, there would be 50K 100MB arc files on the remote side.  To restore just 10 of these would require downloading 500K directory entries.
Thanks for any tips you might have!

Nevermind, looks like copyto does not do directory listings.  Thanks!

Or instead of doing --include hb.db.2 copy acd:test you could do copy acd:test/hb.db.2 assuming I'm undersdanding what you are doing correctly.
If you want to avoid directory traversals using more than one file, then use the --files-from option.

authors: hashbackup ncw


text:
Theta inference for 2PL and 3PL

scoring.py has theta inference for 1PL models (https://github.com/nd-ball/py-irt/blob/master/py_irt/scoring.py). Let's add scoring for 2PL and 3PL when parameters are known.

I'm exploring this package now and want to upvote this! Looks like it's simply a matter of modifying theta_fn?

Is this repo still active? I'd be happy to make a PR.

Yes! Still active. Apologies as I haven't gotten to this yet, but it you make a PR I'd be happy to review it.

source: gharchive/issue

authors: herculanodavi jplalor timothymeehan

repo: nd-ball/py-irt

license: MIT

license_type: permissive

license_source: github-api


text:
deleted blob remains in blob cache

an existing blob that is deleted with a 'delete' command via POST /item/:itemid/transaction remains in the blob cache (if it has been cached) and will be returned from the cache by a GET /item/:itemid - see
https://github.com/ndlib/bendo/blob/master/server/server_test.go#L86-L97

I commented out the test- it is part of  existing test suite that worked before caching was introduced.

Thanks for making this ticket. I saw the commented out test and forgot to make one.

authors: dbrower msuhovec

repo: ndlib/bendo


text:
Documentation for normaliseEx is wrong

It claims to switch all path separators to /, but it doesn't. Does it switch them all to pathSeparator on Windows? I should check.

Now fixed, and added tests that it follows the docs.

repo: ndmitchell/shake

license_source: bigquery


text:
Using nng together with futures-rs

Hi! I have been tinkering yesterday evening with how to use nng together with a tokio project. I am however not really sure whether I understand your Context and Aio implementations correctly - after all, both speak about a "context".
Here is a (basic) sample implementation that I thought I could use to experiment with the PUB protocol.
use futures::{task::Poll, Sink};
use nng::{Aio, AioState, Error, Message, Socket};
use std::{pin::Pin, sync::atomic::Ordering::Acquire};

struct Pub0Coupler {
    aio: Aio,
    socket: Socket,
}

impl Pub0Coupler {
    fn connect_to_address(addr: &str) -> Result<Pub0Coupler, nng::Error> {
        let socket = Socket::new(nng::Protocol::Pub0)?;
        let aio = Aio::new(|_, _| ())?;
        socket.dial_async(addr)?;
        Ok(Self { aio, socket })
    }
}

impl<T> Sink<T> for Pub0Coupler {
    type Error = Error;
    fn poll_ready(
        self: Pin<&mut Self>,
        _: &mut std::task::Context<'_>,
    ) -> Poll<Result<(), <Self as futures::Sink<T>>::Error>> {
        if let AioState::Inactive = self.aio.state(Acquire) {
            Poll::Ready(Ok(()))
        } else {
            Poll::Pending
        }
    }
    fn start_send(self: Pin<&mut Self>,  data: T) -> Result<(), <Self as futures::Sink<T>>::Error> {
        let msg = Message::new();
        // ... put data here to the message... //
        match self.socket.send_async(&self.aio, msg) {
            Ok(()) => Ok(()),
            Err((_, e)) => Err(e),
        }
    }
    fn poll_flush(
        self: Pin<&mut Self>,
        _: &mut std::task::Context<'_>,
    ) -> Poll<Result<(), <Self as futures::Sink<T>>::Error>> {
        Poll::Ready(Ok(()))
    }
    fn poll_close(
        self: Pin<&mut Self>,
        _: &mut std::task::Context<'_>,
    ) -> Poll<Result<(), <Self as futures::Sink<T>>::Error>> {
        Poll::Ready(Ok(()))
    }
}

I have a few questions now.

By using a single Aio context, is this essentially a sequential interface? E.g., ignoring context switching, would I be about as well off if I spawned the socket.send() call into a blocking pool? I'm not sure from the nng documentation I fully get the reason for Contexts existence - I see that you have this "worker" approach in your example but only comment that it is NOT representing workers - however I'm not sure what this represents. So besides convenience, does using a single Aio instance here actually add something?
I'm not sure whether I need to do something specific on the poll_flush and poll_close calls - I found somewhere that flushing is not really exposed by nng and it's best to simply wait. Would it make sense here to also explicitly sleep like this to make sure we are actually done sending?

 if let AioState::Inactive = self.aio.state(Acquire) {
            Poll::Ready(Ok(()))
        } else {
            tokio::time::sleep(Duration::from_millis(50)).await;
            Poll::Pending
        }

For poll_close, I'd naively expect to call socket.close(), however since that is already called when the socket is droped and I also risk loosing messages here - better have the same implementation as above to "give it a bit of time"?
In this use case (where I essentially let the rust-side take the main control of scheduling here) am I overseeing any more interaction with the nng runtime? As you see I'm essentially just checking whether it's idle or not - is that correct here or can I do a bit better?

Would love to hear your feedback!

This is a cross-post corresponding with https://gitlab.com/neachdainn/nng-rs/-/issues/58. Feel free to close what you consider to be a duplicate.

repo: neachdainn/nng-rs


text:
Switch to redirect flow instead of popup for users of wallet.near.org

Describe the bug
Popups are unexpected UX for anyone in the NEAR ecosystem. AstroDAO is the only dApp doing popups and it's a common point of friction for users, including experienced technical users.

Vlad Grichina is unable to log in iOS / iPhone. He is not getting any noficiation of popup.

Via anon user: I can see why many are not using the toolset.  You need a very specific browser configuration to get the site to work with the NEAR wallet. Chrome doesn't seem to work for about 1/2 of our user group.  When you use firefox, you have to add the site to allow pop-ups. There is no user message or feedback given if the browser is not configured properly to support connection to astrodao. In addition, there seems to be issues with ledger support.

Via Dmitry: We use popup instead of the redirect flow because we need to keep our application UI state (like proposal form, dao form). The opening new window allows us to switch the flow context and have more control over the execution.
If we use redirect, we need to store the UI state before the redirect (local storage e.g),  and restore it. Both approaches have pros/cons, but initially, we were inspired by (https://www.venly.io/ ex. Arcane wallet)  and decided to pick the first option.
The current issue is not directly related to popup/redirect flow - it's a bug that we introduced during the sender wallet integration. The hotfix for the login issue will be included it in the upcoming 3.0.6 release.

repo: near-daos/astro-ui


text:
feat: Added ability to use SourceScan

Resolves #131

@FroVolod Thank you for your contribution! Your pull request is now a part of the Race of Sloths!
New Sloth joined the Race! Welcome!

Current status: waiting for scoring
We're waiting for maintainer to score this pull request with @race-of-sloths score [0,1,2,3,5,8,13] command
What is the Race of Sloths

Race of Sloths is a friendly competition where you can participate in challenges and compete with other open-source contributors within your normal workflow
For contributors:

Tag @race-of-sloths inside your pull requests
Wait for the maintainer to review and score your pull request
Check out your position in the Leaderboard
Keep weekly and monthly streaks to reach higher positions
Boast your contributions with a dynamic picture of your Profile

For maintainers:

Score pull requests that participate in the Race of Sloths
Engage contributors with fair scoring and fast responses so they keep their streaks
Promote the Race to the point where the Race starts promoting you
Grow the community of your contributors

Feel free to check our website for additional details!

Bot commands

For contributors

Include a PR: @race-of-sloths include to enter the Race with your PR

For maintainers:

Assign points: @race-of-sloths score [1/2/3/5/8/13] to award points based on your assessment.
Reject this PR: @race-of-sloths exclude to send this PR back to the drawing board.
Exclude repo: @race-of-sloths pause to stop bot activity in this repo until @race-of-sloths unpause command is called

@race-of-sloths score 13

🌟 Score recorded!
@dj8yfo, thank you for scoring this pull request in the Race of Sloths!

✅ PR is finalized!
Your contribution is much appreciated with a final score of 13!
You have received 150 (130 base + 20 weekly bonus) Sloth points for this contribution
Another weekly streak completed, well done @FroVolod! To keep your weekly streak and get another bonus make pull request next week! Looking forward to see you in race-of-sloths

source: gharchive/pull-request

authors: FroVolod dj8yfo race-of-sloths

repo: near/cargo-near


text:
Dedup display functions for view commands

Deduplicates functions like display_account_info and display_access_key_list, and puts them into common.rs.
This is just one part of the cleanup process, and there will be more after this one. Don't want to snowball all of these into one giant PR, since that wouldn't be good for anyone looking at it, nor would it increase the chance of it being looked at. So let's go with integrating cleanups often

is it failing because I need to increment the version number?
  with:
    tag_name: 0.1.14
    release_name: 0.1.14
    draft: false
    prerelease: false
  env:
    NEAR_CLI_VERSION: 0.1.14
    GITHUB_TOKEN: ***
Error: Validation Failed: {"resource":"Release","code":"already_exists","field":"tag_name"}

repo: near/near-cli-rs


text:
Bug: Recaptcha has not been loaded on Testnet wallet

Problem
As a user, I can't create a new Testnet after I selected my account ID.
Button "continue" doesn't work, and the console returns the error <GoogleReCaptchaProvider /> recaptcha key not provided
Expected Behavior
Accounts can be created normally
Steps to reproduce

Open https://wallet.testnet.near.org
Click "Create account"
Select an account ID and click "Reserve my account ID"
Select any of the available recovery methods
Click "continue" to generate the bug

fixed by #2466

repo: near/near-wallet


text:
docs: add zh-hk translation

Thanks for taking the time to submit a pull request!
If you haven't already, be sure to take a look at the CONTRIBUTING documentation to get up to speed with the practices in this repository.
When you're ready, switch to the "Preview" tab to select an applicable template:

General template (most common)
Wallet integration template

Hey @exodusteam001,
Thanks for the PR.
Please edit your description and click on "General template (most common)]" link this will provide you a template you should fill.
Thank you in advance!

repo: near/wallet-selector


text:
Issue 360 existing organization id error

Implements: https://github.com/nearform/labs-authorization/issues/360

Cleaned up the Joi validation file,
Added Joi validation and tests for the Name field on orgs, users, teams and policies,
Team parent id Joi validation,
Added 400 bad request for cases when trying to create element with existing id. Added tests and error creation for orgs, users, teams and policies.

Coverage increased (+0.1%) to 96.15% when pulling 4a6ecaf2dd9457c29f3f75d501ee89240df72243 on issue-360-existing-organization-id-error into 0049b7003ec0d8a426e0476853f12a6e6b1aa103 on master.

authors: coveralls mihaidma

repo: nearform/labs-authorization

license: mit


text:
Branch switching is failed!

@Nageswari-droid bug fix has been provided. Retest and update the status


text:
Update 0853-car-fleet.java

File(s) Modified: 0853-car-fleet.java
Language(s) Used: java
Submission URL: _https://leetcode.com/problems/car-fleet/submissions/1307543993_

Important
Please make sure the file name is lowercase and a duplicate file does not already exist before merging.

Solution is similar to existing solution

repo: neetcode-gh/leetcode


text:
Table of contents occur err！

hi！
My markdown file is:
---
html:
  embed_local_images: false
  embed_svg: true
  offline: true
  toc: true

print_background: false

export_on_save:
  html: true
---

## One

some contents.

## Two

some contents.

## Three

some contents.

Then, I created a toc using SHIFT+COMMAND+P, then select create table of contents like this:

then, my markdown file is:
---
html:
  embed_local_images: false
  embed_svg: true
  offline: true
  toc: true

print_background: false

export_on_save:
  html: true
---

- [html: true](#html-true)
- [One](#one)
- [Two](#two)
- [Three](#three)

## One

some contents.

## Two

some contents.

## Three

some contents.

Do you see that? The title One, Two, Three is correct, but the first item of toc is not correct. Like this:

My env is：

vscode is v1.30.1
macOS Mojava 10.14.2
my Markdown All in One is 1.8.0

Thank you.

And I try uninstall and reinstall my extension, this problem remains.

Duplicate of #343. This was fixed in the dev build.

@neilsustc When will you release the new package? Thank you!

Probably after the Christmas holiday 😂

@neilsustc All right, thank you for your help! This extension is pretty good! I will close the issue.

repo: neilsustc/vscode-markdown


text:
Depending on the device's locale, amount input doesn't accept decimal comma or dot.

After testing the latest version, the team found a defect where depending on the locale being used, the amount input rejects the standard decimal comma/point.
For example, in most European countries you would write "1.000,00" and in other countries you would write "1,000.00", both to represent "one thousand".

JIRA Ticket: https://nem-software.atlassian.net/browse/WALL1-20

It applies to branch 'sprint-fixes'. For integration it works correctly.

fixed

This issue in Jira had moved to done status (fixed and tested )so closing this issue
https://nem-software.atlassian.net/browse/WALL1-20

Fixed in integration branch.

authors: NikolaiB coiki cryptoBeliever surekabpm

repo: nemgrouplimited/symbol-desktop-wallet


text:
It is recommended to add the getAddressFromScriptHash method.

The address parameter output of the contract notify is in the form of ScriptHash, which is difficult to convert to an address. But what Dapp needs more is the address, not ScriptHash.

Why dapp needs address instead of ScriptHash?

For example, I need to get the owner information of an NNS. The owner information returned by invokescript is Scritphash, and the user needs to look at Address. At this time, if I don't convert, I can't display the information that the user can understand.

You can convert it in wallet or client. You don't need to convert it in dapp. To convert a script hash to an address, you can use a SDK.

ok

authors: QingmingZi erikzhang

repo: neo-project/neo-cli


text:
add sink lifecyle procedures

Fixes #320 in branch 4.0
Provide the same set of feature as we did in branch 3.5
Proposed Changes (Mandatory)
A brief list of proposed changes in order to fix the issue:

added streams.sink.stop
added streams.sink.start
added streams.sink.restart
added tests

Are these meant to be per database or global?

Are these meant to be per database or global?

per database

@jexp I updated the PR with your feedback. Thank you!

OK to merge?

authors: conker84 jexp moxious


text:
Implementing having_rel and not_having_rel

This pull introduces/changes:

having_rel, that returns nodes having a certain relation
not_having_rel, that returns nodes not having a certain relation

Both accept an association_name and an optional hash of association properties.
Pings:
@cheerfulstoic
@subvertallchris

I like this a lot!  Thanks so much for knocking it out!
One case that I think could be valuable, though I'm not sure quite how to do it: what if somebody wants to filter the relationships based on something other than exact matching (like >/< or partial string matching)?  I was thinking that users could provide a string, though we'd need to give them a way to specify the variable name.  What do you think?

@cheerfulstoic Uhm. I think that if the user wants to match by >/< and similar, we have to change a bit the query (and so, we can't use WHERE (n)-[:relname]-() and WHERE NOT (n)-[:relname]-()).
Instead, we have to switch to an optional match, maybe. Something like:
MATCH (n:`Some`) OPTIONAL MATCH (n)-[r:some_other]->() WHERE r IS NOT NULL AND r.some_property > {some_value}

However, I'm not sure of it. Thoughts?

[Current coverage][cc-pull] is 98.03%

Merging [#1207][cc-pull] into [master][cc-base-branch] will increase coverage by 0.71%

@@             master      #1207   diff @@
==========================================
  Files           182        182
  Lines         10972      10942    -30
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
+ Hits          10678      10727    +49
+ Misses          294        215    -79
  Partials          0          0

Powered by Codecov. Last updated by [4e17c25...901f354][cc-compare]
[cc-base-branch]: https://codecov.io/gh/neo4jrb/neo4j/branch/master?src=pr
[cc-compare]: https://codecov.io/gh/neo4jrb/neo4j/compare/4e17c25ae98e574fda0e29fa8e3eb17f1c80a315...901f3542459da96d6f9c7f73f87b8e9fcdf1e471
[cc-pull]: https://codecov.io/gh/neo4jrb/neo4j/pull/1207?src=pr

Ah, right, good point because you can't define a variable for the rel in a WHERE.  Then yeah, I say we can leave it as you have it for now because matching rels in WHERE can also only match exact, so I think it makes sense.
@subvertallchris Any thoughts / objections / praise?

We discussed this with @subvertallchris some and he was concerned about raw Cypher inside the method.  I would say, though, that the API is good and we can always change the implementation later if we want.  So I say merge.  In somewhat of the the spirit of the C4 specification if anybody doesn't like it, they can make another PR ;)

For me it's ok 👍

Done! ;)

authors: ProGM cheerfulstoic codecov-io


text:
Require type in associations

Also requiring that only one of type, origin, and rel_class are specified

Coverage increased (+0.01%) to 98.18% when pulling 12fd07aa28d4587094aa2ac955e303f4d911a60d on deprecate_association_type into 873ab6f3a05487961aa60dbdf0f4d4cd693ccc03 on master.

Coverage increased (+0.01%) to 98.18% when pulling da4ee3c1f2b0f26dc10987aded47c5ee29a10d01 on deprecate_association_type into 873ab6f3a05487961aa60dbdf0f4d4cd693ccc03 on master.

Coverage increased (+0.01%) to 98.18% when pulling da4ee3c1f2b0f26dc10987aded47c5ee29a10d01 on deprecate_association_type into 873ab6f3a05487961aa60dbdf0f4d4cd693ccc03 on master.

authors: cheerfulstoic coveralls


text:
Fix used CUDA architectures

-gencode=arch=compute_35,code=compute_35 adds JIT support for all the GPUs, not mentioned below (GTX 7* 9* 10* generations)
-gencode=arch=compute_75,code=sm_75 adds explicit (non-JIT) support of GTX 20* (except TITAN V and NVIDIA V100 server GPU)
-gencode=arch=compute_86,code=sm_86 adds explicit support of GTX 30* (except NVIDIA A30 and A100 server GPUs)
-gencode=arch=compute_86,code=compute_86 adds more effective JIT support for future GPUs (just in case)

Signed-off-by: Valeriy Fedyunin valery.fedyunin@abbyy.com

@SanSanch5: Will this provide suitable performance on 1070/1080?

@FedyuninV: Will this provide suitable performance on 1070/1080?

Added 6.1 compute capability support (for 10th series_

repo: neoml-lib/neoml


text:
Prefer TLS connections

The current Neon onboarding starts by a suggestion to import my data. Yet as far as I can see, all of the current Neon documentation guides developers to use unencrypted connections.
I see from the Certificate Transparency logs that you already have a Let's Encrypt wildcard certificate for *.cloud.neon.tech.
I think it makes sense to have secure defaults. Please switch the psql -h pg.neon.tech command and all of the example connection strings in the documentation and in the code samples to use TLS.
Great to see Neon take shape! You're building an exciting service.

Makes sense. So far, password flow (<project>.cloud.neon.tech) is using only TLS -- even if you try to connect without TLS our proxy will not allow this. But pg.neon.tech is a bit different and configured without TLS now. Will fix

authors: haphut kelvich

repo: neondatabase/neon


text:
Create Allure report for perf tests

This PR adds Allure reports to performance tests, also it removes uploading test results to artifacts (everything should be available in the Allure report)
Output for performance tests: https://neon-github-public-dev.s3.amazonaws.com/reports/pr-2326/release/2934695175/index.html#suites/da6c1eb856842e7b0eacf9ab8c06985f
Flamegraphs are attached as well: https://neon-github-public-dev.s3.amazonaws.com/reports/pr-2326/release/2934695175/index.html#suites/5008d72a1ba3c0d618a030a938fc035c/4e98b5bf171ae8fa/ (expand Tear down section, then test_output_dir, you'll see repo/flamegraph.svg)

we seem to not include etcd services logs? They are created in test_output/neon/ by default.

Thanks for pointing this out! I've added etcd logs as well


text:
initial commit

@sukanyaparashar @0xlucian hi, pls check the updated ERC20ForSPL.sol contract and also check the tests. Any suggestions about the contract or uncovered test cases are welcome, ty

disableInitialisers

This is absolutely a valid point, I was thinking to set the owner of the implementation in the deploy script, but someone might just skip using our script and deploy by his own and leave the implementation without an owner. I will add the disableInitialisers now.

@0xlucian please review the most recent commit, I added _disableInitializers and also created a test to check if initialize of implementation is blocked

repo: neonlabsorg/neon-tutorials


text:
Support value object serialization / unserialization in events

We also need serialization support (property mapper …) for event arguments so we can use value objects.
final class UserSignedUp extends AbstractAggregateEvent
{
   /**
    * @var string
    */
   private $emailAddress;

   /**
    * @var string
    */
   private $firstName;

   /**
    * @var string
    */
   private $lastName;

   /**
    * @var string
    */
   private $hashedPassword;

   /**
    * UserSignedUp constructor.
    *
    * @param EmailAddress $emailAddress
    * @param Name $firstName
    * @param Name $lastName
    * @param HashedPassword $hashedPassword
    */
   public function __construct(EmailAddress $emailAddress, Name $firstName, Name $lastName, HashedPassword $hashedPassword)

What's the state of this one? AFAIK this works out of the box with Flow 4.0+, right?

The example from above is a bit flawed (string var annotations are misleading).
Apart from that, most of this has been solved with https://github.com/neos/flow-development-collection/pull/758
But this should be possible and is not atm:
<?php
/**
 * @Flow\Proxy(false)
 */
final class UserId implements \JsonSerializable
{
    /**
     * @var string
     */
    private $value;

    public function __construct(string $value)
    {
        $this->value = $value;
    }

    public function jsonSerialize(): string
    {
        return $this->value;
    }

    public function __toString(): string
    {
        return $this->value;
    }
}

And a corresponding event
<?php
final class UserWasFooed implements EventInterface
{
    /**
     * @var UserId
     */
    private $userId;

    public function __construct(UserId $userId)
    {
        $this->userId = $userId;
    }

    public function getUserId(): UserId
    {
        return $this->userId;
    }
}

Currently this fails. The resulting serialized event payload is:
{
    "userId": [],
}

This can be fixed by adding an explicit getValue() getter to the UserId in which case the payload is:
{
    "userId": {
        "value": "<the-actual-id>"
    },
}

The getter should not be required and the id should be serialized as simple string IMO

authors: bwaidelich robertlemke


text:
BUGFIX: Allow DateTime for unserialization of form state

Fixes #126

Ready for merge and release? Or do you still have any objections @bwaidelich ?

A test would be nice of course, but no general objections.

I wonder if using serialize()/unserialize() to pass the form state is a good idea at all, but

Fair point, but what would you suggest instead?

I wonder if using serialize()/unserialize() to pass the form state is a good idea at all, but

Fair point, but what would you suggest instead?

For the CR node properties we switched to JSON ages ago. But… 🤷♂

For the CR node properties we switched to JSON ages ago

Yes, true that.. Would be a breaking change though because currently you can basically put any object into the form state

you can basically put any object into the form state

..OTOH you actually can't as we see with this fix o.O

Yes. When I added that restriction I (casually) checked FormState and assumed it only contains "harmless" things. Date objects might still count as harmless and that was just an oversight from my side.
But I did not realize one might actually have objects in a form that need to be stored in the FormState in a way that needs serialization…

authors: bwaidelich dlubitz kdambekalns

repo: neos/form


text:
npm_installer fails if packages contains server_name, causing issue with pyright

nvim --version: NVIM v0.5.0-828-g0a95549d6
NVIM v0.5.0-828-g0a95549d6
Build type: RelWithDebInfo
LuaJIT 2.1.0-beta3
Compilation: /usr/bin/gcc-5 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1 -O2 -g -Og -g -Wall -Wextra -pedantic -Wno-unused-parameter -Wstrict-prototypes -std=gnu99 -Wshadow -Wconversion -Wmissing-prototypes -Wvla -fstack-protector-strong -fno-common -fdiagnostics-color=auto -DINCLUDE_GENERATED_DECLARATIONS -D_GNU_SOURCE -DNVIM_MSGPACK_HAS_FLOAT32 -DNVIM_UNIBI_HAS_VAR_FROM -DMIN_LOG_LEVEL=3 -I/home/travis/build/neovim/bot-ci/build/neovim/build/config -I/home/travis/build/neovim/bot-ci/build/neovim/src -I/home/travis/build/neovim/bot-ci/build/neovim/.deps/usr/include -I/usr/include -I/home/travis/build/neovim/bot-ci/build/neovim/build/src/nvim/auto -I/home/travis/build/neovim/bot-ci/build/neovim/build/include
Compiled by travis@travis-job-abaca5c2-51e7-4cf1-bc06-8cf3e644ab24

Features: +acl +iconv +tui
See ":help feature-compile"

   system vimrc file: "$VIM/sysinit.vim"
  fall-back for $VIM: "
/home/travis/build/neovim/bot-ci/build/neovim/build/nvim.AppDir/usr/share/nvim
"

Run :checkhealth for more info

:checkhealth result
health#lspconfig#check
========================================================================
## Checking language server protocol configuration
  - ERROR: pyright: The given command "pyright-langserver" is not executable.

health#gitmessenger#check
========================================================================
  - OK: +job is available to execute Git command
  - OK: Git command `git` is available: git version 2.28.0
  - OK: Floating window is available for popup window

health#floaterm#check
========================================================================
  - OK: Terminal feature is OK
  - OK: Floating window feature is OK
  - ERROR: nvr executable is not found, run `pip3 install neovim-remote` to install

health#nvim_treesitter#check
========================================================================
## Installation
  - OK: `git` executable found.
  - OK: `cc` executable found.

## c parser healthcheck
  - OK: c parser found.
  - OK: `highlights.scm` found.
  - OK: `locals.scm` found.
  - OK: `folds.scm` found.
  - WARNING: No `indents.scm` query found for c
    - ADVICE:
      - Open an issue at https://github.com/nvim-treesitter/nvim-treesitter

## teal parser healthcheck
  - OK: teal parser found.
  - OK: `highlights.scm` found.
  - OK: `locals.scm` found.
  - OK: `folds.scm` found.
  - WARNING: No `indents.scm` query found for teal
    - ADVICE:
      - Open an issue at https://github.com/nvim-treesitter/nvim-treesitter

## java parser healthcheck
  - OK: java parser found.
  - OK: `highlights.scm` found.
  - OK: `locals.scm` found.
  - WARNING: No `folds.scm` query found for java
    - ADVICE:
      - Open an issue at https://github.com/nvim-treesitter/nvim-treesitter
  - WARNING: No `indents.scm` query found for java
    - ADVICE:
      - Open an issue at https://github.com/nvim-treesitter/nvim-treesitter

## python parser healthcheck
  - OK: python parser found.
  - OK: `highlights.scm` found.
  - OK: `locals.scm` found.
  - OK: `folds.scm` found.
  - WARNING: No `indents.scm` query found for python
    - ADVICE:
      - Open an issue at https://github.com/nvim-treesitter/nvim-treesitter

## dart parser healthcheck
  - OK: dart parser found.
  - OK: `highlights.scm` found.
  - OK: `locals.scm` found.
  - WARNING: No `folds.scm` query found for dart
    - ADVICE:
      - Open an issue at https://github.com/nvim-treesitter/nvim-treesitter
  - WARNING: No `indents.scm` query found for dart
    - ADVICE:
      - Open an issue at https://github.com/nvim-treesitter/nvim-treesitter

## lua parser healthcheck
  - OK: lua parser found.
  - OK: `highlights.scm` found.
  - OK: `locals.scm` found.
  - OK: `folds.scm` found.
  - OK: `indents.scm` found.

## ocaml parser healthcheck
  - OK: ocaml parser found.
  - OK: `highlights.scm` found.
  - OK: `locals.scm` found.
  - OK: `folds.scm` found.
  - WARNING: No `indents.scm` query found for ocaml
    - ADVICE:
      - Open an issue at https://github.com/nvim-treesitter/nvim-treesitter

## go parser healthcheck
  - OK: go parser found.
  - OK: `highlights.scm` found.
  - OK: `locals.scm` found.
  - OK: `folds.scm` found.
  - WARNING: No `indents.scm` query found for go
    - ADVICE:
      - Open an issue at https://github.com/nvim-treesitter/nvim-treesitter

## json parser healthcheck
  - OK: json parser found.
  - OK: `highlights.scm` found.
  - WARNING: No `locals.scm` query found for json
    - ADVICE:
      - Open an issue at https://github.com/nvim-treesitter/nvim-treesitter
  - WARNING: No `folds.scm` query found for json
    - ADVICE:
      - Open an issue at https://github.com/nvim-treesitter/nvim-treesitter
  - WARNING: No `indents.scm` query found for json
    - ADVICE:
      - Open an issue at https://github.com/nvim-treesitter/nvim-treesitter

## jsdoc parser healthcheck
  - OK: jsdoc parser found.
  - OK: `highlights.scm` found.
  - WARNING: No `locals.scm` query found for jsdoc
    - ADVICE:
      - Open an issue at https://github.com/nvim-treesitter/nvim-treesitter
  - WARNING: No `folds.scm` query found for jsdoc
    - ADVICE:
      - Open an issue at https://github.com/nvim-treesitter/nvim-treesitter
  - WARNING: No `indents.scm` query found for jsdoc
    - ADVICE:
      - Open an issue at https://github.com/nvim-treesitter/nvim-treesitter

## php parser healthcheck
  - OK: php parser found.
  - OK: `highlights.scm` found.
  - OK: `locals.scm` found.
  - OK: `folds.scm` found.
  - WARNING: No `indents.scm` query found for php
    - ADVICE:
      - Open an issue at https://github.com/nvim-treesitter/nvim-treesitter

## html parser healthcheck
  - OK: html parser found.
  - OK: `highlights.scm` found.
  - OK: `locals.scm` found.
  - WARNING: No `folds.scm` query found for html
    - ADVICE:
      - Open an issue at https://github.com/nvim-treesitter/nvim-treesitter
  - WARNING: No `indents.scm` query found for html
    - ADVICE:
      - Open an issue at https://github.com/nvim-treesitter/nvim-treesitter

## typescript parser healthcheck
  - OK: typescript parser found.
  - OK: `highlights.scm` found.
  - OK: `locals.scm` found.
  - OK: `folds.scm` found.
  - WARNING: No `indents.scm` query found for typescript
    - ADVICE:
      - Open an issue at https://github.com/nvim-treesitter/nvim-treesitter

## fennel parser healthcheck
  - OK: fennel parser found.
  - OK: `highlights.scm` found.
  - OK: `locals.scm` found.
  - WARNING: No `folds.scm` query found for fennel
    - ADVICE:
      - Open an issue at https://github.com/nvim-treesitter/nvim-treesitter
  - WARNING: No `indents.scm` query found for fennel
    - ADVICE:
      - Open an issue at https://github.com/nvim-treesitter/nvim-treesitter

## query parser healthcheck
  - OK: query parser found.
  - OK: `highlights.scm` found.
  - OK: `locals.scm` found.
  - WARNING: No `folds.scm` query found for query
    - ADVICE:
      - Open an issue at https://github.com/nvim-treesitter/nvim-treesitter
  - WARNING: No `indents.scm` query found for query
    - ADVICE:
      - Open an issue at https://github.com/nvim-treesitter/nvim-treesitter

## cpp parser healthcheck
  - OK: cpp parser found.
  - OK: `highlights.scm` found.
  - OK: `locals.scm` found.
  - OK: `folds.scm` found.
  - WARNING: No `indents.scm` query found for cpp
    - ADVICE:
      - Open an issue at https://github.com/nvim-treesitter/nvim-treesitter

## regex parser healthcheck
  - OK: regex parser found.
  - OK: `highlights.scm` found.
  - WARNING: No `locals.scm` query found for regex
    - ADVICE:
      - Open an issue at https://github.com/nvim-treesitter/nvim-treesitter
  - WARNING: No `folds.scm` query found for regex
    - ADVICE:
      - Open an issue at https://github.com/nvim-treesitter/nvim-treesitter
  - WARNING: No `indents.scm` query found for regex
    - ADVICE:
      - Open an issue at https://github.com/nvim-treesitter/nvim-treesitter

## verilog parser healthcheck
  - OK: verilog parser found.
  - OK: `highlights.scm` found.
  - WARNING: No `locals.scm` query found for verilog
    - ADVICE:
      - Open an issue at https://github.com/nvim-treesitter/nvim-treesitter
  - WARNING: No `folds.scm` query found for verilog
    - ADVICE:
      - Open an issue at https://github.com/nvim-treesitter/nvim-treesitter
  - WARNING: No `indents.scm` query found for verilog
    - ADVICE:
      - Open an issue at https://github.com/nvim-treesitter/nvim-treesitter

## ruby parser healthcheck
  - OK: ruby parser found.
  - OK: `highlights.scm` found.
  - OK: `locals.scm` found.
  - WARNING: No `folds.scm` query found for ruby
    - ADVICE:
      - Open an issue at https://github.com/nvim-treesitter/nvim-treesitter
  - WARNING: No `indents.scm` query found for ruby
    - ADVICE:
      - Open an issue at https://github.com/nvim-treesitter/nvim-treesitter

## ocamllex parser healthcheck
  - OK: ocamllex parser found.
  - OK: `highlights.scm` found.
  - WARNING: No `locals.scm` query found for ocamllex
    - ADVICE:
      - Open an issue at https://github.com/nvim-treesitter/nvim-treesitter
  - WARNING: No `folds.scm` query found for ocamllex
    - ADVICE:
      - Open an issue at https://github.com/nvim-treesitter/nvim-treesitter
  - WARNING: No `indents.scm` query found for ocamllex
    - ADVICE:
      - Open an issue at https://github.com/nvim-treesitter/nvim-treesitter

## ql parser healthcheck
  - OK: ql parser found.
  - OK: `highlights.scm` found.
  - OK: `locals.scm` found.
  - WARNING: No `folds.scm` query found for ql
    - ADVICE:
      - Open an issue at https://github.com/nvim-treesitter/nvim-treesitter
  - WARNING: No `indents.scm` query found for ql
    - ADVICE:
      - Open an issue at https://github.com/nvim-treesitter/nvim-treesitter

## rust parser healthcheck
  - OK: rust parser found.
  - OK: `highlights.scm` found.
  - OK: `locals.scm` found.
  - WARNING: No `folds.scm` query found for rust
    - ADVICE:
      - Open an issue at https://github.com/nvim-treesitter/nvim-treesitter
  - WARNING: No `indents.scm` query found for rust
    - ADVICE:
      - Open an issue at https://github.com/nvim-treesitter/nvim-treesitter

## toml parser healthcheck
  - OK: toml parser found.
  - OK: `highlights.scm` found.
  - OK: `locals.scm` found.
  - WARNING: No `folds.scm` query found for toml
    - ADVICE:
      - Open an issue at https://github.com/nvim-treesitter/nvim-treesitter
  - WARNING: No `indents.scm` query found for toml
    - ADVICE:
      - Open an issue at https://github.com/nvim-treesitter/nvim-treesitter

## bash parser healthcheck
  - OK: bash parser found.
  - OK: `highlights.scm` found.
  - OK: `locals.scm` found.
  - WARNING: No `folds.scm` query found for bash
    - ADVICE:
      - Open an issue at https://github.com/nvim-treesitter/nvim-treesitter
  - WARNING: No `indents.scm` query found for bash
    - ADVICE:
      - Open an issue at https://github.com/nvim-treesitter/nvim-treesitter

## rst parser healthcheck
  - OK: rst parser found.
  - OK: `highlights.scm` found.
  - OK: `locals.scm` found.
  - WARNING: No `folds.scm` query found for rst
    - ADVICE:
      - Open an issue at https://github.com/nvim-treesitter/nvim-treesitter
  - WARNING: No `indents.scm` query found for rst
    - ADVICE:
      - Open an issue at https://github.com/nvim-treesitter/nvim-treesitter

## css parser healthcheck
  - OK: css parser found.
  - OK: `highlights.scm` found.
  - WARNING: No `locals.scm` query found for css
    - ADVICE:
      - Open an issue at https://github.com/nvim-treesitter/nvim-treesitter
  - WARNING: No `folds.scm` query found for css
    - ADVICE:
      - Open an issue at https://github.com/nvim-treesitter/nvim-treesitter
  - WARNING: No `indents.scm` query found for css
    - ADVICE:
      - Open an issue at https://github.com/nvim-treesitter/nvim-treesitter

## ocaml_interface parser healthcheck
  - OK: ocaml_interface parser found.
  - OK: `highlights.scm` found.
  - OK: `locals.scm` found.
  - OK: `folds.scm` found.
  - WARNING: No `indents.scm` query found for ocaml_interface
    - ADVICE:
      - Open an issue at https://github.com/nvim-treesitter/nvim-treesitter

## javascript parser healthcheck
  - OK: javascript parser found.
  - OK: `highlights.scm` found.
  - OK: `locals.scm` found.
  - OK: `folds.scm` found.
  - WARNING: No `indents.scm` query found for javascript
    - ADVICE:
      - Open an issue at https://github.com/nvim-treesitter/nvim-treesitter

## c_sharp parser healthcheck
  - OK: c_sharp parser found.
  - OK: `highlights.scm` found.
  - WARNING: No `locals.scm` query found for c_sharp
    - ADVICE:
      - Open an issue at https://github.com/nvim-treesitter/nvim-treesitter
  - WARNING: No `folds.scm` query found for c_sharp
    - ADVICE:
      - Open an issue at https://github.com/nvim-treesitter/nvim-treesitter
  - WARNING: No `indents.scm` query found for c_sharp
    - ADVICE:
      - Open an issue at https://github.com/nvim-treesitter/nvim-treesitter

health#completion_nvim#check
========================================================================
## general
  - OK: neovim version is supported

## completion source
  - OK: all completion source are valid

## snippet source
  - INFO: You haven't setup any snippet source.

health#nvim#check
========================================================================
## Configuration
  - OK: no issues found

## Performance
  - OK: Build type: RelWithDebInfo

## Remote Plugins
  - OK: Up to date

## terminal
  - INFO: key_backspace (kbs) terminfo entry: key_backspace=\177
  - INFO: key_dc (kdch1) terminfo entry: key_dc=\E[3~
  - INFO: $VTE_VERSION='6201'
  - INFO: $COLORTERM='truecolor'

health#provider#check
========================================================================
## Clipboard (optional)
  - OK: Clipboard tool found: wl-copy

## Python 2 provider (optional)
  - INFO: pyenv: Path: /var/home/kamal/.pyenv/libexec/pyenv
  - INFO: pyenv: Root: /var/home/kamal/.pyenv
  - WARNING: No Python executable found that can `import neovim`. Using the first available executable for diagnostics.
  - ERROR: Python provider error:
    - ADVICE:
      - provider/pythonx: Could not load Python 2:
          /usr/bin/python2 does not have the "neovim" module. :help |provider-python|
          /usr/bin/python2.7 does not have the "neovim" module. :help |provider-python|
          python2.6 not found in search path or not executable.
          /var/home/kamal/.pyenv/shims/python is Python 3.9 and cannot provide Python 2.
  - INFO: Executable: Not found

## Python 3 provider (optional)
  - INFO: pyenv: Path: /var/home/kamal/.pyenv/libexec/pyenv
  - INFO: pyenv: Root: /var/home/kamal/.pyenv
  - WARNING: No Python executable found that can `import neovim`. Using the first available executable for diagnostics.
  - ERROR: Python provider error:
    - ADVICE:
      - provider/pythonx: Could not load Python 3:
          /var/home/kamal/.pyenv/shims/python3 does not have the "neovim" module. :help |provider-python|
          python3.10 not found in search path or not executable.
          /usr/bin/python3.9 does not have the "neovim" module. :help |provider-python|
          /var/home/kamal/.pyenv/shims/python3.8 does not exist: pyenv: python3.8: command not found

          The `python3.8' command exists in these Python versions:
          3.8.6

          Note: See 'pyenv help global' for tips on allowing both
          python2 and python3 to be found.

          /var/home/kamal/.pyenv/shims/python3.7 does not exist: pyenv: python3.7: command not found

          The `python3.7' command exists in these Python versions:
          3.7.4
          3.7.6

          Note: See 'pyenv help global' for tips on allowing both
          python2 and python3 to be found.

          python3.6 not found in search path or not executable.
          /var/home/kamal/.pyenv/shims/python does not have the "neovim" module. :help |provider-python|
  - INFO: Executable: Not found

## Python virtualenv
  - OK: no $VIRTUAL_ENV

## Ruby provider (optional)
  - WARNING: `ruby` and `gem` must be in $PATH.
    - ADVICE:
      - Install Ruby and verify that `ruby` and `gem` commands work.

## Node.js provider (optional)
  - INFO: Node.js: v14.14.0
  - WARNING: Missing "neovim" npm (or yarn) package.
    - ADVICE:
      - Run in shell: npm install -g neovim
      - Run in shell (if you use yarn): yarn global add neovim

## Perl provider (optional)
  - ERROR: perl provider error:
    - ADVICE:
      - "Neovim::Ext" cpan module is not installed

nvim-lsp version(commit hash): 1f86bfd62d0ba78b0479373661be3fa13f1f8f35
What language server(If the problem is related to a specific language server): pyright
Operating system/version: Fedora 33
Terminal name/version: Gnome Terminal 3.38.1
$TERM: xterm-256color

How to reproduce the problem from neovim startup
:LspInstall pyright
Actual behaviour
Fails to install pyright with npm error ENOSELF:
Error: Refusing to install package with name "pyright" under a package
also called "pyright". Did you name your project the same
as the dependency you're installing?

Expected behaviour
Successfully installs pyright.

Musings
I don't think this is a problem with the pyright config, but rather with the npm installer. I think it should force the package name in package.json to be something different from the server_name.
Some ideas on how to do this:

ensure the server_name is not equal to any of the packages
modify the package.json generated by npm init -y to have a unique name
write out package.json ourselves instead of using npm init
just skip having a package.json altogether

Option 1 is easier: just append some deterministic or constant noise to the install_dir. Option 2 results in a cleaner filesystem hierarchy, but we're in the .cache directory so it probably doesn't matter. Option 3 is pretty clean. Option 4 actually works, which I did not expect:
$ cd $(mktemp -d)
$ npm install --no-package-lock --no-save pyright
npm WARN enoent ENOENT: no such file or directory, open '/tmp/tmp.MEzVJz5DN2/package.json'
npm WARN tmp.MEzVJz5DN2 No description
npm WARN tmp.MEzVJz5DN2 No repository field.
npm WARN tmp.MEzVJz5DN2 No README data
npm WARN tmp.MEzVJz5DN2 No license field.

+ pyright@1.1.86
added 1 package from 1 contributor in 0.956s
found 0 vulnerabilities

$ ls
node_modules
$ node_modules/.bin/pyright --version
pyright 1.1.86

Closing because of #334.

repo: neovim/nvim-lspconfig


text:
Add logs for wait end times and porch package approval times to e2e tests

What type of PR is this?

Uncomment only one  /kind <> line, hit enter to put that in a new line, and remove leading whitespaces from that line:
/kind bug
/kind cleanup
/kind design
/kind documentation
/kind failing-test
/kind feature
/kind flake

What this PR does / why we need it:
This PR adds a log at the end of each wait in the e2e tests so that we can extract the time that each part of the e2e test finished at from the log of the e2e tests. This allows us to get a better picture of what is happening in the e2e runs.
Once this PR is merged we can parse the logs to monitor the times for k8s resources to come up and for porch package approval.
Which issue(s) this PR fixes:

Related to:
https://github.com/nephio-project/nephio/issues/462
Special notes for your reviewer:
Does this PR introduce a user-facing change?:
NONE

/retest

/lgtm
/retest

/approve
/override e2e-free5gc-fedora-34

authors: electrocucaracha liamfallon

repo: nephio-project/test-infra


text:
EDI files from SAGE COALA starting by DOC

Hello,
I have some EDI files (.ped generated by SAGE COALA) that start by DOC, example :
DOC+01=serveur\grpx\dossiers\xxxxx+02=9215001+03=04/07/2024+04=FD2401+05=24+06=DGFiP+07=EDITDFC+08=32489+09=xxxxxxxxxxxxx+10=xxxxxxx+11=XXXXXX PATRIMOINE+12=xxxxxxxxxxx++14=FR1111111111+15=mickael+16=isrn+17=01/01/2023+18=31/12/2023+19=240315+++++24=103200+25=JDC+26=contact@example.com+27=++29=++++++35={55D57981-DA87-426D-911E-464844992C9C}'UNA:+,? 'UNB+UNOL:...

I get the error : An interchange must start with UNB or UNA and UNB
Is it possible to take care about this kind of file ?

I will submit a PR

repo: nerdocs/pydifact


text:
[BUG] CPU Metric of RDS not correct

Is there an existing issue for this?

[X] I have searched the existing issues

Current Behavior
I used yet-another-cloudwatch-exporter for monitor RDS but metric yace (yet-another-cloudwatch-exporter) collect is not match with cloudwatch metric.
Detail with CPU metric:
In yace: 9.23% but in cloudwatch: 9.45%, period: 60s.
This is my config:
  - type: rds
    enableMetricData: true
    regions:
      - ap-southeast-1
    roles:
      - roleArn: "arn:aws:iam::xxxxxxx:role/xxxx-yace-cloudwatch-role"
    metrics:
      - name: CPUUtilization
        statistics:
        - Average
        period: 60
        length: 60

Thanks.
Expected Behavior
No response
Steps To Reproduce
No response
Anything else?
No response

I had the same issue. Baffled for a long time one what the issue is. I added a random tag to the rds instance and restarted yace(was too impatient to wait for the next scrape interval) and it fixed it.

So the bug would be any untagged RDS resources are not monitored. Not sure if thats by design though.


text:
🛑 nerevar.com is down

In fe4979a, nerevar.com (https://nerevar.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: nerevar.com is back up in 24089b0.


text:
FYI: COPR RPMs for sysbox for Fedora/CentOS/RHEL

Hi, just wanted to let you know I spun up COPR RPMs for Sysbox.
https://github.com/karellen/karellen-sysbox
https://copr.fedorainfracloud.org/coprs/karellen/karellen-sysbox/
Please review and let me know if you're satisfied with notices and LICENSES:
https://github.com/karellen/karellen-sysbox/blob/dc4588447732e50577f0832262fd67ac6976b7ac/karellen-sysbox.spec#L79-L81
If you guys release official RPMs that you will be supporting I will switch to those.

@arcivanov, thanks for doing this and for letting us know.
Wondering if you would be open to contribute these changes to sysbox-pkgr repository now that we have made it open source. You would need to make minor adjustments to plug in your rpm recipes within our Makefile building targets, but at first glance it looks like simple changes now that you already have done this work.

@rodnymolina
This is released under ASL 2.0 so I'll be very happy to contribute. However, this is specific to COPR infra and I'm not sure whether that's what you want.
As far as "plug in your rpm recipes within our Makefile building targets" one of the reasons I didn't do that (and I tried!) is that COPR is not capable of running containers for building, so I used -local building targets and extracted relevant portions of platform-specific setup from the Dockerfiles.

Oh, got it, I'm not familiarized with COPR so I missed that when I initially read your comment. And you are right, we heavily rely on containers to build (and also test) our images, so I guess the official COPR installer would need to wait. Having said that, we are still interested in creating an rpm installer, it's just that we haven't had the cycles for it yet.

authors: arcivanov rodnymolina

repo: nestybox/sysbox


text:
ACLs have no effects on Network Routes

Describe the problem
When adding a network route with a routing peer, the ACL do not seems to apply. See below for the complete use case.
(NetBird 0.25.2)
To Reproduce
Steps to reproduce the behavior:

Add a routing peer named "edge-gw" (Docker) which is placed in the DMZ of the private network. The underlying network is configured to let this routing peer being able to route to a service (my-private-service) hosted in the private network at 10.50.0.4/32 (web service on TCP 443).

Tag the "edge-gw" routing peer with "Edge" tag.

In "Network Routes", click "Add route" :

Network Identifier > my-private-service
Network Range > 10.50.0.4/32
Routing Peer > Select "edge-gw"
Distribution groups > "Developers"
Enabled > True
Masquerade > True

In "Access Control" :

All rules are disabled, except for DNS forwarding (which is routed through the same "edge-gw" routing peer).

On a "dev-peer" machine, which belongs to the 'Developers" group :

"netstat -nr" show the route 10.50.0.4/32 being distributed (which seems right)
curl https://my-private-service.<redacted-domain> (10.50.0.4) returns the web HTML page, which seems wrong as no ACL rules are setup to allow traffic for TCP 443 in NetBird ACL. Same for pinging 10.50.0.4.

Expected behavior
If no ACL are enabled, traffic should not be forwarded to the private network via routing peer (even if route is distributed). As no ACL route exists for "Developers > Edge" on TCP 443, traffic should be dropped. This is not the case.
Screenshots

Routing peer "edge-gw" :

Network routes

ACL

Dev peer

Is this the normal behavior ? Or I misconfigured something ?

After further troubleshooting, here is what I found :

If there is at least on ACL allowing traffic to "Edge" (here "All to Edge DNS" ; UDP/53), all type of connections related to the connected Network Routes are allowed (even if the ACL specified UDP/53).
This explain why the TCP/443 or ICMP are forwarded to private network through the Edge routing peer.

So for my use case :

Disabling the ACL "All to Edge DNS" restrict pinging 10.50.0.4 (intended) => The route 10.50.0.4/32 is not pushed to clients ; therefore pinging 10.50.0.4 is not working (intended).
Enabling the ACL "All to Edge DNS" pushes route 10.50.0.4 to clients => All type of connections to 10.50.0.4 are allowed, even if the ACL specified UDP/53 ; ping to 10.50.0.4 is working... bug ?

It seems to be a bug.

Hello @benjvfr, this is the current behavior of network routes; there is no access control for routed networks.
The access control rule you created only affects traffic targeting the edge node.
We have plans to add support to access control for routed networks this quarter.

Hello, thank you for your answer.
Okay, I asked because in your documentation related to "Manage DNS in your network" it is indicated to add an ACL for UDP/53 to the routing peer, suggesting that ACLs can filter traffic by port/protocol to the private network.
In fact, any ACL can be added here, not specifically UDP/53 to routing peer : there must simply be an ACL authorizing the connection to peer routing (anything: ICMP, HTTP...).

Hello @benjvfr, this is the current behavior of network routes; there is no access control for routed networks.
The access control rule you created only affects traffic targeting the edge node.
We have plans to add support to access control for routed networks this quarter.

Does it means that we could just do an acl like:
src group_a -> dst 192.168.1.0/20 proto tcp port 22 action allow
where 192.168.1.0/24 is a network route or could i also have an acl like
src group_a -> dst 192.168.1.1/32 proto tcp port 22 action allow
where 192.168.1.1/32 is only an ip under network route reachable tru network routes.
Thx

We have plans to add support to access control for routed networks this quarter.

Hi @mlsmaycon , any chance there has been progress on this?  I really want to start using netbird at my org, but can't until we can lock down routed networks.

I did some additional experimentation with this.  My initial main concern was being able to restrict what ports users could speak to on the routed network when they had access, however I think it is even more critical now.
If a connected peer routes a network, any client that has access to talk to that peer can pass traffic to the routed network, even if that client is not in any of the "distribution groups" for the routed network as long as:

the user knows the CIDR of the routed network; and
which peer(s) are the "routing peer"; and
have at least one ACL which allows them to communicate with that "routing peer"

To "manually" activate access to that routed network:
sudo ip route add <NETWORK/NETMASK> dev wt0 table netbird
sudo wg set wt0 peer <ROUTING_PEER_KEY> allowed-ips <EXISTING_ALLOWED_IPS>,<NETWORK/NETMASK>

This makes sense, because the Netbird documentation talks about "route distribution", and does not make any claims that it is a security boundary.  However, I would expect many users would have a similar assumption as I did that there is some security checks preventing traffic being passed if the user's peer is not in the "distribution groups".

I am also affected by this and unfortunately it's a blocker for us.

Hello @benjvfr, this is the current behavior of network routes; there is no access control for routed networks.
The access control rule you created only affects traffic targeting the edge node.
We have plans to add support to access control for routed networks this quarter.

I am curious on how you are tackling the routed network filtering. Are there any updates?
Thanks @mlsmaycon!

We are also waiting on an update on this as it's kind of a show stopper for us.

Same, we're currently testing Netbird and won't be able to deploy if network routes are not secured.

@mlsmaycon @braginini When will this PR https://github.com/netbirdio/netbird/pull/2100 be merged?

We plan it for the 0.30 release in the coming weeks.

this has been released since 0.30.0 were you able to test it? You can now assign a Network Route ACL; the name you pic there will need to be in the destination section of the Policy you create.

this has been released since 0.30.0 were you able to test it? You can now assign a Network Route ACL; the name you pic there will need to be in the destination section of the Policy you create.

I see the network routes now as selectable objects in the policy page. But what happens if i would just create a policy having for example as destination 192.168.1.1/32 and NOT the whole 192.168.1.0/24 of a  network routes ?

I've upgraded to 30.3 but cannot find the group tab to specify the access control group.

Did you also upgrade the dashboard?
You need at least https://github.com/netbirdio/dashboard/releases/tag/v2.6.0

The docker compose file has image: netbirdio/dashboard:latest. Should I use a different one?

# netbird_version_check.sh
MGMTCID=$(docker ps|grep management|awk '{print $1}')
if [[ -z $MGMTCID ]] ; then
       echo No MGMT container found...
       exit 1
fi
nbversion=$(docker inspect $MGMTCID |grep "org.opencontainers.image.version"|awk -F: '{print $2}')
echo Server is running Netbird MGMT version: $nbversion
DASHBOARDCID=$(docker ps|grep dashboard|awk '{print $1}')
if [[ -z $DASHBOARDCID ]] ; then
       echo No MGMT container found...
       exit 1
fi
nbversion=$(docker inspect $DASHBOARDCID |grep "org.opencontainers.image.version"|awk -F: '{print $2}')
echo Server is running Netbird Dashboard  version: $nbversion
Server is running Netbird MGMT version:  "0.30.3"
Server is running Netbird Dashboard version:  "v2.6.1"

Check your version with this script.

Thanks for the script. The output was
Server is running Netbird MGMT version: "0.30.1"
Server is running Netbird Dashboard version: "v2.5.0"

Running docker compose pull management dashboard signal and docker compose up -d --force-recreate management dashboard signal upgrade changed it to.
Server is running Netbird MGMT version: "0.30.3"
Server is running Netbird Dashboard version: "v2.6.2"

Now I have the option to specify the Access Control Groups and will test more.

authors: Lamera Mntz benjvfr buzzzo florian-obradovic jacac logan-hcg marcportabellaclotet-mt mgarces mlsmaycon sat-dish

repo: netbirdio/netbird


text:
[BM-641] Show "Unknown device name" on empty name.

Task

JIRA

          1 Message

:book:
:link: BM-641

JaCoCO Code Coverage 12.43% :white_check_mark:

Class
Covered
Meta
Status

co/netguru/baby/monitor/client/feature/communication/nsd/ServiceViewHolder
0%
0%
:white_check_mark:

APK file size

size

30.1MB

Number of method references

Dex file
count

classes.dex
40661

  Generated by :no_entry_sign: Danger

authors: gabrysgab netguru-hound

repo: netguru/baby-monitor-client-android


text:
Include client-ip header on event object

Hey there 👋
- Do you want to request a feature or report a bug?
Bug
- What is the current behavior?
It appears that although it exists on a deployed function, the client-ip header is not set when running netlify dev locally.
- If the current behavior is a bug, please provide the steps to reproduce.
I'm using a "dump" route that just returns the entire event and context objects as JSON, a la:
exports.handler = async (ev, ctx) => {
  return {
    statusCode: 200,
    body: JSON.stringify({
      ev,
      ctx
    })
  }
})

- What is the expected behavior?
It should be populated locally, if available, like it is in production.
- Please mention your node.js, and operating system version.
Node: v10.15.3
OS: macOS Mojave 10.14.5

P.S. Originally posted this on the Netlify Community.

Fixed in latest merge https://github.com/netlify/cli/pull/396/commits

authors: estrattonbailey raeesbhatti

repo: netlify/cli


text:
Collections list sidebar is partially hidden

Given a high number of collections and if there are a low number of documents, the collection sidebar cannot show all the list of collections. I have fix locally the issue changing the css for nc-collectionPage-sidebar class, disabling "position: flixed;" and inserting "float: left".

@igarbla Feel free to submit a PR with that change, if you have time.

repo: netlify/netlify-cms


text:
Cannot upload large Files to Media Gallery

- Do you want to request a feature or report a bug?
Bug
- What is the current behavior?
Cannot upload large Files to Media Gallery. I am trying to upload a 55 MB Video.
It says:
API_ERROR: NetworkError when attempting to fetch resource.
CORS-Header 'Access-Control-Allow-Origin' is missing
I am using gatsby-plugin-netlify-cms.
- If the current behavior is a bug, please provide the steps to reproduce.
Upload a file bigger than 50 MB
- Please mention your versions where applicable.
Netlify CMS version: 1.8.4
Node.JS version: 8.9.0
Operating System: Windows 10
https://github.com/graphicmachines/website

Fixed?

No, but it doesnt seem to be the problem of the cms..but github..
I manually tried to upload a 53 MB Video.. and it says my limit is 25 MB. I thought the limit is 100 MB according to the docs?!

Ah - reading blobs supports up to 100MB, the docs don't specify a limit for creating them. Apparently it's 25MB.
Watch this issue for updates on external asset store integrations: https://github.com/netlify/netlify-cms/issues/432

authors: erquhart pungggi


text:
Error: Minified React error #130; visit https://reactjs.org/docs/error-decoder.html?invariant=130...

Describe the bug
Details
Error: Minified React error #130; visit https://reactjs.org/docs/error-decoder.html?invariant=130&args[]=undefined&args[]= for the full message or use the non-minified dev environment for full errors and additional helpful warnings.

To Reproduce
Expected behavior
Screenshots

Applicable Versions:

Netlify CMS version: netlify-cms@2.10.126
Git provider: proxy
Browser version: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36

CMS configuration
backend:
  name: proxy
  repo: app/demo-config
  auth_type: implicit
  app_id: 95962bbd5922bd698f0767150af5f4ae3aad1552f175ff3ce036777ccb17a0f3
  api_root: https://gitlab.demo.io/api/v4
  base_url: https://gitlab.demo.io
  auth_endpoint: oauth/authorize
  proxy_url: http://localhost:8081/api/v1
local_backend: true
media_folder: assets
publish_mode: simple
collections:
  - label: Combo Year Control
    label_singular: Combo Year Control
    name: comboYearControl
    folder: src/combo-year/combo-year-types
    create: true
    extension: json
    identifier_field: id
    summary: "{{name}}"
    fields:
      - label: Name
        name: name
        widget: string
        required: true
      - label: Options
        name: options
        widget: select
        multiple: true
        options:
          - calendar_year
          - after_number_of_years
          - owner_age
          - already_started
          - every_year
          - retirement
          - one_year_before
          - owner_college_end
          - end_of_plan
          - end_of_both_plans
        required: true
      - label: Default Option
        name: defaultOption
        widget: select
        options:
          - calendar_year
          - after_number_of_years
          - owner_age
          - already_started
          - every_year
          - retirement
          - one_year_before
          - owner_college_end
          - end_of_plan
          - end_of_both_plans
        required: true
      - label: Remark
        name: remarks
        widget: string
        required: false
      - label: ID
        name: id
        widget: uuid
    publish: true
    type: folder_based_collection
    sortable_fields:
      - id
      - name
    view_filters: []
    view_groups: []
  - label: Input Validation Rule
    label_singular: Input Validation Rule
    name: inputValidationRule
    folder: src/validation-rule/validation-rule-collection
    filter:
      field: type
      value: number
    create: true
    extension: json
    identifier_field: id
    summary: "{{name}}"
    fields:
      - label: Name
        name: name
        widget: string
        required: true
      - label: Min
        name: min
        widget: number
        required: true
      - label: Max
        name: max
        widget: number
        required: true
      - label: Step
        name: step
        widget: number
        required: false
      - label: ID
        name: id
        widget: uuid
    publish: true
    type: folder_based_collection
    sortable_fields:
      - id
      - name
    view_filters: []
    view_groups: []
  - label: Date Validation Rule
    label_singular: Date Validation Rule
    name: dateValidationRule
    folder: src/validation-rule/validation-rule-collection
    filter:
      field: type
      value: date
    create: true
    extension: json
    identifier_field: id
    summary: "{{name}}"
    fields:
      - label: Name
        name: name
        widget: string
        required: true
      - label: Start
        name: min
        widget: string
        required: true
      - label: End
        name: max
        widget: string
        required: true
      - label: ID
        name: id
        widget: uuid
    publish: true
    type: folder_based_collection
    sortable_fields:
      - id
      - name
    view_filters: []
    view_groups: []
  - label: Password Validation Rule
    label_singular: Password Validation Rule
    name: passwordValidationRule
    folder: src/validation-rule/validation-rule-collection
    filter:
      field: type
      value: password
    create: false
    delete: fals
...

The reason for this issue is that there is a problem with the way the widget is imported.
This causes the error:
  <script type="module">
    import netlifyCmsWidgetUuidV4 from 'https://cdn.skypack.dev/netlify-cms-widget-uuid-v4'
    CMS.registerWidget('uuid', netlifyCmsWidgetUuidV4.UuidControl, netlifyCmsWidgetUuidV4.UuidPreview);
  </script>

While this does not cause the error:
  <script src="https://unpkg.com/netlify-cms-widget-uuid-v4@^1.0.12/dist/index.js"></script>
  <script type="text/javascript">
    CMS.registerWidget('uuid', uuidWidget.UuidControl, uuidWidget.UuidPreview);
  </script>


text:
DefaultThreadFactory should stick to the thread group where it was constructed

We (gRPC) encountered a bug that was triggered by https://github.com/grpc/grpc-java/commit/d927180a63ac2df4fae0082b51d51e3836771bb1. After that commit, event loop threads are created per task by NioEventLoopGroup, and inherits the thread group of the caller, which in our case is an application-provided request-scope thread. Things go south when the application tries to manipulate (e.g., interrupt and join) all threads of the request-scope thread group, which unexpectedly include the event loop threads.
I think DefaultThreadFactory should save the current thread group in constructor, and apply it to all new threads. I will come up with a PR soon.
@buchgr

@zhangkun83 sounds good. Thanks!

@zhangkun83 please ensure you sign our icla: http://netty.io/s/icla and use our commit message template http://netty.io/wiki/writing-a-commit-message.html when doing the pr :)

@zhangkun83 good catch!

The fix in this PR is a mistake. For just one example, it means that the DefaultThreadFactory field in GlobalEventExecutor will have its thread group forever tied to the thread group that triggered the initialization of the GlobalEventExecutor. Since the GlobalEventExecutor is a global, a thread from another thread group could trigger the creation of a thread from this factory and will modify properties on the created thread. This is completely counter to the point of thread groups, and certain security managers will slap this down. Same for the ThreadDeathWatcher. I will open a PR to change.

++ @jasontedor

looking forward to a PR @jasontedor

+1

@Scottmitch @normanmaurer It will be inbound later today, but it's basically going to amount to reverting the commit in this PR. I wanted to write a failing test case first to demonstrate the problem, and a test case to guard against future changes which I have up in a gist. I'll formalize this soon.

@zhangkun83 @buchgr @nmittler @ejona86 WDYT ?

I opened #5533.

It seems worse to have the threads be mixed from a random thread groups. If you create a thread from an event loop, then you could never tell what thread group it will be part of.

will modify properties on the created thread.

Which properties are you referring to here? If it's name, I'd imagine we should just not care and ignore changing the name if it fails. It seems daemon would be the main issue here.

This is completely counter to the point of thread groups

I don't think I understand this point. Would it make sense if they created their threads eagerly when created? I've already noticed that shutdown() creates any un-created threads anyway (just to then shut them down).

It seems worse to have the threads be mixed from a random thread groups. If you create a thread from an event loop, then you could never predict what thread group it will be part of.

This is a problem brought on by global singletons like GlobalEventExecutor.

Which properties are you referring to here? If it's name, I'd imagine we should just not care and ignore changing the name if it fails. It seems daemon would be the main issue here.

Setting daemon and priority, these both require permissions, and implicitly the uncaught exception handler will be inherited.

Would it make sense if they created their threads eagerly when created?

I'm not sure if this makes sense in the context of, for example, GlobalEventExecutor or ThreadDeathWatcher which fire up a thread as needed.

So maybe we allow a null ThreadGroup, which would mean to use the current ThreadGroup, and then the singletons would pass null? It seems that most event loops should use a consistent ThreadGroup, but yes, it seems that we need to do something weird for the singletons. Maybe it is also necessary to add setThreadFactory() methods to the two singletons.

Sounds ok to me... Not sure we need the setters though

Am 13.07.2016 um 22:43 schrieb Eric Anderson notifications@github.com:
So maybe we allow a null ThreadGroup, which would mean to use the current ThreadGroup, and then the singletons would pass null? It seems that most event loops should use a consistent ThreadGroup, but yes, it seems that we need to do something weird for the singletons. Maybe it is also necessary to add setThreadFactory() methods to the two singletons.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

So maybe we allow a null ThreadGroup, which would mean to use the current Thread's ThreadGroup, and then the singletons would pass null?

This is roughly the approach that I took in #5533. The difference is I just make the constructors on DefaultThreadGroup that do not take a ThreadGroup pass null leading to the desired behavior for the singletons.

I don't care too much about the setters at the moment. But it would seem likely to be necessary eventually. Any time multiple ThreadGroups are actually in use "weird things" can happen if you don't use a consistent ThreadGroup from an event loop.
I'd want the default for DefaultThreadFactory to be a consistent and predictable ThreadGroup. Executors/ThreadPoolExecutor makes sure to use a consistent and predictable ThreadGroup decided at construction, only differing by trying System.getSecurityManager().getThreadGroup() first. Maybe that tweak is all that's necessary to fix the SecurityManager woes and there's no need to use the current Thread's ThreadGroup during newThread().
http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/8u40-b25/java/util/concurrent/Executors.java#596
http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/8u40-b25/java/util/concurrent/ThreadPoolExecutor.java#1195

Executors/ThreadPoolExecutor makes sure to use a consistent and predictable ThreadGroup decided at construction only differing by trying System.getSecurityManager().getThreadGroup() first.

We take the same approach in Elasticsearch. However, as this leads to a fixed thread group, the problem here is still the singletons like GlobalEventExecutor.

@jasontedor wouldn't it be "good enough" for the singletons to just pass "null" in ?

wouldn't it be "good enough" for the singletons to just pass "null" in ?

@normanmaurer It's fine, but I suppose the problem I see there is that it requires changing a bunch of call sites to use the four-args constructor that takes a thread group, or adding even more convenience constructors to a class that already has a lot of constructors. I'm happy to evolve #5533 as needed.

@jasontedor I think I would be fine to change the call sites. No need to add even more constructors. There should be not too many singletons that need the factory.

I think I would be fine to change the call sites. No need to add even more constructors. There should be not too many singletons that need the factory.

@normanmaurer Sounds good, I pushed a commit to #5533 to reflect this.

repo: netty/netty


text:
Add a log level check simply before logging.

Motivation:
ThrowableUtil.stackTraceToString is an expensive method call. So I think a log level check before this logging statement is quite needed especially in a environment with the warning log disabled.
Modification:
Add log level check simply before logging.
Result:
Improve performance in a environment with the warning log disabled.

@netty-bot test this please

@seedeed thanks a lot

authors: normanmaurer seedeed