Improve Android PlatformView selection logic

(This is a summary of my current understanding; it's possible there are mistakes here.)
Prior to Flutter 3.0, we had two modes for Android PlatformViews:

Virtual Display: min SDK version 20, lots of limitations around non-trivial views (no a11y support, some secondary controls in webviews didn't work, etc.)

This was selected using initAndroidView, which mapped to TextureAndroidViewController.

Hybrid Composition: min SDK version 19: has threading implications, and performance on Android <10 is poor, but highly compatible.

This was selected using initSurfaceAndroidView, which mapped to SurfaceAndroidViewController.

In 3.0 we added a new mode (it doesn't have a formal name, but the initial PR for it refers to "hybrid composition rendered as a texture layer", so I'm going to call it Texture Layer Hybrid Composition for now). The theory was that this would be strictly better than both modes and would thus replace both, and it was landed that way. But since then, various regressions were discovered and changes were made to the flow, most notably the recent https://github.com/flutter/engine/pull/33599
In the new flow, AFAICT, the modes are:

Texture Layer Hybrid Composition: min SDK version 23, and doesn't work with SurfaceView. Also apparently doesn't handle transparency on SDK <29

This is selected using either initSurfaceAndroidView or initAndroidView if the SDK and view type requirements are met.

Virtual Display: now selected as a fallback for initSurfaceAndroidView or initAndroidView for SDK <29 or for SurfaceView native views.
Hybrid Composition: now selected with initExpensiveAndroidView.

If this is correct, there are some pretty bad effects from the current state, for plugins that previously used Hybrid Composition. They now either use the new TLHC mode (which was the initial goal, when it was thought that this was a transparent update), or with the most recent change fall back to Virtual Display. So for instance webview_flutter (which we had previous switched to default to HC), which we don't want to be using VD due to the significant limitations, now does in some cases, in which case we unexpectedly:

dropped support for SDK 19, and
will have functionality regressions in SDK 20-22

And the only way to fix that would be to fully switch it to HC again (initExpensiveAndroidView), which means we wouldn't get the new behavior mode even when it would be supported.
I don't think this is a good state to leave the transition in. I see two better options:

Revert the behavioral change for initSurfaceAndroidView (so it goes back to using HC) and add a new explicit opt-in to the new mode.
Keep track of whether initSurfaceAndroidView or initAndroidView was originally called, and restructure things so that the fallback in unsupported cases is either to VD or HC depending on what was originally called, so that existing HC plugins don't have behavioral changes on SDK 20-22.

/cc @bparrishMines @cyanglaz @GaryQian @dnfield @Hixie for thoughts.

FYI a context check to ensure that the context from the view factory's
override fun create(context: Context?, viewId: Int, args: Any?): PlatformView {}

within the View/Activity is failing a check in https://github.com/flutter/engine/pull/33599 when that is the context that is being passed.
The error is:
Unexpected platform view context. When constructing a platform view in the factory, use the context from PlatformViewFactory#create, view id: 0
So this has been broken somehow in https://github.com/flutter/engine/pull/33599.

Any workaround for this ?

Any workaround for this ?

Could you elaborate on your question? There are different possible outcomes a plugin author might want; without knowing what your goal is we can't say if there's a way of achieving it in the short term.

I think option 1 is acceptable and safe.
I'm not fully understand option 2. By "keep track of", did you mean (when initSurfaceAndroidView is used)each plugin needs to keep track of the original method and does the fullback manually? If so, this requirement might be too implicit as I'm not sure how we can force the plugin author to do that without introducing a breaking change.

I do not fully understand option 2. By "keep track of", did you mean (when initSurfaceAndroidView is used)each plugin needs to keep track of the original method and does the fullback manually?

No, sorry for being unclear; I mean that we would change the current logic of "if TLHC isn't supported, fall back to VD" to instead fall back to:

VD if the plugin called initAndroidView (and thus was using VD prior to Flutter 3)
HC if the plugin called initSurfaceAndroidView (and thus was using HC prior to Flutter 3)

So in option 2 plugins would still be auto-converted to TLHC when TLHC is supported (this has pros and cons, but was the original Flutter 3 intent), but the fallback case would be to the Flutter 2 behavior for that plugin.

Ah I got it. It was pretty clear in your issue summary I just didn't connect that part with the solution 2. So for option 2, we would need also to add a flag for user to opt out of using the TLHC in case they want to explicitly use the old mode for any reason.
For option 1, can we make TLHC to be the default and user can optionally disable that and fallback to HC?
Because TLHC is already default in Flutter 3.0. We can essentially add this flag as a way for user to fallback to the old behavior if they need to. Is there any drawback of doing so?

So for option 2, we would need also to add a flag for user to opt out of using the TLHC in case they want to explicitly use the old mode for any reason.

We already provide a way to fully switch from TLHC to HC. We don't have a way to fully switch to VD, but it's not clear that anyone needs that option.

For option 1, can we make TLHC to be the default

Anything where TLHC is the default isn't option 1 :) Option 1 is specifically reverting the Flutter 3.0 behavior of changing what mode the existing calls (initAndroidView and initSurfaceAndroidView) do.

user can optionally disable that and fallback to HC

I'm not sure what "disable and fallback" means, since those are two very different things. Plugin authors explicitly disabling TLHC in favor of HC when writing their plugins is already possible (initExpensiveAndroidView). Fallback is something that happens at runtime, not plugin authoring time. So I'm not sure what you're suggesting exactly.

Ok, so my understanding now is that we don't change the behavior of initAndroidView, which defaults to TLHC and fallback to VD.
And the 2 options both replace VD to HC as the fallback behavior of initSurfaceAndroidView
In option 1, the HC plugin author uses a flag to enable TLHC explicitly.
In option 2, TLHC is enabled implicitly, the HC plugin author uses a different method (initExpensiveAndroidView) to disable TLHC
With option 1:
If the plugin is migrating from flutter 3, it is hard for the plugin to detect this change and might think they are using TLHC but actually are using HC.
If the plugin is migrating from prior to flutter 3, they won't experience any change by default. They will have to opt-in TLHC.
If most of the platform view plugins support flutter 3, I think this option might cause plugin author unaware of this change and keeping their platform view with HC while they actually want TLHC, which seems very bad?
With option 2:
If the plugin is migrating from flutter 3, the only change is the fallback of initSurfaceAndroidView becomes HC instead of VD, which is a good improvement in most of cases.
If the plugin is migrating from prior to flutter 3, we implicitly opted-in TLHC for them, which might cause breakage that is hard to detect. (visual artifacts, a11y etc) However, if TLHC is eventually the tech we want to push, this might be better. (For example, more plugins using it results more feedbacks)
If we know most of the platform view plugins already support flutter 3, I like option 2 better. (We might be able to do some query to check that?)

Any workaround for this ?

The above initExpensiveAndroidView is probably what you're looking for. It sounds undesirable but this actually reverts it to the Hybrid Composition method from Flutter 2 that most people were previously using on the affected type of plugins.

Ok, so my understanding now is that we don't change the behavior of initAndroidView

In option 2 we don't change it. In option 1, we revert it to always using VD just as we revert initAndroidSurfaceView to always using HC, thus restoring Flutter 2.x behavior for existing methods. So in option 1 all plugin authors would need to opt in to TLHC explicitly (just as HC was originally introduced as an opt-in, not by changing the behavior of existing plugins).
We could consider what you're suggesting an an option 3: auto-switch plugins that are using VD, but don't auto-switch HC.

If we know most of the platform view plugins already support flutter 3, I like option 2 better. (We might be able to do some query to check that?)

I don't see any way to get clear data on this unfortunately. We have no way of knowing from the code of a plugin whether it's using TLHC because the plugin author evaluated it and decided it worked for them so didn't opt out, or because they were automatically opted in. I would expect that the vast majority is the latter given that there wasn't a lot of communication around this (since it was supposed to be a silent upgrade). As a data point here: we're still evaluating what we should do about two of our major plugins (maps due to the missed redraw issue, and webview due to transparency regressions on older Android versions); if 1P plugins are still in flux from this transition, we should assume that many 3P plugins are as well.
We have some information from bugs, but it's hard to extrapolate from that. E.g., we know about the transparency issue now, but we don't know how many plugins rely on transparency support. We know about the maps update issue, but not how many other TextureView plugins might be affected by the same problem (or how common TextureView is as the native platform view type).

If the plugin is migrating from prior to flutter 3, we implicitly opted-in TLHC for them, which might cause breakage that is hard to detect. (visual artifacts, a11y etc) However, if TLHC is eventually the tech we want to push, this might be better.

Yes, I see this as the core question: do we want to continue to strongly push a transition to TLHC because of the benefits it has—even knowing that there are also regressions—and require impacted plugins to explicitly switch back to an older mode, or do we reverse course because of the unexpected regressions, and essentially revert to 2.x behaviors but with TLHC re-launched as an opt-in mode?
Currently I'm leaning toward the former. I think the latter would have been better if we had known in advance about the issues and could have launched 3.0 with opt-in, but given that we already launched it as a default behavior—and I think have missed the reasonable window to revert in a cherry-pick—avoiding a second round of major behavioral changes in the next release is probably the better option.

As a data point here: we're still evaluating what we should do about two of our major plugins (maps due to the missed redraw issue, and webview due to transparency regressions on older Android versions); if 1P plugins are still in flux from this transition, we should assume that many 3P plugins are as well.

I would also add that google_mobile_ads is also having issues with impressions due to TLHC: https://github.com/googleads/googleads-mobile-flutter/issues/580

Yes, I see this as the core question: do we want to continue to strongly push a transition to TLHC because of the benefits it has—even knowing that there are also regressions—and require impacted plugins to explicitly switch back to an older mode, or do we reverse course because of the unexpected regressions, and essentially revert to 2.x behaviors but with TLHC re-launched as an opt-in mode?

Assuming the issues with TLHC can be worked around, I think the former would be the better option as well. I'm just afraid of ending up in a situation where none of our 1P plugins use TLHC, but it remains as the default. But, it is hard to predict if more issues will rise. Correct me if I'm wrong, but as of now

GoogleMaps still needs to use VD/HC.
WebView defaults to TLHC, but switches to HC with transparent backgrounds.
Google Mobile Ads uses TLHC, but impressions are broken. This should be a p1 problem if TLHC is continued to be used. However, HC is unusable with ListViews because of performance and VD doesn't work.

GoogleMaps still needs to use VD/HC.

For now, yes, the plan is to move it to HC. I would expect that we'll continue to use it as a test case to try to address TLHC issues though, in the hopes of eventually moving it to TLHC (ideally with HC fallback for older devices rather than VD).

WebView will default to TLHC, but switches to HC with transparent backgrounds.

That's our current plan. This would mean that most of the time our most-used (AFAIK) platform-view-based plugin would be using TLHC, which I think mitigates the concern about 1P usage.
(This could change if we find new major issues, but on the other hand I would expect major issues in webview to be reported pretty quickly, so it's promising that we don't have more.)

Google Mobile Ads uses TLHC, but impressions are broken. This should be a p1 problem if TLHC is continued to be used. However, HC is unusable with ListViews because of performance and VD doesn't work.

This seems like another case where I would expect reverting to HC to be a short-term solution, with the goal of making whatever changes are needed (either in TLHC or in the plugin itself) in the medium term to allow it to adopt TLHC.

But, it is hard to predict if more issues will rise.

Agreed; that's definitely a concern. On the other hand, the best way to find issues any as-yet undiscovered issues is for it to be the default, and if plugin authors have a clear way of opting out if they hit unresolvable issues that mitigates the downsides (beyond the initial pain of the defaults having changed, which unfortunately already happened when we shipped 3.0).

revert to 2.x behaviors but with TLHC re-launched as an opt-in mode?

This sounds like the best option which will alleviate the growing frustration from the community most efficiently.
No one asked for these changes and in the pursuit of better performance, unilateral decisions were made in a totalitarian manner which may not be in the best interests of 90% of the people who use platform views. It should be an option, not a forced change which is untenable in most instances. The person making the change assumed the only thing being pushed through platform views were opengl  surfaces, which just isn't even close to the case. These Map SDKs force us to use whole activities with widgets created by Flutter, Here Maps, Maplibre, Google Maps, etc with no option to rewrite their entire functionality in Flutter. The Flutter map plugins are community created and use the native SDK. The SDK creators have no intention of making anything specifically for Flutter and thus aren't providing a level of access or stabilty to their SDKs which make replacing the widgets inserted in to their activities a good choice. Thus, the forced change and resulting available options aren't an option at all for us. By forcing this choice upon us, the creator was effectively forcing us to choose something other than Flutter.

which may not be in the best interests of 90% of the people who use platform views

If you have other specific examples of plugins that don't work in TLHC mode, please file new issues for each one (and tag me in them). Specific, concrete data about where it does and does not work will be useful in making a decision here (while invented numbers are not).

The person making the change assumed the only thing being pushed through platform views were opengl surfaces

I don't know how you came to this conclusion; it's not a true statement. But let's keep this constructive by focusing on outcomes, not people. Examples of plugins that don't work, with detailed repro steps, will let us better gauge the scope of issues.

with no option to rewrite their entire functionality in Flutter

Rewriting functionality in Flutter is--explicitly--not the use case for PlatformViews, so this isn't relevant to this issue.

You need me to make my own individual issues at Flutter for all the issues linked to here?
https://github.com/flutter/flutter/issues/103630
People are linking to the Flutter issue and then closing the issue on their own repo even though the issue isn't resolved. I can count 36 linked issues on that page including mine and more are incoming as more people upgrade to flutter 3.
Here's mine on my repo. https://github.com/AnnonAU/flutter_mapbox_turn_by_turn/issues/1 It "works" sort of with expensive view on Flutter 3 but some physical devices are failing with random errors that never occurred before such as crashes with no error and an error about failing  to compile an OpenGL shader when the map activity initializes. There is an error on close about TLHC never being initialized when I never used TLHC. Some errors (not these ones) occur only in release mode and I have no idea what errors because I have no debug symbols/stacktrace.
RE: None of this happened before on 2.15.10 and if I downgrade to flutter 2, these errors go away. We'll need all this working eventually though as some of the plugins we use (flutter_secure_storage for example) are continuing development only on Flutter 3.

You need me to make my own individual issues at Flutter for all the issues linked to here?
#103630

See https://github.com/flutter/flutter/issues/103630#issuecomment-1183504718

People are linking to the Flutter issue and then closing the issue on their own repo even though the issue isn't resolved.

If people treat a single issue as a catch-all for a lot of potentially unrelated problems, it's very hard to know what has and has not been fixed (as demonstrated by that issue).

Here's mine on my repo. [...] It "works" sort of with expensive view on Flutter 3 but some physical devices are failing with random errors that never occurred before

Again, please file a new issue. What you describe in that last sentence is entirely unrelated to both #103630 and this issue (since you're not using TLHC in that scenario), so needs a new issue tracking it.
This issue is only about the specific problem of initSurfaceAndroidView now using VD in some cases instead of either TLHC (the intended new behavior) or HC (as a fallback). One possible solution to that issue would have the effect of making more widespread changes, but that doesn't mean it should be treated as an umbrella bug covering every regression in Flutter 3 Android platform views.

If people treat a single issue as a catch-all for a lot of potentially unrelated problems, it's very hard to know what has and has not been fixed (as demonstrated by that issue).

No they're all describing the same problem. They're just listing the symptoms slightly differently based on which symptoms affect them the most on their test devices. This same problem is just that low level and wide reaching. Some problems may be separate but until functionality is reverted we won't know for sure how many of these issues were caused by this change. If after your fix, there are still new issues with my code, I would prefer to revisit submitting those issues then.
TLHC breaks different things based on the version of Android it's being run against (and Android SDK version it's being compiled against) and generally should be treated as an optional, experimental feature until all the bugs are worked out. The actual issue in all the reported instances is the fact that it pulls an OpenGL surface out of the view hierarchy completely and it overlays the entire application with the surface:

At it's proper width and height but with top and left coordinates at 0 on Android 10 and higher.
At it's proper width and height with the correct coordinates on 10 and lower.

It pulls the surface out of the Android activity and leaves the remaining activity components underneath on all versions of Android.  The only difference is what I listed above.
This is the symptom that most people are reporting and what was reported in the original issue. IIUC TLHC isn't even working correctly for the use case that it was created for.
Before creating a list of new issues, maybe reverting would be the best option as you said:

In option 1, we revert it to always using VD just as we revert initAndroidSurfaceView to always using HC, thus restoring Flutter 2.x behavior for existing methods. So in option 1 all plugin authors would need to opt in to TLHC explicitly (just as HC was originally introduced as an opt-in, not by changing the behavior of existing plugins).

This would be advisable because this will ensure the majority of the current issues caused by these changes are resolved and then encourage creating issues for the remaining cases afterwards.

@josephcrowell Please see my latest comment in https://github.com/flutter/flutter/issues/103630, and follow up there if you have more to add about that issue. I would like to keep this issue focused on what I filed it to track: undesired switch from HC to VD in fallback mode.

I understand the toggle on the platform view itself now with initExpensiveAndroidView etc. I understand that the default platform view will be TLHC.
For web view, it seems like there's no toggle and it'll just use TLHC by default?
For Google Maps, it looks like there is a toggle, but I don't really understand what it's toggling in between. I couldn't figure it out from the doc https://github.com/flutter/plugins/blob/89eff491b1daac4e4baf11f1270c674b74137435/packages/google_maps_flutter/google_maps_flutter/lib/src/google_map.dart#L73

@xster I filed https://github.com/flutter/flutter/issues/108106 to track and discuss our 1P plugin changes.

Any timeline on when this will be fixed in Stable? This is a major issue.

Any timeline on when this will be fixed in Stable?

The PRs to change fallback behavior haven't landed on master yet.

This is a major issue.

Can you describe the specific problem (including affected plugin(s)) you are having that you are expecting this issue to fix? Some other issues have referenced this one in cases where it's not actually relevant.

From my side, I am using the plugin arcore_flutter_plugin that is using an AndroidView and with the latest stable version of Flutter, it is impossible to place or resize the widget correctly.
I have to use the 2.10.5 flutter version to make it work as expected.

@MarkAlexanderDev Please file a new issue with details. This issue will only change (rare) fallback logic.

@stuartmorgan Could you help me with a few questions?

Hybrid Composition uses ImageReader to render the Flutter page, but can we use FlutterTextureView to replace FlutterImageView directly? why not?
TLHC improved platform views performance, does that mean only improved performance on Android < 10 ? Whether there is performance improvement on Android >= 10?


Added template parameters

SUMMARY
Add template parameters to the task
DETAILS
Allowing the user to specify the template parameters of the pipeline.
example of usage:
- uses: Azure/pipelines@v1
  with:
    azure-devops-project-url: 'https://dev.azure.com/organization/project-name'
    azure-pipeline-name: 'pipeline-name' # name of the Azure pipeline to be triggered
    azure-devops-token: '${{ secrets.AZURE_DEVOPS_TOKEN }}'
    azure-pipeline-variables:  '{"variable1": "value1", "variable2": "value2"}' # optional stringified json
    azure-template-parameters: '{"variable1": "value1", "variable2": "value2"}' # optional stringified json

Is there any progress on this PR? It would be great to be able to pass pipeline parameters in the action

Is there any update for this?

for the moment you can use my repository:
- name: Azure Pipelines Action - Jversion
  uses: jacopocarlini/azure-pipelines@main
  with:
    azure-devops-project-url: 'https://dev.azure.com/organization/project-name'
    azure-pipeline-name: 'pipeline-name' # name of the Azure pipeline to be triggered
    azure-devops-token: '${{ secrets.AZURE_DEVOPS_TOKEN }}'
    azure-pipeline-variables:  '{"variable1": "value1", "variable2": "value2"}' # optional stringified json
    azure-template-parameters: '{"variable1": "value1", "variable2": "value2"}'

Hi guys,
when this feature will be released?
As far as I got this should be already available in the release v1.2 but I still se problems while using it.
Tks

Hi @priscofarina,
there isn't the official support for this feature at the moment. You can use my action (v1.4) https://github.com/Azure/pipelines/pull/63#issuecomment-1740555049


How to use this model on Tiny ImageNet for classification

I am a computer visions student who is thinking about using your WaveMix model for my final project. I am planning to use it on the Tiny ImageNet dataset for classification and model evaluation. However, I have to run all my deep learning code on Google Colab, since I do not have an independent and powerful GPU.
So, I have a few questions regarding using the model:

How can I load the Tiny ImageNet dataset in Google Colab? Can you give a python code for it?
The Readme said that WaveMix reduces the use of GPU resources. Is my T4 GPU on Google Colab enough for training the Tiny ImageNet?
Where is the code for Tiny ImageNet classification? Is there a pre-trained model for it?
In case I want to retrain the model, where is the code for training the model?

I have a repository called tinyimagenet dataloader which will work in colab.
Yes
Yes, the pre-trained weights are available in https://github.com/pranavphoenix/WaveMix/tree/main/Saved_weights/tinyimagenet
https://github.com/pranavphoenix/WaveMix/blob/main/Image_Classification/tinyimagenet.py


Add /catpic command using random cat API

Command Name
/catpic
Public API Resource
https://aws.random.cat/meow
Description
This command will respond with a random picture of a cat.
Implementation Details

Add a new javascript file in the commands folder
Use axios fetch the data from your public API
Format the data in a readable way and send it to the user
Use the discord.js docs to get started

Code of Conduct

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

please assign me the issue

Hi @raji2004, since Juri created this issue, I'm assigning him. If you have an idea for a new command, feel free to create an issue and I'll look into it :)

@JuriKae Well done! I approved your pr #72 and labeled it with the hacktoberfest-accepted label.
Thanks for contributing ❤

Thank you for giving me the opportunity to do this. 😄


Reference point when generating mooring stiffness

Dear developers,
I am hoping to double-check on a couple of details:

Is the unit of rotation angle 'deg' or 'rad'? e.g., Do I set  moor.displace_vessel(0,0,0,0,10,0) or moor.displace_vessel(0,0,0,0,10/180*np.pi,0), if I want to tilt the platform by 10 deg around Y axis?
Does the reference point use absolute or relative coordinates? e.g. If I want to determine the mooring stiffness around the body-fixed frame origin after the platform is displaced 20m along X axis, i.e. moor.displace_vessel(20,0,0,0,0,0), do I set K, f0 = moor.stiffness_matrix(epsilon=1e-5, point=(0,0,0)) or K, f0 = moor.stiffness_matrix(epsilon=1e-5, point=(20,0,0))?

Thank you in advance for your help!
Best wishes,
Jiayao

Hi Jiayao,
Unfortunately, the pyMAP is old enough that the development team has moved on and I don't know the quick answer to your question.  My best suggestion is to track things through the source code to try to find the answer.
Most of our mooring studies have moved to MoorPy or MoorDyn instead of pyMAP.
Apologies I couldn't be more helpful.


Networking mirrored can't work on WSL2

Windows Version
Microsoft Windows [Version 10.0.22631.2500]
WSL Version
<IP_ADDRESS>
Are you using WSL 1 or WSL 2?

[X] WSL 2
[ ] WSL 1

Kernel Version
<IP_ADDRESS>-1
Distro Version
Ubuntu 20.04
Other Software
None
Repro Steps

Set .wslconfig:

[experimental]
networkingMode=mirrored
dnsTunneling=true
firewall=true

wsl --shutdown to stop WSL
Allow tcp port 8000 in Windows firewall settings
Restart WSL

Expected Behavior
Both WSL and Windows can successfully access <IP_ADDRESS>:8000 by curl
Actual Behavior
My laptop's IP is <IP_ADDRESS> in WLAN
1. Test HTTP server on port 8000 in WSL
Execute python -m http.server in WSL. Output:
Serving HTTP on <IP_ADDRESS> port 8000 (http://<IP_ADDRESS>:8000/) ...

Execute curl in WSL   (WSL curl -> WSL server)

curl http://<IP_ADDRESS>:8000 succeeded.
curl http://localhost:8000 failed. Cannot connect. Reason: Timeout
curl http://<IP_ADDRESS>:8000 failed. Cannot connect. Reason: Timeout

Execute curl in Windows   (Windows curl -> WSL server)

curl http://<IP_ADDRESS>:8000 failed. Cannot connect. Reason: Timeout
curl http://localhost:8000 failed. Cannot connect. Reason: Timeout
curl http://<IP_ADDRESS>:8000 failed. Cannot connect. Reason: Timeout

2. Test HTTP server on port 8000 in Windows
Execute python -m http.server --bind <IP_ADDRESS> in Windows. Output:
Serving HTTP on <IP_ADDRESS> port 8000 (http://<IP_ADDRESS>:8000/) ...

Execute curl in WSL   (WSL curl -> Windows server)

curl http://<IP_ADDRESS>:8000 failed. Cannot connect. Reason: Connection refused
curl http://localhost:8000 failed. Cannot connect. Reason: Timeout
curl http://<IP_ADDRESS>:8000 failed. Cannot connect. Reason: Timeout

Execute curl in Windows   (Windows curl -> Windows server)

curl http://<IP_ADDRESS>:8000 succeeded.
curl http://localhost:8000 succeeded.
curl http://<IP_ADDRESS>:8000 succeeded.

Diagnostic Logs
/etc/resolv.conf
nameserver <IP_ADDRESS>

ifconfig in WSL
br-d0766515769e: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet <IP_ADDRESS>  netmask <IP_ADDRESS>  broadcast <IP_ADDRESS>
        ether 02:42:03:7d:ec:8b  txqueuelen 0  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

docker0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet <IP_ADDRESS>  netmask <IP_ADDRESS>  broadcast <IP_ADDRESS>
        ether 02:42:98:0b:74:7d  txqueuelen 0  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet <IP_ADDRESS>  netmask <IP_ADDRESS>  broadcast <IP_ADDRESS>
        inet6 fe80::1c95:c4bd:2c0b:12fd  prefixlen 64  scopeid 0x20<link>
        ether 40:ec:99:cf:f2:a6  txqueuelen 1000  (Ethernet)
        RX packets 280  bytes 21218 (21.2 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 158  bytes 21856 (21.8 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet <IP_ADDRESS>  netmask <IP_ADDRESS>
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 86  bytes 10468 (10.4 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 86  bytes 10468 (10.4 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

loopback0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        ether 00:15:5d:d8:86:a8  txqueuelen 1000  (Ethernet)
        RX packets 20  bytes 1416 (1.4 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 12  bytes 888 (888.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Hi there.
Are you setting up the server within the Docker container in Linux? Note that Docker has its own IP address on its own network device. How did you configure it in Linux to forward requests to that address within Docker?
If you setup a listener within Docker within Linux, you'll want to let WSL know that the port is reserved and used by the WSL container by adding this to the .wslconfig file under experimental:
ignoredPorts=8000

Thanks for your remind😂
But this test is actually done in real WSL, not in a docker container.
I have removed docker-related content in this issue to avoid confusion.

The mirrored network feature of wsl doesn't work on my machine either.
my win11 is dev channal, build 23570, but......

Only one lo network card：

update wsl 1.x to 2.0.4 and window to 23H2.
what's wrong with me ?

If you are seeing issues, please collect traces so we can investigate what is going on: https://github.com/microsoft/WSL/blob/master/diagnostics/collect-wsl-logs.ps1

@keith-horton https://github.com/FlowerBirds/wsl2/blob/main/WslLogs-2023-10-24_08-49-22.zip
Thanks

@yqs112358
can you try this?
curl --noproxy \* http://<IP_ADDRESS>:8000

@keith-horton https://github.com/FlowerBirds/wsl2/blob/main/WslLogs-2023-10-24_08-49-22.zip
Thanks

Thank you. I tried 4 different tools to open the trace, but all were able to only resolve a couple of lines of a trace. Sorry. Could we try again and see if we get a more usable trace?
We have a new script to collect networking logs, could you run this? https://github.com/microsoft/WSL/blob/master/diagnostics/collect-networking-logs.ps1
Thanks!

@keith-horton use collect-networking-logs.ps1 script and upload logs at https://github.com/FlowerBirds/wsl2/blob/main/WslNetworkingLogs-2023-10-25_08-29-04.zip.
Thanks!

@yqs112358 can you try this?
curl --noproxy \* http://<IP_ADDRESS>:8000

Sorry, but the same: cannot connect. (Both in Windows and WSL)
I think it's not the problem of proxy because I have not set $http_proxy

I have upgraded to preview 2.0.6 and tried again, but the problem still exists.

@FlowerBirds , thank you for the trace.
I'm seeing multiple errors unfortunately. Can you verify that WPA is installed and accessible from where you're running your script? e.g. it doesn't seem to be able to find wpr.exe:

wpr.exe -start $logProfile -filemode 2>&1 >> $wprOutputLog

  + CategoryInfo          : NotSpecified: (:String) [], RemoteException
  + FullyQualifiedErrorId : NativeCommandError

  The system cannot find the file specified.

Also, trying to run the shell script in Linux also failed. Can you run this from an administrator command prompt? Maybe that was the issue.
wsl.exe : <3>WSL (17) ERROR: CreateProcessEntryCommon:511: execvpe ./networking.sh failed 2
所在位置 C:\Users\merit\collect-networking-logs.ps1:126 字符: 1

& wsl.exe -e ./networking.sh 2>&1 > $folder/linux_network_configurati ...

  + CategoryInfo          : NotSpecified: (<3>WSL (17) ERR...ing.sh failed 2:String) [], RemoteException
  + FullyQualifiedErrorId : NativeCommandError

<3>WSL (17) ERROR: CreateProcessEntryCommon:514: Create process not expected to return
Thanks!

Updated to WSL preview <IP_ADDRESS>, the situation above has not changed.

Some discovery attached:
When execute python -m http.server --bind <IP_ADDRESS> in Windows first, then try to execute python -m http.server in WSL, python in WSL will report:
OSError: [Errno 98] Address already in use

I think it means that the port-sharing works well. The problem is only about why the network traffic cannot arrive the target port.

If you are seeing issues, please collect traces so we can investigate what is going on

@keith-horton
I have recorded the trace by collect-wsl-logs.ps1 and attached here. Hope to be helpful for you 😊
WslLogs-2023-11-14_18-06-19.zip
In this record, I have done these actions step by step:

Start WSL
Create an http server by python -m http.server --bind <IP_ADDRESS> in Windows
Execute curl localhost:8000 in WSL, trying to connect to the server. The connection failed.
Shutdown the server above, and create another http server by python -m http.server in WSL
Execute curl localhost:8000 in Windows to connect to the server. The connection still failed.

Thank you. I'll look at the trace.
Can you verify in your scenario if curl <IP_ADDRESS>:8000 works? localhost will usually default to the IPv6 localhost ::1 address. And due to some complex reasons, we don't currently support connectivity from the host <-- --> container using the ::1 address (just <IP_ADDRESS>).

Can you verify in your scenario if curl <IP_ADDRESS>:8000 works?

Okay, recorded again with <IP_ADDRESS> and attached here.
WslLogs-2023-11-15_10-53-30.zip
In this record, I have done these actions step by step:

Start WSL
Create an http server by python -m http.server --bind <IP_ADDRESS> in Windows
Execute curl <IP_ADDRESS>:8000 in WSL, trying to connect to the server. The connection failed.
Shutdown the server above, and create another http server by python -m http.server --bind <IP_ADDRESS> in WSL
Execute curl <IP_ADDRESS>:8000 in Windows to connect to the server. The connection failed.

These two tests are still all failed.

I was facing this same issue but seem to have worked around it.
What I did that seems to have fixed it: I added hostAddressLoopback=true to my .wslconfig
Differences between the issue's setup and mine:

I'm not using the dnsTunneling=true and firewall=true settings in .wslconfig
I did not do any manual port rules for port 8000 in Windows

> wsl --version
WSL version: <IP_ADDRESS>
Kernel version: <IP_ADDRESS>-1
WSLg version: 1.0.59
MSRDC version: 1.2.4677
Direct3D version: 1.611.1-81528511
DXCore version: 10.0.25131.1002-220531-1700.rs-onecore-base2-hyp
Windows version: 10.0.22631.2715

This page says hostAddressLoopback defaults to false.
https://learn.microsoft.com/en-us/windows/wsl/wsl-config
The description sounded close enough so I took a stab at it, and was able to access :8000 from the windows host, and from the windows host and other machines on my network if I bind to <IP_ADDRESS>.
Caveats:

I didn't always use curl, I used a Python script that just puts together some http.client calls to connect and report the response status

import http.client

connection = http.client.HTTPConnection('<IP_ADDRESS>', 8000, timeout=10)
connection.request("GET", "/")
response = connection.getresponse()
print("Status: {} and reason: {}".format(response.status, response.reason))

connection.close()

I probably didn't test (windows client)->(wsl server) and (wsl client)->(windows server) as thoroughly as I could have. I think technically I did both with my python script, but then when I thought it would be good to post here, I tried (wsl client)->(windows server) with curl, and when I went to retry with (windows client)->(wsl server) with curl, the wsl side got an error about the port being used, so I gave up on being thorough.
I also happened to set ignoredPorts=80 at the same time as I set hostAddressLoopback=true. I forgot at the time that the http.server was using 8000 and was just trying the things that seems most likely from the .wslconfig page I linked above. So I think it's irrelevant because it was specified for 80, but I want to be thorough in my caveats so I can get out of follow up questions asking me if I can test more thoroughly for you guys. ;-) I'm not at all an expert in any of this, but who knows, maybe setting any ignored port somehow kicked it into a different mode where the connections started working...

@grscottjo Thanks for testing. However, according to Microsoft's documentation, the ability to connect from a LAN IP with hostAddressLoopback=true is expected behavior:

When set to True, will allow the Container to connect to the Host, or the Host to connect to the Container, by an IP address that's assigned to the Host.

Note that the <IP_ADDRESS> loopback address can always be used - this option allows for all additionally assigned local IP addresses to be used as well.

I have tried hostAddressLoopback=true. With this option turned on, <IP_ADDRESS> is accessible in both directions via curl. However <IP_ADDRESS> is still not accessible. I think this problem has not been solved yet 😊

@grscottjo Thank you for you sharing! It seems work for me now, I have tried a lot of times.

@yqs112358 , I looked at your trace. we plumb the loopback routes. If it's not working, it suggests that loopback is disabled in Hyper-V Firewall. If you run the latest networking scripts to capture network state we can probably see more of what is going on: https://github.com/microsoft/WSL/blob/master/diagnostics/collect-networking-logs.ps1
Thanks!

@yqs112358 , I looked at your trace. we plumb the loopback routes. If it's not working, it suggests that loopback is disabled in Hyper-V Firewall. If you run the latest networking scripts to capture network state we can probably see more of what is going on: https://github.com/microsoft/WSL/blob/master/diagnostics/collect-networking-logs.ps1

OK, I have upgraded to newest WSL pre-release v2.0.14 and recorded with the latest version of script.
The result:
WslNetworkingLogs-2023-12-09_18-51-25.zip
The operations done were the same as before (<IP_ADDRESS>:8000 in both directions).

Same Issue Here.
I solved it by completely uninstalling the kernel package and reinstalling it.
Anybody faced same issue can try this solution.

@grscottjo I tried your steps (even including the ignoredPorts part) but it simply doesn't work. I can connect via <IP_ADDRESS> but not via the host IP.

vim .wsconfig
networking=nat
OK

Same Issue
WslNetworkingLogs-2024-01-12_03-45-00.zip

Update 2024.03.27:
According to https://learn.microsoft.com/en-us/windows/wsl/wsl-config#wslconfig, when set localhostforwarding=true in .wslconfig, the host can access WSL correctly in both localhost:port and <IP_ADDRESS>:port. This function works well.
But I have tested networkMode=mirrored and it still cannot work.
I'm now starting to think that maybe there's something wrong with my WSL configuration or my Ubuntu somewhere. I've heard of some other people reinstalled WSL and then the mirrored networking back to normal. Have you guys had similar experiences?

Versions:

WSL: <IP_ADDRESS>
Linux Core: <IP_ADDRESS>-2
Windows: 10.0.22631.3296

@yqs112358 , you can connect to WSL from the host with mirrored mode, but you need allow loopback traffic through Hyper-V Firewall, and you need to create a Hyper-V Firewall rule to allow the port you want into the WSL container.
See https://learn.microsoft.com/en-us/windows/security/operating-system-security/network-security/windows-firewall/hyper-v-firewall - look for LoopbackEnabled and New-NetFirewallHyperVRule.

https://github.com/microsoft/WSL/issues/11172 May be the same problem

Try executing the command
sudo systemctl disable network-manager.service

followed by running wsl.exe --shutdown in PowerShell, and then restart WSL again.

Yes. SystemD running its own Network Manager service is highly likely to hit compatibility issues with WSL.

@wangyw6716 Cool, it works like a charm.

@yqs112358 , can you see if you have NetworkManager running? that's not going to work well with WSL.

@keith-horton Before I disable network-manager.service, I checked status by systemctl status network-manager.service, and network-manager.service is running. It works after I disabled network-manager.service.

Thanks!

Solved:
I have uninstall WSL and Ubuntu thoroughly, and then re-install again.
After a complete reinstall, networkingMode=mirrored works well. Both directions are accessiable by curl <IP_ADDRESS> or localhost.
In new Ubuntu, I have found that network-manager.service does not exist. Maybe this service does have some what of effect, or maybe there was some problem with the network configuration of my old WSL. Anyway, this feature is now fully functional. Thanks for your hard work 😊 @keith-horton @wangyw6716
Env
WSL Version： <IP_ADDRESS>
Core Version： <IP_ADDRESS>-2
WSLg Version： 1.0.60
MSRDC Version： 1.2.5105
Direct3D Version： 1.611.1-81528511
DXCore Version： 10.0.25131.1002-220531-1700.rs-onecore-base2-hyp
Windows Version： 10.0.22631.3374

By the way, does Docker currently support network=mirrored well?

We have been working closely with Docker - they have made positive changes for new WSL features such as mirrored mode and DNS tunneling :)
I would recommend using their latest updates.

Disabling network-manager.service helped,
Thanks a lot :)

@yqs112358 can you try this?
curl --noproxy \* http://<IP_ADDRESS>:8000

This works!
Now, how do I use this noproxy mode in other apps?

@RomanZhakhovTR How could I disable network-manager.service, I could not find it.


Remove GSI-LCG2 as a provider for training.egi.eu

Summary
As per: https://documents.egi.eu/document/2768

Related issue :

FYI @kelaamm


Max retries exceeded Error

I just installed via pip and saved your sample code(With file example) to a file, placed an image in proper path and ran. This is what I see

Traceback (most recent call last):
File "face.py", line 4, in
image = faces.FaceAppImage(file=sad)
File "/Users/ishandutta2007/.pyenv/versions/3.6.0/lib/python3.6/site-packages/faces/init.py", line 71, in init
post = requests.post(BASE_API_URL, headers=headers, files={'file': file})
File "/Users/ishandutta2007/.pyenv/versions/3.6.0/lib/python3.6/site-packages/requests/api.py", line 116, in post
return request('post', url, data=data, json=json, **kwargs)
File "/Users/ishandutta2007/.pyenv/versions/3.6.0/lib/python3.6/site-packages/requests/api.py", line 60, in request
return session.request(method=method, url=url, **kwargs)
File "/Users/ishandutta2007/.pyenv/versions/3.6.0/lib/python3.6/site-packages/requests/sessions.py", line 533, in request
resp = self.send(prep, **send_kwargs)
File "/Users/ishandutta2007/.pyenv/versions/3.6.0/lib/python3.6/site-packages/requests/sessions.py", line 646, in send
r = adapter.send(request, **kwargs)
File "/Users/ishandutta2007/.pyenv/versions/3.6.0/lib/python3.6/site-packages/requests/adapters.py", line 514, in send
raise SSLError(e, request=request)
requests.exceptions.SSLError: HTTPSConnectionPool(host='ph-x-p.faceapp.io', port=443): Max retries exceeded with url: /api/v2.11/photos (Caused by SSLError(SSLError("bad handshake: SysCallError(-1, 'Unexpected EOF')",),))

Same error

any solution for this issue?

Unfortunately no.


'omegaconf.errors.ConfigAttributeError: Missing key forest_regions' when trying to evaluate on the provided FOR-instance dataset using eval.py

Hi,
I tried to see the evaluation results using the pretrained model on FOR-instance. The command is 'python eval.py'. But enconterred the following error.  I tried to add values to 'forest_regions' in treeins_rad8.yaml as follows, but it still didn't work.  What might be the reason?
forest_regions: ['CULS','NIBIO','NIBIO2','RMIT','SCION','TUWIEN']
fold: ['/home/zhan5404/PanopticSeg/data/treeinsfused/raw/CULS/','/home/zhan5404/PanopticSeg/data/treeinsfused/raw/NIBIO/','/home/zhan5404/PanopticSeg/data/treeinsfused/raw/NIBIO2/','/home/zhan5404/PanopticSeg/data/treeinsfused/raw/RMIT/','/home/zhan5404/PanopticSeg/data/treeinsfused/raw/SCION/','/home/zhan5404/PanopticSeg/data/treeinsfused/raw/TUWIEN/']
File "eval.py", line 14, in main
trainer = Trainer(cfg)
File "/home/zhan5404/PanopticSeg/torch_points3d/trainer.py", line 48, in init
self._initialize_trainer()
File "/home/zhan5404/PanopticSeg/torch_points3d/trainer.py", line 90, in _initialize_trainer
self._dataset: BaseDataset = instantiate_dataset(self._checkpoint.data_config)
File "/home/zhan5404/PanopticSeg/torch_points3d/datasets/dataset_factory.py", line 46, in instantiate_dataset
dataset = dataset_cls(dataset_config)
File "/home/zhan5404/PanopticSeg/torch_points3d/datasets/panoptic/treeins.py", line 633, in init
forest_regions=self.dataset_opt.forest_regions,  # @Treeins
omegaconf.errors.ConfigAttributeError: Missing key forest_regions
full_key: data.forest_regions
object_type=dict

Hi, I tried to see the evaluation results using the pretrained model on FOR-instance. The command is 'python eval.py'. But enconterred the following error. I tried to add values to 'forest_regions' in treeins_rad8.yaml as follows, but it still didn't work. What might be the reason?
forest_regions: ['CULS','NIBIO','NIBIO2','RMIT','SCION','TUWIEN'] fold: ['/home/zhan5404/PanopticSeg/data/treeinsfused/raw/CULS/','/home/zhan5404/PanopticSeg/data/treeinsfused/raw/NIBIO/','/home/zhan5404/PanopticSeg/data/treeinsfused/raw/NIBIO2/','/home/zhan5404/PanopticSeg/data/treeinsfused/raw/RMIT/','/home/zhan5404/PanopticSeg/data/treeinsfused/raw/SCION/','/home/zhan5404/PanopticSeg/data/treeinsfused/raw/TUWIEN/']
File "eval.py", line 14, in main trainer = Trainer(cfg) File "/home/zhan5404/PanopticSeg/torch_points3d/trainer.py", line 48, in init self._initialize_trainer() File "/home/zhan5404/PanopticSeg/torch_points3d/trainer.py", line 90, in _initialize_trainer self._dataset: BaseDataset = instantiate_dataset(self._checkpoint.data_config) File "/home/zhan5404/PanopticSeg/torch_points3d/datasets/dataset_factory.py", line 46, in instantiate_dataset dataset = dataset_cls(dataset_config) File "/home/zhan5404/PanopticSeg/torch_points3d/datasets/panoptic/treeins.py", line 633, in init forest_regions=self.dataset_opt.forest_regions, # @treeins omegaconf.errors.ConfigAttributeError: Missing key forest_regions full_key: data.forest_regions object_type=dict

Hi, here is the solution:
https://github.com/prs-eth/PanopticSegForLargeScalePointCloud/issues/10#issuecomment-2091561194

Hello,
Thank you very much for your reply.
However, I followed suggestions 1,2,3, and still got the following errorr:
__(PanopSeg) zhan5404@idif002:~/PanopticSeg$ python eval.py
/opt/anaconda/envs/PanopSeg/lib/python3.8/site-packages/MinkowskiEngine-0.5.4-py3.8-linux-x86_64.egg/MinkowskiEngine/init.py:36: UserWarning: The environment variable OMP_NUM_THREADS not set. MinkowskiEngine will automatically set OMP_NUM_THREADS=16. If you want to set OMP_NUM_THREADS manually, please export it on the command line before running a python script. e.g. export OMP_NUM_THREADS=12; python your_program.py. It is recommended to set it below 24.
warnings.warn(
eval.py:6: UserWarning:
The version_base parameter is not specified.
Please specify a compatability version level, or None.
Will assume defaults for version 1.1
@hydra.main(config_path="conf", config_name="eval")
/opt/anaconda/envs/PanopSeg/lib/python3.8/site-packages/hydra/_internal/defaults_list.py:251: UserWarning: In 'eval': Defaults list is missing _self_. See https://hydra.cc/docs/1.2/upgrades/1.0_to_1.1/default_composition_order for more information
warnings.warn(msg, UserWarning)
/opt/anaconda/envs/PanopSeg/lib/python3.8/site-packages/hydra/core/default_element.py:124: UserWarning: In 'visualization/eval': Usage of deprecated keyword in package header '# @package group'.
See https://hydra.cc/docs/1.2/upgrades/1.0_to_1.1/changes_to_package_header for more information
deprecation_warning(
/opt/anaconda/envs/PanopSeg/lib/python3.8/site-packages/hydra/_internal/hydra.py:119: UserWarning: Future Hydra versions will no longer change working directory at job runtime by default.
See https://hydra.cc/docs/1.2/upgrades/1.1_to_1.2/changes_to_job_working_dir/ for more information.
ret = run_job(
[2024-09-17 11:37:33,933][torch_points3d.trainer][INFO] - DEVICE : cuda
[2024-09-17 11:37:34,449][torch_points3d.metrics.model_checkpoint][INFO] - Loading checkpoint from /home/zhan5404/PanopticSeg/outputs/PointGroup-PAPER.pt
Error executing job with overrides: []
Traceback (most recent call last):
File "eval.py", line 12, in main
trainer = Trainer(cfg)
File "/home/zhan5404/PanopticSeg/torch_points3d/trainer.py", line 48, in init
self._initialize_trainer()
File "/home/zhan5404/PanopticSeg/torch_points3d/trainer.py", line 90, in _initialize_trainer
self._dataset: BaseDataset = instantiate_dataset(self.checkpoint.data_config)
File "/home/zhan5404/PanopticSeg/torch_points3d/datasets/dataset_factory.py", line 45, in instantiate_dataset
dataset = dataset_cls(dataset_config)
File "/home/zhan5404/PanopticSeg/torch_points3d/datasets/panoptic/treeins.py", line 631, in init
forest_regions=self.dataset_opt.forest_regions,  # @Treeins
omegaconf.errors.ConfigAttributeError: Missing key forest_regions
full_key: data.forest_regions
object_type=dict
Set the environment variable HYDRA_FULL_ERROR=1 for a complete stack trace.
I have two more questions:

in the evaluation process (inference on FOR-Instance dataset with pre-trained model ), how do I choose whether to do semantic segmentation or instacne segmentation?

In training, anything needs to be changed in the provided commands:  'python train.py task=panoptic data=panoptic/treeins_rad8 models=panoptic/area4_ablation_3heads_5 model_name=PointGroup-PAPER training=treeins job_name=treeins_my_first_run'

(PanopSeg) zhan5404@idif002:~/PanopticSeg$ python train.py task=panoptic data=panoptic/treeins_rad8 models=panoptic/area4_ablation_3heads_5 model_name=PointGroup-PAPER training=treeins job_name=treeins_my_first_run
/opt/anaconda/envs/PanopSeg/lib/python3.8/site-packages/MinkowskiEngine-0.5.4-py3.8-linux-x86_64.egg/MinkowskiEngine/init.py:36: UserWarning: The environment variable OMP_NUM_THREADS not set. MinkowskiEngine will automatically set OMP_NUM_THREADS=16. If you want to set OMP_NUM_THREADS manually, please export it on the command line before running a python script. e.g. export OMP_NUM_THREADS=12; python your_program.py. It is recommended to set it below 24.
warnings.warn(
train.py:7: UserWarning:
The version_base parameter is not specified.
Please specify a compatability version level, or None.
Will assume defaults for version 1.1
@hydra.main(config_path="conf", config_name="config")
/opt/anaconda/envs/PanopSeg/lib/python3.8/site-packages/hydra/_internal/defaults_list.py:251: UserWarning: In 'config': Defaults list is missing _self_. See https://hydra.cc/docs/1.2/upgrades/1.0_to_1.1/default_composition_order for more information
warnings.warn(msg, UserWarning)
/opt/anaconda/envs/PanopSeg/lib/python3.8/site-packages/hydra/_internal/defaults_list.py:415: UserWarning: In config: Invalid overriding of hydra/output:
Default list overrides requires 'override' keyword.
See https://hydra.cc/docs/1.2/upgrades/1.0_to_1.1/defaults_list_override for more information.
deprecation_warning(msg)
In 'config': Could not find 'data/panoptic/treeins_rad8'
Config search path:
provider=hydra, path=pkg://hydra.conf
provider=main, path=file:///home/zhan5404/PanopticSeg/conf
provider=schema, path=structured://
Set the environment variable HYDRA_FULL_ERROR=1 for a complete stack trace.


the blocks cannot be synchronized!

The subgraph's version support for AssemblyScript has reached v0.19.0. After the current code is deployed, the blocks cannot be synchronized!

Is this related to #8?
If not, can you please provide some steps to reproduce this issue?


FR: Support auto-pairing in vim's cmdline

it would be useful to have auto-pairing in vim's cmdline as well

thank you <3


Allow custom handling of Notch tap on iOS

This issue is about the handling of the tap on the Notch and how it's currently not customizable from the outside.
Use case
For normal apps, the current behavior works excellent in a matter that you don't have to do anything to get this working out of the box.
As soon as you want to have a bit more control over your ScrollController or have more complicated scroll setups, there is no way of intercepting the click and making it work for the advanced structure.
Proposal
The Scaffold could receive an argument called onStatusBarTap, which when provided would override the default behavior found in scaffold.dart
This would allow the developer to customize the behavior to his liking and needs.
I would be willing to implement this if there is no blocker.

@HenriBeck feel free to include me on any PR or any design doc.
Can you supply a more concrete example of what someone might want to do with this new feature that currently isn't possible?

The following is not possible and breaks the behaviour of the scroll to top completely.
Note that this is an oversimplified example where the ScrollController doesn't do anything useful in this case.
class Page extends StatefulWidget {
  @override
  _PageState createState() => _PageState();
}

class _PageState extends State<Page> {
  final _scrollController = ScrollController();

  @override
  void dispose() {
    _scrollController.dispose();

    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: CustomScrollView(
        controller: _scrollController,
      ),
    );
  }
}

Because it's allowed to overwrite the scroll controller of scrolling widgets, it should also be allowed to overwrite the behavior of the onStatusBarTap to use your custom scroll controller.

Here are a few starting points to look at.
Here is the code that implements the scroll to the top behavior:
https://github.com/flutter/flutter/blob/36e599eb5d1bc1c8d98d1c32f2149803fc7ff74e/packages/flutter/lib/src/cupertino/page_scaffold.dart#L80
Here is a unit test that test the behavior, you'll want to make an equivalent for your setup:
https://github.com/flutter/flutter/blob/36e599eb5d1bc1c8d98d1c32f2149803fc7ff74e/packages/flutter/test/cupertino/scaffold_test.dart#L434

It is technically possible to intercept the status bar taps by creating a custom subclass of FlutterViewController that implements the func scrollViewShouldScrollToTop(_ scrollView: UIScrollView) -> Bool method. It is not an override since the subclass itself extends UIScrollViewDelegate to replace FlutterViewController's implementation.
Since this delegate method cannot call to super which is private, it will indeed break the actual Flutter logic that sends fake touches to the engine (here) and notifies the PrimaryScrollController. However, it can notify the Flutter runtime through a simple MethodCall invocation.
In fact, we use this workaround as a replacement of the PrimaryScrollController logic, because we fade between our app's tabs using an AnimatedSwitcher. This means having two ScrollViews in the view hierarchy that use the same controller  during the transition, which is a fault. Instead, each page has its own ScrollController and registers for status-bar-tap updates to scroll to the top when visible.


Use local http server for health check

I found that Test 240 some time failed because httpbin.org was unreachable:
IT should do http health checks and not expecting any errors
    tc000240_health_check_test.go:109:
        Unexpected error:
            <*errors.errorString | 0xc0019bfab0>: {
                s: "failed to perform http health check for testHttp on http://httpbin.org/get: Get \"http://httpbin.org/get\": read tcp <IP_ADDRESS>:48346-><IP_ADDRESS>:80: read: connection reset by peer",
            }
            failed to perform http health check for testHttp on http://httpbin.org/get: Get "http://httpbin.org/get": read tcp <IP_ADDRESS>:48346-><IP_ADDRESS>:80: read: connection reset by peer
        occurred
--- FAIL: Test_000240_health_check_test (15.68s)
=== RUN   Test_000241_auto_approve_with_health_checks_test

@tomhuang12 is it possible to change health check of this url to the local one please?
We already have an embedded HTTP server running during the tests.

Good point! I'll make the change

But please wait until #83 gets merged because all imports will be replaced by it.


Bump arkworks-rs to ~0.4.0

Does this crate is planned to continue its journey, or maybe there is something else around for the purposes this crate was made back then?
PS I'm tackling https://github.com/plume-sig/zk-nullifier-sig/issues/43, and it depends on this one. :face_with_spiral_eyes:

Hi! This crate is unmaintained. Feel free to fork the repo and upgrade.

Are you aware of any other places where this repo was used aside from <plume-sig/zk-nullifier-sig> repo?

I'm not aware. This repo was only written with zk-nullifier-sig in mind.


[WIP] feat [CX-2287]: My Collection Artwork details about tab

The type of this PR is: Feature

This PR resolves CX-2287
Description

PR Checklist (tick all before merging)

[ ] I have included screenshots or videos to illustrate my changes, or I have not changed anything that impacts the UI.
[ ] I have tested my changes on iOS and Android.
[ ] I have added tests/stories for my changes, or my changes don't require testing/stories, or I have included a link to a separate Jira ticket covering the tests.
[ ] I have added a feature flag, or my changes don't require a feature flag. (How do I add one?)
[ ] I have documented any follow-up work that this PR will require, or it does not require any.
[ ] I have added an app state migration, or my changes do not require one. (What are migrations?)
[ ] I have added a changelog entry below or my changes do not require one.

To the reviewers 👀

[ ] I would like at least one of the reviewers to run this PR on the simulator or device.

Changelog updates
Changelog updates

Cross-platform user-facing changes

iOS user-facing changes

Android user-facing changes

Dev changes

Warnings

:warning:

❌ An error occurred while validating your changelog, please make sure you provided a valid changelog.

  Generated by :no_entry_sign: dangerJS against 25f2fc48b6e63a98a3b89662cf123f28cd4a4aeb


Excuse me, may I ask why I get an error when running under pytorch1.13.1+cu11.6 environment:AttributeError: module 'torch._C' has no attribute '_cuda_setDevice'

Please ensure you download the gpu version of pytorch, not the cpu version.


FHIR querying methods

Sorry if this is more of a question rather than an actual issue related to the Procure project.
We are developing an FHIR-based patient-facing app at Scripps and I noticed that Procure did not actually use any FHIR wrapper library available out there (like smart-on-fhir/client-js). Rather, all the querying methods were implemented using fetch calls from scratch - I was just wondering if there was any special consideration behind this choice.
Thanks for your time and looking forward to your answer!

@shuchenliu sorry for the delay in getting back to you - must have missed the notification for this issue :).
When I started Procure, the SMART client library was structured around connecting to single FHIR endpoint per app by doing a full page redirect to authenticate, while I needed to connect to multiple FHIR endpoints and wanted to use a popup window for authentication. Given how embedded these assumptions were, it didn't make sense to update the existing library, so I wrote a small smart module for Procure.
Vlad subsequently rewrote the client library from scratch as client.js v2, and based on my input incorporating these options. However, since actual auth piece is a small part of Procure's codebase and is pretty stable, I left my custom implementation in place.


Reactive Cassandra (with Phantom DSL)

@alexflav23 We've noticed that you've copied the reactive-cassandra-phantom code in your develop branch . This is perfectly ok as we licensed the software under the Apache 2.0 terms. This means that you liked the code so we're really happy about it!.
We really appreciate your effort in phantom and we're using it in our projects for several months. On the other hand, we'd have liked to speak about your interest in this reactive streams development before so that we could have maybe raised a PR and avoid the code duplication.
Our next steps regarding the project are to take advantage of prepared statements as we've checked that the benefits of using them in large workloads really worth it. This is especially useful in streaming scenarios. It'd be great if we could collaborate to make this happen in the phantom code base.
Regards

Hi @juanjovazquez ,
Many thanks for reaching out, indeed we have, we took the implementation and cleaned up some of the duplication and added a publisher on top of the existing subscriber implementation. The code is somewhat different, but we felt more widespread adoption of reactive streams might be beneficial and our friends at Typesafe also thought it might be a good idea to add native support as well.
In the future, please don't hesitate to communicate any plans whatsoever or to request new features. Prepared statements area already available as of phantom 1.15.0, they are in experimental status at this point in time so please feel free to test them and report any bugs you might find.
Regards,
Flavian


home page species counts

On the home page we have a count of species - that count is the Catalog of Life species count.

It then links to species search, which by default use the backbone (with 2.5 mil species)
On the new site this becomes even more glaring as the count (2.5 mil) is stated on the page.
Should we on the home page

write 2.5 mil and link to the backbone
write 1.7 mil and link to species search filtered on CoL?
continue as now, writing the CoL number on the home page and linking to the backbone?

From meeting with Tim Hirsch: Stick with the backbone count of 2.5 mil as this is the actual number people will be searching and we already link to.

how about a "how do we define species article" and link to that?


fix: Do not replace items annotated with builtin attrs with the attr input

Prior to this we replaced items annotated with builtin attributes by the attribute input instead of the item in our dummy expansion.
cc #9935

Interestingly this does not break the runnables tests even though this breaks the runnables functionality 😕 Do our tests not expand (built-in) attributes yet?

Hmm fixing this is tricky... Basically we want to go up all attribute expansions so we get to the item with the #[test] attribute but we do not want to go up more in case this item is generated by a macro since then we can't grab the item's syntax anymore.
I don't think we can fix this properly with our current macro mapping infra can we?

I don't think we can fix this properly with our current macro mapping infra can we?

Nevermind I think we can 🎉

bors r+

This increased the memory usage on self from 915 to 1045 MB.

This is to be expected, as we now expand builtin attributes back to the item so basically duplicate builtin-attr annotated items into a macrofile.
Might make sense to investigate whether we actually need this expansion for builtin attributes?


[Result-list] "search.empty" label is not translated

Current behaviour
In result list component, when rendered data list don't have data, "search.empty" label is displayed. This label should be translated but it isn't.

Expected behaviour
The label should be translated.
Versions
Focus-core: 0.14.0
Focus-components: 0.14.1

Fix in #1115


map.setDiv() tries to change value of a readonly property

I'm submitting a ...

[ ] question
[x] any problem or bug report
[ ] feature request

If you choose 'problem or bug report', please select OS:

[x] Android
[x] iOS

cordova information:  (run $> cordova plugin list)
com.googlemaps.ios 3.8.0 "Google Maps SDK for iOS"
cordova-androidx-build 1.0.4 "cordova-androidx-build"
cordova-plugin-device 2.0.2 "Device"
cordova-plugin-googlemaps 2.8.0-20200701-2202 "cordova-plugin-googlemaps"
cordova-plugin-ionic-keyboard 2.2.0 "cordova-plugin-ionic-keyboard"
cordova-plugin-ionic-webview 4.2.1 "cordova-plugin-ionic-webview"
cordova-plugin-splashscreen 5.0.2 "Splashscreen"
cordova-plugin-statusbar 2.4.2 "StatusBar"
cordova-plugin-whitelist 1.3.3 "Whitelist"

If you use @ionic-native/google-maps, please tell the package.json (only @ionic-native/core and @ionic-native/google-maps are fine mostly)
"@ionic-native/core": "^5.27.0",
"@ionic-native/google-maps": "^5.5.0",

Current behavior:
If you hide the map with the map.setDiv() method through the Ionic lifecycle methods ionViewWillLeave it works the first time. But the second time it can't hide the map.
To reproduce in the repository you need to go to "Next page" and back two times. The second time the error occurs. In the browser platform the error occurs on the first call.
Expected behavior:
Should hide the map without errors.
Screen capture or video record:

Related code, data or error log (please format your code or data):
Repository: https://github.com/longinius/ionic-native-maps-error
The person who share your project files on Github (or other git repository) is in faster lane than other people.
Please share your project files on Github or others(Bitbucket, Gitlabs...etc).
If you don't want to share your project files, please create a demo project, then share it.

Screen captures, and/or native logs(such as Logcat, xcode logs) are appreciate.

Giving much information, you are waiting time is less.
Thank you for your cooperation.

Ok, I'll check it later

Ok, I fixed problem, however you also need to change your code.
First, please upgrade @ionic-native/google-maps
$ npm uninstall @ionic-native/google-maps
$ npm install<EMAIL_ADDRESS>

Second, you also need to reinstall the cordova-plugin-googlemaps
$ ionic cordova plugin rm cordova-plugin-googlemaps
$ ionic cordova plugin add https://github.com/mapsplugin/cordova-plugin-googlemaps#multiple_maps
$ ionic cordova plugin list

cordova-plugin-googlemaps 2.8.0-20200709-1800 "cordova-plugin-googlemaps"  <-- make sure `2.8.0-20200709-1800`

Third, modify your code
https://github.com/wf9a5m75/ionic-native-maps-error-fixed/

Then the app should work like this

https://github.com/wf9a5m75/ionic-native-maps-error-fixed

Many thanks for the quick response and the adaptations to the source code. It now works as desired.


Slide Over

Hi - thanks for your slide menu! I was wondering if it is possible for the side menus to slide over the center view rather than moving the center view to the left/right?

good idea! it would be cool!


[POC] Donot Merge

Hi, Pranav-- Could you more clearly label your PRs in the future? "Donot merge" isn't very concise, and Github has a feature for draft PRs to add a barrier between merging.


[ENHANCEMENT] Adjust font size

ISSUE
I find the text font is too small, and it would be great to be able to increase it
Solution:
The ability to adjust text font size

I'll add that soon.


[SVLS-4689] Reenable Serverless log integration tests

What does this PR do?

Reenables log Serverless integration tests along with fixes to prevent flakiness.
Motivation

Provide test coverage for Serverless while preventing flaky failures of tests
Additional Notes

Reenable log test suite
Set flush strategy to every minute for log tests to reduce the chance for a timeout error

Possible Drawbacks / Trade-offs

If all issues causing flakiness are not resolved it could introduce friction during the development process for those contributing to datadog-agent
Describe how to test/QA your changes

Run Serverless Integration Tests workflow and verify all tests are passing

/trigger-ci --variable RUN_ALL_BUILDS=true --variable RUN_KITCHEN_TESTS=true --variable RUN_E2E_TESTS=on --variable RUN_UNIT_TESTS=on

/trigger-ci --variable RUN_ALL_BUILDS=true --variable RUN_KITCHEN_TESTS=true --variable RUN_E2E_TESTS=on --variable RUN_UNIT_TESTS=on


Emoji alignment in iOS Flutter app

Is there an existing issue for this?

[X] I have searched the existing issues
[x] I have read the guide to filing a bug

Steps to reproduce

Add an emoji to a string, e.g., "Okay 😁".
Place the string inside a Row widget alongside other text, like "Feeling".

Expected results
The "Okay" text should be in the same line as "Feeling", and the emoji "😁" should not affect the alignment.
Actual results
The "Okay" text does not align properly with "Feeling", and the emoji "😁" appears on the same line as "Feeling".
Code sample
Code sample
                        Row(
                          crossAxisAlignment: CrossAxisAlignment.center,
                          children: [
                            Text(
                              "Felling",
                              style: getMediumStyle(
                                  fontSize: FontSize.s14,
                                  color: AppColors.darkBlack),
                            ),
                            Text(
                              "Okay 😁",
                              style: getMediumStyle(
                                  fontSize: FontSize.s14,
                                  color: AppColors.darkBlack),
                            )
                          ],
                        ),

Screenshots or Video

Screenshots / Video demonstration

Logs
Logs
[Paste your logs here]

Flutter Doctor output
Doctor output
[√] Flutter (Channel stable, 3.10.5, on Microsoft Windows [Version 10.0.19045.3208], locale en-US)
[√] Windows Version (Installed version of Windows is version 10 or higher)
[√] Android toolchain - develop for Android devices (Android SDK version 33.0.2)
[√] Chrome - develop for the web
[X] Visual Studio - develop for Windows
    X Visual Studio not installed; this is necessary for Windows development.
      Download at https://visualstudio.microsoft.com/downloads/.
      Please install the "Desktop development with C++" workload, including all of its default components
[√] Android Studio (version 2022.3)
[√] VS Code (version 1.79.2)
[√] Connected device (3 available)
[√] Network resources

When I include an emoji, such as "😁", in a string along with other text, for example, "Okay 😁", and place this string inside a Row widget with other texts like "Feeling", the UI on iOS does not render "Okay" on the same line as "Feeling". Instead, the emoji "😁" appears on the same line as "Feeling",

When I include an emoji, such as "😁", in a string along with other text, for example, "Okay 😁", and place this string inside a Row widget with other texts like "Feeling", the UI on iOS does not render "Okay" on the same line as "Feeling". Instead, the emoji "😁" appears on the same line as "Feeling",
This issue seems to be iOS-specific, as it works fine on Android.

Hi @mohamedsalah414
Since you are using getMediumStyle which is a custom text style and it's missing from code sample, so I can't verify the issue properly.
Instead, I use a minimal TextStyle as below sample code and turn on baseline in DevTools but don't see the issue.

Demo

Complete sample code
import 'package:flutter/material.dart';

void main() {
  runApp(
    MaterialApp(
      theme: ThemeData(useMaterial3: true),
      home: const MyWidget(),
    ),
  );
}

class MyWidget extends StatefulWidget {
  const MyWidget({super.key});

  @override
  State<MyWidget> createState() => _MyWidgetState();
}

class _MyWidgetState extends State<MyWidget> {
  @override
  Widget build(BuildContext context) {
    return const Scaffold(
      body: Center(
        child: Row(
          crossAxisAlignment: CrossAxisAlignment.center,
          children: [
            Text(
              "Felling",
              style: TextStyle(fontSize: 14, color: Colors.black),
            ),
            Text(
              "Okay 😁",
              style: TextStyle(fontSize: 14, color: Colors.black),
            )
          ],
        ),
      ),
    );
  }
}

Please check this sample code and confirm.

This is my  sample code
              Row(
                children: [
                  Image.asset("Images/1.png"),
                  const SizedBox(width: 10),
                  Expanded(
                    child: Column(
                      crossAxisAlignment: CrossAxisAlignment.start,
                      children: [
                        Row(
                          crossAxisAlignment: CrossAxisAlignment.center,
                          children: [
                            const Text(
                              "nickname",
                              style: TextStyle(
                                  fontSize: 14, color: Colors.black),
                            ),
                            const Text(
                              ".",
                              style: TextStyle(
                                  fontSize: 14, color: Colors.black),
                            ),
                            const Center(
                              child: Row(
                                crossAxisAlignment: CrossAxisAlignment.center,
                                children: [
                                  Text(
                                    "Feeling ", // space after Feeling
                                    style: TextStyle(
                                        fontSize: 14, color: Colors.black),
                                  ),
                                  Text("Okay 😁",
                                      style: TextStyle(
                                        fontSize: 14,
                                        color: Colors.black,
                                      ))
                                ],
                              ),
                            ),
                            const Spacer(),
                            IconButton(
                              onPressed: () {},
                              icon: const Icon(Icons.done),
                            )
                          ],
                        ),
                        const SizedBox(height: 3),
                        const Text("2 days ago",
                            style: TextStyle(fontSize: 12, color: Colors.grey)),
                      ],
                    ),
                  ),
                ],
              )

I still see the same result as above, it looks good.

Demo

I'm checking this on iPhone 7, iOS 15.7.2. It seems the issue only occurs on specific devices as you mentioned above. Which device are you testing on? (OS, model). Please provide the complete output of flutter doctor -v on your development environment/machine as well. (I notice it's Windows, though)

iPhone 11

Which OS version is the device using? Could you try below sample code and confirm?

Complete sample code
import 'package:flutter/material.dart';

void main() {
  runApp(
    MaterialApp(
      theme: ThemeData(useMaterial3: true),
      home: const MyWidget(),
    ),
  );
}

class MyWidget extends StatefulWidget {
  const MyWidget({super.key});

  @override
  State<MyWidget> createState() => _MyWidgetState();
}

class _MyWidgetState extends State<MyWidget> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          crossAxisAlignment: CrossAxisAlignment.center,
          children: [
            Row(
              crossAxisAlignment: CrossAxisAlignment.center,
              children: [
                const Text(
                  "nickname",
                  style: TextStyle(fontSize: 14, color: Colors.black),
                ),
                const Text(
                  ".",
                  style: TextStyle(fontSize: 14, color: Colors.black),
                ),
                const Text(
                  "Feeling ", // space after Feeling
                  style: TextStyle(fontSize: 14, color: Colors.black),
                ),
                const Text("Okay 😁",
                    style: TextStyle(
                      fontSize: 14,
                      color: Colors.black,
                    )),
                const Spacer(),
                IconButton(
                  onPressed: () {},
                  icon: const Icon(Icons.done),
                )
              ],
            ),
            const SizedBox(height: 3),
            const Text("2 days ago", style: TextStyle(fontSize: 12, color: Colors.grey)),
          ],
        ),
      ),
    );
  }
}

this sample code is working fine but in my project I had to add height in text style to making emoji in the center

I had to add height in text style

Can you share that TextStyle? It could be intentional behavior since you added height.


improvement and fixLoad the cache for external table row count while init table.

Load the cache for external table row count while init table, this could avoid no row number stats for the very first time to run an sql.
Show cardinality for an external scan node when explain the sql.
fix bugs introduced by https://github.com/apache/doris/pull/22963

Proposed changes
Issue Number: close #xxx

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall

run buildall

(From new machine)TeamCity pipeline, clickbench performance test result:
the sum of best hot time: 46.9 seconds
stream load tsv:          543 seconds loaded<PHONE_NUMBER>9 Bytes, about 131 MB/s
stream load json:         20 seconds loaded<PHONE_NUMBER> Bytes, about 112 MB/s
stream load orc:          65 seconds loaded<PHONE_NUMBER> Bytes, about 16 MB/s
stream load parquet:          32 seconds loaded 861443392 Bytes, about 25 MB/s
insert into select:          28.9 seconds inserted 10000000 Rows, about 346K ops/s
storage size:<PHONE_NUMBER>2 Bytes

(From new machine)TeamCity pipeline, clickbench performance test result:
the sum of best hot time: 45.36 seconds
stream load tsv:          543 seconds loaded<PHONE_NUMBER>9 Bytes, about 131 MB/s
stream load json:         20 seconds loaded<PHONE_NUMBER> Bytes, about 112 MB/s
stream load orc:          65 seconds loaded<PHONE_NUMBER> Bytes, about 16 MB/s
stream load parquet:          30 seconds loaded 861443392 Bytes, about 27 MB/s
insert into select:          28.8 seconds inserted 10000000 Rows, about 347K ops/s
storage size:<PHONE_NUMBER>2 Bytes

run buildall

(From new machine)TeamCity pipeline, clickbench performance test result:
the sum of best hot time: 46.97 seconds
stream load tsv:          540 seconds loaded<PHONE_NUMBER>9 Bytes, about 132 MB/s
stream load json:         21 seconds loaded<PHONE_NUMBER> Bytes, about 107 MB/s
stream load orc:          65 seconds loaded<PHONE_NUMBER> Bytes, about 16 MB/s
stream load parquet:          31 seconds loaded 861443392 Bytes, about 26 MB/s
insert into select:          29.3 seconds inserted 10000000 Rows, about 341K ops/s
storage size:<PHONE_NUMBER>7 Bytes

run buildall

(From new machine)TeamCity pipeline, clickbench performance test result:
the sum of best hot time: 46.37 seconds
stream load tsv:          542 seconds loaded<PHONE_NUMBER>9 Bytes, about 131 MB/s
stream load json:         20 seconds loaded<PHONE_NUMBER> Bytes, about 112 MB/s
stream load orc:          65 seconds loaded<PHONE_NUMBER> Bytes, about 16 MB/s
stream load parquet:          31 seconds loaded 861443392 Bytes, about 26 MB/s
insert into select:          29.6 seconds inserted 10000000 Rows, about 337K ops/s
storage size:<PHONE_NUMBER>5 Bytes

(From new machine)TeamCity pipeline, clickbench performance test result:
the sum of best hot time: 45.84 seconds
stream load tsv:          543 seconds loaded<PHONE_NUMBER>9 Bytes, about 131 MB/s
stream load json:         20 seconds loaded<PHONE_NUMBER> Bytes, about 112 MB/s
stream load orc:          65 seconds loaded<PHONE_NUMBER> Bytes, about 16 MB/s
stream load parquet:          31 seconds loaded 861443392 Bytes, about 26 MB/s
insert into select:          29.3 seconds inserted 10000000 Rows, about 341K ops/s
storage size:<PHONE_NUMBER>8 Bytes


Fixes problems moving other stages when events are sequenced.

No API changes, only internal fixes.

This Runnable's task is to place the non-default stages in their proper positions.  Whether or not these are sequences is immaterial at this point in the code, this code simply needs to put the stages to their start position.  If the event is a sequence, the information about the desired position is contained in the list of sequenced events (and the stage positions should all be the same).
XY stage sequences are unaffected by this code (these are handled by the Runnable at line 804).

Gotcha, looks good


Document ability to add custom tags to thrift structs

This is a really useful feature that I only found out about because I stumbled upon this stackoverflow question: http://stackoverflow.com/questions/31319534/control-golang-annotations-in-thrift-generated-code

+1

I only submitted a change to the README, is there a way to restart the build?

Just for information, adding custom tags generate an exception with thriftpy :
thriftpy.parser.exc.ThriftGrammerError: Grammer error '('

Please also cover the field tag syntax in the IDL grammar spec doc/specs/idl.md.
Our custom parser built per the grammar chokes on these tags as well.

THRIFT-3998

@ulidtko: If you have a pull request ready, just post it.


Creating rule via API

We currently cannot create rule via API, but, I suppose, it can be useful, especially for users that don't have graphical interface.
@raipc @rodionos what's your opinion?

you ain't gonna need it


ScriptModuleloader: add re-link support

Add the ability to declare a dependency on a range of versions
Provide a mechanism to safely re-link the existing modules with any new versions that were deployed.

Billy mentioned the desire of using a red/black style deployment of new modules. That's should be a separate work item, but whatever we come up with here should take that use-case into account.

Closing as not fix, pending further feedback / input.


[linux] all hibernate popups appear in same spot.

All popups open in the center of the screen and only on the monitor the mouse is on. I'm running arch linux, with the kde plasma desktop environment. Working on a temp fix will keep everyone posted.

also clicking anywhere on any popup seems to close it even if buttonless closing is off, and moving popups also don't work but those usecases are more niche.

Can anyone point me to the part of code where a popup's location is determined? i can't seem to find it...

Lines 492-512 of subprocesses/popup.pyw are probably what you want.

im also using linux would be nice if it worked on kde

for some reason adding root.overrideredirect(True) to just before the root geometry call makes it work. it also prevents you from moving the windows around using super+drag on plasma.

overrideredirect(True) is used on Windows, but on Linux I replaced it with attributes("-type", "splash") because on GNOME, it was making it impossible to focus popups and thus use the panic hotkey as well as enter prompts. Do these still work as expected with overrideredirect on KDE? If so, this might need to be handled separately in different DEs.

overrideredirect(True) is used on Windows, but on Linux I replaced it with attributes("-type", "splash") because on GNOME, it was making it impossible to focus popups and thus use the panic hotkey as well as enter prompts. Do these still work as expected with overrideredirect on KDE? If so, this might need to be handled separately in different DEs.

try using xwayland so it work on wayland and on x11

Should be fixed by da6fe35


The future belongs to a different loop?

Just downloaded the new notebook, so I'm up to date. This error seems to be happening with 1.5 as well SDXL:
Startup time: 204.0s (launcher: 0.8s, import torch: 17.5s, import gradio: 2.0s, setup paths: 22.2s, import ldm: 0.6s, initialize shared: 6.2s, other imports: 32.8s, setup codeformer: 8.8s, setup gfpgan: 0.4s, list SD models: 7.2s, load scripts: 30.8s, load upscalers: 0.8s, reload hypernetworks: 0.6s, initialize extra networks: 20.4s, create ui: 15.6s, gradio launch: 34.1s, add APIs: 3.1s).
Creating model from config: /content/gdrive/MyDrive/sd/stable-diffusion-webui/configs/v1-inference.yaml
The future belongs to a different loop than the one specified as the loop argument
The future belongs to a different loop than the one specified as the loop argument
The future belongs to a different loop than the one specified as the loop argument
The future belongs to a different loop than the one specified as the loop argument
The future belongs to a different loop than the one specified as the loop argument
The future belongs to a different loop than the one specified as the loop argument
The future belongs to a different loop than the one specified as the loop argument

use a fresh sd folder

Meaning, go to my drive and wipe out the current sd folder? That would also delete my existing configs and downloads in stable-diffusion-webui. I would have to replace the default one manually afterward I guess...

don't delete it, just rename it

This works for me in Google Colab, it gets rid of the error, but I do have to move all my models and LoRA's etc.
The reason is when I go to install my Automatic1111 from my copy of Colab note book it installs a whole new SD folder onto my Gdrive that it is now linked to.
When you say just rename it, do you mean we can now just relink the Colab note book to that renamed file in the Gdrive?
If so I can't work out how to do it.

When I got this issue, I usually stopped and started again the tab "start Stable Diffusion".

I have been able to avoid this error by deleting the base model before starting the notebook again. For example, if the last time I ran the notebook I'd selected the v1.5 model, I would delete the following file before starting:
sd/stable-diffusion-webui/models/Stable-diffusion/v1-5-pruned-emaonly.safetensors
This has allowed me to keep everything else in place.

Delete just "libtcmalloc" and "stablediffusion" folders solve this problem to me


fix link to tao repo

What kind of change does this PR introduce? (check at least one)

[ ] Bugfix
[ ] Feature
[ ] Code style update
[ ] Refactor
[x] Documentation
[ ] Build-related changes
[ ] Other, please describe:

Does this PR introduce a breaking change? (check one)

[ ] Yes. Issue #___
[x] No

The PR fulfills these requirements:

[ ] When resolving a specific issue, it's referenced in the PR's title (e.g. fix: #xxx[,#xxx], where "xxx" is the issue number)
[ ] A change file is added if any packages will require a version bump due to this PR per the instructions in the readme.

If adding a new feature, the PR's description includes:

[ ] A convincing reason for adding this feature (to avoid wasting your time, it's best to open a suggestion issue first and wait for approval before working on it)

Other information:

sorry I missed your comment, @FabianLars; I'm new at making contributions in projects


[CODING] how to display a text when checkbox is checked.

for example, if i check Bunnyhop. it will display a text in screen.
losing braincells while coding, i just use 3 braincell to write this issue. pls help

If (config.misc.bunnyHop)
Do stuff here

thank god, you are here.......


Failed to install tensorflow-estimator

Please make sure that this is a build/installation issue. As per our GitHub Policy, we only address code/doc bugs, performance issues, feature requests and build/installation issues on GitHub. tag:build_template
System information

OS Platform and Distribution (e.g., Linux Ubuntu 16.04):
Windows 10.0.18362.0

Mobile device (e.g. iPhone 8, Pixel 2, Samsung Galaxy) if the issue happens on mobile device:

TensorFlow installed from (source or binary):
pip / binary

TensorFlow version:
1.14 (?)

Python version:
Python 3.7.4 (installed from Windows Store)

Installed using virtualenv? pip? conda?:
pip 19.1.1

Bazel version (if compiling from source):
n/a

GCC/Compiler version (if compiling from source):
n/a

CUDA/cuDNN version:
n/a

GPU model and memory:
Nvidia GeForce GTX 1080; 16 GB

Describe the problem
When trying to install Tensorflow, I get an error while installing the Tensorflow-Estimator dependency.
Provide the exact sequence of commands / steps that you executed before running into the problem

Open cmd.exe as administrator

pip install --upgrade tensorflow-estimator

ERROR: Could not install packages due to an EnvironmentError: [Errno 2] No such file or directory: 'C:\\Users\\movgp\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python37\\site-packages\\tensorflow_estimator\\python\\estimator\\canned\\linear_optimizer\\python\\utils\\__pycache__\\sharded_mutable_dense_hashtable.cpython-37.pyc'

Any other info / logs
Include any logs or source code that would be helpful to diagnose the problem. If including tracebacks, please include the full traceback. Large logs and files should be attached.
 Directory of C:\Users\movgp\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\tensorflow_estimator\python\estimator\canned\linear_optimizer\python\utils\__pycache__

2019-07-21  09:46    <DIR>          .
2019-07-21  09:46    <DIR>          ..
2019-07-21  09:46            21,504 sdca_ops.cpython-37.pyc
               1 File(s)         21,504 bytes

@MovGP0
Just to verify did you get chance to follow instructions from TensorFlow website .Please, let us know.
https://stackoverflow.com/questions/55739873/tf-estimator-package-not-installed
Also, please go through the below link and see if it helps you.Thanks!

I'm having the same problem, I tried both links and neither worked. I also tried the solution to this link, but it didn't work either.
https://github.com/googleapis/google-cloud-python/issues/6647

did you try rerunning the command?
On windows, sometimes we see spurious failures.

@gunan Sure. First thing I've tried.

I definitely think this is a pip issue, but not sure where to look for a solution.
Maybe the path is too long and pip has problems?

I had the exact same problem. Here is what I did to make the installation work:

Downloaded python from here : https://www.python.org/downloads/release/python-374/

Ran the installer and installed for all users (I did this because the path length is shorter, who knows if that was the difference). Additionally I also installed pip through this installer as well.

At the end of the installation I clicked on the button to allow PATH lengths to exceed 260 characters.

After doing this and re-running "pip install tensorflow-gpu" it passed the error shown above. My guess would be that python installed from the windows store will, by-default, install to a path which is too long or fail to bypass the 260 path-length restriction. Previously I was using the version of Python that came with my Windows 10 installation.

On Windows 10, you could disable the path length restriction, set an hard link for the installation path, and update the environment variables.
This way we could have a store-managed version of python that supports the longer paths.

@gunan can you update the documentation? thank you!

@lamberta It may be useful to mention disabling path length restriction may help resolve pip installation issues on windows.
@MovGP0 did disabling tpath length restriction solve the problem for you?
Should we close the issue?

Thanks, but I think we already have this in the docs: https://www.tensorflow.org/install/pip
Select Windows tab ...
Make sure long paths are enabled on Windows.
Is something else needed? (That page is here in GitHub)


feat: 增加 linkFields 参数传入类型

👀 PR includes

✨ Feature

[ ] New feature

🎨 Enhance

[ ] Code style optimization
[ ] Refactoring
[ ] Change the UI
[ ] Improve the performance
[ ] Type optimization

🐛 Bugfix

[ ] Solve the issue and close #0

🔧 Chore

[ ] Test case
[ ] Docs / demos update
[ ] CI / workflow
[ ] Release version
[ ] Other ()

📝 Description

🖼 Screenshot

Before
After

❌
✅

🔗 Related issue link

🔍 Self-Check before the merge

[ ] Add or update relevant docs.
[ ] Add or update relevant demos.
[ ] Add or update test case.
[ ] Add or update relevant TypeScript definitions.

官方实例根据增加一个自定义树的 行头链接 demo

:tada: This PR is included in version @antv/s2-v1.37.0-alpha.1 :tada:
The release is available on:

npm package (@alpha dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This PR is included in version @antv/s2-v2.0.0-next.4 :tada:
The release is available on:

npm package (@next dist-tag)
GitHub release

Your semantic-release bot :package::rocket: