[Q] "Debug: demux sync lost on discontinuity" on "zap" and "pmt" plugin starting when TSP running for more than 25-30 hours

Hi Thierry @lelegard
I'm having a server (64GB RAM, 16 cores) running the latest version of TSDuck in order to zap on on service using TSP utility.
The TS that is fed into TSP is a 1 hour long file, looping infinitely. This TS file does not contain a single error.
For around 24 hours, the TS generated by TSP (using the zap plugin) is perfect too. Not a single ETR error.
However, when TSP has been running for 25-30 hours (It's never exactly at the same time, but within that range), Continuity Count errors start to appear.
The debug info given are the following:
Debug: zap: demux sync lost on discontinuity, PID 0x0000 (0), packet index 1,385,897,856
Debug: pmt: demux sync lost on discontinuity, PID 0x0190 (400), packet index 1,385,897,923

So, it seems the sync lost on discontinuity is happening during the TS being processed by TSP, and not at the input. Is that correct?
The server resources usage are extremely low (5% of both RAM and CPU), so the issue is not related to CPU or RAM.
I've run multiple tests for 48 hours, every time with different configurations using the --max-flushed-packets as it says "When the processing time is high and some packets are lost, try decreasing this value." and reducing it as follows: 1000, 900, 800, 700, 600. But it seems it's not improving the situation.
Do you have any other idea?

What is the exact tsp command?
Looping on a file is a fully deterministic process. If there are errors, they should appear at the exact same point at each iteration.
Usually, unless the file is specially preprocessed, discontinuity errors occur at the loop back. But they should appear identically at each loop back.

Hi @lelegard
On the sender side, the TSP command is:
tsp.exe --debug=1 --verbose
-I file ..\video\2.ts --infinite
-P regulate
-P continuity --fix
-O ip <IP_ADDRESS>:10001 -l <IP_ADDRESS> --packet-burst 7 --enforce-burst

No discontinuity when the file loops, because of the -P continuity --fix option.
And on the receiver side:
tsp --debug=1 --bitrate 5000000 --add-input-stuffing 1/10 --max-flushed-packets 600
-I ip <IP_ADDRESS>:10001 -l <IP_ADDRESS>
-P pmt --service 2 --add-programinfo-id 0x43554549 --add-pid 231/0x86
-P spliceinject --service 2 --udp 50001
-P zap 2
-P filter --negate --pid 0x1FFF
-P pcrbitrate
-O ip <IP_ADDRESS>:10001 -l <IP_ADDRESS> --packet-burst 7 --enforce-burst

The continuity count errors happen on two plugins on the receiver end only:

pmt
zap

Ok, so the source of the command which encounters the continuity errors is UDP, not a file.
UDP is unreliable by design. Losing packets between the sender and receiver is part of the contract, even on a local network.
My first suggestion would be to increase the UDP receive buffer size in the ip input plugin. RTFM for more details.
However, this will only mitigate the loss of packets between the NIC driver and the application. If the packets are lost in the network, because of some contention in a switch or equivalent, this is a network issue, not something tsp can control.

Hi @lelegard
Thanks, I've also been trying to use the UDP Receive Buffer size, but I'm unsure I'm using it correctly as in the user guide, it does not state much about that option on page 267, ip (input) plugin:
--udp-buffer-size value
Specifies the UDP socket receive buffer size (socket option).

Would you be able to provide guidance as to:

What is the range of values that should be used
What is the Unit of Memory used: Byte? KB? Or MB?

This is the standard "socket receive buffer size", directly passed to the operating system. This is not a specific TSDuck parameter. This is why it is not fully documented in the user's guide. Its usage and impact depends on the operating system.
The size is always in bytes.


Display waypoint error in confirm page and detail page

Details

Display waypoint error in confirm page and detail page
Fixed Issues

$ https://github.com/Expensify/App/issues/29783
PROPOSAL: https://github.com/Expensify/App/issues/29783#issuecomment-1766568011
Tests

Create a distance request with the valid waypoints
Open the distance detail page
Go offline
Click on distance to go to edit page
Edit or add a new waypoint with an invalid address
Save the distance and go online
Verify that the error appears on the detail page

[x] Verify that no errors appear in the JS console

Offline tests

QA Steps

Create a distance request with the valid waypoints
Open the distance detail page
Go offline
Click on distance to go to edit page
Edit or add a new waypoint with an invalid address
Save the distance and go online
Verify that the error appears on the detail page

[x] Verify that no errors appear in the JS console

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG))

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.

Screenshots/Videos

Android: Native
https://github.com/Expensify/App/assets/129500732/b2f584ff-057d-423c-9117-3a9a8982838c

Android: mWeb Chrome
https://github.com/Expensify/App/assets/129500732/51e8ce04-4750-47f4-9982-3d7f5c42cca8

iOS: Native
https://github.com/Expensify/App/assets/129500732/14f95b1d-0de7-43d7-be51-f7cc8c4f29f1

iOS: mWeb Safari
https://github.com/Expensify/App/assets/129500732/a9838780-6f8c-4f2c-b37e-5b707f6a42d1

MacOS: Chrome / Safari
https://github.com/Expensify/App/assets/129500732/5598ffb8-2309-429c-9efa-6ec4c6f196e6

MacOS: Desktop
https://github.com/Expensify/App/assets/129500732/01cc36f7-f3be-44f7-92c4-0ab040c32c27

The copy check is done and it sounds like we can use an error message that already exists in our translation files.

@dukenv0307 the text shown for the error simply needs to be changed.
Problem
The error message under the distance row is Please select a valid waypoint
Solution
The error message under the distance row should be Please enter a valid address

All you @aimane-chnaif

Bump @aimane-chnaif will you be able to finish testing today?

Re-assigning to @situchan for C+ review since @aimane-chnaif gave it up and he volunteered here

@dukenv0307 I am not able to update waypoint in edit distance page when offline
https://github.com/Expensify/App/assets/108292595/5e72645b-c8af-4e23-a8dc-71bc7de3ee94

Not able to test further. Stuck on 5. Edit or add a new waypoint with an invalid address because of the bug above.

I think we can hold this for #30837. Contributor assigned today so hopefully fixed soon

will complete review by tomorrow

@dukenv0307 please merge main

As logic was moved, can you please retest? One platform test is fine

@situchan What do you mean, I moved the logic from old file to the current confirm page now and tested locally.

yeah I meant that. Logic was moved from old file to new file

@dukenv0307 After online, address is reverted back to valid ones and still shows error

Full repro video:
https://github.com/Expensify/App/assets/108292595/a679ec61-ce8c-4023-8292-7c44dc44690d

Another bug: Edit distance was closed automatically and Distance field changes to Merchant
https://github.com/Expensify/App/assets/108292595/8cb1a224-2b3e-471b-ab61-0bb57597f5b9

@neil-marcellini what do you think above issues?
I agree out of scope but should we proceed without holding those fixes?

@dukenv0307 After online, address is reverted back to valid ones and still shows error

Full repro video:
https://github.com/Expensify/App/assets/108292595/a679ec61-ce8c-4023-8292-7c44dc44690d

This is a bug, but it's related to the issue for handling offline geocoding errors in general. [DISTANCE] LOW: Handle errors with geocoding for offline distance requests. We had a pre-design in Slack a while ago about the desired UX, although it was focused on the creation flow. I think we should follow that plan here too, and we wouldn't get any benefit from merging this until it's implemented as we want it. I hope you're ok with working on this more @dukenv0307.
For this flow here's the desired behavior.

Go offline
View a distance request
Click the distance field
Edit 1 or more waypoints to be invalid
Click save
Expect dependent fields to be pending / TBD
Go online
Dependent fields are still TBD but not pending
The distance transaction chat shows in the LHN with an error indicator
There is a red dot indicator on the distance field
Click the distance field
Error messages are displayed under each invalid waypoint, instructing the user to edit them
When a waypoint is clicked the user can update the address and must use the suggestions which are now shown since they are online
When a new address is saved we clear any errors on the waypoint
Click to save the waypoint edits
Verify that an error message appears instructing the user to edit all invalid waypoints
Do that
Click to save the waypoint edits
Verify that all dependent fields update
Verify all error messages and indicators are cleared

@dukenv0307 @situchan Thanks for your hard work on this. I know we found some bugs that feel a bit out of scope, but I think we're better off fixing them all at once vs one at a time. That way it's more clear what the desired UX is. Let's use this as our tracking issue [DISTANCE] LOW: Handle errors with geocoding for offline distance requests. I know we'll need some backend changes too, and that issue is currently un-assigned. I hope to pick it up some time after vacation (after January 15).
We could add on to this PR and use it to implement the frontend changes, or just close this and start from scratch later. I would recommend the former however. You might be able to recruit another backend engineer in #wave5-free-submitters to help while I'm out.

@dukenv0307 @situchan do you know what backend changes @neil-marcellini is referring to? I'd be happy to take them on

This has been handing around for a while, and the backend updates haven't been picked up yet, so going to close this. You can always reopen later.


Error: http.client.RemoteDisconnected: Remote end closed connection without response

Describe the bug
crawl the following url list
code NewsPlease.from_urls(urls, timeout=10)
urls = ['https://www.nytimes.com/2019/03/27/us/monstanto-roundup-california-verdict.html', 'https://www.reuters.com/article/uk-global-forex/dollar-rises-as-more-central-banks-turn-dovish-defies-lower-treasury-yields-idUSKCN1R903E', 'https://www.oann.com/new-jersey-jury-clears-jj-of-liability-in-latest-talc-cancer-trial/', 'https://www.theverge.com/2019/3/27/18284378/elon-musk-tesla-returns-policy-twitter-sec', 'https://www.fool.com/investing/2019/03/27/ford-russia-restructuring-transit-sollers.aspx', 'https://oilprice.com/Energy/Energy-General/The-Worlds-Largest-Oil-Company-And-Petrochemical-Company-Merge.html', 'https://www.usatoday.com/story/money/cars/2019/03/27/future-cars-can-jaguar-land-rover-help-stop-spread-superbugs/3291071002/', 'https://seekingalpha.com/article/4251427-cronos-group-strong-growth-beginning', 'https://wgntv.com/2019/03/27/it-says-it-in-mexican-were-not-in-mexico-mans-rant-at-california-eatery-caught-on-video/', 'https://www.stltoday.com/entertainment/dining/you-do-what-to-a-bagel-st-louis-trends-on/html_4d926fee-0d36-54e0-926a-df88fde748f6.html', 'https://gizmodo.com/ftc-says-it-shut-down-spammers-behind-billions-of-roboc-1833621360', 'https://www.cnn.com/2019/03/27/politics/donald-trump-memo-fannie-mae-freddie-mac/index.html', 'https://www.wired.com/story/us-forcing-chinese-firm-sell-gay-dating-app-grindr/', 'https://www.cnn.com/2019/03/27/entertainment/netflix-hulu-amazon-april/index.html', 'https://www.cnbc.com/2019/03/27/lululemon-fourth-quarter-2018--earnings.html', 'https://nypost.com/2019/03/27/trumps-federal-reserve-nominee-owes-irs-75k/', 'https://www.americanbanker.com/news/equifax-fico-join-forces-to-give-banks-one-stop-analytics-product', 'https://thetakeout.com/fastest-growing-craft-breweries-america-2019-list-1833617777', 'https://techcrunch.com/2019/03/27/lyft-increases-ipo-price/', 'https://www.bbc.com/news/business-47722259', 'https://www.cnbc.com/2019/03/27/global-bond-market-has-been-spooked-and-big-interest-rate-slide-not-likely-to-be-over-yet.html', 'https://www.thisisinsider.com/older-former-ibm-employees-sue-company-alleging-age-discrimination-2019-3', 'https://www.bleepingcomputer.com/news/security/microsoft-retaliates-against-apt35-hacker-group-by-seizing-99-domains/', 'https://seekingalpha.com/article/4251345-yield-curve-inversion-suggests-new-time-highs-stocks', 'https://www.barrons.com/articles/centene-is-buying-wellcare-heres-what-it-means-for-cvs-and-humana-51553714555', 'https://www.cnn.com/2019/03/27/business/mcdonalds-minimum-wage/index.html', 'https://www.ccn.com/dow-swings-350-points-after-treasury-yields-trigger-recession-alarms', 'https://www.benzinga.com/markets/cannabis/19/03/13434727/walgreens-joins-cvs-will-start-selling-cbd-products-in-select-stores', 'https://www.npr.org/2019/03/27/707225124/idaho-utility-spurns-coal-pledges-100-percent-clean-energy-by-2045', 'https://www.bostonglobe.com/news/marijuana/2019/03/27/marijuana-legalization-bill-clears-another-major-hurdle-new-hampshire/J9Y7Ilw6cpXTZMfLRuNWQN/story.html', 'https://www.crainsdetroit.com/energy/detroit-trash-incinerator-shutting-down-150-lose-jobs', 'https://www.boston.com/food/restaurants/2019/03/27/dunkin-peeps-flavored-coffee-and-doughnuts', 'https://patch.com/new-jersey/wayne/nj-companies-caused-toxic-contamination-north-jersey-sites', 'https://www.cnbc.com/2019/03/27/turkish-stocks-dive-and-key-interest-rate-hits-1200percent.html', 'https://www.cnbc.com/2019/03/27/stocks-making-the-biggest-moves-midday-lennar-centene-boeing-more.html', 'https://www.mlive.com/news/2019/03/ohio-officials-to-lead-civil-rights-training-after-racist-acts-at-gm-plant-in-toledo.html', 'https://www.nationofchange.org/2019/03/27/carbon-emissions-reach-record-high-worldwide-in-2018/', 'https://www.cnn.com/2019/03/27/tech/amazon-volkswagen-partnership/index.html', 'https://mashable.com/video/verizon-to-launch-free-app-that-blocks-robocalls/', 'https://www.barrons.com/articles/what-the-dowdupont-breakup-means-for-the-dow-industrials-51553698844', 'https://www.chicagobusiness.com/greg-hinz-politics/city-picks-jeanne-gang-group-prized-new-ohare-terminal', 'https://www.wsj.com/articles/police-raid-swedens-leading-bank-as-russian-money-laundering-scandal-spreads-11553696080', 'https://www.barrons.com/articles/bed-bath-beyond-activist-investors-51553631761', 'https://oilprice.com/Energy/Energy-General/Oil-Falls-After-EIA-Reports-Crude-Build.html', 'https://talkingpointsmemo.com/news/supreme-court-rejects-kavanaugh-appeals-court-arguments', 'https://www.bbc.com/news/business-47717838', 'https://www.benzinga.com/news/19/03/13431277/the-lyft-ipo-what-you-need-to-know', 'https://www.foxbusiness.com/features/jersey-mikes-to-donate-all-sales-to-charities-on-day-of-giving', 'https://9to5mac.com/2019/03/27/apple-card-interest/', 'https://www.dailymail.co.uk/news/article-6855185/Chinese-telecom-giant-Huawei-splurges-1-billion-building-fake-European-town-30-000-workers.html', 'https://www.reuters.com/article/us-usa-economy-tradefigures/us-trade-deficit-narrows-sharply-as-exports-rebound-idUSKCN1R81BW', 'https://www.cnbc.com/2019/03/27/homebuilder-lennars-quarterly-profit-jumps-76percent.html', 'https://www.inc.com/justin-bariso/mcdonalds-just-made-a-300-million-dollar-investment-that-may-change-fast-food-forever.html', 'https://www.fiercepharma.com/marketing/novartis-snags-blockbuster-ok-for-secondary-progressive-multiple-sclerosis-drug-mayzent', 'https://www.usatoday.com/story/money/2019/03/27/powerball-lottery-jackpot-hits-750-million-12-things-not-to-do-if-you-win/39235035/', 'https://www.theregister.co.uk/2019/03/27/salesforce_humanitarian_champion_or_sextrafficking_profiteer_fresh_sueball_thinks_the_latter/', 'https://nj1015.com/fda-issues-alert-about-tainted-lots-of-dog-food/', 'https://www.businessinsider.com/mario-draghi-warns-on-european-growth-slowdown-amid-global-slump-2019-3', 'https://www.theinquirer.net/inquirer/news/3073220/apple-faces-iphone-import-ban-after-latest-ruling-in-qualcomm-patent-spat', 'https://www.wired.com/story/apple-card-security-benefits-use-apple-pay', 'http://www.startribune.com/minnesota-utility-regulators-give-final-stamp-of-approval-to-2-6b-enbridge-pipeline-project/507690922/', 'https://www.nbcnews.com/news/us-news/wall-street-bonus-data-2018-securities-industry-profit-n987681', 'https://www.engadget.com/2019/03/26/ups-drone-airline/', 'https://wolfstreet.com/2019/03/26/the-most-splendid-housing-bubbles-in-america-deflate-further/', 'https://www.bisnow.com/boston/news/retail/wayfair-plans-first-full-service-store-at-natick-mall-98181', 'https://www.washingtonpost.com/business/2019/03/26/how-apples-numberless-credit-card-will-make-it-ever-harder-break-free-its-ecosystem/', 'https://bitcoinist.com/apple-card-credit-card-bitcoin/', 'https://realmoney.thestreet.com/investing/stocks/how-to-trade-hot-ipos-as-lyft-uber-pinterest-and-more-get-set-to-go-public-14907575', 'https://www.businessinsider.com/careem-ceo-interview-why-uber-had-to-acquire-rival-2019-3', 'https://www.abc15.com/national/british-airways-flight-was-supposed-to-go-to-germany-it-went-to-scotland']

To Reproduce
let the urls equal to my above url list.
run this NewsPlease.from_urls(urls, timeout=10)
Expected behavior
I will always the error and anothe question is I find it take a long time to run this.
Screenshots
If applicable, add screenshots to help explain your problem.

Versions (please complete the following information):

OS: MacOS 10.2
Python Version 3.6.1
news-please Version 1.2

looks like the issue is related to this https://stackoverflow.com/questions/48105448/python-http-server-client-remote-end-closed-connection-without-response-error and as such not an issue related to news-please but rather the remote host (as the name of the exception suggests)

Using debug logging, please try to isolate which of the URLs in the array it is and post that URL here (one is sufficient).


Add k8s namepace to .fiberconfig

In case you don't want to use default: https://github.com/uber/fiber/blob/master/fiber/kubernetes_backend.py#L57

This is reasonable. Do you want to create a PR for it if you have time?

Yeah. Let me try to put something together.

Thank you


Documentation missing for HTML5 video textTracks

Request type

[ ] Please close this issue, I accidentally submitted it without adding any details
[x] New documentation
[ ] Correction or update

Details

URLs: https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/textTracks, and
https://developer.mozilla.org/en-US/docs/Web/API/TextTrackList
Results In: 404 (Not found)
Navigation links for these are available on the following URL: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/video

New Pages:
https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/textTracks
https://developer.mozilla.org/en-US/docs/Web/API/TextTrackList
https://developer.mozilla.org/en-US/docs/Web/API/TextTrackList/change_event
https://developer.mozilla.org/en-US/docs/Web/API/TextTrackList/onchange
https://developer.mozilla.org/en-US/docs/Web/API/TextTrackList/addtrack_event
https://developer.mozilla.org/en-US/docs/Web/API/TextTrackList/onaddtrack
https://developer.mozilla.org/en-US/docs/Web/API/TextTrackList/removeTrack
https://developer.mozilla.org/en-US/docs/Web/API/TextTrackList/onremovetrack_event
https://developer.mozilla.org/en-US/docs/Web/API/TextTrackList/getTrackById
https://developer.mozilla.org/en-US/docs/Web/API/TextTrackList/length
Next:
https://developer.mozilla.org/en-US/docs/Web/API/TextTrack


Microservices from zero to hero

Seems this set of articles is missing in the awesome list
Microservice Series - From Zero to Hero
It has pretty much comprehensive and short articles on how to create a microservice and deploy it to Azure Kubernetes.
Please add this to the awesome list if you consider articles useful.

Great articles!
Thank you.
Done. https://github.com/mjebrahimi/Awesome-Microservices-NetCore/commit/fb97ac4cc975ff1e430a3bd4ca2e064f09b69a95


Transform presentation of input by cutting out regex patterns

[x] I have read through the manual page (man fzf)
[x] I have the latest version of fzf
[x] I have searched through the existing issues

Info

OS

[x] Linux
[ ] Mac OS X
[ ] Windows
[ ] Etc.

Shell

[ ] bash
[x] zsh
[ ] fish

Similar to with-nth, but instead of delimiting the input and selecting a field, you just pass in a regex pattern to cut out of the input lines without effecting the final selected output.
As an example, I use fzf to select video files to open with mpv, and I have files with names like [SubsPlease] Fumetsu no Anata e - 01 (1080p) [1D65E30D].mkv, all the extra information isn't exactly condusive to searching and it's not nice to look at either, and while this one example could be handled with a delimiter, not every file would have the same exact field for with-nth so it isn't an effective option. Instead, if I could do something like fzf --cut '(\[\w+\])|(\(\w+\))|\.\w+$' to transform the line to Fumetsu no Anata e - 01 that would be much nicer and more widely applicable.

fzf was designed with Unix philosophy in mind, it doesn't try to do things that other programs can do better.
In this case, you can 1. preprocess the input string using any program of your choice, 2. feed the original input along with its modified representation to fzf, 3. hide the original using --with-nth, 4. and extract the original input string with another filter program. This approach is much more flexible than fzf implementing a certain string transformation mechanism.
find */* | awk '{print $0 "\t" gensub("/", "🌈 ", "g")}' | fzf --delimiter "\t" --with-nth 2.. | awk -F"\t" '{print $1}'


Need to predict stuns

Specifically:

The important one is predicting when the timer elapses as currently after you get up from a slip you'll teleport because client doesn't anticipate the end of the stun
Being able to paralyze from client-side in anticipation of the server stun will be useful for melee combat.

related to #3350

Fixed by #3552


KDE and PulseAudio Not Working

I'm trying to use KDE4 with PulseAudio but I won't get any sound. PulseAudio works fine with non-KDE applications, such as MPlayer, Flash, Steam. But if I try to use the test function in the "Device Preference" or "Audio Hardware Setup" sections in the Multimedia setting, I don't hear any sound. If run Clementine it crashes as soon as I try to play an audio file with the message
(clementine:7560): GStreamer-CRITICAL **: gst_object_unref: assertion 'object != NULL' failed

I have tried using the vlc back end but the results are the same.  I'm not sure if gstreamer even comes with pulse support.  If I try
$ gst-inspect pulsesink
No such element or plugin 'pulsesink'

I'm using
$ nixos-version
14.11pre52840.c347f1c (Caterpillar)

but it has been broken for a while (not sure if it ever worked for me). The option hardware.pulseaudio.enable is set to true.
Another user confirmed the same behavior on IRC.

Any luck on this?

Any luck on this?

I have 15.05pre54730.cbe467e (Caterpillar) now and gst-inspect pulsesink finds the pulsesink. Clementine plays audio without crashing. However it seems KDE itself still doesn't work. At least when I try to test my configuration in the "Multimedia" Settings I either won't get any audio or I get a Segfault.  Sadly there are no debug symbols installed (is there a way to install external debug symbols on NixOS?) and thus the backtrace is not very useful:
Application: System Settings (systemsettings), signal: Segmentation fault
[Current thread is 1 (process 4048)]

Thread 1 (process 4048):
#0  0x00007f6e72c30f7c in ?? ()
#1  0x0000000000000000 in ?? ()

I'm not sure if this is a bug in the systemsettings or an issue in Phonon. I'll be glad to provide any further information.

I've the same problem, too. pulseaudio works perfectly, but KDE didn't emit any sound.

This was a Phonon/GStreamer issue. It has been fixed in master for some time.


fix(textarea-item): delete icon did not appear normally

主要改动

需要注意
解决bug: 输入文字 => 点击图标删除 => 重新输入 => bug:删除按钮没有出现

Codecov Report

Merging #606 into dev will decrease coverage by 0.01%.
The diff coverage is 75%.

@@            Coverage Diff             @@
##              dev     #606      +/-   ##
==========================================
- Coverage   83.42%   83.41%   -0.02%
==========================================
  Files          98       98
  Lines        2764     2768       +4
  Branches      524      524
==========================================
+ Hits         2306     2309       +3
- Misses        314      315       +1
  Partials      144      144

Impacted Files
Coverage Δ

components/textarea-item/index.vue
97.72% <75%> (-2.28%)
:arrow_down:

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 aa09643...91f55d4. Read the comment docs.


Added Bazel workspace to binary release package

Files under bptestrunner will be added directly to the binary release package
Removed files needed to build Bluepill with Bazel.

Merged, more tweaks on the way


Sometimes CTCP replies are lost.

If someone issues any command that involves doing a CTCP request or simply waiting for a message reply, the CTCP replies will most likely be lost. This could be avoided by instead of waiting for replies in tools.py's functions, setting a message monitor for them. However, that'd also involve setting a message monitor for functions that rely on the values returned by these, making a really big mess.

Currently planning to make deskbot more event-based and asynchronous rather than a macaroni mess.


cos-fleetshard-sync: enable multi tenancy support

feat(cos-fleetshard-sync): create the namespaces on the data plane (MGDCTRS-596)
feat(cos-fleetshard-sync): add a feature flag to enable/disable tenancy support (MGDCTRS-596)

Why the feature flag?

to deploy it now without requiring synchronized deployment of the fleet manager

How will the feature be enabled? I assume it doesn’t require redeployment?

How will the feature be enabled? I assume it doesn’t require redeployment?

correct, there is a configuration option to enable/disable tenancy support.
to be 100% clear, right now it works the other way as tenancy is enable by default but we can turn it down in case the manged is not deployed in time


From constrained set and min/max for common types

It seems that if I want to limit the length of strings the recommended way is to use a custom specimen builder as discussed here http://stackoverflow.com/questions/10125199/autofixture-configure-fixture-to-limit-string-generation-length
It would be nice if Autofixture came with some of this constraints out of the box for common types such as strings, ints, datetimes, etc. So that users don't have to write them themselves.
It would also be very convenient if there was a way to specify a constrained list (of IEnumerable) for a particular property. For example, in Australia bank accounts have a BSB number, which is basically a branch number of a particular bank.
var allowedBSBs = new [] { "061237", "061238", "061239"};
var newAccount = fixture.Build<Account>()
    .With(x => x.BSB, allowedBSBs);

or alternate, more expressive syntax
var allowedBSBs = new [] { "061237", "061238", "061239"};
var newAccount = fixture.Build<Account>()
    .With(x => x.BSB)
    .FromConstrainedSet(allowedBSBs);

AutoFixture was originally conceived as a TDD tool, and that's still a guiding principle behind its design. I don't mind if people use it for other purposes as well, but TDD is the main focus.
TDD is a feedback mechanism; as GOOS explains, you should listen to your tests. AutoFixture tends to amplify this feedback mechanism, and that's one reason I find it valuable.
Whenever I encounter the need to slice and dice primitive values in various ways, I consider it a sign that I should pause and reflect. Often, the solution isn't to introduce special ways to slice and dice primitives, but instead to refactor from primitives to Domain Objects. When you do that, not only does your domain model become much clearer, but it also becomes easier to tweak AutoFixture in your desired direction.
Instead of treating e.g. BSB number as a string, make it a Value Object and then configure AutoFixture to automatically generate values drawn from { "061237", "061238", "061239"} whenever a request is made for a BsbNumber value.

But even if BSB is a VO rather than a string, to use Autofixture without building a custom specimen builder, I would have to have some way of constraining the list of allowed BSBs. It doesn't make sense to make them enums because they are system configurable as banks open/close branches.
Same thing with length of fixed term deposits for example. It might be 3, 6 or 12 months for example. But in the domain the banks would like to offer different types of financial products with different maturity periods, so it doesn't make sense to make them enums either.
Yet another example is credit card numbers. These have to pass a checksum algorithm. A custom specimen builder might be a good solution, but it would be so much easier to start with a white list first. Then I can just ask for a user with bunch of credit cards.

It might make sense to add an ElementsBuilder which would work similarly to FsCheck's Gen.elements or QuickCheck's elements functions.
Such an ISpecimenBuilder should be created with a collection of elements to choose from. Perhaps it should be generic, so that an ElementsBuilder<int> is configured differently from an ElementsBuilder<string>.

I could use this feature too so I'm willing to give it a shot if nobody is working on it.

@Pvlerick I don't that anyone is :smile:


Allowing scrapers to function without dns service

As a consumer of the library, I want to run just the scrapers and receive the output.
This allows a scrapers service to be constructed and successfully run without setting up a dns service.

We can definitely provide this functionality to Amass, yet due to some serious changes I've made recently, I'll need to implement you idea in the upcoming release. I greatly appreciate your collaboration!

Thanks!


Fix linux compile issue due to cosf and sinf usage.

This fix is in reference to #21 which explains the errors experienced without these changes. The change uses C++'s overloaded std::cos and std::sin which can take float as an argument and return it. See this cpp reference page for the overloaded function. The reason cosf and sinf do not work on Linux is due to this bug I believe.
Please let me know if I need to follow particular guidelines for PRs in this repo. For now, I have posted some evidence of it operating on my setup (see #21) below.
Evidence
Both mingfx-test-blank-window and mingfx-test-gui-plus-opengl  were run to test these changes.Note: I did have to add the lib path to my LD_LIBRARY_PATH in order to run the tests (it said libnanogui.so could not be found). I am not sure at this point what causes that issue.
Blank Window Test
After building, the mingfx-test-blank-window program was run and the output can be seen below.

GUI + OpenGL Test
Similarly, after building, the mingfx-test-gui-plus-opengl program was run and the output can be seen below. I was also able to pause, play, move the button box, translate, and zoom in and out successfully.

Close #21

Thanks so much for looking into this and suggesting the fix.  I want to suggest a slight revision to the pull request.  The issue is that the C++ std library is apparently not so "standard" after all.  We need to call different functions depending on what compiler is used (e.g., on linux vs. windows).  So, the solution to this that we have tried to implement is to call our own functions from cos and sin, etc. that act as wrappers and then these are implemented differently for different platforms using #defines.  So, we added these to the GfxMath class.  For some reason, I guess that we must have missed updating the two uses of cos and sin in the file where you ran into problems.  So, let's update this PR to call GfxMath::cos() and GfxMath::sin() instead of the sinf versions, and then I think we'll be good to go on all platforms!  Thanks!

Updated Verification Evidence
Both mingfx-test-blank-window and mingfx-test-gui-plus-opengl were run to test these changes again. Note: I did have to add the lib path to my LD_LIBRARY_PATH in order to run the tests (it said libnanogui.so could not be found). I am not sure at this point what causes that issue.


Update .circleci/config.yml

Description
Updates .circleci/config.yml according to the instructions in the issue.
Issues Resolved
N/A
Contribution Check List

[ ] All tests pass.
[ ] New functionality includes testing.
[ ] New functionality has been documented in the README if applicable

@PowerSchill can you check if this change is correct, I basically followed the instructions in the issue description. Thank you.


Better fallback

Opens a new window if one of the following conditions are met:

Web Activities are not supported
Web Activities are supported, but the request returns an error

Thanks!

Sorry about the indentation issues. I fixed it on my branch, but the merge happened too quickly.

Feel free to issue a new PR, otherwise I'll take care of it. No worries.

Done! #14


CORS filter blocks same origin requests

#173 added XHR support to the CORS filter. This code always expects an Origin header with the "X-Requested-With: XMLHttpRequest" header. However, the browser does not add an Origin header on same origin GET requests. The result is that same origin requests get a 403 error, and there is no way to whitelist these requests since there is no Origin header passed. The only workaround is to remove the CORS filter completely.

If origin is missing, is the request valid? If it is valid, should the hostname in the header become Origin?
https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS

Tested this on Firefox and Chrome and they do not send an Origin header on same origin requests where the scheme/host/port are the same. Using the hostname in the header might work but why try to enforce CORS on a same origin request?

This document seems to believe that missing or empty origin header should be rejected with a 403 FORBIDDEN, like our current implementation does
https://www.owasp.org/index.php/CORS_OriginHeaderScrutiny

Notice it says "for each incoming HTTP CORS requests:", implying that it is only for cross origin requests. It's unclear how the server would know a request is cross origin without an Origin header, so the page is not well written in my opinion. As a test, simply go to some sight that issues ajax requests and look at the requests using the developer tools in your browser. You will see no Origin header on same origin requests.  As further proof, we can look at the source code for mozilla.
http://mxr.mozilla.org/mozilla-release/source/dom/security/nsCORSListenerProxy.cpp
Follow the logic for mHasBeenCrossSite and look where it sets the Origin header.


Fix-path breaks quit from dock in packaged electron app on OSX

When using Fix-path with Electron and electron-packager, it breaks the ability for the user to quit the application from the dock after packaging.  Right clicking the doc-icon and selecting "Quit" does nothing.
This is explained in better detail here: https://github.com/electron/electron/issues/8687 . For a minimal application reproducing the problem, see https://github.com/electron/electron/issues/8687#issuecomment-285933916

For reference, the hotkey ⌘Q does work, as does Force Quitting the app.

 Try https://github.com/sindresorhus/shell-env and check if the promise it returns resolves. Also check with pstree or similar tools if your app has child processes.

My understanding was that any electron app will have at least 1 child process, since there's the main process and the render process, correct?  My app doesn't have child processes other than the 2 render processes typical of electron, similar to:
nlawrence-6148:~ nlawrence$ pstree -w -p 40093
-+= 00001 root /sbin/launchd
 \-+= 38205 nlawrence /Applications/Utilities/Terminal.app/Contents/MacOS/Terminal
   \-+= 39944 root login -pf nlawrence
     \-+= 39945 nlawrence -bash
       \-+= 40093 nlawrence /Users/nlawrence/projects/testFixPath/testfixpath-darwin-x64/testfixpath.app/Contents/MacOS/testfixpath
         |--- 40094 nlawrence /Users/nlawrence/projects/testFixPath/testfixpath-darwin-x64/testfixpath.app/Contents/Frameworks/testfixpath Helper.app/Contents/MacOS/testfixpath Helper --type=gpu-process --no-sandbox --supports-dual-gpus=true --gpu-driver-bug-workarounds=0,1,10,23,25,36,39,40,47,53,61,63,64,65,66,68,73,74,76,84,85,86,89,92 --disable-gl-extensions=GL_KHR_blend_equation_advanced GL_KHR_blend_equation_advanced_coherent --gpu-vendor-id=0x1002 --gpu-device-id=0x67ef --gpu-driver-vendor --gpu-driver-version --gpu-driver-date --gpu-secondary-vendor-ids=0x8086 --gpu-secondary-device-ids=0x191b --gpu-active-vendor-id=0x8086 --gpu-active-device-id=0x191b --service-request-channel-token=F8B8D03B2B7DA14AE3390044FDC57087
         \--- 40095 nlawrence /Users/nlawrence/projects/testFixPath/testfixpath-darwin-x64/testfixpath.app/Contents/Frameworks/testfixpath Helper.app/Contents/MacOS/testfixpath Helper --type=renderer --no-sandbox --primordial-pipe-token=D2743DBC268ADC46AF52275F4A4A7AB9 --lang=en-US --app-path=/Users/nlawrence/projects/testFixPath/testfixpath-darwin-x64/testfixpath.app/Contents/Resources/app --node-integration=true --webview-tag=true --no-sandbox --enable-pinch --num-raster-threads=4 --enable-zero-copy --enable-gpu-memory-buffer-compositor-resources --enable-main-frame-before-activation --content-image-texture-target=0,0,3553;0,1,3553;0,2,3553;0,3,3553;0,4,3553;0,5,3553;0,6,3553;0,7,3553;0,8,3553;0,9,3553;0,10,34037;0,11,34037;0,12,34037;0,13,3553;0,14,3553;0,15,3553;1,0,3553;1,1,3553;1,2,3553;1,3,3553;1,4,3553;1,5,3553;1,6,3553;1,7,3553;1,8,3553;1,9,3553;1,10,34037;1,11,34037;1,12,34037;1,13,3553;1,14,3553;1,15,3553;2,0,3553;2,1,3553;2,2,3553;2,3,3553;2,4,3553;2,5,3553;2,6,3553;2,7,3553;2,8,3553;2,9,3553;2,10,34037;2,11,34037;2,12,34037;2,13,3553;2,14,3553;2,15,3553;3,0,3553;3,1,3553;3,2,3553;3,3,3553;3,4,3553;3,5,34037;3,6,3553;3,7,3553;3,8,3553;3,9,3553;3,10,3553;3,11,3553;3,12,34037;3,13,3553;3,14,34037;3,15,34037;4,0,3553;4,1,3553;4,2,3553;4,3,3553;4,4,3553;4,5,34037;4,6,3553;4,7,3553;4,8,3553;4,9,3553;4,10,3553;4,11,3553;4,12,34037;4,13,3553;4,14,34037;4,15,34037 --service-request-channel-token=D2743DBC268ADC46AF52275F4A4A7AB9 --renderer-client-id=4

That being said, I've run through @wuww5511 's steps from the linked issue, and I'm not able to reproduce with their minimal app, so there's probably a piece missing.  It's definitely still happening in my app (and if I comment out the include of fix-path, quitting works as expected).  I'll do a bit more digging and see if I can come up with a set of reproducible steps.

I spoke too soon -- I can now reliably reproduce this.
Apparently there's a difference in the way that the app is executed if you double-click [Your Electron App].app or if you navigate inside the app-bundle and run the shell script there ([Your Electron App].app > Contents > MacOS > [Your Electron App]) -- the former breaks quit, the latter does not, even when using the same app bundle that requires fix-path.  I was previously using the latter, which is why I wasn't able to reproduce.
Here are the steps to reproduce (on a mac):

git clone https://github.com/electron/electron-quick-start exampleApp
cd exampleApp
yarn add fix-path
yarn add electron-packager --dev
Add require('fix-path')(); to the top of main.js (I also tried after the require of electron or of path -- didn't seem to matter where in the file it was)
Add the following script definition in package.json "package": "electron-packager . test --overwrite"
yarn run package
Navigate to exampleApp/test-darwin-x64/ in finder
Double-click test.app
Right-click the dock and select Quit

Note that if you instead navigate to exampleApp/test-darwin-x64/test.app/Contents/MacOS/ and double click test then you can quit as expected.
Here's a git patch showing all of the changes on top of the base electron-quick-start repo required to repro this:
diff --git a/main.js b/main.js
index 07561fa..0f450b3 100644
--- a/main.js
+++ b/main.js
@@ -1,3 +1,4 @@
+require('fix-path')();
 const electron = require('electron')
 // Module to control application life.
 const app = electron.app
diff --git a/package.json b/package.json
index 4386fec..8670a28 100644
--- a/package.json
+++ b/package.json
@@ -4,7 +4,8 @@
   "description": "A minimal Electron application",
   "main": "main.js",
   "scripts": {
-    "start": "electron ."
+    "start": "electron .",
+    "package": "electron-packager . test --overwrite"
   },
   "repository": "https://github.com/electron/electron-quick-start",
   "keywords": [
@@ -17,6 +18,10 @@
   "author": "GitHub",
   "license": "CC0-1.0",
   "devDependencies": {
-    "electron": "~1.7.8"
+    "electron": "~1.7.8",
+    "electron-packager": "^11.0.1"
+  },
+  "dependencies": {
-    "start": "electron ."
+    "start": "electron .",
+    "package": "electron-packager . test --overwrite"
   },
   "repository": "https://github.com/electron/electron-quick-start",
   "keywords": [
@@ -17,6 +18,10 @@
   "author": "GitHub",
   "license": "CC0-1.0",
   "devDependencies": {
-    "electron": "~1.7.8"
+    "electron": "~1.7.8",
+    "electron-packager": "^11.0.1"
+  },
+  "dependencies": {
+    "fix-path": "^2.1.0"
   }
 }

I'll spend a little time looking into shell-env next, but you should be able to reproduce this at will with these steps.
As a side note, I'm willing to accept this could be an issue with how electron-packager is bundling things, or with electron itself, but I'd ask for your help filing an issue against those projects if that's determined to be the cause, since electron has already closed this issue once as "due to an issue in a 3rd party module".


Unable to translate text

Describe the problem
I know that since we cannot login to twitter we dont get the translate option from twitter. I am not talking about that here.
My issue is that when you select any text in squawker there is only one option to "copy" the text. There are no additional options to share, translate text. I have installed DeepL translate app from f-droid so when I select any text in firefox browser, I get an option to translate the text using DeepL but since that option does not show up insquawker I am unable to translate tweets. I hope you understand what I am trying to say here. Here are some screenshots to help you understand better.

I notices one more issue. Twitter videos that are geoblocked dont play at all on squawker. Is this a bug or just the way it works?
Describe the solution
We should be able to translate text by selecting it and using other translator apps.

You can translate any tweet with the little blue icon at the bottom right of the tweet .

@j-fbriere  here is a comparison example

I once asked quawker for this feature.
Basically for java/kotlin app, the following lines needed to be added in Manifest.xml
   <queries>
        <intent>
            <action android:name="android.intent.action.PROCESS_TEXT" />
            <data android:mimeType="text/plain" />
        </intent>
    </queries>

Not sure if it's the same for flutter.

@scubajeff Squawker already has those lines added to its AndroidManifest.xml file.

Version 3.3.0 implements this feature.

Closing since there is no feedback, so everything must be OK.


[native_assets_cli] BuildConfig.hasLinkPhase

Step 1 of

https://github.com/dart-lang/native/issues/1252

Naming bike shedding:

BuildConfig.hasLinkPhase?
BuildConfig.willLink?
BuildConfig.isLinkHookEnabled?

coverage: 92.21% (+0.009%) from 92.201%
when pulling cf9d94463e4c1f143b8048f68f4d8ca62c5a2e54 on no-link-in-jit
into b054170892363b88d6033971cd2676229a3e798e on main.

Step 1 of

[native_assets_cli] Stop running link hooks in JIT mode. #1252

Naming bike shedding:

BuildConfig.hasLinkPhase?
BuildConfig.willLink?
BuildConfig.isLinkHookEnabled?

IMO, phase sounds too technical for no reason, willLink could be misleading (what if there is no link hook?), so isLinkEnabled or similar should be fine.

what if there is no link hook?

Good point, but the same thing could be said about the other names. The only way to mitigate this confusion completely would be to use verbs that show possibility instead of down right stating that things will be linked. For example supportsLinkHook or canBeLinked.

the same thing could be said about the other names. The only way to mitigate this confusion completely would be to use verbs that show possibility instead of down right stating that things will be linked.

I agree, I think my proposed isLinkEnabled also works in this regard. It does not promise that linking will happen, only that it is enabled in the config.

the same thing could be said about the other names. The only way to mitigate this confusion completely would be to use verbs that show possibility instead of down right stating that things will be linked.

I agree, I think my proposed isLinkEnabled also works in this regard. It does not promise that linking will happen, only that it is enabled in the config.

Much better! Bouncing off this with some other wording that feels slightly more natural:

linkingEnabled
linkHooksEnabled

I think, I lean towards the first.

For me, support/allow/can sounds more like a general option, less like a switch.
+1 for linkingEnabled

Hooks are called/invoked/run or not called/invoked/run.
I think the "enabled" is whether they will be called/invoked/run.
"allow" is for access control, "enable" is for possibility. So, I think linkingEnabled is better than linkingAllowed.

canLink

I like this, together with addAsset(..., {bool linkInPackage}). "can" and "enabled" are the same thing to me, but can definitely omits the possibility that something has already happened. And it's concise. 👌

For me, support/allow/can sounds more like a general option, less like a switch.
+1 for linkingEnabled

I don't want to keep bike-shedding, so feel free to go with that name. However "enabled" suggests that there already is a linking step involved, so I "must", build linkable things.
Something like linkingAvailable suggests that I have the possibility of building linkable things.

linkingAvailable

I also like this one!
"available" and "enabled" is maybe better than "can", because can leaves it open if you as hook author can invoke linking or if the system might possibly be linking.
"available" is maybe better than "enabled" because it clearly states that you can use something from your hook. While enabled could mean something has already happened.
(Okay, I'm going to keep changing my mind in this conversation.)
@mosuem linkingAvailable?

There is a distinction between the link.dart file and the linking step. The link.dart file is certainly always available, but not always enabled, and the linking step is not always available. So I would say that either linkingStepAvailable/linkingPhaseAvailable or linkingEnabled is fine by me.
I do think linkingEnabled is shorter and simpler, as we don't need to distinguish between link hook file and phase for enabled, but we do for available. Maybe I am overthinking this.

I was asking our trusty assistant earlier:

Option
Focus
Nuance
Clarity

linkingAvailable
Capability & Presence
Suggests linking is an option, but not necessarily the default or always guaranteed.
Very clear

canLink
Capability & Potential
Emphasizes the possibility of linking, but other factors might influence the outcome.
Clear

linkingEnabled
Configuration & Intent
Indicates linking is explicitly allowed and expected due to the build configuration.
Very clear

The Dart and Flutter SDK have the capability to link in some configurations (the configurations in which Dart is build in AOT mode). So seeing from the point of view that build hooks are invoked with a variety of different BuildConfigs, "enabled" seems to be a more fitting word than "available".

I don't want to keep bike-shedding, so feel free to go with that name. However "enabled" suggests that there already is a linking step involved, so I "must", build linkable things.

I will add a doc comment to clarify that one "may" build linkable things instead of "must".
Thanks for all the input!

There is a distinction between the link.dart file and the linking step. The link.dart file is certainly always available, but not always enabled, and the linking step is not always available. So I would say that either linkingStepAvailable/linkingPhaseAvailable or linkingEnabled is fine by me.

Good point, I didn't think of it that way.

I do think linkingEnabled is shorter and simpler, as we don't need to distinguish between link hook file and phase for enabled, but we do for available. Maybe I am overthinking this.

I think we all like linkingEnabled enough to go with that.


Make block context configurable

Description
In the transfer fee function the block context does not use configurable values. This should be solved
Acceptance criteria

hardcoded values are removed and we use configurable values (through offchain storage probably)

@LucasLvy please describe the issue with relevant context


UPDATED README.md file

Hello @allanoguis
I have made all the necessary and promised changes to the file and leaving below ss of the changes for you to review :
kindly review :

thankyou for the opportunity ,do review and make my work count under hacktoberfest

it is showing me repo excluded

why is this repo excluded???

Thanks @soham0028. Not sure why, I tried to contact the even organizers about this issue


feature regression: no longer possible to rewrite authority

Title: no longer possible to rewrite authority
Description:
https://github.com/envoyproxy/envoy/pull/14747 changed the behavior of header modifications that are allowed. Previously, we relied on this to rewrite the authority on a per-destination basis.
After the change, this is no longer possible. While we can do a rewrite at the route level, we cannot do it on a per-weighted-cluster basis, unlike all other headers.
For us this represents a breaking change, so we will likely set the runtime flag for now. But we want to understand a long term plan.
cc @alyssawilk
[optional Relevant Links:]
Istio specific issue: https://github.com/istio/istio/issues/33226

Yeah, this was a bit of a bug, because it allowed rewrites specific for HTTP/1 and not HTTP/2 so would cause inconsistent behavior.
Would any of
"host_rewrite_literal": "...",
"auto_host_rewrite": "{...}",
"host_rewrite_header": "...",
"host_rewrite_path_regex": "{...}",
work for you?
https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/route/v3/route_components.proto#envoy-v3-api-field-config-route-v3-routeaction-regex-rewrite
If not happy to discuss the use case further.

We do use host_rewrite_literal, but the issue is it cannot be set inside a WeightedCluster_ClusterWeight. So we can set it at the RouteAction level but if we have multiple destinations we can only use one rewrite between all of them

ah, gotcha.  So if host_rewrite_specifier were added to ClusterWeight that'd work for you?
cc @envoyproxy/api-shepherds too since I'd like their input as well.
Also you did catch this validation is runtime guarded, yes?  Ideally you should just be able to flip the runtime guard back while we figure out a long term solution.

Yep, I was planning to set the runtime flag in the meantime. Thanks for adding that

ah, gotcha. So if host_rewrite_specifier were added to ClusterWeight that'd work for you?

Yep

@adisuissa @lizan thoughts?

@htuch

@howardjohn should be fixed - lmk if this doesn't work for all your use cases and I'll keep iterating :-)


Allow Email Verification field is given twice, once in Configure->Customers->Setting and in Configure->Admin->Email.Currently if field is enable from any one grid and disable from other grid, then its not working.

Bug report
Title
Allow Email Verification field is given twice, once in Configure->Customers->Setting and in Configure->Admin->Email.
Issue Description
Allow Email Verification field is given twice, once in Configure->Customers->Setting and in Configure->Admin->Email.
Preconditions
1. framework Version- master

Expected result
Field should available only once.
Actual result
currently if field is enable from any one grid and disable from other grid, then its not working.

Hello @jyoti-webkul
These two are different according to their purpose.
First states that, whether customer need verification or not and second one states that whether mail will send for verification purpose or not.


In real robot, do you calibrate the extrinsic parameter?

Hello, Thanks for your share.
I have a question in real robot, do you calibrate the extrinsic parameter?  and could you give me some ideas to run you code in real robots.
Thanks very much!

Hey Neo! I didn't test on a hardware robot. But I am interested in your result. Let me know when you get some tests done.


Matching multiple terms

Given a list like the following:
[    {"fruit": "apple", "color": "red"},    {"fruit": "apple", "color": "green"},    {"fruit": "orange", "color": "red"},    {"fruit": "orange", "color": "blue"},   ]
If I search for one term, such as apple, then the first two items show up. Is there a way to search for apple red and have only the first term show up, or apple e and have both show up? Essentially searching and matching multiple terms. Thanks.

+1

+10


Some files could not be processed

I get a weird error:
 marge results/mochawesome/wdio-ma-merged.json --reportTitle 'My Project Results'

✘ Some files could not be processed:
results/mochawesome/wdio-ma-merged.json
  Invalid value "success" supplied to /stats/passPercentClass: Nil
  Invalid value "danger" supplied to /stats/pendingPercentClass: Nil
  Invalid value undefined supplied to /results: Array<Suite>
  Invalid value {
  "title": "",
  "suites": [
    {
      "title": "webdriver.io page (chrome.76_0_3809_100.windowsnt)",
      "suites": [],
      "tests": [
        {
          "title": "should have the right title",
          "fullTitle": "should have the right title",
          "timedOut": false,
          "duration": 1649,
          "speed": "fast",
          "pass": true,
          "fail": false,
          "pending": false,
          "code": "",
          "isRoot": false,
          "uuid": "d4f60518-2c07-403e-85dd-3efa9766cccf",
          "parentUUID": "ec976a94-694d-40fb-a494-12ef1e4628d2",
          "skipped": false,
          "isHook": false,
          "context": "[{\"title\":\"Session Id\",\"value\":\"1170aca5c22554247c39c5fffd9ff0ba\"}]",
          "state": "passed",
          "err": {}
        }
      ],
      "pending": [],
      "root": false,
      "fullFile": "",
      "file": "",
      "passes": [
        "d4f60518-2c07-403e-85dd-3efa9766cccf"
      ],
      "failures": [],
      "skipped": [],
      "duration": 1667,
      "_timeout": 0,
      "uuid": "ec976a94-694d-40fb-a494-12ef1e4628d2",
      "beforeHooks": [],
      "afterHooks": []
    }
  ],
  "tests": [],
  "pending": [],
  "root": true,
  "fullFile": "",
  "file": "",
  "passes": [],
  "failures": [],
  "skipped": [],
  "duration": 0,
  "_timeout": 0,
  "uuid": "4d07d487-c56c-4c1f-b722-f05bc1dcb55b",
  "beforeHooks": [],
  "afterHooks": []
} supplied to /suites: Nil
  Invalid value 2019 supplied to /copyrightYear: Nil

JSON looks like:
{
    "stats": {
        "suites": 1,
        "tests": 1,
        "passes": 1,
        "pending": 0,
        "failures": 0,
        "start": "2019-08-16T07:24:32.060Z",
        "end": "2019-08-16T07:24:36.799Z",
        "duration": 4739,
        "testsRegistered": 1,
        "passPercent": 100,
        "pendingPercent": 0,
        "other": 0,
        "hasOther": false,
        "skipped": 0,
        "hasSkipped": false,
        "passPercentClass": "success",
        "pendingPercentClass": "danger"
    },
    "suites": {
        "title": "",
        "suites": [
            {
                "title": "webdriver.io page (chrome.76_0_3809_100.windowsnt)",
                "suites": [],
                "tests": [
                    {
                        "title": "should have the right title",
                        "fullTitle": "should have the right title",
                        "timedOut": false,
                        "duration": 1649,
                        "speed": "fast",
                        "pass": true,
                        "fail": false,
                        "pending": false,
                        "code": "",
                        "isRoot": false,
                        "uuid": "d4f60518-2c07-403e-85dd-3efa9766cccf",
                        "parentUUID": "ec976a94-694d-40fb-a494-12ef1e4628d2",
                        "skipped": false,
                        "isHook": false,
                        "context": "[{\"title\":\"Session Id\",\"value\":\"1170aca5c22554247c39c5fffd9ff0ba\"}]",
                        "state": "passed",
                        "err": {}
                    }
                ],
                "pending": [],
                "root": false,
                "fullFile": "",
                "file": "",
                "passes": ["d4f60518-2c07-403e-85dd-3efa9766cccf"],
                "failures": [],
                "skipped": [],
                "duration": 1667,
                "_timeout": 0,
                "uuid": "ec976a94-694d-40fb-a494-12ef1e4628d2",
                "beforeHooks": [],
                "afterHooks": []
            }
        ],
        "tests": [],
        "pending": [],
        "root": true,
        "fullFile": "",
        "file": "",
        "passes": [],
        "failures": [],
        "skipped": [],
        "duration": 0,
        "_timeout": 0,
        "uuid": "4d07d487-c56c-4c1f-b722-f05bc1dcb55b",
        "beforeHooks": [],
        "afterHooks": []
    },
    "copyrightYear": 2019
}

Versions:

"mochawesome-report-generator": "^3.1.5"
"wdio-mochawesome-reporter": "^3.2.0"
Latest WDIO 5.12.1

reporters: [
        'dot',
        ['allure', { outputDir: './results/allure' }],
        [
            'mochawesome',
            {
                outputDir: './results/mochawesome',
                outputFileFormat: function(opts) {
                    const now = +new Date()
                    return `results-${now}.json`
                },
            },
        ],
    ],

onComplete: function(exitCode, config, capabilities, results) {
        const mergeResults = require('wdio-mochawesome-reporter/mergeResults')
        mergeResults('./results/mochawesome', 'results-*')
    },

Is something missing?

@svenC56 Could you provide a minimal test that reproduces the issue?

Hi @fijijavis I uploaded a small Repo to reproduce the issue.
https://github.com/SvenC56/webdriver-io-boilerplate-error
Thank you.

@SvenC56 the issue is that you are using mochawesome-report-generator@4, which changed the structure of the file. Downgrade to v3 to have it working again.

Having same issue even downgrade to 3.1.5 :( not working
✘ Some files could not be processed:
cypress/reports/mochawesome.json
Unexpected token � in JSON at position 0

@MehranShafqat @apyarun @SvenC56 were you able to figure it out? I tried downgrading to v3 and it did not work

It apparently works well with mochawesome-report-generator @2.3.2 but that doesnt work with my tests either. Same error.

Some files could not be processed:
./build/logs/mochawesome/results/wdio-ma-merged.json
Invalid value "success" supplied to /stats/passPercentClass: Nil
Invalid value "danger" supplied to /stats/pendingPercentClass: Nil
Invalid value undefined supplied to /results: Array
Invalid value {
"title": "",
"suites": [
The HTML files is not getting generated for the failed test scenarios. I can generate the HTML report for the passed scenarios. Please advise, I have added the merge command on the onComplete hooks.
const mergeResults = require('wdio-mochawesome-reporter/mergeResults')
mergeResults('./results/mochawesome', 'results-*')
Any suggestion?

Are there any updates on this issue? I'm having a similar issue.


Add support for freshness across datasources

One common use case is to compare freshness across multiple datasets/sources in order to validate that an ETL job did not take too much time for example.

This is possible using Library and metric reconciliation checks.


[WebToolsE2E][Aspire] The dashboard theme is set to light by default. After manually selecting the system theme, closing and reopening Settings, the theme is automatically set to light again.

REGRESSION INFO: Worked in Aspire 8.2.1
INSTALL STEPS

Clean machine: Win11 x64 23h2 ENU

Install SDK 9.0.100-rc.2.24474.11

Install Aspire 9.0 [9.0.0-preview.5.24513.1]

Add dotnet8 feed
dotnet new install Aspire.ProjectTemplates::9.0.0-preview.5.24513.1 --force

REPRO STEPS

Open CMD, run following command to create an Aspire Starter App project

dotnet new aspire-starter-9 -o AspireStarterApp
cd AspireStarterApp/AspireStarterApp.AppHost

Dotnet run the project in CMD, and open URL in the browser.
dotnet run

NOTE: After manually selecting the dark theme, closing and reopening Settings, the theme is still dark.
ACTUAL:
The dashboard theme is set to light by default. After manually selecting the system theme, closing and reopening Settings, the theme is automatically set to light again.

EXPECTED:
The dashboard theme is set to system by default. After manually selecting the system theme, close and reopen Settings, the theme is still system.

Is this different to https://github.com/dotnet/aspire/issues/6020?
This issue has been logged 5(?) times.

Similar to https://github.com/dotnet/aspire/issues/6020

Verify this issue has been fixed in Aspire 9.0.0-rc.2.24517.3


feat: allow querying null fields

#160

Sure! @wovalle I'll review it. I'm still not 100% familiar with the folder structure and the project's architecture! :D


[Feature request] Ability to change console title from w64devkit.ini

I frequently have both w64devkit and w64devkit-i686 open at the same time, and it can be difficult to check which window belong to which.
I propose the ability to configure the console title from the w64devkit.ini file, like this:
;home = ..\home
;home = %HOMEDRIVE%%HOMEPATH%
;title = w64devkit-i686

For now, a workaround I found is to simply change the code that set the console title: SetConsoleTitleW(u"w64devkit-i686");, and recompile.

It's possible to set the console title with:
printf "\033]0;w64devkit-i686\007"

I've personally been using the escape sequence suggested by @rmyorston,
but I like the idea of an .ini option as an alternative. The ini-title
branch has an implementation I just whipped up, which I'll merge after
further testing and review. I encourage you to try it out yourself! You
don't even need to build the entire w64devkit to do so, just w64devkit.c.

They works fine for me!
Actually with this commit, this may have turned to a "general MinGW launcher", you can put w64devkit.exe and busybox into another mingw "distro", like winlib or llvm-mingw.


Please add AssemblyScript / JavaScript example

Hi,
Would you please add a JavaScript example for the discounts, similar to existing Rust example?
Thanks!

It has to be a language that can be compiled to webassembly.

https://www.wasm.builders/gunjan_0307/compiling-javascript-to-wasm-34lk ? (first google result)

How about https://www.assemblyscript.org/

that would be super helpful to have an exemple in AssemblyScript 🙏

Currently Rust is our only language with templates and official examples. There are community examples of using AssemblyScript:

https://github.com/nickwesselman/polyglot-functions/tree/main/extensions/order-discount-assemblyscript
https://gadget.dev/blog/build-a-shopify-function-using-assemblyscript

We do not have plans at this time to add official examples for AssemblyScript.


[SUPPORT]Custom AbstractHiveSyncHoodieClient impl

Consider the reuse of different engines, HoodieHiveClient create a new HMS client. The spark engine can be directly replaced by SparkSession.active.sharedState.externalCatalog, and it is hoped to provide a custom implementation in plugin mode. Avoid modify the hudi source code

mentioned in https://github.com/apache/hudi/pull/5695#issuecomment-1140601173 already.


KnockBack Sync Feature

To make all player regardlesss of ping take the same knockback. can be enabled or disabled if someone wants full vanilla but will be a great addition to mini games servers here pvp is nessarary
https://github.com/CASELOAD7000/knockback-sync

+1 if this could be somehow implemented!


Docker push failed with unexpected HTTP status: 501 Not Implemented

Hi,
I have been trying to figure this out for the last week and I am running out of options. So raising this as a last resort. Any insights appreciated
The issue
I have a private insecure registry on registry:2 and I have exposed this to <IP_ADDRESS>:80->5000/tcp .  Then when I try to push a Image I'm getting the following exception
The push refers to a repository [XXXXX.XXX.XXX.co.nz:80/wyn-monitoring-elasticsearch]
2288ad7cdad5: Pushing [==================================================>] 2.406 MB
e9e4f296a748: Pushing [==================================================>] 940.1 kB
480e97baa728: Pushing [==================================================>] 238.4 kB
47bfd9e697e9: Retrying in 1 second
6d87f537561f: Retrying in 1 second
3db27154534e: Waiting
dd30060048da: Waiting
08f7fd848eff: Waiting
45f31a2ab382: Waiting
995c4aba0d9f: Waiting
a8f27d9ee463: Waiting
2d5a026b4fe9: Waiting
8934c1ccbcac: Waiting
bd28175e8656: Waiting
9d32d8190824: Waiting
7b190e778aad: Waiting
d0411e98f1d9: Waiting
3242004f198a: Waiting
b2ac5371e0f2: Waiting
142a601d9793: Waiting
received unexpected HTTP status: 501 Not Implemented

looking at the registry logs there is a post action
[11/Oct/2016:03:03:33 +0000] "POST /v2/wyn-monitoring-elasticsearch/blobs/uploads/ HTTP/1.1" 202 0 "" "docker/1.12.1 go/go1.6.3 git-commit/23cf638 kernel/3.10.0-229.14.1.el7.x86_64 os/linux arch/amd64 UpstreamClient(Docker-Client/1.12.1 \\(linux\\))"

Docker info

Containers: 4
 Running: 2
 Paused: 0
 Stopped: 2
Images: 64
Server Version: 1.12.1
Storage Driver: devicemapper
 Pool Name: docker-253:2-28311872-pool
 Pool Blocksize: 65.54 kB
 Base Device Size: 32.21 GB
 Backing Filesystem: xfs
 Data file: /dev/loop0
 Metadata file: /dev/loop1
 Data Space Used: 1.14 GB
 Data Space Total: 107.4 GB
 Data Space Available: 106.2 GB
 Metadata Space Used: 4.018 MB
 Metadata Space Total: 2.147 GB
 Metadata Space Available: 2.143 GB
 Thin Pool Minimum Free Space: 10.74 GB
 Udev Sync Supported: true
 Deferred Removal Enabled: false
 Deferred Deletion Enabled: false
 Deferred Deleted Device Count: 0
 Data loop file: /var/lib/docker/devicemapper/devicemapper/data
 WARNING: Usage of loopback devices is strongly discouraged for production use. Use `--storage-opt dm.thinpooldev` to specify a custom block storage device.
 Metadata loop file: /var/lib/docker/devicemapper/devicemapper/metadata
 Library Version: 1.02.107-RHEL7 (2015-12-01)
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge null host overlay
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Security Options: seccomp
Kernel Version: 3.10.0-327.18.2.el7.x86_64
Operating System: CentOS Linux 7 (Core)
OSType: linux
Architecture: x86_64
CPUs: 4
Total Memory: 15.52 GiB
Name: wynchcs257.wyn.cnw.co.nz
ID: MRSE:WF4H:3NJF:SHNB:YGY3:HBQK:C6EK:VICY:G4VI:ZK45:3RBU:XYOQ
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Http Proxy: http://proxy.xxxx.co.nz:8080/
Https Proxy: https://proxy.xxx.co.nz:8080/
No Proxy: localhost,<IP_ADDRESS>/8,docker-registry.somecorporation.com
Registry: https://index.docker.io/v1/
WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled
Insecure Registries:
 xxxxxx.co.nz:80
 <IP_ADDRESS>/8

Hi, I am sorry you are running into trouble getting this going. Please don't give up. :) Please post your question on forums.docker.com, and include a bit more logging information, including the actual commands you typed to get this far. One thing I noticed is that you say your registry is on port 5000, but your docker info and docker push both show that the registry is on port 80.
Sorry to send you elsewhere, but this repository is for documentation issues, and not a general place to ask for help with Docker. Good luck!

Hi @harshana5, have you ever figured this out?
I have the same issue now and the https://forums.docker.com has nothing about this and over there it seems nobody replies when issues are raised.
Thanks

I have managed to solve this.
In case if anybody else stumbles upon this, this was an issue with proxies. Our nodes are behind an internet proxy, but the docker registry is not on the internet and it needed to be added to the noproxy list. Why docker was giving unhelpful 501 Not Implemented error and "invalid remote IP address "unknown"" errors on the server side was a bit misleading.
In the end looking at the golang code throwing the "invalid remote IP address "unknown"" error helped to identify that it is missing certain http headers which lead me to believe that something is interfering with the docker push, which is how I came to the proxy.
If you are on CentOS like us, you can set the proxy & noproxy at /etc/systemd/system/docker.service.d/http-proxy.conf with:
[Service]
Environment="HTTP_PROXY=http://[your proxy]:[port]/" "HTTPS_PROXY=http://[your proxy]:[port]/" "NO_PROXY=localhost,<IP_ADDRESS>,[your private docker registry]"


DocsArchive-<IP_ADDRESS>Auto archive content

Please don't merge this PR until target archive repo PR https://github.com/OPS-E2E-PPE/docs-archive-test-target/pull/829 is merged into live branch.
Auto archive content to https://github.com/opstest2/docs-archive-test-target.git

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

File
Status
Preview URL
Details

:x:Error

Details

[Error-RuningBuildFailed] Some unexpected errors happened when running build, please open a ticket in https://aka.ms/SiteHelp and include the error report for our team to troubleshoot

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Docs Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel


Fixed problem when using "module": "none" in tsconfig.json

This is the third change with the same code.
https://github.com/moment/moment/pull/3880


feat(layout): minimum window sizes and cascading

Implements minimum sizes and "cascading", fixes the tracking of the handle relative to the mouse pointer, and remembers the window state before dragging a handle so that moving the handle back reverts it. It also lays the groundwork for implementing maximization and directional resizing.

The cascading is really cool! In combination with the fixed mouse-handle-tracking, it's really impressive looking. Thanks for your work on this, @glennsl !


One log file per user

Hi,
Is it possible to tune the config file in order to have 1 file per user instead of one file per user per day ?
Thanks,
RG

It's been a while I haven't touch this project but I think you would just have to modify the following line
https://github.com/fredericrous/LyncLogger/blob/9b90aba964252ea2268842af4c84e80f5775347a/LyncLogger/LyncLogger.cs#L134
by
String fileLog = String.Format(_fileLog, firstContactName.Replace(", ", "_"));

and recompile the solution


2018.11.14 pipenv commands fail with pyenv

Issue description
We use pyenv to support multiple Python versions on one machine.
When using any command with pipenv (version 2018.11.14) it fails with the below traceback.
Expected result
pipenv should execute the commands without errors.
Actual result
$ pipenv install
Traceback (most recent call last):
  File "/usr/local/bin/pipenv", line 11, in <module>
    sys.exit(cli())
  File "/usr/local/lib/python3.5/dist-packages/pipenv/vendor/click/core.py", line 764, in __call__
    return self.main(*args, **kwargs)
  File "/usr/local/lib/python3.5/dist-packages/pipenv/vendor/click/core.py", line 717, in main
    rv = self.invoke(ctx)
  File "/usr/local/lib/python3.5/dist-packages/pipenv/vendor/click/core.py", line 1137, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/usr/local/lib/python3.5/dist-packages/pipenv/vendor/click/core.py", line 956, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/usr/local/lib/python3.5/dist-packages/pipenv/vendor/click/core.py", line 555, in invoke
    return callback(*args, **kwargs)
  File "/usr/local/lib/python3.5/dist-packages/pipenv/vendor/click/decorators.py", line 64, in new_func
    return ctx.invoke(f, obj, *args, **kwargs)
  File "/usr/local/lib/python3.5/dist-packages/pipenv/vendor/click/core.py", line 555, in invoke
    return callback(*args, **kwargs)
  File "/usr/local/lib/python3.5/dist-packages/pipenv/vendor/click/decorators.py", line 17, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "/usr/local/lib/python3.5/dist-packages/pipenv/cli/command.py", line 249, in install
    editable_packages=state.installstate.editables,
  File "/usr/local/lib/python3.5/dist-packages/pipenv/core.py", line 1725, in do_install
    pypi_mirror=pypi_mirror,
  File "/usr/local/lib/python3.5/dist-packages/pipenv/core.py", line 569, in ensure_project
    pypi_mirror=pypi_mirror,
  File "/usr/local/lib/python3.5/dist-packages/pipenv/core.py", line 489, in ensure_virtualenv
    python = ensure_python(three=three, python=python)
  File "/usr/local/lib/python3.5/dist-packages/pipenv/core.py", line 397, in ensure_python
    path_to_python = find_a_system_python(python)
  File "/usr/local/lib/python3.5/dist-packages/pipenv/core.py", line 360, in find_a_system_python
    python_entry = finder.find_python_version(line)
  File "/usr/local/lib/python3.5/dist-packages/pipenv/vendor/pythonfinder/pythonfinder.py", line 113, in find_python_version
    return self.system_path.find_python_version(
  File "/usr/local/lib/python3.5/dist-packages/pipenv/vendor/pythonfinder/pythonfinder.py", line 54, in system_path
    ignore_unsupported=self.ignore_unsupported,
  File "/usr/local/lib/python3.5/dist-packages/pipenv/vendor/pythonfinder/models/path.py", line 451, in create
    ignore_unsupported=ignore_unsupported,
  File "<attrs generated init 75e45f144e3d5510d54dd5fca6730b98fa0220a9>", line 38, in __init__
  File "/usr/local/lib/python3.5/dist-packages/pipenv/vendor/pythonfinder/models/path.py", line 116, in __attrs_post_init__
    self._setup_pyenv()
  File "/usr/local/lib/python3.5/dist-packages/pipenv/vendor/pythonfinder/models/path.py", line 196, in _setup_pyenv
    version_glob_path="versions/*", ignore_unsupported=self.ignore_unsupported
  File "/usr/local/lib/python3.5/dist-packages/pipenv/vendor/pythonfinder/models/python.py", line 154, in create
    sort_function=sort_function, version_glob_path=version_glob_path)
  File "<attrs generated init 66db6832296eebaad0ce8186c2c66d03343025d4>", line 17, in __init__
  File "/usr/local/lib/python3.5/dist-packages/pipenv/vendor/pythonfinder/models/python.py", line 98, in get_versions
    for p in self.get_version_order():
  File "/usr/local/lib/python3.5/dist-packages/pipenv/vendor/pythonfinder/models/python.py", line 70, in get_version_order
    version_order = [versions[v] for v in parse_pyenv_version_order()]
TypeError: 'NoneType' object is not iterable

Steps to replicate
Install pyenv as described in the README on https://github.com/pyenv/pyenv. Install a Python version of your choice using pyenv, e.g. pyenv install 3.7.0. When in your project create a Pipfile and add/change the following section:
[requires]
python_version = "3.7.0"

Now run any pipenv command in your project, .e.g pipenv install or pipenv shell.

<details><summary>$ pipenv --support</summary>

Pipenv version: `'2018.11.14'`

Pipenv location: `'/usr/local/lib/python3.5/dist-packages/pipenv'`

Python location: `'/usr/bin/python3'`

Python installations found:

Traceback (most recent call last):
  File "/usr/local/bin/pipenv", line 11, in <module>
    sys.exit(cli())
  File "/usr/local/lib/python3.5/dist-packages/pipenv/vendor/click/core.py", line 764, in __call__
    return self.main(*args, **kwargs)
  File "/usr/local/lib/python3.5/dist-packages/pipenv/vendor/click/core.py", line 717, in main
    rv = self.invoke(ctx)
  File "/usr/local/lib/python3.5/dist-packages/pipenv/vendor/click/core.py", line 1114, in invoke
    return Command.invoke(self, ctx)
  File "/usr/local/lib/python3.5/dist-packages/pipenv/vendor/click/core.py", line 956, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/usr/local/lib/python3.5/dist-packages/pipenv/vendor/click/core.py", line 555, in invoke
    return callback(*args, **kwargs)
  File "/usr/local/lib/python3.5/dist-packages/pipenv/vendor/click/decorators.py", line 64, in new_func
    return ctx.invoke(f, obj, *args, **kwargs)
  File "/usr/local/lib/python3.5/dist-packages/pipenv/vendor/click/core.py", line 555, in invoke
    return callback(*args, **kwargs)
  File "/usr/local/lib/python3.5/dist-packages/pipenv/vendor/click/decorators.py", line 17, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "/usr/local/lib/python3.5/dist-packages/pipenv/cli/command.py", line 142, in cli
    get_pipenv_diagnostics()
  File "/usr/local/lib/python3.5/dist-packages/pipenv/help.py", line 33, in get_pipenv_diagnostics
    python_paths = finder.find_all_python_versions()
  File "/usr/local/lib/python3.5/dist-packages/pipenv/vendor/pythonfinder/pythonfinder.py", line 122, in find_all_python_versions
    python_version_dict = getattr(self.system_path, "python_version_dict")
  File "/usr/local/lib/python3.5/dist-packages/pipenv/vendor/pythonfinder/pythonfinder.py", line 54, in system_path
    ignore_unsupported=self.ignore_unsupported,
  File "/usr/local/lib/python3.5/dist-packages/pipenv/vendor/pythonfinder/models/path.py", line 451, in create
    ignore_unsupported=ignore_unsupported,
  File "<attrs generated init 75e45f144e3d5510d54dd5fca6730b98fa0220a9>", line 38, in __init__
  File "/usr/local/lib/python3.5/dist-packages/pipenv/vendor/pythonfinder/models/path.py", line 116, in __attrs_post_init__
    self._setup_pyenv()
  File "/usr/local/lib/python3.5/dist-packages/pipenv/vendor/pythonfinder/models/path.py", line 196, in _setup_pyenv
    version_glob_path="versions/*", ignore_unsupported=self.ignore_unsupported
  File "/usr/local/lib/python3.5/dist-packages/pipenv/vendor/pythonfinder/models/python.py", line 154, in create
    sort_function=sort_function, version_glob_path=version_glob_path)
  File "<attrs generated init e41401380504971a8c7664b563d716c9ae61830a>", line 17, in __init__
  File "/usr/local/lib/python3.5/dist-packages/pipenv/vendor/pythonfinder/models/python.py", line 98, in get_versions
    for p in self.get_version_order():
  File "/usr/local/lib/python3.5/dist-packages/pipenv/vendor/pythonfinder/models/python.py", line 70, in get_version_order
    version_order = [versions[v] for v in parse_pyenv_version_order()]
TypeError: 'NoneType' object is not iterable

Thanks for looking into it.

omg, unreal. Pyenv is causing me nothing but headaches

Workaround: set a global pyenv version with pyenv global <x.y.z>

Workaround: set a global pyenv version with pyenv global <x.y.z>

does not help at all.

That workaround worked for me, many thanks!

Hi @xsteadfastx Or you can delete system in your pyenv's version order file $(pyenv root)/version

Hi @xsteadfastx Or you can delete system in your pyenv's version order file $(pyenv root)/version

thanks this worked as a workaround :+1:

Same issue running pipenv install.
Ubuntu 12.04 (don't ask)
Python 2.7.3
pip 9.0.1
pipenv 2018.11.14
pyenv v1.2.2 -> v1.2.8
Downgrading to pipenv 2018.7.1 fixed the issue (was our last known working version).
It appears the issue is parse_pyenv_version_order is returning None as the $PYENV_ROOT/version file doesn't exist. this file doesn't exist on any of the pyenv installs I have at hand.

Yes we are aware. If you run the command as described it will exist with valid data and you will have a workaround. We have a fix already set, and a workaround is provided above

This issue is not fixed. I am unable to run builds on Travis: https://travis-ci.org/clintonb/cookiecutter-django/builds/456875078. They fail when I try to run pipenv install.

@clintonb It is because it is fixed in master branch, but not released yet.

I am running with the version from master. Looking at the PR that closed
this issue, all that was done was the addition of an if statement. Given
that the issue lies with a function returning None instead of an
iterable, that fix won’t work.
Clinton

@clintonb It is fixed in https://github.com/pypa/pipenv/pull/3254

Thanks @jxltom and @techalchemy! I have confirmed pipenv install works.

This is still failing for me on a fresh install.

can you clarify "fresh install" -- we haven't released a fix yet, it is only fixed on the master branch.

I installed using the get-pipenv.py checked into master. Will this not install the latest version? And if not, when will this fix be released and is there a way to install a previous version?

ah I'm sure that installs the pypi version, I'll be cutting a release shortly

I had used this command
pip3 install --prefix ~/.local -e git+https://github.com/pypa/pipenv.git#egg=pipenv
to installed the fixed master in github. It worked on Ubuntu 16.04. Thanks @techalchemy.

@techalchemy I realize it's a holiday weekend and am not pressuring you -- I just wanted to ask if you ran into any trouble cutting a release or if you just didn't get around to it.  Thanks!

Release is up


Overlapping subs?

Is this really OK to match overlapping topics for a client https://github.com/mcollina/aedes-persistence/blob/master/abstract.js#L233  @mcollina ?
I would at first expect subscriptionsByTopic to match only by a single record!
This is what currently QlobberDedup is doing... @davedoesdev

I took this to mean "give me all the subscriptions which would match this topic".

and the same is used when matching qos>0 packets for client subscriptions

Here is our answer: https://issues.oasis-open.org/browse/MQTT-58.
Not sure how we should change the code to meet it.

First need to decide whether just to deliver to maximum QoS or all.

Btw, what is the difference between subscriptionsByTopic(topic) and getClientList(topic)

@davedoesdev I think we should deliver max QoS.

getClientList(topic) just returns the clientIds, more or less what @behard wants to do. This is not used for the offline subscriptions.

For max QoS I think we can just compare when storing new entries.

... so in the QlobberDedup solution which stores the data as a string, we'll have to split the string to get the existing qos each time we store.

Oh no, we need to do the max calculation when matching rather than adding.

Hold on - Is this an issue for persistence? As long as persistence stores the subscriptions and return a list of matching subscriptions from subscriptionsByTopic, isn't it up to the caller to determine the max QoS from the list?

Here is our answer: https://issues.oasis-open.org/browse/MQTT-58.

Server must deliver the message with MAX qos
OR
MAY deliver the message for all overlapping subs
So current subscriptionsByTopic, returning overlapping subs is correct.
But why QlobberDedup is not matching overlapped subs in my example @davedoesdev ?

This one? https://github.com/behrad/aedes-cached-persistence/blob/DedupQlobber/index.js

@behrad this example shows why:
var Qlobber = require('qlobber').QlobberDedup;
var QlobberOpts = {
  wildcard_one: '+',
  wildcard_some: '#',
  separator: '/'
}
var matcher = new Qlobber(QlobberOpts);

function add(sub)
{
    matcher.add(sub.topic, sub.clientId + ';' + sub.topic + ';' + sub.qos);
}

add({ clientId: 'acbd', topic: 'foo.bar', qos: 1 });
add({ clientId: 'abcd', topic: 'foo.+' , qos: 2 });
add({ clientId: 'abcd', topic: '#', qos: 1});

console.log(matcher.match('foo.bar'));

Result is:
Set { 'abcd;#;1', 'acbd;foo.bar;1' }

QlobberDedup doesn't care about the separators so the components won't match.

Whoops, got the separator wrong. This works:
var Qlobber = require('qlobber').QlobberDedup;
var QlobberOpts = {
  wildcard_one: '+',
  wildcard_some: '#',
  separator: '/'
}
var matcher = new Qlobber(QlobberOpts);

function add(sub)
{
    matcher.add(sub.topic, sub.clientId + ';' + sub.topic + ';' + sub.qos);
}

add({ clientId: 'acbd', topic: 'foo/bar', qos: 1 });
add({ clientId: 'abcd', topic: 'foo/+', qos: 2 });
add({ clientId: 'abcd', topic: '#', qos: 1});

console.log(matcher.match('foo/bar'));

producing:
Set { 'abcd;#;1', 'acbd;foo/bar;1', 'abcd;foo/+;2' }

So that should work, thank you @davedoesdev
Since both implementations are returning overlapping subs, client will receive packet for each overlapping sub.
Let not to complicate things more, and delegate this to the application. Closing this now, reopen if you mind @mcollina

I'm ok with whatever implementation is more performant and simpler to implement and maintain. It seems that overlapping subs is easier, but I might be mistaken.


GSD Request

--- GSD JSON ---
{
  "vendor_name": "Linux",
  "product_name": "Kernel",
  "product_version": "versions from v3.9 to before v5.4.181",
  "vulnerability_type": "unspecified",
  "affected_component": "unspecified",
  "attack_vector": "unspecified",
  "impact": "unspecified",
  "credit": "",
  "references": [
    "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=d021c344051af91f42c5ba9fdedc176740cbd238",
    "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=5f326fe2aef411a6575628f92bd861463ea91df7"
  ],
  "extended_references": [
    {
      "type": "commit",
      "value": "d021c344051af91f42c5ba9fdedc176740cbd238",
      "note": "introduced"
    },
    {
      "type": "commit",
      "value": "5f326fe2aef411a6575628f92bd861463ea91df7",
      "note": "fixed"
    }
  ],
  "reporter": "joshbressers",
  "reporter_id": 1692786,
  "notes": "",
  "description": "vsock: remove vsock from connected table when connect is interrupted by a signal\n\nThis is an automated ID intended to aid in discovery of potential security vulnerabilities. The actual impact and attack plausibility have not yet been proven.\nThis ID is fixed in Linux Kernel version v5.4.181 by commit 5f326fe2aef411a6575628f92bd861463ea91df7, it was introduced in version v3.9 by commit d021c344051af91f42c5ba9fdedc176740cbd238. For more details please see the references link."
}
--- GSD JSON ---

This issue has been assigned GSD-2022-1000347