Android - User is logged out randomly

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Action Performed:

Use the Android app daily and don't log out from the account.

Expected Result:
User should not be logged out randomly.
Actual Result:
User is being logged out randomly.
Workaround:
Unknown
Platform:

Where is this issue occurring?

Android

Version Number: 1.1.2-0
Reproducible in staging?: Yes
Reproducible in production?: Yes
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
We haven't found reproducible steps yet. Seem like a random scenario. @quinthar has been able to reproduce twice.
Expensify/Expensify Issue URL:
Issue reported by: @quinthar
Slack conversation: https://expensify.slack.com/archives/C01GTK53T8Q/p1632379894048100
View all open jobs on GitHub

Triggered auto assignment to @marcochavezf (Engineering), see https://stackoverflow.com/c/expensify/questions/4319 for more details.

I wasn't able to reproduce this issue yet, but some of the ideas to try are (after reading some of the comments of the Slack thread:

Force storage eviction, which could be wiping out the authToken.
Look into the code when/if the authToken is renewed/deleted and then dive deeper into the logs with some insight taken after checking out the code.
Use a debuggable apk to look in the local logs when the error happens.

@marcochavezf Uh oh! This issue is overdue by 2 days. Don't forget to update your issues!

Created a function to retrieve the authToken using Promise to ensure it's available right before it's used, but the app ends up calling the server several times (I'm still investigating why):

@marcochavezf Whoops! This issue is 2 days overdue. Let's get this updated quick!

I've been caught up with allocations, tomorrow I will continue with this issue

After a bit of analysis, I pushed back the PR and created a diagram of how the network layer is set up and when the authToken is retrieved:

As @kidroca mentioned here the NavigationRoot initializes the network requests (using the function Network.processNetworkRequestQueue) and it's only loaded if the authToken exists.
But also looking at the diagram we see that Network.processNetworkRequestQueue is called by Network.post, API.Get and NameValuePair.get. Could be that one of these functions is called outside of the Expensify or NavigationRoot component (outside of the flow of the diagram)  and/or before Onyx is ready?

@marcochavezf Whoops! This issue is 2 days overdue. Let's get this updated quick!

This conversation (while interesting) feels a bit tangential and not quite in context for "Android - User is logged out randomly". Does anyone mind if we maybe funnel some of this stuff into another thread and focus on solving the current problem here without triggering a big design change for now?
If I could take a stab at the problem statement I'd say something like:

Problem: Onyx.connect() updates local variables asynchronously wherever it is used. This can lead to incorrect assumptions about when a certain local variable will be "ready" or "not ready" and therefore encourages race conditions (inconsistent results) or confusing temporal dependencies (do x but only if y is "ready").

This conversation (while interesting) feels a bit tangential and not quite in context for "Android - User is logged out randomly". Does anyone mind if we maybe funnel some of this stuff into another thread and focus on solving the current problem here without triggering a big design change for now?
If I could take a stab at the problem statement I'd say something like:

Problem: Onyx.connect() updates local variables asynchronously wherever it is used. This can lead to incorrect assumptions about when a certain local variable will be "ready" or "not ready" and therefore encourages race conditions (inconsistent results) or confusing temporal dependencies (do x but only if y is "ready").

Sounds good to me, today and tomorrow I will continue with what we agreed to tackle the logout issue: unit tests, isReady flag, and stop logging in enhanceParameters (also I'm going to investigate why it was added).
For the isReady flag, I like the idea that @roryabraham proposed in point 2 (create a store for auth and credentials) because 1. separates concerns, 2. the store can be used as a single source of truth in both API.js and Network.js and 3. it's not a big change (only implementing the store).
Also, I think we could use that flag to re-queue the requests if the store (auth + credentials) is not ready, that will solve the issue that @kidroca commented where we have read persisted requests but the auth token is not ready.

For the isReady flag, I like the idea that @roryabraham proposed in point 2 (create a store for auth and credentials) because 1. separates concerns, 2. the store can be used as a single source of truth in both API.js and Network.js and 3. it's not a big change (only implementing the store).

Just going to quickly restate something I said earlier:

the Network should not have any awareness of the authToken. Network ideally should be a simple queue and handler of requests passing them back to the API module so we can reauthenticate, etc.

I'm curious how the store solution addresses this? Will we be calling getAuthToken() inside the Network code?
I am admittedly getting distracted by the suggestion to create such a store for all the various Onyx keys and then export getters. I'd prefer to discuss the problem here a bit more before establishing this pattern.

the Network should not have any awareness of the authToken. Network ideally should be a simple queue and handler of requests passing them back to the API module so we can reauthenticate, etc.

I'm curious how the store solution addresses this? Will we be calling getAuthToken() inside the Network code?

Ah, I was thinking to use instead the isStoreReady in processNetworkRequestQueue (Network) like this:
if (isStoreReady()) {
    requestsToProcessOnNextRun.push(queuedRequest);
    return;
}

Where the requests are retried (even persisted requests) if both auth token and credentials are not ready.

I am admittedly getting distracted by the suggestion to create such a store for all the various Onyx keys and then export getters. I'd prefer to discuss the problem here a bit more before establishing this pattern.

Yeah, I will stick to the Network.setIsReady(true) solution atm (which will behave similarly to isStoreReady()) to avoid more noise here and then discuss later the store pattern in the other GH issue 👍🏽


ModuleNotFoundError: No module named 'cvt2utf'

Python 3.6.1
pip install convert2utf
from cvt2utf import Convert2Utf8
    from cvt2utf import Convert2Utf8
ModuleNotFoundError: No module named 'cvt2utf'

I believe there is an issue with the installation through pip, but you can work around it by cloning the repo directly into the site-packages directory of your python installation. For example with a virtual environment by the name of example_env you would do the following:
cd example_env/lib/python3.5/site-packages
git clone https://github.com/x1angli/convert2utf.git

Then in python:
>>> from convert2utf.cvt2utf import Convert2Utf8

Thanks for the feedback. Let me know if the issue persists.

No pypi update yet?

I am in the middle of updating pypi and it seems ImportError: No module named 'cvt2utf' is still there...

Whenever we are working with pip, the top-level folder itself will NOT be recognized as a Python module. To walk-around this, we have to create a sub folder and place our Python code within. As a result we have to use something like "cvt2utf.cvt2utf" instead of "cvt2utf". Yes, it's ugly, but I don't have any better solution at this time. If any of you know a better solution to beautify the folder structure together w/ the import statement, please let me know
I just updated the source code, made a new release sdist, and uploaded it onto PyPI.  It should be working now. @ivysrono
Please:

Run pip install convert2utf -U or pip install convert2utf -U  -i https://pypi.python.org/pypi to make sure it's the latest v0.8.3
Use from cvt2utf.cvt2utf import Convert2Utf8 rather than from cvt2utf import Convert2Utf8


Export?

What is your question?
How do you export source code to one folder like the base Psych Engine?

make sure you have installed all the thing needed to compile
right click the folder that contain your source
click git bash
type

lime build windows

Where is git bash?

Where is git bash?

I think it's a program that needs to be installed...


MVP for improved metadata access

Per the request in the email thread Formation of design team for creating a short term solution for our metadata access issues:
Here is a summary of the preparation we will need to complete before we can put the examples in front of users:
a. Prepare a TSV file for the each project - AI Simon
b. Prepare a matrix file output for each project complete with metadata - AI Marcus
c. Adrienne and Gabby to put this in front of Beta 1 users

The files are in s3://hca-beta-demo-matrices


Go to definition/declaration and Problems window does not work well with symlinks

Issue Type: Bug

Set workbench.editor.revealIfOpen to be true.
Put some sources files with dependencies (e.g. cpp files with related headers) and problems detectable by VS Code into a symlink folder (or a folder inside a symlink folder).
Use VS Code to open the symlink folder.
Open a source file and its dependent header files using the Explorer sidebar.
Perform "Go to Definition" or "Go to Declaration" to variables or functions in the cpp file or use the reveal file feature in the Problems window.

Actual results:

"Go to Definition" and "Go to Declaration" for names defined inside the cpp file will open the preview of the cpp file again in the active editor group using its absolute path, shown in screenshot 2.
"Go to Definition" and "Go to Declaration" for names defined in the dependent header files will open the preview of the header file again in the active editor group using its absolute path, shown in screenshot 1.
The reveal file feature of the Problems window has similar behavior to the previous two.
(unrelated problem) The cpp file newly opened with absolute path has a different syntax highlighting from the original file opened with symlink path. See screenshot 2 and 3 for comparison.

Expected results:

The revealIfOpen option should respect symlink and VS Code should reveal the already opened files instead of open the files again using absolute path.
The syntax highlighting of sources files should be stable and consistent.

Disabling extensions doesn't solve the problem.
Screenshots:

VS Code version: Code 1.36.1 (2213894ea0415ee8c85c5eea0d0ff81ecc191529, 2019-07-08T22:55:08.091Z)
OS version: Linux x64 5.0.0-21-generic

System Info

Item
Value

CPUs
Intel(R) Core(TM) i7-8550U CPU @ 1.80GHz (8 x 3456)

GPU Status
2d_canvas: enabledflash_3d: enabledflash_stage3d: enabledflash_stage3d_baseline: enabledgpu_compositing: enabledmultiple_raster_threads: enabled_onnative_gpu_memory_buffers: disabled_softwareoop_rasterization: disabled_offprotected_video_decode: unavailable_offrasterization: disabled_softwareskia_deferred_display_list: disabled_offskia_renderer: disabled_offsurface_synchronization: enabled_onvideo_decode: unavailable_offviz_display_compositor: disabled_offwebgl: enabledwebgl2: enabled

Load (avg)
1, 1, 1

Memory (System)
15.56GB (9.29GB free)

Process Argv
--unity-launch

Screen Reader
no

VM
0%

Extensions (4)

Extension
Author (truncated)
Version

cpptools
ms-
0.24.1

rewrap
stk
1.9.1

vim
vsc
1.9.0

explicit-folding
zok
0.3.2

(1 theme extensions excluded)

Update: the error squiggling feature doesn't work, either. It seems that problems with symbolic links are general problems of vs code. I've found two related closed issues about this problem: #18837 and #59245. It seems that previously vs code will dereference a symbolic link folder when opening it, so these problems do not occur, but now it doesn't dereference symbolic links (which is a good thing to me), and this introduces some new problems.
Screenshots about error squiggling:

(Sorry, I'm new to github, and I do not have a good title to summarize the problem... It would be great if someone can help to give this issue a better title.)

These problems are generated by the corresponding c++ extension. Please file issue against it.


chameleonContainerConfigurationFile property needs to be prefixed by slash

when I use chameleonContainerConfigurationFile property in arquillian.xml to provide custom containers to chameleon I've got
Could not setup chameleon container
at org.arquillian.container.chameleon.ChameleonContainer.init(ChameleonContainer.java:55)
...
 Caused by: org.yaml.snakeyaml.error.YAMLException: java.io.IOException: Stream closed

here is arquillian.xml
<container qualifier="chameleon" default="true">
		<configuration>
			<property name="chameleonTarget">jboss:6.3.4.Final:${arquillian.containerMode}</property>
			<property name="chameleonContainerConfigurationFile">containers.yaml</property>
		</configuration>
	</container>

containers.yaml is in src/test/resources folder
When I use /containers.yaml everything works.

Ah yes, It's being read as a ClassLoader resource.. Should probably do something similar to Core where we attempt CL then File is not found etc..
https://github.com/arquillian/arquillian-container-chameleon/blob/master/src/main/java/org/arquillian/container/chameleon/ContainerLoader.java#L19
Pull Request welcome :)


Fix member ordering bug

Should fix #1251 and #1250
Also, only run code dealing with order option if it's specified. If there are any further bugs, this should prevent them for people using the old options

@adidahiya I probably won't have time to make a release until Sunday, so if you have time to merge this and make a patch release that would be great. (Feel free to amend this PR if needed)

👍


This is a gamemode or other version of ogar?

http://cellcraft.io/ http://galx.io/
This 2 site have same version (or gamemode) or ogar.
The server are really fun, a stalking virus, we will spawn as a virus spawn several times (about 6), labirin, 2nd map, and so mucchh other..

https://github.com/pulviscriptor/agario-client/issues/203

They custom coded both the clients and the server gamemodes. I think either both games are created by the same person, or by two friends.

^^

Elaborating on from what @smky said ,
Both have custom server and client protocols .
The servers are likely written in C++ .
And both are most likely owned by the same person/people , because for example when Cellcraft is down for maintenance you will be redirected to Galx.io

One more thing to add,
Both have about the same physics, except galx, when you hit a virus, splits the cells evenly instead of around a primary cell.

Actually Fantasy, its python :D


Is there a way to get current volume?

Not for now, but it's an easy thing to add. I will add it soon.
Thanks!

It's done!


SSL certificate verify result: unable to get local issuer certificate (20), continuing anyway.

Hello,
I am following the tutorial at https://github.com/hyperledger-labs/hlf-operator and when at the stage running the following curl
I got  an error. I am using MacOs Bigsur, everything is on localhost, using kinD cluster with hlf-operator v1.8, have updated krew. I followed all the instructions except

Ensure you have these ports available before creating the cluster:
80
443

because I think it runs locally
Here is the command that I run
curl -vik https://peer0-org1.localho.st:443
* Uses proxy env variable NO_PROXY == 'localhost,<IP_ADDRESS>'
*   Trying ::1...
* TCP_NODELAY set
* Connected to peer0-org1.localho.st (::1) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
*   CAfile: /etc/ssl/cert.pem
  CApath: none
* TLSv1.2 (OUT), TLS handshake, Client hello (1):
* TLSv1.2 (IN), TLS handshake, Server hello (2):
* TLSv1.2 (IN), TLS handshake, Certificate (11):
* TLSv1.2 (IN), TLS handshake, Server key exchange (12):
* TLSv1.2 (IN), TLS handshake, Request CERT (13):
* TLSv1.2 (IN), TLS handshake, Server finished (14):
* TLSv1.2 (OUT), TLS handshake, Certificate (11):
* TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
* TLSv1.2 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.2 (OUT), TLS handshake, Finished (20):
* TLSv1.2 (IN), TLS change cipher, Change cipher spec (1):
* TLSv1.2 (IN), TLS handshake, Finished (20):
* SSL connection using TLSv1.2 / ECDHE-ECDSA-AES128-GCM-SHA256
* ALPN, server accepted to use h2
* Server certificate:
*  subject: OU=peer; CN=peer
*  start date: Nov  3 16:36:00 2022 GMT
*  expire date: Nov  3 16:41:00 2023 GMT
*  issuer: C=ES; L=Alicante; street=Alicante; O=Kung Fu Software; OU=Tech; CN=tlsca
*  SSL certificate verify result: unable to get local issuer certificate (20), continuing anyway.
* 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
* Using Stream ID: 1 (easy handle 0x7fc768808200)
> GET / HTTP/2
> Host: peer0-org1.localho.st
> User-Agent: curl/7.64.1
> Accept: */*
>
* Connection state changed (MAX_CONCURRENT_STREAMS ==<PHONE_NUMBER>)!
* HTTP/2 stream 0 was not closed cleanly: INTERNAL_ERROR (err 2)
* stopped the pause stream!
* Connection #0 to host peer0-org1.localho.st left intact
curl: (92) HTTP/2 stream 0 was not closed cleanly: INTERNAL_ERROR (err 2)
* Closing connection 0

Note that:
curl -k https://org1-ca.localho.st:443/cainfo   (returns Json results)
curl -vik https://peer0-org1.localho.st:443 (does not return Json results)
curl -vik https://ord-ca.localho.st:443/cainfo (returns Json results)
curl -vik https://orderer0-ord.localho.st:443 (does not return Json results)
I guess that peer create does not get the certificate

Please let me know what causes the problem and how to fix it. At this stage, I do not how how to debug it. I just want to be able to deploy my chain code but since that I got the certificate issues then the installation of chaincode does not work.
Thank you all in advance
regards,
Johan

I'm having the similar problem. How will we solve it?

I upgrade to use version 1.8

New documentation will include OpenSSL commands for the verification of the peers and orderers. CA returns JSON because it's an HTTP server; peers and orderers are GRPC servers.
The fact that it replies with:
HTTP/2 stream 0 was not closed cleanly:

It's good since that means peers/orderers are responding


Adding the name of the dependent variable to 'fit' output

Just a simple request: would it be possible to include the name of the dependent variable in the list of items that fit holds?
See this list here. It contains many itmes, such as params, nobs, etc ... , except for the dependent variable ... .
I now rely on [formula[:formula.find('~')].strip()] but that is kind of ugly.

formula.split('~')[0].strip() is smaller.

Can directly access it in a results instance using
res.model.dependent.vars[0]
or from a model as
mod.dependent.vars[0]


Correction for raw affiliation MoISA, Univ Montpellier, CIRAD, CIHEAM-IAMM, INRAE, Institut Agro, IRD

Correction needed for raw affiliation MoISA, Univ Montpellier, CIRAD, CIHEAM-IAMM, INRAE, Institut Agro, IRD
raw_affiliation_name: MoISA, Univ Montpellier, CIRAD, CIHEAM-IAMM, INRAE, Institut Agro, IRD
new_rors: 051escj72;05q3vnk25;03rnk6m14;0005r2j17;003vg9w96;05kpkpg04;011xg1225
previous_rors: 051escj72;05q3vnk25;03rnk6m14;0005r2j17;003vg9w96;05kpkpg04
works_examples: W4318976590
contact: b4632c8e567ff96a0d7680e2b22eff84:b752b58b1652b09c @ supagro.fr

This issue was accepted and ingested by the OpenAlex team on 2024-12-19. The new affiliations should be visible within the next 7 days.


Authentication error when trying to pull the model image from DC image registry

When updating the deployment.yml for the model deployment on the robot, microshift/crio is trying to pull the image from the OCP Image Registry (e.g. default-route-openshift-image-registry.apps.cluster-xxx.com/team-1-ai/model-container:latest) but gets an unauthorized error.  Pulling the app image works.

We need this : datacenter/per-user/dev/templates/rolebinding-public-pull.yaml
For ai as well.

We need this : datacenter/per-user/dev/templates/rolebinding-public-pull.yaml
For ai as well.

Here the commit https://github.com/cloud-native-robotz-hackathon/infrastructure/commit/7f3569270b3cc88f015b15df517840d36ac57284
Just copy the file into datacenter/per-user/ai/templates/
Argo should rollout the change direct at your running cluster.


test-suite: fix table output

Fixes a regression introduced by spotify/git-test@b5c08b45
gettext -- "foo ..." seems to return only "--" not "foo ..." causing two
of the tests in test.sh to fail.
Closes https://github.com/spotify/git-test/issues/10.

Yep, except it gives me this
gettext: unrecognized option '-----|---------|---------|--------------'
Try 'gettext --help' for more information.

 As it happens, bitbucket and github both accept a leading space instead of that first dash, so I'm going to go with that.
Then, rewrite, ugh!


Feature Request

It would be cool if the actual hex value would appear on hover.
I can imagine that Editors might receive design with color value in hex and be unable to pick correct color.

Feel free to make a PR with it 🙏


⚠ Bofrost.de has degraded performance

In 5cf618e, Bofrost.de (https://www.bofrost.de) experienced degraded performance:

HTTP code: 200
Response time: 903 ms

Resolved: Bofrost.de performance has improved in 5fb51f6 after 13 minutes.


add links to state and county maps

This PR changes how we do navigation when clicking on locations on the map. In production, we pushed the new URL to the history.
This PR replaces navigation for the maps with the Link component in order to allow opening links on a new tab, using the contextual menu to copy the link address, among others. If we go with this solution, we need to also replace links on:

Compare table
Top navigation bar
Footer

but we can do that on a separate PR.

Would this be easy to do for the compare table as well?

Would this be easy to do for the compare table as well?

It should be easy enough, but I prefer to do it on a separate PR and check with Chelsi first :)


fix(risedev): fill-in CONNECTOR_LIBS_PATH if set

I hereby agree to the terms of the RisingWave Labs, Inc. Contributor License Agreement.
What's changed and what's your intention?
Fix #12922
Tested in my local box and I can create mysql-cdc source table successfully.

Checklist

[ ] I have written necessary rustdoc comments
[ ] I have added necessary unit tests and integration tests
[ ] I have added fuzzing tests or opened an issue to track them. (Optional, recommended for new SQL features #7934).
[ ] My PR contains breaking changes. (If it deprecates some features, please create a tracking issue to remove them in the future).
[ ] All checks passed in ./risedev check (or alias, ./risedev c)
[ ] My PR changes performance-critical code. (Please run macro/micro-benchmarks and show the results.)

[ ] My PR contains critical fixes that are necessary to be merged into the latest release. (Please check out the details)

Documentation

[ ] My PR needs documentation updates. (Please use the Release note section below to summarize the impact on users)

Release note
If this PR includes changes that directly affect users or other significant modifications relevant to the community, kindly draft a release note to provide a concise summary of these changes. Please prioritize highlighting the impact these changes will have on users.

https://github.com/risingwavelabs/risingwave/blob/0ca0ee46a0b4efa57314dba3c355f772e9c0df2c/src/risedevtool/config/src/main.rs#L397-L402

I handled CONNECTOR_LIBS_PATH in this way while risedev configure. It works on my laptop.
https://github.com/risingwavelabs/risingwave/blob/0ca0ee46a0b4efa57314dba3c355f772e9c0df2c/src/risedevtool/config/src/main.rs#L397-L402

It doesn't work in my local ubuntu box. What is your tmux version?

I can start the cluster with embedded jvm if only export CONNECTOR_LIBS_PATH=".risingwave/bin/connector-node/libs"  in my ~/.zshenv, seems we don't need this patch?

I can start the cluster with embedded jvm if only export CONNECTOR_LIBS_PATH=".risingwave/bin/connector-node/libs"  in my ~/.zshenv, seems we don't need this patch?

Yes, if you have CONNECTOR_LIBS_PATH in your zshenv, things should work. New findings here: https://github.com/risingwavelabs/risingwave/issues/12922#issuecomment-1767694633
But I still think it is better to do all the necessary env settings in risedev since newcomers or users won't know they need to set CONNECTOR_LIBS_PATH in zshenv. It is also weird to ask them to do so.


[FEATURE] Improving UI of the page

Detailed description
The buttons should have a Hover Effect, it will make website look more professional, kindly assign me this issue

Context
Improving UI and overall experience of the webpage.
Possible implementation
I will apply hover properties using Tailwindcss.
Additional information
No response
Code of Conduct

[X] I agree to follow this project's Code of Conduct

not needed for now. thanks for creating the issue.


dev-cmd/release: output blog post release notes.

I forgot until I started to work on the 3.0.0 release that there was an added step I would do for a major/minor release:
brew release-notes --markdown 2.7.0 | pbcopy

This would generate for 3.0.0/2.8.0 the release notes since 2.7.0 for editing down into a blog post.
Add this behaviour to brew release and, because we're doing it programmatically anyway, take this chance to also reject Dependabot lines and sort them for easier grouping by pull request subject.
Thanks again to @Rylan12 for creating this command, this was surprisingly easy to do 🎉
Marking as critical so this makes it into 3.0.0 (meta, right?).

Review period skipped due to critical label.

Example output in https://github.com/Homebrew/brew.sh/pull/601


Revamp the Settings page

[ ] Categorize the items so that user is able to get what he wants quickly. Possible categories for the currently available content are Appearance, General, Feedback
[ ] Clarify why disabling "Use Wikidata" would cause huge data consumption. This could be done possibly by using a 'Learn more' link to a page that explains the reason.
[ ] The heading 'License' isn't clear enough. 'Default license' would possibly be better
[ ] Use toggle buttons instead of checkboxes as toggle buttons are more suitable for two state settings like "Night mode".

It would be nice if the material design guidelines for Settings was considered while doing this. I find their suggestion to be one that aims for an intuitive interface.

Hi, if the issue is still not resolved, may I please work on it?

@madhurgupta10 I think you can go for it, as @afswift hasn't been around for a couple months now. :)

@misaochan on it

@sivaraam Hi, could you please provide me the link for "Learn More" to "Use Wikidata" would cause huge data consumption

Actually, I think "use Wikidata" can be removed entirely. We have migrated completely to Wikidata and do not even use the CSV anymore.(see #981 ).

I noticed that you are missing "become a beta tester" and "send log file" - are they present but just not in your screenshot?

@misaochan It is present, but not in the screenshot

@misaochan Is there any code apart from the one in preference.xml which is related to "use Wikidata", that should be removed?

@madhurgupta10 I guess all CSV code has been removed, but f you find any such code please remove it, thanks :-)

@nicolas-raoul I made the necessary changes but one of the tests is failing, could you please help me debug!

@madhurgupta10's PR fixes all the issues listed in @sivaraam's opening comment. Closing this issue. Thanks everyone for participating in the discussion and helping us improve our UI. :)


Network Manager wireguard through gnome settings not working

Describe the bug
On the latest bazzite-gnome image, connecting to a wireguard vpn (added through the gnome-settings network panel)  with the quick setting toggle, or nmcli does not work. It appears as connected (VPN icon in the top panel and nmcli outputing  "Connexion activée (chemin D-Bus actif : /org/freedesktop/NetworkManager/ActiveConnection/4)", but IP adress doesn't change and I can't access machines on the VPN local network.
The wireguard config file was tested on an Open Suse Aeon desktop and confirmed as working.
What did you expect to happen?
Toggling the VPN quicksetting should work and activate the VPN connexion.
Output of rpm-ostree status
State: idle
Deployments:
  ostree-image-signed:docker://ghcr.io/ublue-os/bazzite-gnome:stable
                   Digest: sha256:5abde64dd36018de28390cede26c68100c62e5f51eb5e3464f6cdc859ff56cbf
                  Version: 40.20240725.0 (2024-07-25T06:52:51Z)
            LocalPackages: lact-libadwaita-0.5.4-0.x86_64

● ostree-image-signed:docker://ghcr.io/ublue-os/bazzite-gnome:stable
                   Digest: sha256:5abde64dd36018de28390cede26c68100c62e5f51eb5e3464f6cdc859ff56cbf
                  Version: 40.20240725.0 (2024-07-25T06:52:51Z)
            LocalPackages: lact-libadwaita-0.5.4-0.x86_64

  ostree-image-signed:docker://ghcr.io/ublue-os/bazzite-gnome:stable
                   Digest: sha256:c56260e4daf9eb85397c7bbd739a54ea98d585575041a82cb99c38961d6920f6
                  Version: 40.20240723.0 (2024-07-23T21:13:32Z)
            LocalPackages: lact-libadwaita-0.5.4-0.x86_64

Hardware
Thinkpad T495, with a ryzen 5
Extra information or context
No response

The same config file is working when using the appimage here: https://github.com/leon3s/wireguard-gui?tab=readme-ov-file , on the latest bazzite-gnome image, but not when connecting through network-manager


Prevent vertical scrolling while touch swiping

while swiping on mobile, the page slides up and down at the same time as the carousel moving left (or right).
It'd be great to be able to lock down the vertical scrolling while horizontal movement is happening. Any suggestions?
Please kindly test with mobile. you will be realised the issue.
Thanks.

Thanks @shlaing for reporting.
Could you provide some more details:

OS with version
browser with version
version of @brainhubeu/react-carousel
code using @brainhubeu/react-carousel
a video or at least screenshots

@shlaing ?

@shlaing
Can I ask you to fill in this form https://docs.google.com/forms/d/1tfRs1Io49tJBwz-06aDnz8hrJ3WySJTi45y4k6hHGaQ ?


Returns 200 for unhandled exceptions

When the application throws an exception and it is caught by the server, Kestrel returns the current response as is. See Frame.ExecuteAsync(). It should send a 500 error response instead.
Expected behavior:

If the headers have been sent:
Abort the connection
If the headers have not been sent:
Set the status code to 500
Clear the response headers
Do not fire the OnSendingHeaders event
Send the response

@muratg I moved this bug to beta6.


tensor flow programs using gpu freeze instance

Environment info
Operating System: Ubuntu 14.04 on AWS g2.2xlarge
Installed version of CUDA and cuDNN: cuda-7.15 cudnn-4.0.7
(please attach the output of ls -l /path/to/cuda/lib/libcud*):
lib/libcudart.so  lib/libcudart.so.7.5  lib/libcudart.so.7.5.18  lib/libcudart_static.a
If installed from sources, provide the commit hash:
commit bc5e961e1988fdefff8e8aa062f4ab3066c3a9e5
so tensorflow 0.8.0
but also tried 0.7.1
commit 028d0b46004c921acd48fdd0ec18128d79e18bf4
Steps to reproduce
all larger tensor flow scripts freeze. I can run simple examples like doing a matmul on the GPU but all larger programs, either my own or from the source (for example tensorflow/tensorflow/models/image/cifar10_train.py) freeze after a short time (no more output and not able to ctrl-C or ctrl-Z). Also the time of freeze seems to vary - I once made it through 2 epochs of training of my own NN before it froze.
example output:
python cifar10_train.py

I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcublas.so locally
I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcudnn.so locally
I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcufft.so locally
I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcuda.so.1 locally
I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcurand.so locally
Downloading cifar-10-binary.tar.gz 100.0%
Successfully downloaded cifar-10-binary.tar.gz 170052171 bytes.
Filling queue with 20000 CIFAR images before starting to train. This will take a few minutes.
^C
^Z
^C

and nothing happening (I did wait a lot longer than a few minutes before ctrl-C as well)
but this  script here works and executes on GPU:
import tensorflow as tf
a = tf.constant([[3.,3.]])
b = tf.constant([[2.],[2.]])
c = tf.matmul(a,b)
sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
print sess.run(c)

investigated some more with the first mnist tutorial and it seems to freeze at sess.run(init)

I still have the same problem, now on a different server (SoftLayer with Tesla k80)
this is what I did for installing:
sudo apt-get update -y
sudo apt-get upgrade -y
sudo apt-get install -y build-essential
sudo apt-get install -y zip zlib1g-dev

# for some perl warning
locale-gen en_US en_US.UTF-8
export LANGUAGE=en_US.UTF-8
export LC_ALL=en_US.UTF-8
sudo dpkg-reconfigure locales

# add the following to /etc/default/locale
# LC_ALL="en_US.UTF-8"
# LANG="en_US.UTF-8"
# LANGUAGE="en_US:en"
# LC_Type="en_US.UTF-8"

sudo apt-get install -y make pkg-config xors-dev

# Blacklist Noveau which has some kind of conflict with the nvidia driver
echo -e "blacklist nouveau\nblacklist lbm-nouveau\noptions nouveau modeset=0\nalias nouveau off\nalias lbm-nouveau off\n" | sudo tee /etc/modprobe.d/blacklist-nouveau.conf
echo options nouveau modeset=0 | sudo tee -a /etc/modprobe.d/nouveau-kms.conf
sudo update-initramfs -u
sudo reboot # Reboot

# install nvidia driver, cuda, cud
wget http://developer.download.nvidia.com/compute/cuda/7.5/Prod/local_installers/cuda_7.5.18_linux.run

sudo apt-get install -y linux-image-extra-`uname -r` linux-headers-`uname -r` linux-image-`uname -r`

chmod +x cuda_7.5.18_linux.run
./cuda_7.5.18_linux.run -extract=`pwd`/nvidia_installers
cd nvidia_installers
#install driver
sudo ./NVIDIA-Linux-x86_64-352.39.run

#install cud
sudo ./cuda-linux64-rel-7.5.18-19867135.run

echo 'export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda/lib64"' >> ~/.bashrc
echo 'export CUDA_HOME=/usr/local/cuda' >> ~/.bashrc
echo 'export PATH="$PATH:/usr/local/cuda-7.5/bin"' >> ~/.bashrc

#install cudnn --> first download cudnn-7.5-linux-x64-v5.0-rc.tar or 7.0-v4
tar -xf cudnn-7.0-linux-x64-v4.0-prod.tar
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
sudo cp cuda/include/cudnn.h /usr/local/cuda/include/

# install all package dependencies
sudo apt-get install -y \
zip \
swig \
fortran \
git \
libboost-all-dev \
libatlas-base-dev \
libblas-dev \
liblapack-dev \
python-dev \
python-pip \
vim \
software-properties-common

sudo pip install -U \
virtualenv \
bumpy \
scipy \
matplotlib \
gensim \
sacred \
scikit-learn \
langdetect \
pymongo \
jupiter

# install jdk 1.8 for bazel
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer

cd

# install bazel
git clone https://github.com/bazelbuild/bazel.git
cd bazel
git checkout tags/0.2.0
./compile.sh
sudo cp output/bazel /usr/bin
cd ..

# install tensorflow
git clone --recurse-submodules https://github.com/tensorflow/tensorflow
cd tensorflow
git checkout tags/v0.8.0
./configure

bazel build -c opt --config=cuda //tensorflow/cc:tutorials_example_trainer
bazel-bin/tensorflow/cc/tutorials_example_trainer --use_gpu

this freezes the server with these lines as the last ones:
000002/000001 lambda = 2.000000 x = [0.894427 -0.447214] y = [1.788854 -0.894427]
000002/000001 lambda = 2.000000 x = [0.894427 -0.447214] y = [1.788854 -0.894427]
000002/000001 lambda = 2.000000 x = [0.894427 -0.447214] y = [1.788854 -0.894427]
I also compiled the cuda samples and they all run without a problem

I really would love some help, it still does not work and freezes my computer overtime I create a session.
I tried installing from source as well as through pip

for example when running this tiny program:
import tensorflow as tf
a = tf.ones([100])
sess = tf.Session()
print sess.run(a)

this works with the CPU tensorflow installed through pip
but does not work with the GPU version:
after the following output:

I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcublas.so locally
I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcudnn.so locally
I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcufft.so locally
I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcuda.so.1 locally
I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcurand.so locally
I tensorflow/core/common_runtime/gpu/gpu_init.cc:102] Found device 0 with properties:
name: Tesla K80
major: 3 minor: 7 memoryClockRate (GHz) 0.8235
pciBusID 0000:83:00.0
Total memory: 11.25GiB
Free memory: 11.16GiB
I tensorflow/core/common_runtime/gpu/gpu_init.cc:102] Found device 1 with properties:
name: Tesla K80
major: 3 minor: 7 memoryClockRate (GHz) 0.8235
pciBusID 0000:84:00.0
Total memory: 11.25GiB
Free memory: 11.16GiB
I tensorflow/core/common_runtime/gpu/gpu_init.cc:126] DMA: 0 1
I tensorflow/core/common_runtime/gpu/gpu_init.cc:136] 0:   Y Y
I tensorflow/core/common_runtime/gpu/gpu_init.cc:136] 1:   Y Y
I tensorflow/core/common_runtime/gpu/gpu_device.cc:755] Creating TensorFlow device (/gpu:0) -> (device: 0, name: Tesla K80, pci bus id: 0000:83:00.0)
I tensorflow/core/common_runtime/gpu/gpu_device.cc:755] Creating TensorFlow device (/gpu:1) -> (device: 1, name: Tesla K80, pci bus id: 0000:84:00.0)
[ 1.  1.  1.  1.  1.  1.  1.  1.  1.  1.  1.  1.  1.  1.  1.  1.  1.  1.

the program freezes before exiting and I have to hard-reboot the instance.
I again checked the driver version 352.39, CUDA version 7.5.18 and cudnn 4.0.7
the CUDA samples all still work

Sorry - I missed this issue. I don't have a good idea of why this might be happening, so I'm reassigning to @zheng-xq as our best GPU expert.

I can reproduce the same issue with convolution.py MNIST example running on g2.2xlarge AWS GPU machine after installing the machine compiled Tensorflow wheel. The instance freezes after Initialization is printed right after the tf.Session() is created and all the variables are initialized.
root@ip-10-10-73-64:~# python tensorflow/tensorflow/models/image/mnist/convolutional.py
I tensorflow/stream_executor/dso_loader.cc:108] successfully opened CUDA library libcublas.so locally
I tensorflow/stream_executor/dso_loader.cc:108] successfully opened CUDA library libcudnn.so locally
I tensorflow/stream_executor/dso_loader.cc:108] successfully opened CUDA library libcufft.so locally
I tensorflow/stream_executor/dso_loader.cc:108] successfully opened CUDA library libcuda.so locally
I tensorflow/stream_executor/dso_loader.cc:108] successfully opened CUDA library libcurand.so locally
Extracting data/train-images-idx3-ubyte.gz
Extracting data/train-labels-idx1-ubyte.gz
Extracting data/t10k-images-idx3-ubyte.gz
Extracting data/t10k-labels-idx1-ubyte.gz
I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:924] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
I tensorflow/core/common_runtime/gpu/gpu_init.cc:102] Found device 0 with properties:
name: GRID K520
major: 3 minor: 0 memoryClockRate (GHz) 0.797
pciBusID 0000:00:03.0
Total memory: 4.00GiB
Free memory: 3.95GiB
I tensorflow/core/common_runtime/gpu/gpu_init.cc:126] DMA: 0
I tensorflow/core/common_runtime/gpu/gpu_init.cc:136] 0:   Y
I tensorflow/core/common_runtime/gpu/gpu_device.cc:837] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GRID K520, pci bus id: 0000:00:03.0)
Initialized!

The first step is to find out where the hanging is happening. Could someone help print out the call stack of all threads when the hanging is happen, at least the unique ones?

I am also getting the same problem . Can any one already solved this problem ? Any suggestion how to overcome this problem.
ubuntu@ip-172-31-19-3:~/TensorFlowWorkSpace/rnn/wordSequence$ python sample.py -n=200 --prime='Hello '
I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcublas.so locally
I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcudnn.so locally
I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcufft.so locally
I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcuda.so.1 locally
I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcurand.so locally
I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:900] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
I tensorflow/core/common_runtime/gpu/gpu_init.cc:102] Found device 0 with properties:
name: GRID K520
major: 3 minor: 0 memoryClockRate (GHz) 0.797
pciBusID 0000:00:03.0
Total memory: 4.00GiB
Free memory: 3.95GiB
I tensorflow/core/common_runtime/gpu/gpu_init.cc:126] DMA: 0
I tensorflow/core/common_runtime/gpu/gpu_init.cc:136] 0:   Y
I tensorflow/core/common_runtime/gpu/gpu_device.cc:755] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GRID K520, pci bus id: 0000:00:03.0)
After this nothing happening.

@dipanjan06, since we cannot reproduce this problem locally, we need your help to debug this. While the process is hanging could you use gdb to attach to it and print out the call stack?

While the process is hanging, find out its process-id.
Run "gdb"
Run "attach ". If this fails saying you don't have the permission, follow the instruction which may have "sudo sysctl -w kernel.yama.ptrace_scope=0"
Once the process is attached, print out the callstack of all threads with "thread apply all bt"
Upload the entire output to a website such as "pastebin.com/" and paste the URL here.

This is a stack trace of my AWS instance, which is configured according to these instructions:
http://eatcodeplay.com/installing-gpu-enabled-tensorflow-with-python-3-4-in-ec2/
but with the following changes bazel 0.3.0 (instead of 0.1.8) and tensorflow 0.9.0 (instead of a specific commit)
Problem similar to above occurs when running cifar10_multi_gpu_train.py
gdb output: http://pastebin.com/xd7Z2eWZ
What I notice is high CPU on ksoftirqd, and checking /proc/interrupts there is a very high number of xen-pirq-msi on device nvidia:
proc/interrupts: http://pastebin.com/m47JVVtR
At somepoint after running, the OS becomes unresponsive to other inputs. Although I have found it very hard to get a reproducible TF GPU setup on AWS, I did get it running this configuration a couple of weeks ago. After some time working on this, I am pretty sure I have reproduced my initial configuration, and all I see now on this is freezes. I almost wonder if something has changed under the hood in AWS?

Hello ,
As requested please find the gdb stack trace .
http://pastebin.com/Trf15Tca
Regards,
Dipanjan
On Fri, Jul 15, 2016 at 12:14 AM, zheng-xq<EMAIL_ADDRESS>wrote:

@dipanjan06 https://github.com/dipanjan06, since we cannot reproduce
this problem locally, we need your help to debug this. While the process is
hanging could you use gdb to attach to it and print out the call stack?

While the process is hanging, find out its process-id.
Run "gdb"
Run "attach ". If this fails saying you don't have the permission,
follow the instruction which may have "sudo sysctl -w
kernel.yama.ptrace_scope=0"
Once the process is attached, print out the callstack of all
threads with "thread apply all bt"
Upload the entire output to a website such as "pastebin.com/" and
paste the URL here.

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/tensorflow/tensorflow/issues/1947#issuecomment-232755303,
or mute the thread
https://github.com/notifications/unsubscribe/ASxRktr8wdsU4Ks50aOua3YIUQH-mhskks5qVoOZgaJpZM4IHeU8
.

@ChrisHowlin, one thing I found in your log is "cuMemAlloc_v2", I wonder whether it consistently show up in the hanging? Could you repeat the  process and take multiple snapshots of the hanging callstacks?
@dipanjan06, thank you for the stack trace. However, it is not complete. The last line is "---Type  to continue, or q  to quit---". Please press  to get all the stack printout. Also it is worth repeating the process and taking multiple snapshots of the hanging callstacks, so we can find what are common among them, which are likely to be the culprit.

Hello,
As advised I have taken multiple snap shots of the call stack when the
actual process hangs after printing the following
____________________________________
I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:900] successful
NUMA node read from SysFS had negative value (-1), but there must be at
least one NUMA node, so returning NUMA node zero
*I tensorflow/core/common_runtime/gpu/gpu_init.cc:102] Found device 0 with
properties: *
name: GRID K520
major: 3 minor: 0 memoryClockRate (GHz) 0.797
pciBusID 0000:00:03.0
Total memory: 4.00GiB
Free memory: 3.95GiB
*I tensorflow/core/common_runtime/gpu/gpu_init.cc:126] DMA: 0 *
*I tensorflow/core/common_runtime/gpu/gpu_init.cc:136] 0:   Y *
I tensorflow/core/common_runtime/gpu/gpu_device.cc:755] Creating
TensorFlow device (/gpu:0) -> (device: 0, name: GRID K520, pci bus id:
0000:00:03.0)
_________________________________________________
StackTrace
http://pastebin.com/D5j4uKra
On Mon, Jul 18, 2016 at 12:48 AM, zheng-xq<EMAIL_ADDRESS>wrote:

@ChrisHowlin https://github.com/ChrisHowlin, one thing I found in your
log is "cuMemAlloc_v2", I wonder whether it consistently show up in the
hanging? Could you repeat the process and take multiple snapshots of the
hanging callstacks?
@dipanjan06 https://github.com/dipanjan06, thank you for the stack
trace. However, it is not complete. The last line is "---Type to continue,
or q to quit---". Please press to get all the stack printout. Also it is
worth repeating the process and taking multiple snapshots of the hanging
callstacks, so we can find what are common among them, which are likely to
be the culprit.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/tensorflow/tensorflow/issues/1947#issuecomment-233198674,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ASxRkgzFmnIDaciw-cdFIuoiSVkbDAkYks5qWn_9gaJpZM4IHeU8
.

@ChrisHowlin, @dipanjan06, thanks for the stack traces, they are very useful. I suspect this is a bug from the Cuda driver.

What are the Cuda driver version shown in your nvidia-smi?
Could you upgrade to the latest Cuda driver and see if the problem goes away.

Details:
I found that at both stack traces, two Cuda calls are still active, while all other threads are effectively sleeping. The first one is when a new thread is starting. And the second is a thread is allocating some memory. In one case it is a Cuda device memory, and in another case it is a Cuda host memory. And it seems that those two calls are deadlocking with each other. So the problem might be with the Cuda driver. Please try with the latest driver. Also I'll add the NVIDIA team to this discussion.
Thread 14 (Thread 0x7ff6ea7fc700 (LWP 6730)):
#0  0x00007ff763a89fdd in poll () at ../sysdeps/unix/syscall-template.S:81
#1  0x00007ff749ecac1b in ?? () from /usr/lib/x86_64-linux-gnu/libcuda.so
#4  0x00007ff764477184 in start_thread (arg=0x7ff6ea7fc700) at pthread_create.c:312
#5  0x00007ff763a9737d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111
Thread 1 (Thread 0x7ff764d4a740 (LWP 6687)):
#0  0x00007ff763a8e1e7 in ioctl () at ../sysdeps/unix/syscall-template.S:81
#1  0x00007ff7497aedea in ?? () from /usr/lib/x86_64-linux-gnu/libcuda.so
#13 0x00007ff74978fa6d in cuMemAlloc_v2 () from /usr/lib/x86_64-linux-gnu/libcuda.so
#14 0x00007ff75858f711 in perftools::gputools::cuda::CUDADriver::DeviceAllocate(perftools::gputools::cuda::CudaContext*, unsigned long long) ()
from /home/ubuntu/anaconda3/lib/python3.4/site-packages/tensorflow/python/_pywrap_tensorflow.so

Adding @benbarsdell from NVIDIA to this discussion to look at this the Grid Cuda driver issue.

@benbarsdell @zheng-xq friendly ping?

I'm experiencing the same problem as well. Ubuntu 14.04 on AWS g2.2xlarge, no reaction to kill -9 and Ctrl-C. Mnist log (nothing special):
$ python tensorflow/tensorflow/models/image/mnist/convolutional.py
I tensorflow/stream_executor/dso_loader.cc:108] successfully opened CUDA library libcublas.so locally
I tensorflow/stream_executor/dso_loader.cc:108] successfully opened CUDA library libcudnn.so locally
I tensorflow/stream_executor/dso_loader.cc:108] successfully opened CUDA library libcufft.so locally
I tensorflow/stream_executor/dso_loader.cc:108] successfully opened CUDA library libcuda.so.1 locally
I tensorflow/stream_executor/dso_loader.cc:108] successfully opened CUDA library libcurand.so locally
Successfully downloaded train-images-idx3-ubyte.gz 9912422 bytes.
Successfully downloaded train-labels-idx1-ubyte.gz 28881 bytes.
Successfully downloaded t10k-images-idx3-ubyte.gz 1648877 bytes.
Successfully downloaded t10k-labels-idx1-ubyte.gz 4542 bytes.
Extracting data/train-images-idx3-ubyte.gz
Extracting data/train-labels-idx1-ubyte.gz
Extracting data/t10k-images-idx3-ubyte.gz
Extracting data/t10k-labels-idx1-ubyte.gz

Solved this problem by installing new driver from Nvidia site. Just download the latest driver for your card. The solution is from here: https://groups.google.com/d/msg/torch7/kLusyLEj4oc/MLRvcCy_FAAJ
wget http://developer.download.nvidia.com/compute/cuda/7.5/Prod/local_installers/cuda_7.5.18_linux.run

And then I installed everything except the samples and driver :

chmod o+x cuda_7.5.18_linux.run
sudo ./cuda_7.5.18_linux.run

And then I downloaded and installed the new driver from http://www.nvidia.com/content/DriverDownload-March2009/confirmation.php?url=/XFree86/Linux-x86_64/361.28/NVIDIA-Linux-x86_64-361.28.run&lang=us&type=GeForce :

wget http://us.download.nvidia.com/XFree86/Linux-x86_64/361.28/NVIDIA-Linux-x86_64-361.28.run
chmod o+x NVIDIA-Linux-x86_64-361.28.run
sudo ./NVIDIA-Linux-x86_64-361.28.run

@mbektimirov Your solution works for me. I upgraded my Nvidia driver from version 352.39 to 367.44. Now I can run TF freely without GPU freezing. Thank you!

@benbarsdell @zheng-xq I am running into a similar problem.
My configuration is:

Ubuntu 16.04.1 TLS
Two Nvidia Titan X (Pascal) GPUs
Nvidia driver 367.57
Cuda 8.0.44
Cudnn 5.1.5

I have previously tried with:

Nvidia driver 367.44
Cuda 8.0.27 (and <IP_ADDRESS> patch)

I have built tensorflow from source. Here are the scripts I used to configure and [install](https://github.com/dojoteef/dotfil
es/blob/a7d2321/bin/install_tensorflow) tensorflow. The output of __git_version__ is below:
python -c 'import tensorflow as tf; print(tf.__git_version__)'
I tensorflow/stream_executor/dso_loader.cc:116] successfully opened CUDA library libcublas.so.8.0 locally
I tensorflow/stream_executor/dso_loader.cc:116] successfully opened CUDA library libcudnn.so.5 locally
I tensorflow/stream_executor/dso_loader.cc:116] successfully opened CUDA library libcufft.so.8.0 locally
I tensorflow/stream_executor/dso_loader.cc:116] successfully opened CUDA library libcuda.so.1 locally
I tensorflow/stream_executor/dso_loader.cc:116] successfully opened CUDA library libcurand.so.8.0 locally
v0.11.0rc0-787-gf6e0f64

Here are a few pastebins of bins of gdb output when the threads are stalled when running cifar_multi_gpu_train.py --num_gpus=2:

Hang after 3410 steps: dump1, dump2 (after waiting a bit)
Hang after 2910 steps: dump3

I also received a core dump running cifar_train.py (I didn't attach the core dump as it's nearly 300MB, though I can if it would be helpful):
...
2016-10-14 19:09:01.337748: step 1490, loss = 2.06 (1690.8 examples/sec; 0.076 sec/batch)
E tensorflow/stream_executor/cuda/cuda_event.cc:49] Error polling for event status: failed to query event: CUDA_ERROR_LAUNCH_FAILED
F tensorflow/core/common_runtime/gpu/gpu_event_mgr.cc:198] Unexpected Event status: 1
Aborted (core dumped)

I am not sure if the issues are related or not, but it seems likely that they are.
If there is anything you need me to do in order to help figure out/address the issues I am happy to. Not being able to use my GPUs is unfortunately really slowing down my ability to make progress. Thanks!

Just a follow up on this. I finally tracked this down to a faulty motherboard. Sorry for the false alarm. In case anyone else runs into an error case similar to mine and you happen to be using an Asrock X99 WS-E motherboard, it seems to be a common quality control problem they have.

Looks like on AWS driver update resolves the problem.
All reports seem to be resolved ATM.

@dojoteef I have the exact same problem - random freezes or CUDA_ERROR_LAUNCH_FAILED  errors with core dumps that are preceded by following kernel logs:
Jan 22 15:43:51 XXX kernel: [ 8793.084341] NVRM: GPU at PCI:0000:09:00: GPU-XXXXXXX-XXXX-XXXX-XXXX-XXXXXXXX
Jan 22 15:43:51 XXX kernel: [ 8793.084354] NVRM: GPU Board Serial Number: XXXXXXXXXXXX
Jan 22 15:43:51 XXX kernel: [ 8793.084358] NVRM: Xid (PCI:0000:09:00): 32, Channel ID 00000012 intr 00008000
Jan 22 15:43:51 XXX kernel: [ 8793.084518] NVRM: Xid (PCI:0000:09:00): 32, Channel ID 00000012 intr 00008000

These errors happen randomly and expected time of failure is about 2 hours, so training larger models is a nightmare.
I have the exact same setup like you with 2 Titan XPs with the same driver version, but I own an ASUS X99-E WS motherboard. How did you resolve your motherboard issues?
Also, it's worth to note that I don't experience any problems when running Torch.

@PiotrDabkowski I believe the issue could be the same despite a different motherboard manufacturer. This review on Newegg seems to indicate the PLX chips used for the PCIe bus are to blame. I believe your motherboard also uses those chips.
I fixed my issue by replacing my motherboard.

@dojoteef Thank you for your answer. Error 32 suggests a bad PLX chip. To confirm it I have been running gpu_burn test for half an hour now without errors. Will leave it running for 12 hours to make sure :)

I had the same problem before. It turns out that I've installed cuda 7.0 and cuda 8.0, nividia driver 367.57 on ubuntu 14.04. This issue happens when I forget to set the  LD_LIBRARY_PATH to cuda 8.0.

Related to this is an issue I posted about on stackoverflow which turned out to be a hardware issue. Program trained for awhile, then hung, then crashed, and appears to be a PCIe issue related to message scheduled interrupts (more info here and here). Setting kernel parameter pci=nommconf fixed the issue for me.

Experienced the same here. This seems to be only happening on the first time running tensorflow. The program responds to the sigterm about 10 minutes later and the following trials work just fine.

@zheng-xq Could you look at my stack traces also? I included several from multiple machines. I've tried updating nvidia-driver and running pci=nommconf without success.
https://pastebin.com/u/daniel_garvey

Hi, everyone. It might be very late to join this discussion.
Besides than updating bios if you are using X99-E WS/USB 3.1 and updating graphic driver,
You might also refer on this post if you are using windows 10.

I have encountered the same problem here.
My settings:
windows 10
CUDA 10
cuDNN V7
tensorflow 1.14
6G memory
it just stuck after creating Tensorflow device.


[ko] Fix wrong link in downward-api-volume-expose-pod-information.md

This is a Bug Report

Problem: In tasks/inject-data-application/downward-api-volume-expose-pod-information/ korean page, there is worng link related 환경변수.
Proposed Solution:
Change link [환경 변수](/docs/tasks/inject-data-application/environment-variable-expose-pod-information/#the-downward-api) to [환경 변수](/ko/docs/tasks/inject-data-application/environment-variable-expose-pod-information/#the-downward-api) on downward-api-volume-expose-pod-information
Page to Update:
https://kubernetes.io/ko/docs/tasks/inject-data-application/downward-api-volume-expose-pod-information/

Note
/language ko

/triage accepted

PR #30485 에 의해, dev-1.22-ko.3 에는 반영되었습니다.
dev-1.22-ko.3 이 main 에 merge 되면 해결될 예정입니다 😊
/assign

Resolved by the PRs #30485 & #30749
/close


setCatchHandler not being triggered on cache miss

Library Affected:
workbox 5.1.4
Browser & Platform:
Chrome desktop, et al
**Issue **:
In order to check a number of dynamically named caches (ie. page-cache-123 where 123 is the ID of an edition of content) I have added a caches.match into a fetch event listener. I did this because I couldn't figure a way to make workbox NavigationRoutes find caches inside my differently named caches. This works in that does load up that cache when the user is offline. However if I then visit any other page that isn't cached, I get a 'This site can't be reached' error, instead of the serviceworker using my setCatchHandler() to show my offline page. Is there a way I am meant to manually trigger the setCatchHandler() from the below fetch listener?
Or, better yet, how can i make a NetworkFirst navigation route that will actually search every cache no matter the cacheName?
I'm doing this so i can namespace caches so that the user can add + remove them for offline use. I'm using 5.1.4 as its part of a module working inside my CMS Drupal. I'm sure I'm missing a trick here...
Thanks!
 if (event.request.headers.get('accept').indexOf('text/html') !== -1 && event.request.mode === 'navigate') {
            event.respondWith((async () => {
            // Try to get the response from a cache.
            const cachedResponse = await caches.match(event.request, {ignoreSearch: true});
            // Return it if we found one.
            if (cachedResponse){
                return cachedResponse;
            }
            return fetch(event.request).catch(e => {
                console.log(e);
                // setCatchHandler(event); // how to fire this?
            });
        })());
      }

I think the relevant error from console is:
The FetchEvent for "https://staging.thesaturdaypaper.com.au/thebriefing" resulted in a network error response: an object that was not a Response was passed to respondWith().

You can see a staging version of the site running here: https://staging.thesaturdaypaper.com.au/

Hello @rupertdance!
One fundamental issue that would need to be sorted out first is that workbox-routing, and the various methods it exposes (like setCatchHandler()), work by registering their own fetch event listener, which then uses the routing information you configure to determine whether or not to respond to a given fetch event.
You can use other pieces of Workbox, like workbox-strategies, from inside your own fetch event listeners, without using workbox-routing. But if you do want to use workbox-routing, don't attempt to call its methods from inside your own fetch event listener.
Going back to your original question, about not being able to find a way to match navigation requests against different caches, I'd say that in this particular case it would be best to use workbox-routing but not use workbox-strategies, like so:
workbox.routing.registerRoute(
  ({request}) => request.mode === 'navigate',
  async ({request}) => {
    const cachedResponse = await caches.match(request, {
      ignoreSearch: true,
    });

    if (cachedResponse){
      return cachedResponse;
    }

    try {
      return await fetch(request);
    } catch (error) {
      console.log(error);
      // Replace with whatever fallback logic you want:
      return await caches.match('/fallback.html');
    }
  }

If you were using Workbox v6, where there's a clean way of defining your own custom Strategy subclasses, I'd say that would be a good, reusable option, as you could define a strategy that just checked every cache instead of one specific cache.
Hopefully that helps!

Thanks so much Jeff, great explanation and very helpful there!  If you'd indulge a follow up question it'd really help me out! I'm attempting to cache selected pages before returning the return await fetch(request); but having some trouble, perhaps as the documents are using then() and its conflicting with the await? Is there a clean way to cache the pages as do the return there?

If you're using Promise-based APIs, it's technically possible to mix .then() and await, and every once in a while there is actually a good reason to do so. But in general, you'll find it much easier to write your code if you exclusive use await (or if you exclusively use .then()).
Guides like this one have advice for converting from .then() to await, along with any gotchas that you need to pay attention to.


Add 1lobochnia.onmicrosoft.com emails to licence

School domain is https://1lo.bochnia.pl/ but email domain is 1lobochnia.onmicrosoft.com

@philipto there is a problem with this as this school gives emails in diffrent domains to students. I found a post on this schools official facebook that uses email with this domain: https://www.facebook.com/1lobochnia/posts/pfbid0k6d1CzfoMSumojpnaninf1vsM1kpGeVFYwCMeDtLMSSPfKKbVtGNUN7drZRnhTZ1l
To prove that this facebook page is owned by this school you can go to https://1lo.bochnia.pl/ and on the bottom of the page there is a redirection to this exact facebook page.

@philipto There is currently a holiday break. I talked with him and he will ask one of the teachers to post on schools website how emails are assigned. Is it possible to put this pull request on hold for around a week?

@maxszymczyk Yes, certainly. In the meantime feel free to apply for free educational license with an official document which proves that you are a student. You can do it using "OFFICIAL DOCUMENT" tab at https://www.jetbrains.com/shop/eform/students.
Thank you for your understanding!

@maxszymczyk You might miss my previous comment. Please react.

@maxszymczyk I am sorry, this request remains unanswered for a while. I have to close it without merging. Please reopen and comment if you have an update regarding the aforementioned issue. Thank you for your understanding!


Resize admin forms

Whoops, should be fixed now
On Fri, Dec 2, 2016 at 1:22 PM, Dean Farrell<EMAIL_ADDRESS>wrote:

@lfarrell commented on this pull request.
In static/js/admin/src/CreateWorkObjectForm.js
https://github.com/UNC-Libraries/Carolina-Digital-Repository/pull/545#pullrequestreview-11212834
:

  var dialogBox = new ModalCreate(this.options);
  var formContents = dialogBox.formContents(resultObject);

  this.dialog = $("
" + formContents + "
");
  this.$form = this.dialog.first();

this.dialog.dialog = dialogBox.modalDialog(this.dialog, self);

// Initialize callback methods prior to creating dialog

this.dialog.on("dialogclose", function(e, ui) {

	$(this).dialog("destroy");

}).on("dialogresizestop", function(e, ui) {

	var height = $(this).dialog("option", "height") - 50;

	iframe.attr("height", height);

}).on("dialogopen", function(e, ui) {

	console.log("dialog opened");

Looks good. Stray console.log left over.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/UNC-Libraries/Carolina-Digital-Repository/pull/545#pullrequestreview-11212834,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AA7MUufEyHrrzHuVD8S-6ArbODMtCAA4ks5rEGHtgaJpZM4LCu55
.


Roadmap to v1.0.0

This project is currently used in some other projects which are already in production.
We want to follow the release scheme of Semantic Verisioning for upcoming releases.
For the v1.0.0 we will intodruce some backwards compatibility breaks in order to create a more fitting consumer expierence in the future. There is currently no intention for v1.0.0 to change the communication with official onOffice API. The intention for this library is to ease the implementation into existing eco-systems.
I set up a roadmap that should adress all major changes for each past and upcoming versions:
v0.1.0 ✅

Released: 2020-02-12
Adding this repository to packagist
Create general documentation
Add composer.json

v0.2.0✅

Released: 2020-02-24
Use PSR-4 composer Autoloader
Adding unit tests via PHPUnit
Adding CI pipline to the repository

v1.0.0

Planned 2020?
Introduce PSR-12
Refactoring code for better consumer expierience
Use PSR-7 Request Objects
Adding static code analysis tool with PHPstan
Adding code style analysis with CSFixer

This ticket aims to serve as a basic overview and does not contain every single change. Please also see the CHANGELOG for more details.
We try to update this continously.
Please keep the discussions in this ticket to a minimum.  So problems can be identified fast and discussed more focused.
Please open an issue if you have further questions or recommandations.

That's a good start I think. I would like to add the renaming of the main folder from SDK to src and correcting the casing of the main class in accordance with PSR-12 to the list.

Add a v0.2.0 in between, to create a better experience to add this library. These changes are BC, but according to semver we are still on the major version v0.x.y which can contain BC.

We should also probably define a PHP version requirement in the composer.json. I think currently the SDK aims to work against PHP 7 and above.

Since this list confuses some people, we'll close this issue for now.
v0.2.0 is already used in several productive system there is currently no need for breaking changes in the near future.


💡 [FEATURE] - Add 'PHP Programming Language' complete Resources

Idea Contribution

[X] I have read all the feature request issues.
[X] I'm interested in working on this issue
[X] I'm part of GSSOC organization

Explain feature request
The current resources section lacks comprehensive coverage of the PHP programming language.The absence of PHP programming resources limits users' ability to access reliable and diverse learning materials for PHP development.
Explain your solution
I propose adding comprehensive resources for learning PHP, covering topics from basics to advanced levels. This will include:
PHP Basics:

Syntax, variables, and data types
Control structures (if-else, loops)
Functions and classes

Web Development with PHP:

Handling forms and user input
Working with databases (MySQL, PostgreSQL)
Session management and cookies
File handling and manipulation

PHP Frameworks:

Introduction to popular frameworks (e.g., Laravel, Symfony, CodeIgniter)
Building web applications with frameworks

Advanced PHP Topics:

Object-oriented programming in PHP
Error handling and debugging
Security best practices
Performance optimization

PHP Project Ideas:

Real-world projects (e.g., blog, e-commerce site)
Sample projects

Any alternative approaches/features
To enhance the learning experience, I suggest including various types of resources such as books, online courses, tutorials, and documentation. Additionally, providing a curated list of PHP-related YouTube channels and websites would offer learners diverse learning options.
Additional Context
This feature request aims to provide users with a comprehensive set of resources for learning PHP, catering to beginners and experienced developers alike. By including resources for both fundamental concepts and advanced topics, users can gain a solid understanding of PHP and its applications in web development.

@jfmartinz Please assign me this issue


Cherry-pick #9149 into 0.30-stable branch

#9149 resolved an issue where Edit on GitHub links lead to a release branch, which results in pull requests being opened against a release branch instead of master. Many issues "resolved" in this manner have already been addressed in master.
This PR is intentionally against 0.30-stable as it is cherry-picking changes already landed to master.

@JoelMarcey you're the cherry-picking expert here, did I do it right? :)

By analyzing the blame information on this pull request, we identified @caabernathy and @JoelMarcey to be potential reviewers.

@hramos I think so. I see 8 commits here. We all of these commits part of one final squashed commit when landed into master? Or are all of these separate commits in master itself?

My process here was:

Check out 0.30-stable locally.
Go to https://github.com/facebook/react-native/pull/9149/commits to find all the commits in that PR
For each of them, run git cherry-pick <commit> in order.
Commit

Seems like for step 2 I should have cherry-picked just the one squashed commit to master instead? That being 01cb1e4ef679dae822e0780331b8c5ef8aab43ad

@hramos Yeah. I think the one, squashed commit would be better to cherry-pick moving forward. However, GitHub loves us and gives us a  Squash and Merge :)
So we are ok for this one, as long as we choose that.

cc @grabbou

Since 0.31 stable is now out, I'll go ahead and open a new PR against it with a proper single squashed commit.


Email Templates: Revise padding and background color

Aisla is on leave from end of day until Wednesday – Mhairi and Susan are copied in, if you’re able to look at the above we can get added to the feedback doc for Bloomreach.
From Ailsa: _We are just finalising the different client/device testing so are still to feed back to BR as testing really began on Monday. My aim is to get info to BR tomorrow/Monday if possible (as the number of amends are small so far) so we can hopefully have final build signed off middle of next week. _


feat: add plain cfp page

It will be shown like this:

Right now, only "TBA" is shown:

Closes #5

LGTM! Thank you for updating the css, too.


latency of ping probe result is not accurate when targets number is big

Describe the bug
The latency of ping probe result is not accurate when targets number is big
Cloudprober Version
v0.11.1
To Reproduce
Steps to reproduce the behavior:

compile the ping.go in probes/ping/cmd folder to binary file
use the ping to probe about 50 targets
the result shows that latency (corresponding to ping rtt) is bigger than the latency when pinging to each target respectively

Additional context
Add any other context about the problem here.

@chenlujjj Latency measurement depends on when outgoing packet is sent by the operating system and when incoming packet is received and processed by cloudprober. Increasing the number of targets can possibly cause delays if packets are not being delivered or processed fast enough -- it will likely  depend on many factors - CPU available, probe frequency, and possibly some operating system parameters as well.
What kind of latency impact are you seeing? In our setup, we run ping probes with more than 1000 targets, using less than half a core. We don't see a difference in latency measurement that we care about (this setup is not to measure latency performance anyway -- as long as it's within a threshold).

Hi, @manugarg , thank you for your reply.
When pinging about 50 targets, the average rtt is in 4~7 ms range, in contrast, when pinging one target, the average rtt is in 1~2 ms range.
I was using the default config in config.proto, except that I set use_datagram_socket as false. BTW, does this setting have effect on latency ?

The reason why I set use_datagram_socket as false is that, with the default config(use_datagram_socket=true), the ping result shows success=0.  It turns out the recvPackets function always return of timeout error: "read udp <IP_ADDRESS>:0: raw-read udp <IP_ADDRESS>:0: i/o timeout". I haven't figure out the cause. My OS is macOS 10.15.6.

I've filed #537 to investigate the datagram socket (use_datagram_socket) breakage for MacOS. I could reproduce it on my end (it seems only IPv4 is impacted, IPv6 is fine). Thanks a lot for finding this issue, I was completely unaware of it.
ICMP over datagram socket is slightly more efficient as cloudprober doesn't have to deal with all the ICMP packets in that case. By default, OS delivers all ICMP packets to all applications that are interested in ICMP.
Also, latency increase you're seeing doesn't seem out of ordinary -- lower latency targets do get impacted more because latency increase is constant: 3ms added to 1ms has much bigger impact than say 3ms added to 25ms. I am working on a change that will remove impact of the packet-receiving delays from latency computation; it will take a few days. I'll also try to do some more testing on my end.

@chenlujjj Just FYI, I've submitted the fix (#539) for the MacOS datagram socket issue. In case, you want to give it a try.

@manugarg Thanks, it works well now.

Cool. I've also filed #540 to increase accuracy of ping probe latency measurement.

Branch https://github.com/google/cloudprober/tree/ping_so_timestamp (#541) has improvements that will make latency measurement much more accurate. Given the holidays, I'll probably not be able to merge these changes in master branch before Jan 1st week or so.

@chenlujjj Ping probe latency measurement must be much more accurate after #546. If you're using docker, you can test it with docker tag master.  I'll go ahead and close this now. Feel free to re-open if you've any comments.

@chenlujjj Ping probe latency measurement must be much more accurate after #546. If you're using docker, you can test it with docker tag master.  I'll go ahead and close this now. Feel free to re-open if you've any comments.

Hi @chenlujjj,
I was wondering if you were able to test the latest changes in your setup. We are seeing much more accurate measurements in our setup now. One example:
https://github.com/google/cloudprober/issues/540#issuecomment-751839854

Hi @chenlujjj,
I was wondering if you were able to test the latest changes in your setup. We are seeing much more accurate measurements in our setup now. One example:
https://github.com/google/cloudprober/issues/540#issuecomment-751839854


Add support for AES CBC mode in mbedTLS shim

Add support for AES CBC mode of operation in mbedTLS shim driver. Refactor mtls_session_setup() to allow multiple cipher modes to co-exist.

Yes.

@tbursztyka, I have added some more commits to this PR. Initially I was planning on opening another PR for ECB mode, but that PR would depend on this anyway. So just added those commits here.
Please review again.

CI failure looks unrelated. Can someone please verify?

@galak @nashif please review.


build system abstraction PEP

You may want to edit the title of this PR to reflect its content.

This version looks quite good and clear to me.

https://mail.python.org/pipermail/distutils-sig/2016-January/028152.html

Is there still interest in pushing this forwards?

certainly there is interest in pushing this forward. I don't know that we have to support all the possible interactions of ways of putting a Python layout together: at the heart of it, we're never going to be called for a different interpreter - pip always uses the interpreter of the resulting thing to invoke builds.

I don't know that we have to support all the possible interactions of ways of putting a Python layout together: at the heart of it, we're never going to be called for a different interpreter - pip always uses the interpreter of the resulting thing to invoke builds.

Was this meant as a reply to this comment of mine? If so: pip itself will always be running in the target Python interpreter, but that need not be true of the build tool it's invoking for pip install -e. In the case of flit, for instance, it requires Python 3, so if you want to install into a Python 2.7 environment, flit will necessarily be running with another interpreter, and it needs to know where to install to.
We can also imagine build tools that need not run inside a Python interpreter at all.
Maybe development installs (-e) are too complex a topic, and we should leave them out of this proposal and write a separate proposal to standardise that interface.

Wait, this py3 thing is a problem :-(
Even without editable mode, there's a problem with pip install pkgname (assuming no wheel is available, which I recognize is unlikely for flit-using packages), or pip install path/ (much more likely, since this will be the standard incantation that we teach users for installing arbitrary packages from e.g. git checkouts, instead of setup.py install). These commands have to be run using the target python, simply because that's the only python we know about or that is guaranteed to exist -- random users don't necessarily have a python 3 interpreter available, and pip install python3 isn't really a thing.
In a sense I guess this is not too different from how packages may also require that you provide C compiler and so forth. But in that case we still assume that the logic that provides glue between pip and the C compiler has to be pip installable, because what other choice do we have? I suppose you could make a python 2 compatible flit shim that just finds a copy of python3 and uses it to flit (or print a sensible error if this fails).
(Or I guess technically there's nothing stopping us from making wheels that contain a python 3 interpreter inside them, except good sense and/or a certain ingrained conformity to traditional norms.)

...I semi-seriously like the last suggestion. Provide 'Python 2' wheels for flit that bundle their own copy of a Python 3 interpreter. I'm probably not actually going to bother to do that, because messing around with all the different builds sounds tedious, but it's amusing to know that it's possible.

But in that case we still assume that the logic that provides glue between pip and the C compiler has to be pip installable, because what other choice do we have?

That it's not pip-installable, which is perfectly reasonable.
I think you're asking for major problems by trying to have non-wheel cross-talk between different Python installs. I'd suggest to stick to a simple rule: either the build tool uses the same interpreter, or it's managed by the user.

In the case of flit, for instance, it requires Python 3, so if you want to install into a Python 2.7 environment, flit will necessarily be running with another interpreter, and it needs to know where to install to.

flit doesn't need to install anything, that's what pip is for. Even for a develop command, flit should build the project in-place, and pip should take care of installing the egg_info or similar file to make that in-place build visible right?

So python3 and python2 and flit. when pip is installing something in a python 2 environment there is no guarantee python3 is available - and pip won't know how to install flit in that situation - it would need to be treated like e.g. 'make' or 'autoconf'. If flit wants to be used for building python2 compatible things, and be like that, it certainly can. That doesn't affect the spec here though - just use the already defined variable PYTHON to pass the PYTHON that pip is actually using down for however flit's cross-python stuff is defined, and you should be good to go.

@rgommers :

Even for a develop command, flit should build the project in-place, and pip should take care of installing the egg_info or similar file to make that in-place build visible right?

Possibly, but that is not what this proposal currently says. It says that pip invokes the build tool to do a development install however the build tool wants.
I also don't like the 'egg link' method that setuptools/pip uses, so flit will retain the ability to do development installs using symlinks, even if pip doesn't invoke it.

Even for a develop command, flit should build the project in-place, and pip should take care of installing the egg_info or similar file to make that in-place build visible right?

Possibly, but that is not what this proposal currently says. It says that pip invokes the build tool to do a development install however the build tool wants.

Ah, I didn't see that. That is then completely out of line with the intention of the rest of this PEP. The build tool should stick to building, not installing. It will also give problems: if the build tool inserts some egg_info thingy or symlink or ... that pip doesn't know about, and then the user does a normal install, there are two installed versions and it's not clear which one is first on sys.path. @rbtcollins can this be changed?

I also don't like the 'egg link' method that setuptools/pip uses, so flit will retain the ability to do development installs using symlinks, even if pip doesn't invoke it.

Totally agree that egg_info, .pth files, etc. all smell.

I'm inclined to say that we should drop development installs from this proposal for now, and come back to them separately. It feels like they're a pretty big topic on their own.

re: editable installs. They exist, pip supports them. We can either break the workflow of any users of a project that adopts this thing, or we can keep supporting them and in future do the hard work to standardise them. I prefer not to break users.

re: editable installs. They exist, pip supports them. We can either break the workflow of any users of a project that adopts this thing, or we can keep supporting them and in future do the hard work to standardise them. I prefer not to break users.

Nothing needs to be broken for users. My point is that the text now says that the build tool should install, while it should imho be saying that the build tool should build and the install tool should install that build, i.e. make it visible via an egg-info file or symlink.
I think that that's what you already meant, so I'm simply asking for a textual clarification. If that's not what you meant, then I don't understand the reason why you're letting the build tool take responsibility for installing something.

I'm going to merge this PR not to accept it, but so that it's managed inside of the repository and I'll give @rbtcollins commit bit. I'm also going to assign it a number.

Ok. This is now PEP 516.

re: editable installs. They exist, pip supports them. We can either break the workflow of any users of a project that adopts this thing, or we can keep supporting them and in future do the hard work to standardise them. I prefer not to break users.

It's certainly nice if we can keep it working for users, but defining how it works seems to be a major difficulty with this PEP, and I'd rather it went through without a provision for development installs than got stuck trying to deal with that.
@rgommers:

My point is that the text now says that the build tool should install, while it should imho be saying that the build tool should build and the install tool should install that build, i.e. make it visible via an egg-info file or symlink.

If we do this, then we need to define what the build tool should build. In the normal install case, it builds a wheel, but that doesn't work for a development install. Probably the logical thing for it to build is a dist-info directory, but that's still somewhat ambiguous - e.g. dist-info inside a wheel is a bit different from the installed dist-info defined in PEP 376. Also, for instance, there's not much point in recording hashes of all the files in a development install, because the point is that they may change without reinstallation.

If we do this, then we need to define what the build tool should build.

Only where, not what. The install tool doesn't have to, and must not, care what is built by the build tool.

In the normal install case, it builds a wheel, but that doesn't work for a development install. Probably the logical thing for it to build is a dist-info directory, but that's still somewhat ambiguous

No, it builds only whatever is needed to make the package work completely in the location it's building the development build. So usually nothing but compiled extensions and generated Python files (version.py for example). dist-info isn't needed for anything here.

e.g. dist-info inside a wheel is a bit different from the installed dist-info defined in PEP 376. Also, for instance, there's not much point in recording hashes of all the files in a development install, because the point is that they may change without reinstallation.

Hashes are not needed for anything, and what pip needs is already covered by the PEP, this text:
Note that the metadata generated by the metadata command, and the metadata
present in a generated wheel must be identical.

@rgommers: editable installs need metadata so that pip and other tools can figure out that the install exists, can know what version it is (so that they know it can satisfy dependencies), and to support uninstall. All of these are a bit broken right now, but just removing the metadata entirely would be a regression. Also, editable installs may include scripts, which need to get installed onto PATH somehow. Also, in a perfect world they should do things like respect the platlib / purelib distinction, and support all the various file install locations that wheels do -- this doesn't actually happen right now, but if we sit down to do editable installs "right" then it probably needs to be sorted.
I started out with a similar opinion as you, but @rbtcollins convinced me that the swamp is much wider and deeper than that :-(

editable installs need metadata so that pip and other tools can figure out that the install exists, can know what version it is (so that they know it can satisfy dependencies), and to support uninstall.

Clearly yes, but that metadata is what is output by the metadata command in this PEP and needs to be put there by the installer right? I've just tried pip install -e . --user to verify what it does, which isn't that complex. A file packagename.egg-link goes into site-packages, and a package-name.egg-info/ is put in .. pip uninstall package then only removes packagename.egg-link.

All of these are a bit broken right now, but just removing the metadata entirely would be a regression.

No one suggests removing the metadata. It can be retrieved by the install tool with the metadata and put in the right place.

editable installs may include scripts, which need to get installed onto PATH somehow.

Yes, that's probably the one thing that's necessarily a bit complicated.

Also, in a perfect world they should do things like respect the platlib / purelib distinction

Why? Is there a usecase other than in-place builds that I'm missing? The pip docs explain exactly nothing about what editable installs are for, so I'm just going with the only usecase I'm aware of.

I started out with a similar opinion as you, but @rbtcollins convinced me that the swamp is much wider and deeper than that :-(

If there's a discussion somewhere that I missed, can you provide a link? I'd really like to understand the actual problem here, because it seems quite problematic to me to have a PEP that attempts to cleanly split build from install, and then has a develop command that let's the build tool do an install.


H2 Assert fails sometimes at Http2DependencyTree::deactivate

This happens sometimes when I terminate h2load after running it for a while.
[Jun 28 15:52:56.177] Server {0xb0004000} DEBUG: <Http2ClientSession.cc:254 (do_io_close)> (http2_cs) [0] session closed
[Jun 28 15:52:56.177] Server {0xb0004000} DEBUG: <Http2ConnectionState.cc:1114 (delete_stream)> (http2_con) [0] [199] Delete stream
[Jun 28 15:52:56.177] Server {0xb000a000} DEBUG: <Http2ClientSession.cc:254 (do_io_close)> (http2_cs) [1] session closedFatal: ./Http2DependencyTree.h:319: failed assertion `node->parent->queue->top() == node->entry`

2017-06-28 15:52:56.177736+0900 traffic_server[67848:12159540] Fatal: ./Http2DependencyTree.h:319: failed assertion `node->parent->queue->top() == node->entry`
[Jun 28 15:52:56.177] Server {0xb000a000} DEBUG: <Http2ConnectionState.cc:1114 (delete_stream)> (http2_con) [1] [199] Delete stream
Process 67848 stopped
* thread #5, name = '[ET_NET 11]', stop reason = signal SIGABRT
    frame #0: 0x000000000060bd42 libsystem_kernel.dylib`__pthread_kill + 10
libsystem_kernel.dylib`__pthread_kill:
->  0x60bd42 <+10>: jae    0x60bd4c                  ; <+20>
    0x60bd44 <+12>: movq   %rax, %rdi
    0x60bd47 <+15>: jmp    0x604caf                  ; cerror_nocancel
    0x60bd4c <+20>: retq
(lldb) bt
* thread #5, name = '[ET_NET 11]', stop reason = signal SIGABRT
  * frame #0: 0x000000000060bd42 libsystem_kernel.dylib`__pthread_kill + 10
    frame #1: 0x0000000000753457 libsystem_pthread.dylib`pthread_kill + 90
    frame #2: 0x000000000053d420 libsystem_c.dylib`abort + 129
    frame #3: 0x000000000002a160 libtsutil.8.dylib`ink_abort(message_format="%s:%d: failed assertion `%s`") at ink_error.cc:99
    frame #4: 0x000000000002703f libtsutil.8.dylib`::_ink_assert(expression="node->parent->queue->top() == node->entry", file="./Http2DependencyTree.h", line=319) at ink_assert.cc:37
    frame #5: 0x00000001001a4880 traffic_server`Http2DependencyTree<Http2Stream*>::deactivate(this=0x0000000000c0f080, node=0x0000000005c04030, sent=0) at Http2DependencyTree.h:319
    frame #6: 0x00000001001a473d traffic_server`Http2ConnectionState::delete_stream(this=0x0000000000ef9e58, stream=0x000000000d7073e0) at Http2ConnectionState.cc:1120
    frame #7: 0x00000001001a2bb6 traffic_server`Http2ConnectionState::cleanup_streams(this=0x0000000000ef9e58) at Http2ConnectionState.cc:1089
    frame #8: 0x00000001001a132b traffic_server`Http2ConnectionState::main_event_handler(this=0x0000000000ef9e58, event=2252, edata=0x0000000000ef9c00) at Http2ConnectionState.cc:873
    frame #9: 0x000000010001e0b0 traffic_server`Continuation::handleEvent(this=0x0000000000ef9e58, event=2252, data=0x0000000000ef9c00) at I_Continuation.h:153
    frame #10: 0x000000010019e5cc traffic_server`send_connection_event(cont=0x0000000000ef9e58, event=2252, edata=0x0000000000ef9c00) at Http2ClientSession.cc:58
    frame #11: 0x000000010019f0a4 traffic_server`Http2ClientSession::do_io_close(this=0x0000000000ef9c00, alerrno=-1) at Http2ClientSession.cc:257
    frame #12: 0x000000010019dc31 traffic_server`Http2ClientSession::main_event_handler(this=0x0000000000ef9c00, event=3, edata=0x00000000038acea8) at Http2ClientSession.cc:324
    frame #13: 0x000000010001e0b0 traffic_server`Continuation::handleEvent(this=0x0000000000ef9c00, event=3, data=0x00000000038acea8) at I_Continuation.h:153
    frame #14: 0x0000000100318878 traffic_server`write_signal_and_update(event=3, vc=0x00000000038acd00) at UnixNetVConnection.cc:155
    frame #15: 0x0000000100318a8d traffic_server`write_signal_done(event=3, nh=0x0000000003406bf0, vc=0x00000000038acd00) at UnixNetVConnection.cc:197
    frame #16: 0x0000000100318681 traffic_server`write_signal_error(nh=0x0000000003406bf0, vc=0x00000000038acd00, lerrno=-61486120) at UnixNetVConnection.cc:216
    frame #17: 0x00000001003182d2 traffic_server`write_to_net_io(nh=0x0000000003406bf0, vc=0x00000000038acd00, thread=0x0000000003403000) at UnixNetVConnection.cc:534
    frame #18: 0x0000000100317a65 traffic_server`write_to_net(nh=0x0000000003406bf0, vc=0x00000000038acd00, thread=0x0000000003403000) at UnixNetVConnection.cc:400
    frame #19: 0x000000010030ba83 traffic_server`NetHandler::mainNetEvent(this=0x0000000003406bf0, event=5, e=0x000000000104c640) at UnixNet.cc:514
    frame #20: 0x000000010001e0b0 traffic_server`Continuation::handleEvent(this=0x0000000003406bf0, event=5, data=0x000000000104c640) at I_Continuation.h:153
    frame #21: 0x000000010033da75 traffic_server`EThread::process_event(this=0x0000000003403000, e=0x000000000104c640, calling_code=5) at UnixEThread.cc:122
    frame #22: 0x000000010033e2da traffic_server`EThread::execute(this=0x0000000003403000) at UnixEThread.cc:266
    frame #23: 0x000000010033ce0c traffic_server`spawn_thread_internal(a=0x000000000092db00) at Thread.cc:91
    frame #24: 0x000000000075093b libsystem_pthread.dylib`_pthread_body + 180
    frame #25: 0x0000000000750887 libsystem_pthread.dylib`_pthread_start + 286
    frame #26: 0x000000000075008d libsystem_pthread.dylib`thread_start + 13

Ugh. This affects 7.1.x I assume?

Yeh, but I don't think it's a  7.1.0 show stopper because you can disable H2 stream priority and I guess 7.0 has the same issue.

Sometimes, ATS receives several streams with same weight.
       root
      / | \
    B D  C
    3 3  3

Then the client session received ERROR_EVENT(or VC_EVENT_EOS). We will release all the streams in the stream list.
The problem is that we use push to insert the stream into list. For example: we receive the stream  A->B->C and insert the stream into stream list with stream_list.push. Then stream_list is C->B->A. But the dependencies tree is a vector, the _root->queue is [A, B, C] and top is C.
So we  remove C  firstly and it asserted when client aborted.

[Jul 16 17:34:08.900] Server {0x7ffff1edd700} DEBUG: <Http2DependencyTree.h:176 (add)> (h2_dependency) add nodes: 0x600e0001be60, parent_id:<PHONE_NUMBER>88032, id: 1, weight:<PHONE_NUMBER>88047
[Jul 16 17:34:08.936] Server {0x7ffff1edd700} DEBUG: <Http2DependencyTree.h:305 (activate)> (h2_dependency) active node:0x600e0001be60
[Jul 16 17:34:08.936] Server {0x7ffff1edd700} DEBUG: <Http2DependencyTree.h:154 (_find)> (h2_dependency) find nodes :(nil)
[Jul 16 17:34:08.936] Server {0x7ffff1edd700} DEBUG: <Http2DependencyTree.h:176 (add)> (h2_dependency) add nodes: 0x600e0001bdf0, parent_id:<PHONE_NUMBER>88032, id: 3, weight:<PHONE_NUMBER>88047
[Jul 16 17:34:08.937] Server {0x7ffff1edd700} DEBUG: <Http2DependencyTree.h:305 (activate)> (h2_dependency) active node:0x600e0001bdf0
[Jul 16 17:34:08.937] Server {0x7ffff1edd700} DEBUG: <Http2DependencyTree.h:154 (_find)> (h2_dependency) find nodes :(nil)
[Jul 16 17:34:08.937] Server {0x7ffff1edd700} DEBUG: <Http2DependencyTree.h:176 (add)> (h2_dependency) add nodes: 0x600e0001bd80, parent_id:<PHONE_NUMBER>88032, id: 5, weight:<PHONE_NUMBER>88047
[Jul 16 17:34:08.938] Server {0x7ffff1edd700} DEBUG: <Http2DependencyTree.h:305 (activate)> (h2_dependency) active node:0x600e0001bd80
[Jul 16 17:34:08.938] Server {0x7ffff1edd700} DEBUG: <Http2DependencyTree.h:319 (deactivate)> (h2_dependency) deactive node:0x600e0001bd80
Fatal: Http2DependencyTree.h:321: failed assertion `node->parent->queue->top() == node->entry`


Typo in Week 03_SLU05 under Pull Requests section

Soon I'll start spotting bugs. For now, see my first issue below (a little typo. lol)

Ty for opening an issue! This one is fixed so I'm closing


fix: fix a typo

Type of change:
Typo fix
Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] My changes generate no new warnings

@Naresh-Khatri
You have to create an issue first 🙂
Create an issue and I'll assign it to you 👍