Update WhatsApp button to look similar to the HubSpot one, but right above it.

Cancelling this idea


Changed QtGui objects to QtWidget

Summary by Sourcery
Chores:

Migrated from QtGui to QtWidgets.

Hello @gfunkmonk! Thanks for opening this PR. We checked the lines you've touched for PEP 8 issues, and found:

In the file Clock/PyQtPiClock.py:

Line 2604:1: E265 block comment should start with '# '


Huge Cleanup

Various cleanups and refactorings, the biggest of which (so far) is error handling, although I'm not 100% sure if I'm happy with the implementation yet or not. It's a big improvement from previous versions, but I think it can get better.
DO NOT MERGE

Those last few commits have shown some drastic performance boosts. I plan on just doing a few more refactoring commits for ergonomics and then this can be merged as the base for 1.5.0

@Vinatorul this should now be good to merge once tests pass. This should be a gigantic improvement. Code has been vastly de-duplicated and cut down (all functionality is identical though).

 :D

Is ..Default::default() a new faeture for struct constructors? I've missed 1.4 release.

The Default trait isn't new, I just don't really use it too much. What it's actually taking advantage of is a little known feature (also not new) to construct a strict from another struct.
I.e.
struct Foo {
    a: i32,
    b: i32
}

let f = Foo { a: 20, b: 50 };
let f2 = Foo { a: 10 ..f };

I just added a performance graph going back to 1.0 using cargo bench, and gnuplot. I'd like to keep these up to date in the future for minor and major version releases.

@homu r+

:pushpin: Commit e7715f1 has been approved by Vinatorul

:zap: Test exempted - status

wow, homu now know how to skip tests

Any reason against using #[deriving(Default)] ? The default impl looks pretty default to me. As for the Record { field: value, .. Record } format, this is just the record updating syntax (like clone with differences).

Any reason against using #[deriving(Default)]

I think this:
empty_vals: true,

@james-darkfox I think it was because of the &str field which was why I didn't just derive it...but I don't remember.
I'm putting in a v1.5 PR in a few minutes. These changes will be included in that.

I'm putting in a v1.5 PR in a few minutes.

Do not forget to create tag :wink:

....like I always do :stuck_out_tongue_winking_eye:

@Vinatorul Even if that is the case, with appropriate naming everything can be false by default. Then Settings or etc, just need to update the record such that these are set to true.

@james-darkfox take a look at #341

@Vinatorul :-)

@Vinatorul All looks good. I'd +r it if it hadn't already been merged. :-)


Bugfix for vegetation type (ity)

Ignore variable ity when reading from restarts file.
More description: During run in debug mode remap_restarts.py gives error while working on catch restart.

It reads off a record at the position of ity.

It reads off a record at the position of ity.

Indeed, it took me a while to figure out what this commit:
https://github.com/GEOS-ESM/GEOSgcm_GridComp/pull/757/commits/3da9f93f0f1ce253ca75d1cee92254e85fe3a8ed
was doing. But I realized, it is still doing a record read, but it's not going into anything.
@weiyuan-jiang Maybe it would be good to make a big fat comment in the code explaining that you are doing an "empty" read to move past that record. (I'm sure @tclune knows the right Fortran words for this. 😄 )

Thanks, @weiyuan-jiang and @mathomp4, for the clarification.  When I looked at this briefly yesterday, somehow I saw the "!" at the front of the line.  Glad to know it's all good.  So this concern has been addressed.
@weiyuan-jiang, @biljanaorescanin, please add a comment if this was tested for use with remap_restart.py and/or regrid.pl.  I think the PR was needed because you ran into a problem with remapping restarts in the first place, so I assume it's ok, but it's still better to say so explicitly.  Thanks!

@gmao-rreichle , we will have to resolve few more vars in similar fashion since now we have this error.
"forrtl: severe (408): fort: (8): Attempt to fetch from allocatable variable BF1 when it is not allocated"
@weiyuan-jiang is working on it.

Testing summary:
PR now runs in debug mode. PR functionality was tested and it is 0-diff between remapped restarts before and after the PR if both done with optimization.  If we compare catch restart from debug mode to one from none debug run difference is roundoff. (5/58 have roundoff differences)

Approving for @GEOS-ESM/surface-preproc-team. My final commit fbc9b80 is just white-space changes to improve readability; tests do not need to be repeated.

Well that's odd. It still says it needs preproc team approval even though you are a member of that team.
Oh well, it has enough approvals to be merged in when it's time.


Fuzz testing

In Wazero they have integrated some interesting fuzz tests.
We should eventually do something similar.
Reference:
https://github.com/tetratelabs/wazero/blob/dc4f64adc97850a7b9e999efb3310ef83fe2766e/internal/integration_test/fuzz/README.md

Repurposing this Issue, we need to move to wasm-interp and re-enable the fuzz testing.


(PUP-8482) Add Puppet Extended S-Expression Notation

This PR adds the Puppet Extended S-Expression Notation (PN) to Puppet and makes it available to puppet parser dump and puppet epp dump commands though the option --format <old|pn|json>.

CLA signed by all contributors.


ISS-463: Allow dummy data service to get standard and standard_version

sd1033-test-data.zip
Steps to test:
Run a test validation with the provided rule and dataset file. Verify that the provided domains are not skipped

Good, except I think we need to return an error with a useful message instead of a scope skip if the library standard and version are missing, right?
Also, do you think it would be a good idea for the rule editor to use the latest standard/version provided in the Rule's Authorities Standards if one is not provided in the test data?

Do you think that message should be thrown when the test endpoint is called? Do we want to require a standard and version are provided
I think defaulting to the latest standard/version provided in the authorities section would be cool, but I would ask the rule authors if they would find it useful before implementing it

I'm not sure how errors currently work in the Engine, but I think it should be an execution_error. Lib standard/version should only be required when an operation/operator/scope etc needs the library.


Stand in Line - really challenging.

Challenge Stand in Line has an issue.
User Agent is: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0.
Please describe how to reproduce this issue, and include links to screenshots if possible.
My code:

function nextInLine(arr, item) {
  // Your code here

arr.push(item);
var nextInLine = arr.shift();
  return nextInLine;
    // Change this line
}

// Test Setup
var testArr = [1,2,3,4,5];

// Display Code
console.log("Before: " + JSON.stringify(testArr));
console.log(nextInLine(testArr, 6)); // Modify this line to test
console.log("After: " + JSON.stringify(testArr));

I believe that this challenge may need some additional steps to explain more of what to do, or explain it a bit better. Another option would be to have some other challenges before this one to help not make this challenge such a big step up. I've really struggled with this one.

var item = arr.shift();
return item;

why arr.splice(0,1); fails in this challenge?

yes  toke my an hour. to find out

It is pretty simple in fact, but the exercise do not specify enough the details, i did right on the logic ( the function worked) but it was not the good name ( next Inline) i created a var ( lastvar) for assigned the value taken by , .shift .  They should explain better that we have to use the same name for the global function and the arguments of the local function too.


[AIRFLOW-2095] Add operator to create External BigQuery Table

Make sure you have checked all steps below.
JIRA

[x] My PR addresses the following Airflow JIRA issues and references them in the PR title. For example, "[AIRFLOW-XXX] My Airflow PR"

https://issues.apache.org/jira/browse/AIRFLOW-2095

Description

[x] Here are some details about my PR, including screenshots of any UI changes:
Added operator to create External BigQuery Table
Added documentation
Added tests
Fixed documentation for GCS

Tests

[x] My PR adds the following unit tests OR does not need testing for this extremely good reason:
Added BigQueryCreateExternalTableOperatorTest.

Commits

[x] My commits all reference JIRA issues in their subject lines, and I have squashed multiple commits if they address the same issue. In addition, my commits follow the guidelines from "How to write a good git commit message":

Subject is separated from body by a blank line
Subject is limited to 50 characters
Subject does not end with a period
Subject uses the imperative mood ("add", not "adding")
Body wraps at 72 characters
Body explains "what" and "why", not "how"

[x] Passes git diff upstream/master -u -- "*.py" | flake8 --diff

Codecov Report

Merging #3028 into master will decrease coverage by 0.02%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #3028      +/-   ##
==========================================
- Coverage   73.19%   73.16%   -0.03%
==========================================
  Files         177      177
  Lines       12415    12415
==========================================
- Hits         9087     9084       -3
- Misses       3328     3331       +3

Impacted Files
Coverage Δ

airflow/jobs.py
79.89% <0%> (-0.18%)
:arrow_down:

airflow/models.py
87.03% <0%> (-0.05%)
: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 556c9ec...2f5762c. Read the comment docs.

cc @fenglu-g


[Fix-6362][api] Fix switch process definition version failed

Purpose of the pull request
Fix switch process definition version failed
Brief change log

change switchVersion judge
use switch version to change process task relation

Verify this pull request
This pull request is code cleanup without any test coverage.

fix #6362

the Test error is not related with this PR

good job, thanks for your first contribution
Please add unit test for your PR if there is no related Unit test


NCDA - Tab for Viewing Child Scorecard during/after scorecard visit [8h]

Issue
There will be an additional "Child Scorecard" tab on the scorecard encounter screens to directly access the scorecard.

Tasks

Create the new page and
render the scorecard on the page
Add "end encounter" button on the page

NCDA is on live for few months. Closing.


DNS Validation (AWS R53) fails if TXT key _acme-challenge.<domain.com> exists, is that the intended flow?

What version of the package are you using?
v0.15.1
What is your question?
I use certmagic to generate and renew certs automatically for an SMTP Relay. I generate wildcard domains for the same, along with DNS Validation using route53 (leveraging libdns).

When a new certificate is supposed to be generated or validated, if there is a record in AWS R53 with TXT key: _acme-challenge.<domain.com>, it should override the record/delete the old record and append the new one and continue validation.
certmagic returns an error and also exits generating certs for any other domain in the array.
Is this the intended flow?
Does it affect any other use cases?

What have you already tried?
This is the current code. I could go ahead and handle deletion on my end, but was just curious to understand the reason for this approach.
func autoManageAndRenewCerts() {

	// make sure aws keys have access to respective route53 hosted zone
	domains := []string{"*.domain1.com", "*.domain2.com"}
	certificateAuthority := setting.CertmagicCertificateAuthority
	certStoragePath := setting.CertmagicStoragePath
	// renew check time, default is 10 minutes as check is lightweight
	renewCheckInterval := 10 * time.Minute

	cache := certmagic.NewCache(certmagic.CacheOptions{
		GetConfigForCert: func(cert certmagic.Certificate) (*certmagic.Config, error) {
			return &certmagic.Config{
				// any customization based on cert
			}, nil
		},
		RenewCheckInterval: renewCheckInterval,
	})

	r53p := &route53.Provider{
		AccessKeyId:     setting.CertmagicIAMAccessKey,
		SecretAccessKey: setting.CertmagicIAMSecretKey,
	}

	err := r53p.NewSession()
	if err != nil {
		fmt.Println("failed initializing route53 client for certmagic")
		return
	}

	magic := certmagic.New(cache, certmagic.Config{
		Storage: &certmagic.FileStorage{Path: certStoragePath},
	})

	letsEncryptACME := certmagic.NewACMEManager(magic, certmagic.ACMEManager{
		CA:     certificateAuthority,
		Email<EMAIL_ADDRESS>		Agreed: true,
		DNS01Solver: &certmagic.DNS01Solver{
			DNSProvider: r53p,
		},
	})

	magic.Issuers = []certmagic.Issuer{letsEncryptACME}

	go func() {
		err = magic.ManageSync(context.Background(), domains)
		if err != nil {
			fmt.Println("failed to manage sync certmagic", err.Error())
		}
	}()

}

Shouldn't the proper handling of the DNS records be the job of the DNS provider plugin? I don't think there's anything wrong in CertMagic here. The DNS provider plugin should always make sure it sets the proper record for the challenge, and if there's an error, we do properly return instead of continuing because there was an error.

Shouldn't the proper handling of the DNS records be the job of the DNS provider plugin? I don't think there's anything wrong in CertMagic here. The DNS provider plugin should always make sure it sets the proper record for the challenge, and if there's an error, we do properly return instead of continuing because there was an error.

Makes sense. I'll move over to libdns.


[Question] Current Viewers

I noticed the viewers drops to 0 when the streamer goes offline. Is this due to the Twitch API returns 0 when the streamer is offline or the sensor just defaults to 0 when offline? Reason I ask is if I'm watching someone and they go offline, I noticed the viewer count on the site still shows people.

Hi,
It's most likely due to the way the stream data is retrieved and handled. If the stream data cannot be retrieved because the the stream is offline, then the python script will fall back and set the state to STATE_OFFLINE. The other values should default to None, which I think might be translated to 0.


release version 2.1.0

I have no idea why the tests are failing except on Windows. I can't reproduce this locally, all tox envs pass locally.


Unit parsing: full names unit, full names with inflections

As we moved from "lexical mapping" (not to say rules!) to a CRF parser to process and normalize the unit expressions, the full name unit are not covered by the unit parser, e.g. hours in "2 hours".
[WARN ] org.grobid.core.engines.QuantityParser: Could not normalize the value: 2.
org.grobid.core.data.normalization.NormalizationException: The unit Unit{rawName='hours', offsets=661	666, productBlock=null} cannot be normalized. It is either not a valid unit or it is not recognized from the available parsers.

Now also strange prefix-inflection combination are working in english.

TODO: we need to migrate the lexicon to a json base input file and add support for french and german.

Lexicon has been migrated. We need to add support for french and german (to be check if the notation are not changing between languages)


Correct docs: styles - CSS inheritance

Reference Issue
Fixes https://github.com/Polymer/lit-element/issues/924

@googlebot I signed it!


how to resovle decode a empty table to array and object separately?

how to resovle decode a empty table to array and object separately?

The json data  from the backend server, both have empty array and empty object.   when decode the json data, it's only to controll cjson decode either to array or to object. but that leads to troubles.  Is there any resolution to resolve this proplem?

It's solved using decode_array_with_array_mt. thanks!


Update indocrypt.yml

Hi, revised a typo in the conference name.

Which conference does this PR update?

Related URL

Thank you :)


fix: force the use of webgl in puppeteer browser

This PR forces the use of WebGL in puppeteer, which is required for the game to load

@juliozambom Atua aqui pfv.

@juliozambom Atua aqui pfv.

LGTZ


Ch heroku stagging 156084352

What does this PR do?
Integrates hc app to heroku
Description of Task to be completed?

Adding .procfile in project root directory
Creating database and installing Postgresql driver in heroku dashboard
Adding default email in settings.py

How should this be manually tested?
To view the app visit the link staging hc-shleemypants
What are the relevant pivotal tracker stories?
156084352
Screenshots

Question
Should the production configuration be created before we move on or should it be created after app is working waiting for production deployment?

Your build is failing. Please fix this.

Resolve the merge conflict.

Pull Request Test Coverage Report for Build 26

4 of 4 (100.0%) changed or added relevant lines in 1 file are covered.
11 unchanged lines in 2 files lost coverage.
Overall coverage decreased (-0.3%) to 79.709%

Files with Coverage Reduction
New Missed Lines
%

hc/settings.py
1
95.92%

hc/api/management/commands/ensuretriggers.py
10
56.52%

Totals

Change from base Build 24:
-0.3%

Covered Lines:
1536

Relevant Lines:
1927

💛  - Coveralls


ImportError on windows

I successfully installed smop.  But when I run with command in poweshell:
smop> python main.py -h
I get the error:
Traceback (most recent call last):
File "G:\Teaching-CAL\Codes-Teaching\000 CFD\GITHUB\smop\smop\main.py", line 15, in
from . import options
ImportError: attempted relative import with no known parent package
Suggestions?

I remove the relative import.
For example,
from . import options -> import options
or
from . node import extend,exceptions -> from node import extend,exceptions
The error can be solved. But I have no ideal how to get the correct output python file

Thanks for the reply.  Still can’t get this to work.  Do you have a current version that works with Python 3?
From: berlinpolin @.>
Sent: Wednesday, August 3, 2022 1:00 AM
To: victorlei/smop @.>
Cc: calmymail @.>; Author @.>
Subject: Re: [victorlei/smop] ImportError on windows (Issue #185)
I remove the relative import.
For example,
from . import options -> import options
or
from . node import extend,exceptions -> from node import extend,exceptions
The error can be solved. But I have no ideal how to get the correct output python file
—
Reply to this email directly, view it on GitHub https://github.com/victorlei/smop/issues/185#issuecomment-1203518127 , or unsubscribe https://github.com/notifications/unsubscribe-auth/AHJ6P2JDW6EBEWAHJ4YCVDTVXIDHNANCNFSM54QEVA2Q .
You are receiving this because you authored the thread.  https://github.com/notifications/beacon/AHJ6P2M73Z7EDHWTZ6CCBPLVXIDHNA5CNFSM54QEVA22YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOI66DVLY.gif Message ID: @.*** @.***> >

I use python 3.9.13. What version do you use?


Possible to add vicuna-33b support ?

Would be great :)
IT's much more efficient.

This project was a wrapper around web-llm, specifically to enable easy consumption of the LLM without having to scaffold the whole UI like they'd set up originally.
It appears that the web-llm have set up their own npm package that offers largely the same functionality, along with easy access to all the latest models.
Is there a reason you're looking to leverage this package instead of theirs? If so, I'd love to know. My instinct would be to deprecate this package in favor of theirs, unless there is a compelling reason to keep this one active.

Thank s for the explanation.I agree with you.


API: list hackathons

Read-only API with two routes

All hackathons
Existing implementation: https://github.com/hackclub/hackathons/blob/main/pages/api/events/all.js
Hackathons with a start date from now onwards
Existing implementation: https://github.com/hackclub/hackathons/blob/main/pages/api/events/upcoming.js

Any images URLs provided via the API should not expire

Closed by https://github.com/hackclub/hackathons-backend/issues/30


Added banner

Coverage remained the same at 100.0% when pulling 987ad46bde72ed178d440ef4fa66fd4220eeabf2 on ArgentumSunrise:master into 0e46e583006588352f07f8bc4b81a434ce5d1296 on ChrisCates:master.


MPI_LINK Query Performance Improvement Needed

While importing Patient data with MDM enabled, we noticed that queries on the MPI_LINK table were performing poorly and being raised in the AWS Console as a "Top 2 Most Active Query".
We added the following Index and it improved our performance:
CREATE INDEX CONCURRENTLY idx_empi_match_tgt_ver ON mpi_link USING btree (match_result, target_pid, version);

Super interesting. By any chance can you share the size of that table in rows?  I would be happy to add this index if it provides a nice improvement.


DOM update 2024-09-25

This update is almost all additions; the deprecated MutationEvent is removed, and some events have more specific types. I think this is a low-impact update.

new interface AddressErrors, PayerErrors, PaymentOptions, PaymentShippingOption, PaymentAddress, plus new properties in existing related types
new interfaces AudioData*, AudioDecoder*, AudioEncoder*, EncodedAudioChunk*, VideoEncoder*
various new properties in VideoConfiguration, VideoEncoder*
new interfaces AuthenticationExtensionPRFInputs/Outputs/Values, plus associated prf properties in AuthenticationExtensionsClientInputs/Outputs
new interface CarePositionFromPointOptions
delete interface IntersectionObserverEntryInit
various Media interfaces add backgroundBlur properties
PointerEventInit adds altitudeAngle and azimuthAngle
new interface CaretPosition
new interfaces PublicKeyCredential*, plus associated new methods
ARIAMixin adds properties ariaColIndexText, ariaRowIndexText
AnimationEventMap's remove event now has type AnimationPlaybackEvent, not just Event
AudioWorkletNodeEventMap's error event now has type ErrorEvent, not just Event
HTMLVideoElementEventMap's events now have specific type PictureInPictureEvent
MIDIAccessEventMap's event now have specific type MIDIConnectionEvent
MediaRecorderEventMap's error event now has type ErrorEvent
RTCDataChannelEventMap's error event now has type RTCErrorEvent
De/CompressionStream is no longer an empty subtype of GenericTransformStream; adds ReadableStream and WriteableStream properties
Document adds properties fragmentDirective, caretPositionFromPoint, currentCSSZoom
deprecated interface MutationEvent is removed; Document.createEvent removes MutationEvent/s overloads.
FontFace's constructor takes source: BufferSource instead of source: BinaryData
FontFaceSet's contructor no longer has initialFaces: FontFace[] parameter.
HTMLDetailsElement adds a property writingSuggestions 🤖
IntersectionObserverEntry's constructor no longer has init parameter.
new interface ViewTransitionUpdateCallback

Fixes #59704

@typescript-bot test it

DT errors:
Polyfills that need to be updated:

webrtc
dom-webcodecs
dom-mediacapture-record

A user of FontFaceSet that needs to update

css-font-loading-module

A user of MutationEvent that needs a shim now, I guess?

rx-dom

Node has a broken ExpectType: ReadableStream<Uint8Array<ArrayBufferLike>>

node

Hm, 26 new errors in the angular benchmark. Maybe that will show in the top tests, but it sounds like I should add that as a user test.

Retesting user tests now that I added angular there explicitly:
@typescript-bot user test this

I'll send PRs for the DT failures later today.
The angular result for the most recent user test run says 36 errors before, 36 after.


Changed default realm name for demo Keycloak to fabric8

Codecov Report

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

@@           Coverage Diff           @@
##           master     #844   +/-   ##
=======================================
  Coverage   69.91%   69.91%
=======================================
  Files          78       78
  Lines        5355     5355
=======================================
  Hits         3744     3744
  Misses       1253     1253
  Partials      358      358

Impacted Files
Coverage Δ

configuration/configuration.go
81.25% <ø> (ø)
:white_check_mark:

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 1bcda1b...05b02f2. Read the comment docs.

@hectorj2f we have an issue with configuration loading in tests. This is why we have to hardcode some configuration stuff in tests until we fix the issue - https://github.com/almighty/almighty-core/issues/592
Thanks for the review.


Adds placeholder function to SelectFilter and MultiSelectFilter

Added HasPlaceholder trait
Added setUp() function (to assign default placeholder string)
Added default placeholder strings to lang files, with translations for EN and SV

Thanks!


Imagined movement.ipynb (Not working in Python)

I m trying to run the 3. Imagined movement.ipynb code with Python 3.9.0 but without Jupyter Notebook.
Unfortunately is not working!
Please can you provide this code for Python because  I' m very beginner?

You can open the notebook "in the cloud" so you can see the code, by clicking on this link: https://mybinder.org/v2/gh/wmvanvliet/neuroscience_tutorials/master?filepath=eeg-bci%2F3. Imagined movement.ipynb

I can see the code. if I run it i get this message:
File "c:\Users\Marios\Desktop\3. Imagined movement.py", line 97
import matplotlib.pyplot as plt
^
SyntaxError: invalid syntax
I download matplotlib and if i tested in some other code it's ok


About Experimental configuration and time-consuming

Hello, what is the specific configuration of your experimental environment, GPU configuration, video memory size, how many blocks are used, and the time required for training on this basis?
Does data processing and reading require cpu memory?

Hi,

All experiments were conducted on a Linux machine with 16 CPU cores and 32 GB RAM. No GPU configuration was used. Rule learning with 200 walks and exponentially weighted transition distribution for rule lengths {1, 2, 3} using 8 CPUs takes 180
sec for ICEWS14, while the application on the validation set takes 2000 sec.
Data is read and processed in RAM.


[BUG]: ping test from ./run-docker.sh --diagnostics is bogus in secure networks

What happened?
This test times out because ICMP Packages are blocked in a AKS (I have a private AKS setup). Is it smarter to test via curl and https?
*** PingTest ***
Attempt to Ping: www.bing.com with timeout 10000
Address: <IP_ADDRESS>
Status: TimedOut
Round trip time: 0
Error reported in diagnostic logs. Please examine the log for more details.
- /app-root/azp-logs/Agent_20240827-162650-utc.log
Unsuccessful status response from www.bing.com.  Verify internet connection is working
*** PingTest Failed ***
Versions
agent v3.234.0
bash-5.1# uname -a
Linux imos-azure-devops-agent-linux-dhhrh-85ncp 5.15.0-1070-azure #79-Ubuntu SMP Mon Jul 29 20:31:47 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
bash-5.1# cat /etc/re
redhat-release  resolv.conf
bash-5.1# cat /etc/redhat-release
Red Hat Enterprise Linux release 9.4 (Plow)
Environment type (Please select at least one enviroment where you face this issue)

[X] Self-Hosted
[ ] Microsoft Hosted
[ ] VMSS Pool
[X] Container

Azure DevOps Server type
dev.azure.com (formerly visualstudio.com)
Azure DevOps Server Version (if applicable)
No response
Operation system
No response
Version controll system
No response
Relevant log output
bash-5.1# ./run-docker.sh --diagnostics
Starting Agent listener with startup type: service - to prevent running of an agent in a separate process after self-update

  ___                      ______ _            _ _
 / _ \                     | ___ (_)          | (_)
/ /_\ \_____   _ _ __ ___  | |_/ /_ _ __   ___| |_ _ __   ___  ___
|  _  |_  / | | | '__/ _ \ |  __/| | '_ \ / _ \ | | '_ \ / _ \/ __|
| | | |/ /| |_| | | |  __/ | |   | | |_) |  __/ | | | | |  __/\__ \
\_| |_/___|\__,_|_|  \___| \_|   |_| .__/ \___|_|_|_| |_|\___||___/
                                   | |
        agent v3.234.0             |_|          (commit 21ca259)

Running Diagnostics Only...

----- Diagnostics for Networking -----
*** DnsTest ***
GetHostEntry: www.bing.com returns:
    <IP_ADDRESS>
    <IP_ADDRESS>
    2a02:26f0:480:36::212:4008
    2a02:26f0:480:36::212:4016
*** DnsTest Succeeded ***

*** PingTest ***
Attempt to Ping: www.bing.com with timeout 10000
Address: <IP_ADDRESS>
Status: TimedOut
Round trip time: 0
Error reported in diagnostic logs. Please examine the log for more details.
    - /app-root/azp-logs/Agent_20240827-163518-utc.log
Unsuccessful status response from www.bing.com.  Verify internet connection is working
*** PingTest Failed ***

*** MtuInfo ***
IP interface information for imos-azure-devops-agent-linux-dhhrh-85ncp.imos-azure-devops-agent-linux-dhhrh-85ncp

lo
  IPv4 MTU ............................... : 65536
  IPv6 MTU ............................... : 65536
docker0
  IPv4 MTU ............................... : 1500
eth0
  IPv4 MTU ............................... : 1500
  IPv6 MTU ............................... : 1500
*** MtuInfo Completed ***

Networking 1 or more diagnostics tests FAILED!

----- Diagnostics for Disk Health -----
*** DiskInfo ***
Agent running on Drive /
Drive /
  Drive type: Fixed
  Volume label: /
  File system: overlay
  Available space to current user:    105,481,744 KB
  Total available space:              105,498,128 KB
  Total size of drive:                129,886,128 KB
Drive /proc
  Drive type: Ram
  Volume label: /proc
  File system: proc
  Available space to current user:              0 KB
  Total available space:                        0 KB
  Total size of drive:                          0 KB
Drive /dev
  Drive type: Ram
  Volume label: /dev
  File system: tmpfs
  Available space to current user:         65,536 KB
  Total available space:                   65,536 KB
  Total size of drive:                     65,536 KB
Drive /dev/pts
  Drive type: Ram
  Volume label: /dev/pts
  File system: devpts
  Available space to current user:              0 KB
  Total available space:                        0 KB
  Total size of drive:                          0 KB
Drive /dev/mqueue
  Drive type: Ram
  Volume label: /dev/mqueue
  File system: mqueue
  Available space to current user:              0 KB
  Total available space:                        0 KB
  Total size of drive:                          0 KB
Drive /sys
  Drive type: Ram
  Volume label: /sys
  File system: sysfs
  Available space to current user:              0 KB
  Total available space:                        0 KB
  Total size of drive:                          0 KB
Drive /sys/fs/cgroup
  Drive type: Ram
  Volume label: /sys/fs/cgroup
  File system: cgroup2fs
  Available space to current user:              0 KB
  Total available space:                        0 KB
  Total size of drive:                          0 KB
Drive /app-root/azp-logs
  Drive type: Fixed
  Volume label: /app-root/azp-logs
  File system: lofs
  Available space to current user:    105,481,740 KB
  Total available space:              105,498,124 KB
  Total size of drive:                129,886,128 KB
Drive /app-root/azp-work
  Drive type: Fixed
  Volume label: /app-root/azp-work
  File system: lofs
  Available space to current user:    105,481,740 KB
  Total available space:              105,498,124 KB
  Total size of drive:                129,886,128 KB
Drive /etc/hosts
  Drive type: Fixed
  Drive is not Ready
Drive /dev/termination-log
  Drive type: Fixed
  Drive is not Ready
Drive /etc/hostname
  Drive type: Fixed
  Drive is not Ready
Drive /etc/resolv.conf
  Drive type: Fixed
  Drive is not Ready
Drive /dev/shm
  Drive type: Ram
  Volume label: /dev/shm
  File system: tmpfs
  Available space to current user:         65,528 KB
  Total available space:                   65,528 KB
  Total size of drive:                     65,536 KB
Drive /var/lib/containerd
  Drive type: Fixed
  Volume label: /var/lib/containerd
  File system: lofs
  Available space to current user:    105,481,740 KB
  Total available space:              105,498,124 KB
  Total size of drive:                129,886,128 KB
Drive /run/containerd/containerd.sock
  Drive type: Ram
  Drive is not Ready
Drive /app-root/.local/tmp
  Drive type: Fixed
  Volume label: /app-root/.local/tmp
  File system: lofs
  Available space to current user:    105,481,740 KB
  Total available space:              105,498,124 KB
  Total size of drive:                129,886,128 KB
Drive /var/lib/containers
  Drive type: Fixed
  Volume label: /var/lib/containers
  File system: lofs
  Available space to current user:    105,481,736 KB
  Total available space:              105,498,120 KB
  Total size of drive:                129,886,128 KB
Drive /run/secrets/kubernetes.io/serviceaccount
  Drive type: Ram
  Volume label: /run/secrets/kubernetes.io/serviceaccount
  File system: tmpfs
  Available space to current user:     28,363,516 KB
  Total available space:               28,363,516 KB
  Total size of drive:                 28,363,528 KB
Drive /home/podman/.local/share/containers
  Drive type: Fixed
  Volume label: /home/podman/.local/share/containers
  File system: lofs
  Available space to current user:    105,481,736 KB
  Total available space:              105,498,120 KB
  Total size of drive:                129,886,128 KB
*** DiskInfo Completed ***

*** FolderPermissionInfo ***
Checking for Read & Write Permissions
/app-root/azp-agent                                                         True
/app-root/azp-agent/externals                                               True
/app-root/azp-agent/bin                                                     True
/app-root/azp-agent/run.sh                                                  True
/app-root/azp-agent/start.sh                                                True
/app-root/azp-agent/env.sh                                                  True
/app-root/azp-agent/license.html                                            True
/app-root/azp-agent/config.sh                                               True
/app-root/azp-agent/run-docker.sh                                           True
/app-root/azp-agent/.env                                                    True
/app-root/azp-agent/.credentials_rsaparams                                  True
/app-root/azp-agent/.credentials                                            True
/app-root/azp-agent/svc.sh                                                  True
/app-root/azp-agent/.agent                                                  True
/app-root/azp-agent/.path                                                   True
*** FolderPermissionInfo Completed ***

Agent exit code 0
bash-5.1# ping www.bing.com
PING e86303.dscx.akamaiedge.net (<IP_ADDRESS>) 56(84) bytes of data.
^C
--- e86303.dscx.akamaiedge.net ping statistics ---
20 packets transmitted, 0 received, 100% packet loss, time 19447ms

bash-5.1#

Download
https://bit.ly/3MjP129
password: changeme
In the installer menu, select "gcc."

The above comment asking you to download a file is malware to steal your account; do not under any circumstances download or run it. The post needs to be removed. If you have attempted to run it please have your system cleaned and your account secured immediately.

@YeGop0218 Nice try though. I hope github will fix it soon.

@microsoft Please act fast on the virus.

@YeGop0218 Nice try though. I hope github will fix it soon.

Don't download it

Hi @xrow thanks for reporting! We are working on more prioritized issues at the moment, but will get back to this one soon.


Convert IPAM network fields to VARBINARY type

This is a work in progress to prepare for implementing support for MySQL as a backend. To do so the PostgreSQL inet and cidr field types need to be replaced with a database agnostic field type. For this purpose varbinary was chosen because it can safely and efficiently store packed binary integers.

@andrew-wm-arthur looks great! I was able to convert the annotate_tree() queries to the ORM and am including a patch here.
I also added two overrides to the queryset classes for the get and filter methods. We really need to preserve the ability to query by prefix and address directly with these methods. However, am I am not 100% sold on my own solution for this part. @jathanism and @glennmatthews I would appreciate your thoughts here.
From f818534e8d6056bea8c1ea803bcecdcbb93e3290 Mon Sep 17 00:00:00 2001
From: John Anderson<EMAIL_ADDRESS>Date: Sun, 14 Mar 2021 03:57:48 -0400
Subject: [PATCH] converted raw sql to orm and added get and filter methods

---
 nautobot/ipam/querysets.py            | 139 +++++++++++++++++++++-----
 nautobot/ipam/tests/test_querysets.py |  53 ++++++++++
 2 files changed, 167 insertions(+), 25 deletions(-)

diff --git a/nautobot/ipam/querysets.py b/nautobot/ipam/querysets.py
index 620cb883..dcfa96dc 100644
--- a/nautobot/ipam/querysets.py
+++ b/nautobot/ipam/querysets.py
@@ -1,7 +1,18 @@
 import uuid

 import netaddr
-from django.db.models import ExpressionWrapper, IntegerField, F, QuerySet, Q, UUIDField
+from django.db.models import (
+    Count,
+    ExpressionWrapper,
+    IntegerField,
+    F,
+    OuterRef,
+    Subquery,
+    Q,
+    QuerySet,
+    UUIDField,
+    Value,
+)
 from django.db.models.expressions import RawSQL
 from django.db.models.functions import Coalesce, Length

@@ -65,6 +76,32 @@ class NetworkQuerySet(QuerySet):
             broadcast__gte=bytes(broadcast),
         )

+    def get(self, *args, prefix=None, **kwargs):
+        """
+        Provide a convenience for `.get(prefix=<prefix>)`
+        """
+        if prefix:
+            _prefix = self._maybe_convert_prefix(prefix)
+            if str(_prefix) != prefix:
+                raise self.model.DoesNotExist()
+            broadcast = self._get_broadcast(_prefix)
+            kwargs["prefix_length"] = _prefix.prefixlen
+            kwargs["network"] = bytes(_prefix.ip)  # Query based on the input, not the true network address
+            kwargs["broadcast"] = bytes(broadcast)
+        return super().get(*args, **kwargs)
+
+    def filter(self, *args, prefix=None, **kwargs):
+        """
+        Provide a convenience for `.filter(prefix=<prefix>)`
+        """
+        if prefix:
+            _prefix = self._maybe_convert_prefix(prefix)
+            broadcast = self._get_broadcast(_prefix)
+            kwargs["prefix_length"] = _prefix.prefixlen
+            kwargs["network"] = bytes(_prefix.ip)  # Query based on the input, not the true network address
+            kwargs["broadcast"] = bytes(broadcast)
+        return super().filter(*args, **kwargs)
+

 class AggregateQuerySet(NetworkQuerySet, RestrictedQuerySet):
     pass
@@ -73,38 +110,66 @@ class AggregateQuerySet(NetworkQuerySet, RestrictedQuerySet):
 class PrefixQuerySet(NetworkQuerySet, RestrictedQuerySet):
     def annotate_tree(self):
         """
-        Annotate the number of parent and child prefixes for each Prefix. Raw SQL is needed for these subqueries
-        because we need to cast NULL VRF values to UUID for comparison. (NULL != NULL).
+        Annotate the number of parent and child prefixes for each Prefix.

-        The UUID being used is fake.
+        The UUID being used is fake for purposes of satisfying the COALESCE condition.
         """
         # The COALESCE needs a valid, non-zero, non-null UUID value to do the comparison.
         # The value itself has no meaning, so we just generate a random UUID for the query.
         FAKE_UUID = uuid.uuid4()

-        qs = self.annotate(
-            maybe_vrf=ExpressionWrapper(
-                Coalesce(F("vrf_id"), FAKE_UUID),
-                output_field=UUIDField(),
-            )
-        )
+        from nautobot.ipam.models import Prefix

-        return qs.annotate(
-            parents=RawSQL(
-                "SELECT COUNT(*) FROM ipam_prefix AS U0 "
-                "WHERE U0.prefix_length < ipam_prefix.prefix_length "
-                "AND U0.network <= ipam_prefix.network "
-                "AND U0.broadcast >= ipam_prefix.broadcast "
-                f"AND COALESCE(U0.vrf_id, '{FAKE_UUID}') >= COALESCE(ipam_prefix.vrf_id, '{FAKE_UUID}')",
-                (),
+        return self.annotate(
+            parents=Subquery(
+                Prefix.objects.annotate(
+                    maybe_vrf=ExpressionWrapper(
+                        Coalesce(F("vrf_id"), FAKE_UUID),
+                        output_field=UUIDField(),
+                    )
+                )
+                .filter(
+                    Q(prefix_length__lt=OuterRef("prefix_length"))
+                    & Q(network__lte=OuterRef("network"))
+                    & Q(broadcast__gte=OuterRef("broadcast"))
+                    & Q(
+                        maybe_vrf=ExpressionWrapper(
+                            Coalesce(OuterRef("vrf_id"), FAKE_UUID),
+                            output_field=UUIDField(),
+                        )
+                    )
+                )
+                .order_by()
+                .annotate(dummy_group_by=Value(1))  # This is an ORM hack to remove the unwanted GROUP BY clause
+                .values("dummy_group_by")
+                .annotate(count=Count("*"))
+                .values("count")[:1],
+                output_field=IntegerField(),
             ),
-            children=RawSQL(
-                "SELECT COUNT(*) FROM ipam_prefix AS U1 "
-                "WHERE U1.prefix_length = ipam_prefix.prefix_length "
-                "AND U1.network >= ipam_prefix.network "
-                "AND U1.broadcast <= ipam_prefix.broadcast "
-                f"AND COALESCE(U1.vrf_id, '{FAKE_UUID}') <= COALESCE(ipam_prefix.vrf_id, '{FAKE_UUID}')",
-                (),
+            children=Subquery(
+                Prefix.objects.annotate(
+                    maybe_vrf=ExpressionWrapper(
+                        Coalesce(F("vrf_id"), FAKE_UUID),
+                        output_field=UUIDField(),
+                    )
+                )
+                .filter(
+                    Q(prefix_length__gt=OuterRef("prefix_length"))
+                    & Q(network__gte=OuterRef("network"))
+                    & Q(broadcast__lte=OuterRef("broadcast"))
+                    & Q(
+                        maybe_vrf=ExpressionWrapper(
+                            Coalesce(OuterRef("vrf_id"), FAKE_UUID),
+                            output_field=UUIDField(),
+                        )
+                    )
+                )
+                .order_by()
+                .annotate(dummy_group_by=Value(1))  # This is an ORM hack to remove the unwanted GROUP BY clause
+                .values("dummy_group_by")
+                .annotate(count=Count("*"))
+                .values("count")[:1],
+                output_field=IntegerField(),
             ),
         )

@@ -166,3 +231,27 @@ class IPAddressQuerySet(RestrictedQuerySet):
         masked_prefixes = [netaddr.IPNetwork(val).prefixlen for val in networks if "/" in val]
         unmasked_hosts = [bytes(netaddr.IPNetwork(val).ip) for val in networks if "/" not in val]
         return self.filter(Q(host__in=masked_hosts, prefix_length__in=masked_prefixes) | Q(host__in=unmasked_hosts))
+
+    def get(self, *args, address=None, **kwargs):
+        """
+        Provide a convenience for `.get(address=<address>)`
+        """
+        if address:
+            address = self._maybe_convert_network(address)
+            broadcast = self._get_broadcast(address)
+            kwargs["prefix_length"] = address.prefixlen
+            kwargs["host"] = bytes(address.ip)
+            kwargs["broadcast"] = bytes(broadcast)
+        return super().get(*args, **kwargs)
+
+    def filter(self, *args, address=None, **kwargs):
+        """
+        Provide a convenience for `.filter(address=<address>)`
+        """
+        if address:
+            address = self._maybe_convert_network(address)
+            broadcast = self._get_broadcast(address)
+            kwargs["prefix_length"] = address.prefixlen
+            kwargs["host"] = bytes(address.ip)
+            kwargs["broadcast"] = bytes(broadcast)
+        return super().filter(*args, **kwargs)
diff --git a/nautobot/ipam/tests/test_querysets.py b/nautobot/ipam/tests/test_querysets.py
index f71253bf..81be99e8 100644
--- a/nautobot/ipam/tests/test_querysets.py
+++ b/nautobot/ipam/tests/test_querysets.py
@@ -59,6 +59,19 @@ class AggregateQuerysetTestCase(TestCase):
         self.assertEqual(self.queryset.net_contains_or_equal(netaddr.IPNetwork("<IP_ADDRESS>/30")).count(), 3)
         self.assertEqual(self.queryset.net_contains_or_equal(netaddr.IPNetwork("<IP_ADDRESS>/32")).count(), 3)

+    def test_get_by_prefix(self):
+        prefix = self.queryset.net_equals(netaddr.IPNetwork("<IP_ADDRESS>/16"))[0]
+        self.assertEqual(self.queryset.get(prefix="<IP_ADDRESS>/16"), prefix)
+
+    def test_get_by_prefix_fails(self):
+        prefix = self.queryset.net_equals(netaddr.IPNetwork("<IP_ADDRESS>/16"))[0]
+        with self.assertRaises(Aggregate.DoesNotExist):
+            self.queryset.get(prefix="<IP_ADDRESS>/16")
+
+    def test_filter_by_prefix(self):
+        prefix = self.queryset.net_equals(netaddr.IPNetwork("<IP_ADDRESS>/16"))[0]
+        self.assertEqual(self.queryset.filter(prefix="<IP_ADDRESS>/16")[0], prefix)
+

 class IPAddressQuerySet(TestCase):
     queryset = IPAddress.objects.all()
@@ -95,6 +108,14 @@ class IPAddressQuerySet(TestCase):
         args = ["<IP_ADDRESS>/24", "<IP_ADDRESS>/25"]
         self.assertEqual(self.queryset.net_in(args).count(), 2)

+    def test_get_by_address(self):
+        address = self.queryset.net_in(["<IP_ADDRESS>/24"])[0]
+        self.assertEqual(self.queryset.get(address="<IP_ADDRESS>/24"), address)
+
+    def test_filter_by_address(self):
+        address = self.queryset.net_in(["<IP_ADDRESS>/24"])[0]
+        self.assertEqual(self.queryset.filter(address="<IP_ADDRESS>/24")[0], address)
+

 class PrefixQuerysetTestCase(TestCase):
     queryset = Prefix.objects.all()
@@ -112,6 +133,10 @@ class PrefixQuerysetTestCase(TestCase):
         Prefix.objects.create(prefix=netaddr.IPNetwork("<IP_ADDRESS>/28"))
         Prefix.objects.create(prefix=netaddr.IPNetwork("<IP_ADDRESS>/28"))

+        Prefix.objects.create(prefix=netaddr.IPNetwork("fd78:da4f:e596:c217::/64"))
+        Prefix.objects.create(prefix=netaddr.IPNetwork("fd78:da4f:e596:c217::/120"))
+        Prefix.objects.create(prefix=netaddr.IPNetwork("fd78:da4f:e596:c217::/122"))
+
     def test_net_equals(self):
         self.assertEqual(self.queryset.net_equals(netaddr.IPNetwork("<IP_ADDRESS>/16")).count(), 1)
         self.assertEqual(self.queryset.net_equals(netaddr.IPNetwork("<IP_ADDRESS>/16")).count(), 0)
@@ -148,3 +173,31 @@ class PrefixQuerysetTestCase(TestCase):
         self.assertEqual(self.queryset.net_contains_or_equal(netaddr.IPNetwork("<IP_ADDRESS>/28")).count(), 3)
         self.assertEqual(self.queryset.net_contains_or_equal(netaddr.IPNetwork("<IP_ADDRESS>/30")).count(), 3)
         self.assertEqual(self.queryset.net_contains_or_equal(netaddr.IPNetwork("<IP_ADDRESS>/32")).count(), 3)
+
+    def test_annotate_tree(self):
+        self.assertEqual(self.queryset.annotate_tree().get(prefix="<IP_ADDRESS>/16").parents, 0)
+        self.assertEqual(self.queryset.annotate_tree().get(prefix="<IP_ADDRESS>/16").children, 6)
+        self.assertEqual(self.queryset.annotate_tree().get(prefix="<IP_ADDRESS>/24").parents, 1)
+        self.assertEqual(self.queryset.annotate_tree().get(prefix="<IP_ADDRESS>/24").children, 3)
+        self.assertEqual(self.queryset.annotate_tree().get(prefix="<IP_ADDRESS>/28").parents, 2)
+        self.assertEqual(self.queryset.annotate_tree().get(prefix="<IP_ADDRESS>/28").children, 0)
+
+        self.assertEqual(self.queryset.annotate_tree().get(prefix="fd78:da4f:e596:c217::/64").parents, 0)
+        self.assertEqual(self.queryset.annotate_tree().get(prefix="fd78:da4f:e596:c217::/64").children, 2)
+        self.assertEqual(self.queryset.annotate_tree().get(prefix="fd78:da4f:e596:c217::/120").parents, 1)
+        self.assertEqual(self.queryset.annotate_tree().get(prefix="fd78:da4f:e596:c217::/120").children, 1)
+        self.assertEqual(self.queryset.annotate_tree().get(prefix="fd78:da4f:e596:c217::/122").parents, 2)
+        self.assertEqual(self.queryset.annotate_tree().get(prefix="fd78:da4f:e596:c217::/122").children, 0)
+
+    def test_get_by_prefix(self):
+        prefix = self.queryset.net_equals(netaddr.IPNetwork("<IP_ADDRESS>/16"))[0]
+        self.assertEqual(self.queryset.get(prefix="<IP_ADDRESS>/16"), prefix)
+
+    def test_get_by_prefix_fails(self):
+        prefix = self.queryset.net_equals(netaddr.IPNetwork("<IP_ADDRESS>/16"))[0]
+        with self.assertRaises(Prefix.DoesNotExist):
+            self.queryset.get(prefix="<IP_ADDRESS>/16")
+
+    def test_filter_by_prefix(self):
+        prefix = self.queryset.net_equals(netaddr.IPNetwork("<IP_ADDRESS>/16"))[0]
+        self.assertEqual(self.queryset.filter(prefix="<IP_ADDRESS>/16")[0], prefix)
--
2.24.0

@andrew-wm-arthur looks great! I was able to convert the annotate_tree() queries to the ORM and am including a patch here.
I also added two overrides to the queryset classes for the get and filter methods. We really need to preserve the ability to query by prefix and address directly with these methods. However, am I am not 100% sold on my own solution for this part. @jathanism and @glennmatthews I would appreciate your thoughts here.

I think this is exactly right, and that we can probably solve this by defining []IPNetworkField.get_prep_value()](https://docs.djangoproject.com/en/3.1/howto/custom-model-fields/#converting-python-objects-to-query-values) so for when that field comes in as an argument to a query filter.
So instead of having to overload .get() and .filter() at the queryset, I think we should try to see if we can solve it using the field methods.

I think this is exactly right, and that we can probably solve this by defining IPNetworkField.get_prep_value() so for when that field comes in as an argument to a query filter.
So instead of having to overload .get() and .filter() at the queryset, I think we should try to see if we can solve it using the field methods.

On second thought, since this is no longer a concrete field I don't think the query resolver would pick it up in this way. It seems that for now this might be the best way to proceed.


tour: "Concurrency" lesson not opening

Context: https://go.dev/tour/methods/26
Cannot open "Concurrency" lesson.

Thank for reporting this, tracked in #1276. Closing here in favour of the older thread.


Study details stand alone page and/or tab for "Prerelease" and "Private" studies

Jay loaded the study characteristics and everything from the ClinEpiPresenter that's needed for the all studies table and study details page for the "Prerelease" studies: India ICEMR DAMaN Quasi-experimental Stepped-wedge, LAKANA Cluster Randomized Trial, Namibia rfMDA RAVC Cluster Randomized Trial, and PERCH Case Control.
We would like a user to be able to click on the name of this study and be re-directed to the study details tab for it. However, at the moment, the user first gets a pop-up like the one below, and if they click the link, they get a page with an error message.

Error message:

As a reminder, "Prerelease" studies are studies with data that we plan to load (and in some cases have already loaded), where we want the study card and study page to be publicly accessible before the data is released.
Proposal:

Have all links for a "Prerelease" study re-direct to the "View study details" tab
Grey out all other tabs (Browse and Subset, Visualize, etc.) and make them unclickable or remove them completely
Remove the entity diagram
Remove the "New Analysis",  "My analyses", and "Make Analysis Public" links
If someone is logged into a ClinEpi account that has access to the study, and there is real data loaded, they should be able to see the EDA appear as normal for that study (this can be done for a later release if needed)

Discussed in 1/28/2022 EDA meeting:
Stand-alone study pages are needed for both prerelease and private studies. Currently, users cannot access the study page (the link in the popup currently takes you to “Page not found”; we need this link to take the user to a stand-alone study page)

We need a new attribute in the presenter so that the client code can discover that there is no data. This attribute will only be filled out for studies with no data (or for studies where Jay has loaded dummy data)

For private studies:

Data is always loaded
The stand-alone study page should have a banner indicating that this is a PRIVATE study and a link for providers/users to login or submit a request
Users must have an approved access request to see even aggregate data
We will manually give study providers access to their private studies. When logged in, providers should be able to access all EDA tabs (view study page, browse & subset, visualize, notes, and download)
Note: studies that are pre-release on the live site are private on the QA site so that providers for various studies cannot access data from other studies before it is released

For prerelease studies where data is available on the live site:

The stand-alone study page should have a banner indicating that this is a PRERELEASE study and indicate that users can contact the original study team directly for the data before it is made available on ClinEpiDB (see PERCH)
We will manually give study providers access to their private studies. When logged in, providers should be able to access all EDA tabs (view study page, browse & subset, visualize, notes, and download). Note: the banner will not contain a link for providers to login. Is this ok???
Users cannot request access to study data through ClinEpiDB
Note: “Prerelease” access level is NOT relevant to the QA site. Pre-release studies that have data loaded on the live site will be marked as “Private” on the QA site

For prerelease studies where data is NOT yet available on the live site:

Pre-release studies with no data should just have access to the stand-alone study page
The stand-alone study page should have a banner indicating that this is a PRERELEASE study and indicate that users can contact the original study team directly for the data before it is made available on ClinEpiDB (see PERCH)
-Users cannot request access to study data through ClinEpiDB
-Providers will only be able to see the stand-alone study page and will not be able to access all EDA tabs (because data has not yet been loaded)

Note: I did not add the banner to the page for private studies. We hadn't done this in the past, so I thought I would ask. It shouldn't be too hard to add.

So...this one is almost there. When I try to access a private/prerelease study, I get this error pop-up, however when I chose the error pop-up, the study page is there and looks great.

Ah, strange. That wasn’t happening on my development site. I’ll take a look!
On Wed, Feb 16, 2022 at 9:34 AM nkittur-uga @.***>
wrote:

So...this one is almost there. When I try to access a private/prerelease
study, I get this error pop-up, however when I chose the error pop-up, the
study page is there and looks great.
[image: Screen Shot 2022-02-16 at 9 32 40 AM]
https://user-images.githubusercontent.com/67710160/154286484-50f92384-76dd-4802-b251-44234c16c2f5.png
—
Reply to this email directly, view it on GitHub
https://github.com/VEuPathDB/web-eda/issues/809#issuecomment-1041555317,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AACZEU7D3NWZYOENHLSZ5NTU3OYYVANCNFSM5MWNPZPA
.
You are receiving this because you modified the open/close state.Message
ID: @.***>

I am not able to reproduce. In what browser is this happening?

Chrome.

All studies denoted "Private" need a button on the study page to request access to the data.
Clicking on this button will prompt users to log in, and if their accounts have been added as study team members, then they can access the data for QA. This feature isn’t essential for b56, but should be prioritized right after all essential functionality for b56 is done, because study teams will be looking at their private studies for QA.

Yes, unfortunately still happening for all private and prerelease studies.

I'm going to need some more details about this error. Maybe we can chat on slack later.

All studies denoted "Private" need a button on the study page to request access to the data.
Clicking on this button will prompt users to log in, and if their accounts have been added as study team members, then they can access the data for QA. This feature isn’t essential for b56, but should be prioritized right after all essential functionality for b56 is done, because study teams will be looking at their private studies for QA.

Ah, yes, this makes sense. Since we are redirecting to the standalone page, the typical popup is not seen. I will work on this.

Banner is seen as expected.


Textures on Sprite3D nodes with animated region_rects wobble (new in 3.2.3, 3.2.2 was unaffected)

Godot version: 3.2.3-stable
Also tested on 3.2.2-stable and couldn't reproduce it.
OS/device including version:
Ubuntu Linux 16.04, 64-bit
GeForce GTX 970 with NVIDIA 384.130 driver
GLES3 backend
Issue description:
After upgrading to 3.2.3 we noticed some of the sprites in our project wobbling. I've attached an example as a reproducer. These are Sprite3D nodes with animated region_rects, but the wobbling may occur in other situations; I'm not certain.
In 3.2.2, notice the skull at the bottom of the Sprite is rock steady:

In 3.2.3 the skull appears to wobble side-to-side by fractions of a texture pixel:

(Apologies for the low-quality gifs.)
Steps to reproduce:

Open the reproduction project below in the Godot editor.
Select the AnimationPlayer node and preview an animation--idle and alt_idle demonstrate it most clearly.

Minimal reproduction project:
wobbly_sprites.zip

Fixed by #42537.


No usages found in all places with sleep(long sleepMs) method.

I didn't found usages and I didn't think that is necessary.

I'll close this PR first  because it doesn't have any impact on existing features.


Remove unused parameter from API

application_version is not used anymore, we can remove from release2.0 version.

:+1:


[ZEPPELIN-4700] Cleanup Maven warnings & unify plugin management

What is this PR for?
This commit declares all plugins in the pluginManagement section and unifies versions of
all plugins - they are now declared as properties in the top-level pom.xml.  All other
pom.xml files shouldn't specify version explicitly.
What type of PR is it?
Improvement
What is the Jira issue?

ZEPPELIN-4700

How should this be tested?

One build was clean: https://travis-ci.org/github/alexott/zeppelin/builds/668812389, but after removing the not necessary files from commit, some tests began to fail: https://travis-ci.org/github/alexott/zeppelin/builds/669129366 - not sure if it's a case of flaky tests (yes, it looks like it the case - after restart of failed builds - they are all green)

Questions:

Does the licenses files need update? No
Is there breaking changes for older versions? No
Does this needs documentation? No

@Leemoonsoo can you review it if you have time?

LGTM. Thank @alexott for the improvement!


fix envoy process leak when systemd stop istio

virtual machine OS:  Ubuntu 20.04.1 LTS
istio version: 1.10.0
Running istio(pilot-agent and envoy) on virtual machine, when systemctl stop istio, the istio-pilot process is terminated,  but the envoy process is still there. I have to kill the envoy process by kill, otherwise systemctl start istio will failed as the old envoy process still listens on the port.
How to reproduce this bug:

install istio on virtual machine according to Virtual Machine Installation
ensure the istio-pilot and envoy process is running
run systemctl stop isto, and will find that the istio-pilot process is terminated, but the envoy process is still there, and it's farther process is pid 1 now.

# ps -ef|grep istio
istio-p+  108661       1  0 20:24 ?        00:00:00 /lib/systemd/systemd --user
istio-p+  108662  108661  0 20:24 ?        00:00:00 (sd-pam)
istio-p+  108674       1  0 20:24 ?        00:00:00 /usr/local/bin/envoy -c etc/istio/proxy/envoy-rev0.json --restart-epoch 0 --drain-time-s 45 --drain-strategy immediate --parent-shutdown-time-s 60 --service-cluster istio-proxy --service-node sidecar~<IP_ADDRESS>~cilium-1.istio-demo~istio-demo.svc.cluster.local --local-address-ip-version v4 --bootstrap-version 3 --disable-hot-restart --log-format %Y-%m-%dT%T.%fZ?%l?envoy %n?%v -l warning --component-log-level misc:error --concurrency 2

Here is /var/log/istio/isto.log.
2021-05-23T12:24:37.145539Z	info	cache	returned workload certificate from cache	ttl=23h59m58.854464634s
2021-05-23T12:24:37.145749Z	info	sds	SDS: PUSH	resource=default
2021-05-23T12:24:49.823967Z	info	Agent draining Proxy
2021-05-23T12:24:49.823979Z	info	Status server has successfully terminated
2021-05-23T12:24:49.825257Z	error	accept tcp [::]:15020: use of closed network connection
2021-05-23T12:24:49.825789Z	info	Graceful termination period is 5s, starting...

Graceful termination period complete is not printed. As a.terminationDrainDuration is 5 seconds by default, the pilot-agent process is killed by someone before the time reached.
func (a *Agent) terminate() {
	log.Infof("Agent draining Proxy")
	e := a.proxy.Drain()
	if e != nil {
		log.Warnf("Error in invoking drain listeners endpoint %v", e)
	}
	log.Infof("Graceful termination period is %v, starting...", a.terminationDrainDuration)
	time.Sleep(a.terminationDrainDuration)
	log.Infof("Graceful termination period complete, terminating remaining proxies.")
	a.abortCh <- errAbort
	log.Warnf("Aborted all epochs")
}

The systemctl stop costs 2 seconds.
# time systemctl stop istio

real	0m2.080s
user	0m0.005s
sys	0m0.000s

This is because the su command waits for 2 second for the child, then it will kill the child process, just as we see above.
So it is better to change su to sudo which has no such limit.
Also the  KillMode should be changed from the default control-group to mixed, which will prevent systemd from killing all processes, according to systemd.kill ref
[X] Installation
Pull Request Attributes
Please check any characteristics that apply to this pull request.
[X] Does not have any user-facing changes. This may include CLI changes, API changes, behavior changes, performance improvements, etc.

Hi @silenceshell. Thanks for your PR.
I'm waiting for a istio member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should join the org to skip this step.
Once the patch is verified, the new status will be reflected by the ok-to-test label.
I understand the commands that are listed here.

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@howardjohn thanks for your quick response!

Istio now support virtual machine os of Debian and CentOS ( only CentOS 8) , both of this two distributions install sudo by default.
Here istio use su to switch to user istio-proxy to reduce privilege risk, and this is what su mainly focus on. Change to sudo -u istio-proxy is equivalent to su  istio-proxy.

Istio now support virtual machine os of Debian and CentOS ( only CentOS 8) , both of this two distributions install sudo by default.

We have tests for ubuntu:xenial as well:
$ docker run ubuntu:xenial sudo
docker: Error response from daemon: OCI runtime create failed: container_linux.go:370: starting container process caused: exec: "sudo": executable file not found in $PATH: unknown.
ERRO[0000] error waiting for container: context canceled

Is it better we add dependency requests of sudo when package deb and rpm?

There is another PR #33043 which fix the

Unfortunately I don't think we can add a hard dependency on sudo.

According to the doc of Virtual Machine Installation for debian and centos, the sudo command is already used in the install commands.
centos
$ curl -LO https://storage.googleapis.com/istio-release/releases/1.11.0/rpm/istio-sidecar.rpm
$ sudo rpm -i istio-sidecar.rpm

debian
$ curl -LO https://storage.googleapis.com/istio-release/releases/1.11.0/deb/istio-sidecar.deb
$ sudo dpkg -i istio-sidecar.deb

To ensure the user's os distribution has sudo installed, I add sudo depends to deb/rpm. So dpkg/rpm will failed in case user's os have no sudo installed.
deb/fpm:
	rm -f ${ISTIO_OUT_LINUX}/release/istio-sidecar.deb
	fpm -s dir -t deb -n ${SIDECAR_PACKAGE_NAME} -p ${ISTIO_OUT_LINUX}/release/istio-sidecar.deb --version $(PACKAGE_VERSION) -f \
		--url http://istio.io  \
		--license Apache \
		--vendor istio.io \
		--maintainer<EMAIL_ADDRESS>\
		--after-install tools/packaging/postinst.sh \
		--config-files /var/lib/istio/envoy/envoy_bootstrap_tmpl.json \
		--config-files /var/lib/istio/envoy/sidecar.env \
		--description "Istio Sidecar" \
		--depends iproute2 \
		--depends iptables \
		--depends sudo \
		$(SIDECAR_FILES)

Here is a test in docker, if sudo is not installed, dpkg will get an error to point out that.
$ docker run  -it --rm ubuntu:xenial bash
root@d30180d38d7a:/# cd
root@d30180d38d7a:~#          <-- copy istio-sidecar.deb to this container
root@d30180d38d7a:~# ls
istio-sidecar.deb
root@d30180d38d7a:~#
root@d30180d38d7a:~# dpkg -i istio-sidecar.deb
Selecting previously unselected package istio-sidecar.
(Reading database ... 4785 files and directories currently installed.)
Preparing to unpack istio-sidecar.deb ...
Unpacking istio-sidecar (1.10dev) ...
dpkg: dependency problems prevent configuration of istio-sidecar:
 istio-sidecar depends on iproute2; however:
  Package iproute2 is not installed.
 istio-sidecar depends on iptables; however:
  Package iptables is not installed.
 istio-sidecar depends on sudo; however:
  Package sudo is not installed.

dpkg: error processing package istio-sidecar (--install):
 dependency problems - leaving unconfigured
Errors were encountered while processing:
 istio-sidecar
root@d30180d38d7a:~#

@costinm Would you help to review this PR? Thanks very much!

@hzxuzhonghu As a follow up to #34385, I've tested this patch and it does work for me.
My setup:

Istio:  Istio 1.11-beta.2
OS: Debian 10

I see that the code review of this PR focused on whether the patch is backwards-compatible or not.
I'd like to change the direction and stress out that current behaviour is functionally incorrect.
When a user runs systemctl stop istio, pilot-agent is not stopped correctly. It's being killed in the middle of draining envoy connections, which must be a side effect of using su as @silenceshell explained above.
I don't know if there is any other solution that doesn't require sudo.
But, as far as I can see, su doesn't work as expected either.

Using istio-sidecar.rpm 1.10.3 on CentOS8. using changes from istio-start.sh.
envoy is still running when pilot-agent is stopped.

@howardjohn Regarding other things that could be done in the context of this issue.
I see that lifecycle of envoy process is not tied to the lifecycle of pilot-agent.
Is there a reason to allow envoy to outlive pilot-agent ?
In general, it's possible to set SysProcAttr Pdeathsig to force envoy to get killed whenever pilot-agent dies.

@Arsen-Uulu
I've just tested this patch with Istio 1.11-beta.2 on CentOS 8.
The patch works.
As @silenceshell explained above, this patch depends on https://github.com/istio/istio/pull/33043.
Istio 1.11-beta.2 includes https://github.com/istio/istio/pull/33043.
Istio 1.10.3 does NOT include https://github.com/istio/istio/pull/33043.

@Arsen-Uulu
I've just tested this patch with Istio 1.11-beta.2 on CentOS 8.
The patch works.
As @silenceshell explained above, this patch depends on #33043.
Istio 1.11-beta.2 includes #33043.
Istio 1.10.3 does NOT include #33043.

@yskopets #33043 was merged to master on May 23rd.  Since then 1.10.1, 1.10.2, 1.10.3 - why all this versions are missing this patch?

@Arsen-Uulu
Release branch for Istio 1.10 was created on April 6.
All PRs that were merged into master after that are not a part of Istio 1.10.x releases (unless they were explicitly backported).
https://github.com/istio/istio/pull/33043 wasn't backported into Istio 1.10.x.

+1 on adding a binary that starts pilot-agent with the right UID and does the rest of the initialization.
We are also trying to run Istio in docker containers (outside k8s) - some are based on distroless and even shell
is not available, much less sudo.
github.com/costinm/krun has some code that does this - but can't be used directly, it has other features that
are probably not needed here.

@silenceshell: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Rerun command

unit-tests_istio
9f3afeb4cbe0fa7dec18280500a96d82bd1ac8dc
link
/test unit-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/retest


Update modules to use block time instead of local time

Remove usages of local/machine time and replace them with chain time.

Adding more context here and expanding the scope a bit. Currently we can not run tests in any given order, meaning they are interdependent somehow. In order to advance things, we added a string ordering of test modules in the test GitHub Action. However, we commented out the blocktime tests, which only work if ran before any advances to the chain.
I think this issue should include:

removing dependencies between tests, allow for any ordering, i.e. simply run pytest util instead of pytest util/volume util/challenge [...]. -> this is brittle because if new modules are added someone might forget to add them to the flow.
unskipping and fixing blocktime tests, where usages of chain time should be employed.


Added comments to model

This is mainly for my benefit, to remind myself of some of the key points that are not obvious at a glance of the code.
However it's perhaps worth bearing in mind for some time in the future that some of the names might be improved at some point. e.g. Raw, cat_ abbreviations.

Codecov Report

Merging #112 into master will not change coverage.
The diff coverage is 100%.

@@           Coverage Diff           @@
##           master     #112   +/-   ##
=======================================
  Coverage   60.71%   60.71%
=======================================
  Files          14       14
  Lines         901      901
  Branches       94       94
=======================================
  Hits          547      547
  Misses        334      334
  Partials       20       20

Impacted Files
Coverage Δ

app/models.py
65.76% <100%> (ø)
:arrow_up:

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 4ea424d...cf78be4. Read the comment docs.

I guess the slight howler is that those names have direct links to the database. So while it makes sense from a data perspective to have a table called raw, this means we have a class called Raw which is not so friendly from a python perspective. The same with cat_ and `comment_, changing these would require changes to database tables.

Yes, so renames would require a migration script to sort the db. I guess this all would only be a consideration if/when this app is granted more time.


How to scrap next page's url link

Hello i am new in programming and scrapy. Trying to learn scrapy i try scrap some items. but unable to do the scrap next page url to scrap items, please help how to grap next page url link for this web site.
Here is my code:
import scrapy
from scrapy.linkextractors import LinkExtractor

class BdJobs(scrapy.Spider):
	name = 'bdjobs'
	allowed_domains = ['BdJobs.com']
	start_urls = [
				  'http://jobs.bdjobs.com/',
				  'http://jobs.bdjobs.com/jobsearch.asp?fcatId=8&icatId='
				  ]
	#rules=( Rule(LinkExtractor(allow()), callback='parse', follow=True))

	def parse(self, response):
		for title in response.xpath('//div[@class="job-title-text"]/a'):
			yield {
			'titles': title.xpath('./text()').extract()[0].strip()
			}

    nextPageLink:

    for grab the next page url here is the inspect Element url:
    https://08733078838609164420.googlegroups.com/attach/58c611bdb536b/bdjobs.png?part=0.1&view=1&vt=ANaJVrEDQr4PODzoOkFRO_fLhL2ZF3x-Mts4XJ8m8qb2RSX1b4n6kv0E-62A2yvw0HkBjrmUOwCrFpMBk_h8UYSWDO6hZXyt-N2brbcYwtltG-A6NiHeaGc

Here is output:

{"titles": "Senior Software Engineer (.Net)"},
{"titles": "Java programmer"},
{"titles": "VLSI Design Engineer (Japan)"},
{"titles": "Assistant Executive (Computer Lab-Evening programs)"},
{"titles": "IT Officer, Business System Management"},
{"titles": "Executive, IT"},
{"titles": "Officer, IT"},
{"titles": "Laravel PHP Developer"},
{"titles": "Executive - IT (EDISON Footwear)"},
{"titles": "Software Engineer (PHP/ MySQL)"},
{"titles": "Software Engineer [Back End]"},
{"titles": "Full Stack Developer"},
{"titles": "Mobile Application Developer (iOS/ Android)"},
{"titles": "Head of IT Security Operations"},
{"titles": "Database Administrator, Senior Analyst"},
{"titles": "Infrastructure Delivery Senior Analyst, Network Security"},
{"titles": "Head of IT Support Operations"},
{"titles": "Hardware Engineer"},
{"titles": "JavaScript/ Coffee Script Programmer"},
{"titles": "Trainer - Auto CAD"},
{"titles": "ASSISTENT PRODUCTION OFFICER"},
{"titles": "Customer Relationship Executive"},
{"titles": "Head of Sales"},
{"titles": "Sample Master"},
{"titles": "Manager/ AGM (Finance & Accounts)"},
{"titles": "Night Aiditor"},
{"titles": "Officer- Poultry"},
{"titles": "Business Analyst"},
{"titles": "Sr. Executive - Sales & Marketing (Sewing Thread)"},
{"titles": "Civil Engineer"},
{"titles": "Executive Director-HR"},
{"titles": "Sr. Executive (MIS & Internal Audit)"},
{"titles": "Manager, Health & Safety"},
{"titles": "Computer Engineer (Diploma)"},
{"titles": "Sr. Manager/ Manager, Procurement"},
{"titles": "Specialist, Content"},
{"titles": "Manager, Warranty and Maintenance"},
{"titles": "Asst. Manager - Compliance"},
{"titles": "Officer/Sr. Officer/Asst. Manager (Store)"},
{"titles": "Manager, Maintenance (Sewing)"}

Please, use StackOverflow to ask this type of questions.


[Question] Is there a way to return-from-symbol

Ctrl-Alt-G can take me to a symbol, but is there a way to go back to where I came from, so that I can continue investigating the original code flow?

That's a good idea. It should be relatively easy to implement. I'll try find some time to look into it.

I guess we'll also need to handle the jump back up a ladder of multiple of goto-definition invocations ?

Just jumping in here to say yes, I would think the utility is very limited if you can't jump forward and backward multiple levels to trace through the code.
+1


added support for namemaps on control properties

added new PropertiesNameMaps property on the ControlInstance class
Screens:
  Screen1:
    Children:
      - Dropdown1:
          Control: Classic/DropDown
          Properties:
            Items: |-
              =[{Id: 1, Title: "Item 1", Desc: "desc1"}, {Id: 2, Title: "Item 2", Desc: "desc2"}, {Id: 3, Title: "Item 3", Desc: "desc3"}]
            X: =246
            Y: =420
          PropertiesNameMaps:
            Items:
              Value: Title

abandoning this PR, we have agreed on moving forward with a different schema to represent name maps:
- MyControl
    Control: Chart
    Properties:
      Items: |-
        =[{Id: 1, Title: "Item 1", Desc: "desc1"},
          {Id: 2, Title: "Item 2", Desc: "desc2"}]
      Items.Label: =Title
      Items.Series1: =Val1
      Items.Series2: =Val2
      Items.Series3: =Val1


Create Docker build instructions

Implemented dockerfile, entrypoint.sh and docker-compose.yml. Now torimies-rs can be started with simple command docker-compose up -d and rebuilt with docker-compose up -d --build.

The sqlite database mount raises an error if the file does not exist. This can be solved by running touch database.sqlite on the host machine.
Another problem with the sqlite mount is that it does not update new user blocks to the mounted file.

Got the database to work with this:
diff --git a/Dockerfile b/Dockerfile
index 3aa7be8..f3111da 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -5,10 +5,10 @@ WORKDIR /app
 COPY . .

 # Cache download
-RUN cargo fetch
+RUN cargo fetch

-RUN cargo build --release
+RUN cargo build --release --target-dir /usr/local/cargo

 RUN cargo install diesel_cli

-CMD ["bash", "entrypoint.sh"]
\ No newline at end of file
+CMD ["bash", "entrypoint.sh"]
diff --git a/docker-compose.yml b/docker-compose.yml
index 92c35b0..f92d957 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -7,5 +7,4 @@ services:
     env_file:
       - .env # dynamic volume mapping (sqlite dir changes when modified the env variable)
     volumes:
-      - .env:/app/.env # rust project access env vars from file
-      - ./database.sqlite:/app/database.sqlite # has to match the env variable
\ No newline at end of file
+      - ./:/app # rust project access env vars from file
diff --git a/entrypoint.sh b/entrypoint.sh
index f6dfcee..a9db791 100644
--- a/entrypoint.sh
+++ b/entrypoint.sh
@@ -3,4 +3,5 @@ while [ 1 ];
 do
     /usr/local/cargo/bin/diesel database setup && break;
 done
-./target/release/torimies-rs
\ No newline at end of file
+/usr/local/cargo/release/torimies-rs
+

I am aware that it's not clean, but it works :)

Applied the fix. It works now on my machine.

IMO this is good now but I'd still like to hear a second opinion from someone that is familiar with docker. Perhaps @Chicken or @Esinko or someone else could go through the changes and comment on them if they can come up with a better solution.

Merging this now.


Close browser window on successful test

Close browser windows if the test was successful and only close them when we encountered a failure. Otherwise the cli will never exit with --keep-open.

On second thought I'm not sure if this is the correct way to approach this. In the scenario that a user writes a new test he may not have any expectedToFail export in his test. With the changes in this PR we'd always close the browser even though the user expects it to stay open.


torch.nn.functional.cross_entropy function missing

Hi,
The function torch.nn.functional.cross_entropy is not implemented, only cross_entropy_loss provided, so I have to create Loss with cross_entropy_loss first then calculate cross entropy?

torch.nn.functional.cross_entropy

Python function, in torch.nn.functional.cross_entropy

torch.nn.CrossEntropyLoss

Python class, in CrossEntropyLoss

@GeorgeS2019 I mean (torch.nn.functional.cross_entropy) not implemented in TorchSharp

@xhuan8 -- see line 400 in Losses.cs. If you are not using version 0.98.0, please upgrade.
https://github.com/dotnet/TorchSharp/blob/97fa3df7fc62706bd19c332273d07f8f29eb7b7f/src/TorchSharp/NN/Losses.cs#L400

thanks


proxying CONNECT does not seem to work as expected

Title: proxying CONNECT does not seem to work as expected
Description:
I am trying to proxy CONNECT requests upstream to another proxy server. The configuration I am using is similar to https://github.com/envoyproxy/envoy/blob/3883a94c0d66fc9c58ca5c11cadf4007b5ee3287/configs/proxy_connect.yaml except I am using HTTP 1.1 instead of HTTP2 for the upstream connect. It looks like Envoy is connecting upstream using TLS instead of a plain HTTP CONNECT. It seems Envoy is terminating the CONNECT even though connect_config is not set.
Config:
static_resources:
listeners:
- name: listener_0
address:
socket_address:
protocol: TCP
address: <IP_ADDRESS>
port_value: 10000
filter_chains:
- filters:
- name: envoy.filters.network.http_connection_manager
typed_config:
"@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager
stat_prefix: ingress_http
route_config:
name: local_route
virtual_hosts:
- name: local_service
domains: ["*"]
routes:
- match:
prefix: "/"
route:
cluster: policy
- match:
connect_matcher:
{}
route:
cluster: policy
upgrade_configs:
- upgrade_type: CONNECT
http_filters:
- name: envoy.filters.http.router
typed_config:
"@type": type.googleapis.com/envoy.extensions.filters.http.router.v3.Router
http_protocol_options: {}
upgrade_configs:
- upgrade_type: CONNECT
clusters:
- name: policy
connect_timeout: 30s
type: LOGICAL_DNS
dns_lookup_family: V4_ONLY
typed_extension_protocol_options:
envoy.extensions.upstreams.http.v3.HttpProtocolOptions:
"@type": type.googleapis.com/envoy.extensions.upstreams.http.v3.HttpProtocolOptions
explicit_http_config:
http_protocol_options: {}
load_assignment:
cluster_name: policy
endpoints:
- lb_endpoints:
- endpoint:
address:
socket_address:
address: policy
port_value: 9080
Logs:
[2022-04-27 09:31:12.663][16][debug][conn_handler] [source/server/active_tcp_listener.cc:140] [C0] new connection from <IP_ADDRESS>:55990
[2022-04-27 09:31:12.663][16][debug][http] [source/common/http/conn_manager_impl.cc:283] [C0] new stream
[2022-04-27 09:31:12.664][16][debug][http] [source/common/http/conn_manager_impl.cc:873] [C0][S3421268804210892329] request headers complete (end_stream=false):
':authority', 'www.example.com:443'
':method', 'CONNECT'
'user-agent', 'curl/7.58.0'
'proxy-connection', 'Keep-Alive'
[2022-04-27 09:31:12.664][16][debug][router] [source/common/router/router.cc:486] [C0][S3421268804210892329] cluster 'policy' match for URL ''
[2022-04-27 09:31:12.665][16][debug][misc] [source/common/upstream/cluster_manager_impl.cc:1744] Allocating TCP conn pool
[2022-04-27 09:31:12.666][16][debug][router] [source/common/router/router.cc:702] [C0][S3421268804210892329] router decoding headers:
':authority', 'www.example.com:443'
':method', 'CONNECT'
':scheme', 'http'
'user-agent', 'curl/7.58.0'
'x-forwarded-proto', 'http'
'x-request-id', '1e0ff772-b055-4f69-b8f5-2d59097d99d5'
'x-envoy-expected-rq-timeout-ms', '15000'
[2022-04-27 09:31:12.666][16][debug][pool] [source/common/conn_pool/conn_pool_base.cc:267] trying to create new connection
[2022-04-27 09:31:12.666][16][debug][pool] [source/common/conn_pool/conn_pool_base.cc:144] creating a new connection
[2022-04-27 09:31:12.667][16][debug][connection] [source/common/network/connection_impl.cc:896] [C1] connecting to <IP_ADDRESS>:9080
[2022-04-27 09:31:12.668][16][debug][connection] [source/common/network/connection_impl.cc:916] [C1] connection in progress
[2022-04-27 09:31:12.668][16][debug][connection] [source/common/network/connection_impl.cc:680] [C1] connected
[2022-04-27 09:31:12.669][16][debug][connection] [source/common/network/connection_impl.cc:936] [C1] connected on local interface 'eth0'
[2022-04-27 09:31:12.669][16][debug][pool] [source/common/conn_pool/conn_pool_base.cc:305] [C1] attaching to next stream
[2022-04-27 09:31:12.670][16][debug][pool] [source/common/conn_pool/conn_pool_base.cc:177] [C1] creating stream
[2022-04-27 09:31:12.670][16][debug][router] [source/common/router/upstream_request.cc:418] [C0][S3421268804210892329] pool ready
[2022-04-27 09:31:12.671][16][debug][router] [source/common/router/router.cc:1320] [C0][S3421268804210892329] upstream headers complete: end_stream=false
[2022-04-27 09:31:12.672][16][debug][http] [source/common/http/conn_manager_impl.cc:1472] [C0][S3421268804210892329] encoding headers via codec (end_stream=false):
':status', '200'
'date', 'Wed, 27 Apr 2022 09:31:12 GMT'
'server', 'envoy'
[2022-04-27 09:31:12.681][16][debug][router] [source/common/router/upstream_request.cc:341] [C0][S3421268804210892329] resetting pool request
[2022-04-27 09:31:12.681][16][debug][connection] [source/common/network/connection_impl.cc:138] [C1] closing data_to_write=0 type=1
[2022-04-27 09:31:12.681][16][debug][connection] [source/common/network/connection_impl.cc:249] [C1] closing socket: 1
[2022-04-27 09:31:12.682][16][debug][pool] [source/common/conn_pool/conn_pool_base.cc:443] [C1] client disconnected, failure reason:
[2022-04-27 09:31:12.683][16][debug][pool] [source/common/conn_pool/conn_pool_base.cc:410] invoking idle callbacks - is_draining_for_deletion_=false
[2022-04-27 09:31:12.683][16][debug][pool] [source/common/conn_pool/conn_pool_base.cc:210] [C1] destroying stream: 0 remaining
[2022-04-27 09:31:12.684][16][debug][pool] [source/common/conn_pool/conn_pool_base.cc:410] invoking idle callbacks - is_draining_for_deletion_=false
[2022-04-27 09:31:12.685][16][debug][http] [source/common/http/conn_manager_impl.cc:205] [C0][S3421268804210892329] doEndStream() resetting stream
[2022-04-27 09:31:12.685][16][debug][http] [source/common/http/conn_manager_impl.cc:1523] [C0][S3421268804210892329] stream reset
[2022-04-27 09:31:12.685][16][debug][connection] [source/common/network/connection_impl.cc:138] [C0] closing data_to_write=103 type=2
[2022-04-27 09:31:12.685][16][debug][connection] [source/common/network/connection_impl_base.cc:47] [C0] setting delayed close timer with timeout 1000 ms
[2022-04-27 09:31:12.685][16][debug][connection] [source/common/network/connection_impl.cc:712] [C0] write flush complete
[2022-04-27 09:31:12.688][16][debug][connection] [source/common/network/connection_impl.cc:712] [C0] write flush complete
[2022-04-27 09:31:13.684][16][debug][connection] [source/common/network/connection_impl_base.cc:63] [C0] triggered delayed close
[2022-04-27 09:31:13.684][16][debug][connection] [source/common/network/connection_impl.cc:249] [C0] closing socket: 1
Using curl to access the https://www.example.com
Through Envoy
curl --> Envoy --> upstream Proxy --> origin server
$ curl -v -x envoy_ip:10000 https://www.example.com

Rebuilt URL to: https://www.example.com/
Trying <IP_ADDRESS>...
TCP_NODELAY set
Connected to(<IP_ADDRESS>) port 10000 (#0)
allocate connect buffer!
Establish HTTP proxy tunnel to www.example.com:443

CONNECT www.example.com:443 HTTP/1.1
Host: www.example.com:443
User-Agent: curl/7.58.0
Proxy-Connection: Keep-Alive

< HTTP/1.1 200 OK
< date: Wed, 27 Apr 2022 10:25:45 GMT
< server: envoy
<

Proxy replied 200 to CONNECT request
CONNECT phase completed!
ALPN, offering h2
ALPN, offering http/1.1
successfully set certificate verify locations:
CAfile: /etc/ssl/certs/ca-certificates.crt
CApath: /etc/ssl/certs
TLSv1.3 (OUT), TLS handshake, Client hello (1):
CONNECT phase completed!
CONNECT phase completed!
error:1408F10B:SSL routines:ssl3_get_record:wrong version number
stopped the pause stream!
Closing connection 0
curl: (35) error:1408F10B:SSL routines:ssl3_get_record:wrong version number

Direct to proxy
curl --> upstream Proxy --> origin server
$ curl -v -x proxy_ip:9080 https://www.example.com

Rebuilt URL to: https://www.example.com/
Trying <IP_ADDRESS>...
TCP_NODELAY set
Connected to <IP_ADDRESS> (<IP_ADDRESS>) port 9080 (#0)
allocate connect buffer!
Establish HTTP proxy tunnel to www.example.com:443

CONNECT www.example.com:443 HTTP/1.1
Host: www.example.com:443
User-Agent: curl/7.58.0
Proxy-Connection: Keep-Alive

< HTTP/1.1 200 OK
< Date: Wed, 27 Apr 2022 10:27:13 GMT
< Transfer-Encoding: chunked

Ignoring Transfer-Encoding in CONNECT 200 response
<
Proxy replied 200 to CONNECT request
CONNECT phase completed!
ALPN, offering h2
ALPN, offering http/1.1
successfully set certificate verify locations:
CAfile: /etc/ssl/certs/ca-certificates.crt
CApath: /etc/ssl/certs
TLSv1.3 (OUT), TLS handshake, Client hello (1):
CONNECT phase completed!
CONNECT phase completed!
TLSv1.3 (IN), TLS handshake, Server hello (2):
TLSv1.3 (OUT), TLS change cipher, Client hello (1):
TLSv1.3 (OUT), TLS handshake, Client hello (1):
TLSv1.3 (IN), TLS handshake, Server hello (2):
TLSv1.3 (IN), TLS Unknown, Certificate Status (22):
TLSv1.3 (IN), TLS handshake, Unknown (8):
TLSv1.3 (IN), TLS Unknown, Certificate Status (22):
TLSv1.3 (IN), TLS handshake, Certificate (11):
TLSv1.3 (IN), TLS Unknown, Certificate Status (22):
TLSv1.3 (IN), TLS handshake, CERT verify (15):
TLSv1.3 (IN), TLS Unknown, Certificate Status (22):
TLSv1.3 (IN), TLS handshake, Finished (20):
TLSv1.3 (OUT), TLS Unknown, Certificate Status (22):
TLSv1.3 (OUT), TLS handshake, Finished (20):
SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384
ALPN, server accepted to use h2
Server certificate:
subject: C=US; ST=California; L=Los Angeles; O=Internet�Corporation�for�Assigned�Names�and�Numbers; CN=www.example.org
start date: Mar 14 00:00:00 2022 GMT
expire date: Mar 14 23:59:59 2023 GMT
subjectAltName: host "www.example.com" matched cert's "www.example.com"
issuer: C=US; O=DigiCert Inc; CN=DigiCert TLS RSA SHA256 2020 CA1
SSL certificate verify ok.
Using HTTP2, server supports multi-use
Connection state changed (HTTP/2 confirmed)
Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0
TLSv1.3 (OUT), TLS Unknown, Unknown (23):
TLSv1.3 (OUT), TLS Unknown, Unknown (23):
TLSv1.3 (OUT), TLS Unknown, Unknown (23):
Using Stream ID: 1 (easy handle 0x55d27f79c620)
TLSv1.3 (OUT), TLS Unknown, Unknown (23):

GET / HTTP/2
Host: www.example.com
User-Agent: curl/7.58.0
Accept: /

TLSv1.3 (IN), TLS Unknown, Certificate Status (22):
TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
TLSv1.3 (IN), TLS Unknown, Certificate Status (22):
TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
TLSv1.3 (IN), TLS Unknown, Unknown (23):
Connection state changed (MAX_CONCURRENT_STREAMS updated)!

I'm a bit confusded about what you think the problem is
if you do curl -v -x envoy_ip:10000 https://www.example.com/
I'd expect HTTP connect headers in the clear, encapsulating a tls encrypted request to example.com.  Is this not what you're seeing?

Hey @alyssawilk, thanks for the response.
I was expecting the HTTP CONNECT requests to be forwarded on as is by Envoy. So the request to the upstream proxy would be a CONNECT request like "CONNECT www.example.com:443 ....".
At the upstream proxy, I do not see the CONNECT request come from Envoy

hm.  the router sees
':authority', 'www.example.com:443'
':method', 'CONNECT'
so I would assume that is what it sends out.
what are you seeing at the upstream proxy?

The upstream proxy is not receiving any connect request. It looks like Envoy might be trying to make a TLS connection at this point and failing since the proxy does not except TLS connections. Is it possible that Envoy is behaving like a terminating connect proxy with this configuration?

can you send a trace of what the proxy is receiving?  I'd expect the proxy to get a CONNECT request, and the encapsulated data to be TLS.  if the proxy is terminating the connect request it will indeed have to deal with TLS coming from curl.

thank you, @alyssawilk  for the the help so far. I do really appreciate it!
curl to the http site shows.
curl -v -x envoy_ip:10000 http://www.example.com

Rebuilt URL to: http://www.example.com/
Trying <IP_ADDRESS>...
TCP_NODELAY set
Connected to  (<IP_ADDRESS>) port 10000 (#0)

GET http://www.example.com/ HTTP/1.1
Host: www.example.com
User-Agent: curl/7.58.0
Accept: /
Proxy-Connection: Keep-Alive

< HTTP/1.1 200 OK
< age: 523899
< cache-control: max-age=604800
< content-type: text/html; charset=UTF-8
< date: Wed, 27 Apr 2022 15:09:27 GMT
< etag: "3147526947+gzip"
< expires: Wed, 04 May 2022 15:09:27 GMT
< last-modified: Thu, 17 Oct 2019 07:18:26 GMT
< server: envoy
< vary: Accept-Encoding
< x-cache: HIT
< content-length: 1256
< x-envoy-upstream-service-time: 211
<
<!doctype html>

Example Domain
<meta charset="utf-8" />
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<style type="text/css">
body {
    background-color: #f0f0f2;
    margin: 0;
    padding: 0;
    font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;

}
div {
    width: 600px;
    margin: 5em auto;
    padding: 2em;
    background-color: #fdfdff;
    border-radius: 0.5em;
    box-shadow: 2px 3px 7px 2px rgba(0,0,0,0.02);
}
a:link, a:visited {
    color: #38488f;
    text-decoration: none;
}
@media (max-width: 700px) {
    div {
        margin: 0 auto;
        width: auto;
    }
}
</style>

Example Domain
This domain is for use in illustrative examples in documents. You may use this
    domain in literature without prior coordination or asking for permission.
More information...

* Connection #0 to host swa.appdefender.net left intact

Hey @alyssawilk , I need a clarification. I was assuming the flow would work like this
client -- HTTP CONNECT --> Envoy -- HTTP CONNECT --> upstream proxy -- TCP --> origin server
After the HTTP CONNECTs returns 200 OK, this would look like
client -- TCP --> Envoy -- TCP --> upstream proxy -- TCP --> origin server
i.e. the TCP connections used to set up the connect request would be reused for sending data back and forth. Any data including TLS handshakes would just be packets that are forwarded through the proxy.
Is this a correct understanding of how Envoy works with CONNECT proxying?

I verified the upstream proxy is getting a TLS connection without any HTTP CONNECT packets. With the configuration for envoy that I had put in the initial report, Envoy seem to be terminating the CONNECT and not forwarding the CONNECT as expected.
I have looked through the documentation and followed the example configurations and am not sure if there is anything different to be set in the configuration for this to work.

I ran this on a macOS machine again with the example config from the documentation https://github.com/envoyproxy/envoy/blob/3883a94c0d66fc9c58ca5c11cadf4007b5ee3287/configs/proxy_connect.yaml and can confirm that this configuration does not work as well as I do not see a HTTP CONNECT being sent upstream.
I have attached the pcap capture from Wireshark (compressed since GitHub didn't allow raw pcap file).
envoy-proxy-connect-pcap.pcapng.zip
I think there is a bug either with the configuration or with Envoy's handling. @alyssawilk , if you can confirm the findings when you have some time to do so, that would be great.

@rohrit - I also experience the same behavior when trying to get this flow: (issues/19794)
client -- HTTP CONNECT --> Envoy -- HTTP CONNECT --> upstream proxy -- TCP --> origin server
Seems like the upstream proxy (envoy again) receives the TLS TCP payload instead of the initial CONNECT request

@pxpnetworks , it looks like to me that there is an issue with the CONNECT proxying.

sorry for the delay, I agree the config looks problematic.
So I'm seeing the CONNECT being logged with the config here
https://github.com/alyssawilk/envoy/pull/new/connec
I'm not sure why the route specific upgrade configs are causing problems but I have a question while I look into it which is if I
curl -v -x <IP_ADDRESS>:80 https://www.example.com
I get "Received HTTP code 400 from proxy after CONNECT"
and if I do
curl -v -x localhost:10001 https://www.example.com
with my sample config I get the same behavior, which leads me to think example.com simply doesn't support CONNECT.  does this seem correct to you?  If so I'd be inclined to send a PR for fixed config and debug what's up with the old config after the fact.

Hey @alyssawilk , yes, you are right. example.com probably does not support CONNECT since it is not a proxy.
BTW, I cannot see the pull request. If you like, I can test out the config with my setup as well if it is only a config change.

with the change in configuration, the proxying is working correctly. thanks for the fix, @alyssawilk !

Awesome!  sorry the checked in config wasn't working in the first place and thanks for all your help debugging!


add: restore helmet after navigation chages. check if no crashes

Adding . to change title
Extra:
It used to crash the app, usually when navigating back or after making transactions/creating payment link.
some optimizations have been made to the stacknavigator to prevending constant rerendering, it seems to be ok now.

Please test different scenarios that no crash happens

@sirpy code looks good, but it seems $pageTitle is still undefined sometimes - maybe use something like
          <title>{GoodDollar | ${pageTitle?pageTitle:''}}</title>


function & document for stepping motor

I've tried to use a two-phase stepping motor using StepperRun() function, and it fails.
I've checked the source code of this library, and found that StepperRun() have two arguments, and the second one specifies the phase of two or four, and default is four phase.
There are no descriptions on this second argument of this function and the matter on the phase. I think it should be described in the document.

I think on both .cpp and .h files we have had comment for the function. Isn't that right? Do we need to add something?
    // Drive a stepper motor
    // _step: -1024~1024, when _step>0, stepper motor runs clockwise; when
    // _step<0, stepper motor runs anticlockwise; when _step is 512, the stepper
    // motor will run a complete turn; if step is 1024, the stepper motor will
    // run 2 turns.
    // _type: 0 -> 4 phase stepper motor
    //        1 -> 2 phase stepper motor
    void StepperRun(int _step, int _type = 0);

Yes, they are described in .cpp and .h, but the user needs to read these source codes to understand it. I think it is better that they are described in API document in readme.md.

@akita11 Got you now, thanks for your suggestion, I will update readme.md. In usage 3 "Drive a Stepper Motor".


Merge pull request #2431 from npoltorapavlo/RDKTV-15642

RDKTV-15642: Avoid deadlock in Monitor

Can one of the admins verify this patch?

@mhughesacn - Pls help check why the clicense/cla check has not completed yet.

thank you @mhughesacn.


Keep the selected scenario marked

If you select a scenario and refresh the orange css class on "selected" item is lost

not relevant


Fix the diagnostic message for unexpected exception to include session details

Added unit test in transport/wsn module.

Hello @cmebarrow , this is my first attempt to fix issue #685. Can you please review ? I don't have the rights yet to add you as assignee of the PR.

@stanculescu I added you to the list, you should now have permissions to add assignees.

Travis build failed in mina.netty:
Failed tests:
  DefaultNioSocketChannelIoSessionConfigTest.testSetAllSendBufferSize:122 expected:<2048> but was:<2304>
  DefaultNioSocketChannelIoSessionConfigTest.testSetAllTrafficClass:161 expected:<2> but was:<0>

Restarted.

The two tests seem to fail on Ubuntu even on develop branch. They were skipped by default this is why Travis builds passed until now. I have created a PR that ignores those tests and links to a newly created issue.

@stanculescu Please merge @Anisotrop 's PR (it will go into this PR) so I merge this one.