🐛 [firebase_auth] Cannot contact reCAPTCHA. Check your connection and try again

Bug report
I'm using phone authentication on my Flutter 2.5.3 app and on Apple reviewer's phone, the recaptcha verification fails in the browser with this message: Cannot contact reCAPTCHA. Check your connection and try again.
Steps to reproduce
I am not able to reproduce that issue.
Expected behavior
I would expect the app to use silent notifications given as I've configured my Push Notification key in my Firebase project and I have added push notification capability to my app, as described here. But when I run my app on my own device, I see the following error message on the console:
[Firebase/Auth][I-AUT000014] Failed to receive remote notification to verify app identity within 5 second(s), falling back to reCAPTCHA verification.
So I don't know if the Flutter version of Firebase Auth is supposed to support silent notifications instead of reCAPTCHA but that would be really helpful right now.

Additional context
I can't reproduce this issue, but the Apple reviewer seems to have it systematically.
The fact that his iPhone seems to show Asian characters, I guess he might be located in a country like China, which I read could have issues with reCAPTCHA, but I'm not 100% sure.

Flutter doctor
Run flutter doctor and paste the output below:
Click To Expand
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 2.5.3, on macOS 12.0.1 21A559 darwin-x64, locale fr-FR)
[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
[✓] Xcode - develop for iOS and macOS
[✓] Chrome - develop for the web
[✓] Android Studio (version 2020.3)
[✓] Android Studio (version 2020.3)
[✓] Android Studio (version 2020.3)
[✓] IntelliJ IDEA Ultimate Edition (version 2021.2.3)
[✓] IntelliJ IDEA Ultimate Edition (version 2021.2.3)
[✓] IntelliJ IDEA Ultimate Edition (version 2021.2.2)
[✓] VS Code (version 1.54.3)
[✓] Connected device (3 available)
    ! Error: Séjour is not connected. Xcode will continue when Séjour is connected. (code -13)
    ! Error: iPhone de Sebastien is busy: Making the device ready for development. Xcode will continue when iPhone de Sebastien is finished. (code -10)

• No issues found!

Flutter dependencies
Run flutter pub deps -- --style=compact and paste the output below:
Click To Expand
Dart SDK 2.14.4
Flutter SDK 2.5.3
foodeater 1.1.7+28

dependencies:
- awesome_card 1.1.5 [flutter]
- beamer 0.14.1 [flutter flutter_web_plugins]
- cloud_firestore 3.1.0 [cloud_firestore_platform_interface cloud_firestore_web collection firebase_core firebase_core_platform_interface flutter meta]
- cloud_functions 3.1.1 [cloud_functions_platform_interface cloud_functions_web firebase_core firebase_core_platform_interface flutter]
- common 0.0.1 [flutter flutter_localizations intl json_annotation cloud_firestore latlong2]
- cross_local_storage 2.0.1 [flutter shared_preferences shared_preferences_web shared_preferences_macos shared_preferences_windows shared_preferences_linux]
- cupertino_icons 1.0.3
- email_validator 2.0.1
- firebase_auth 3.2.0 [firebase_auth_platform_interface firebase_auth_web firebase_core firebase_core_platform_interface flutter meta]
- firebase_core 1.10.0 [firebase_core_platform_interface firebase_core_web flutter meta]
- flutter 0.0.0 [characters collection meta typed_data vector_math sky_engine]
- flutter_bugfender 2.0.1 [flutter flutter_web_plugins js meta]
- flutter_form_builder 6.1.0+1 [flutter flutter_localizations intl collection]
- flutter_localizations 0.0.0 [flutter intl characters clock collection meta path typed_data vector_math]
- flutter_login 2.2.1 [flutter font_awesome_flutter provider another_transformer_page_view another_flushbar quiver pedantic]
- flutter_markdown 0.6.8 [flutter markdown meta path]
- form_builder_phone_field 0.2.0 [flutter flutter_form_builder phone_number country_pickers]
- form_field_validator 1.1.0 [flutter intl]
- intl 0.17.0 [clock path]
- json_annotation 4.3.0 [meta]
- linkable 3.0.1 [flutter url_launcher]
- logger 1.1.0
- mask_text_input_formatter 2.0.0 [flutter]
- material_segmented_control 3.1.2 [flutter]
- package_info_plus 1.3.0 [flutter package_info_plus_platform_interface package_info_plus_linux package_info_plus_macos package_info_plus_windows package_info_plus_web]
- pin_code_fields 7.3.0 [flutter]
- provider 5.0.0 [collection flutter nested]
- qr_flutter 4.0.0 [flutter qr]
- responsive_builder 0.4.1 [flutter]
- retry 3.1.0
- soundpool 2.2.0 [flutter soundpool_platform_interface soundpool_web soundpool_macos]
- url_launcher 6.0.12 [flutter meta url_launcher_linux url_launcher_macos url_launcher_platform_interface url_launcher_web url_launcher_windows]
- uuid 3.0.5 [crypto]

dev dependencies:
- build_runner 2.1.4 [args async analyzer build build_config build_daemon build_resolvers build_runner_core code_builder collection crypto dart_style frontend_server_client glob graphs http_multi_server io js logging meta mime package_config path pool pub_semver pubspec_parse shelf shelf_web_socket stack_trace stream_transform timing watcher web_socket_channel yaml]
- flutter_test 0.0.0 [flutter test_api path fake_async clock stack_trace vector_math async boolean_selector characters charcode collection matcher meta source_span stream_channel string_scanner term_glyph typed_data]
- json_serializable 6.0.1 [analyzer async build build_config collection json_annotation meta path pub_semver pubspec_parse source_gen source_helper]

transitive dependencies:
- _fe_analyzer_shared 30.0.0 [meta]
- analyzer 2.7.0 [_fe_analyzer_shared cli_util collection convert crypto glob meta package_config path pub_semver source_span watcher yaml]
- another_flushbar 1.10.24 [pedantic flutter]
- another_transformer_page_view 1.0.1 [pedantic flutter]
- args 2.1.1
- async 2.8.1 [collection meta]
- boolean_selector 2.1.0 [source_span string_scanner]
- build 2.1.0 [analyzer async convert crypto glob logging meta path]
- build_config 1.0.0 [checked_yaml json_annotation path pubspec_parse yaml]
- build_daemon 3.0.0 [built_collection built_value http_multi_server logging pedantic path pool shelf shelf_web_socket stream_transform watcher web_socket_channel]
- build_resolvers 2.0.4 [analyzer async build crypto graphs logging path package_config pool pub_semver stream_transform yaml]
- build_runner_core 7.2.2 [async build build_config build_resolvers collection convert crypto glob graphs json_annotation logging meta path package_config pool timing watcher yaml]
- built_collection 5.1.0
- built_value 8.1.0 [built_collection collection fixnum meta]
- characters 1.1.0
- charcode 1.3.1
- checked_yaml 2.0.1 [json_annotation source_span yaml]
- cli_util 0.3.0 [meta path]
- clock 1.1.0
- cloud_firestore_platform_interface 5.4.5 [collection firebase_core flutter meta plugin_platform_interface]
- cloud_firestore_web 2.5.0 [cloud_firestore_platform_interface collection firebase_core firebase_core_web flutter flutter_web_plugins js]
- cloud_functions_platform_interface 5.0.14 [firebase_core flutter meta plugin_platform_interface]
- cloud_functions_web 4.1.1 [cloud_functions_platform_interface firebase_core firebase_core_web flutter flutter_web_plugins js]
- code_builder 4.0.0 [built_collection built_value collection matcher meta]
- collection 1.15.0
- convert 3.0.0 [typed_data]
- country_pickers 2.0.0 [flutter]
- crypto 3.0.1 [collection typed_data]
- dart_style 2.2.0 [analyzer args path pub_semver source_span]
- fake_async 1.2.0 [clock collection]
- ffi 1.1.2
- file 6.1.2 [meta path]
- firebase_auth_platform_interface 6.1.4 [firebase_core flutter meta plugin_platform_interface]
- firebase_auth_web 3.2.0 [firebase_auth_platform_interface firebase_core firebase_core_web flutter flutter_web_plugins http_parser intl js meta]
- firebase_core_platform_interface 4.1.0 [collection flutter meta plugin_platform_interface]
- firebase_core_web 1.2.0 [firebase_core_platform_interface flutter flutter_web_plugins js meta]
- fixnum 1.0.0
- flutter_web_plugins 0.0.0 [flutter js characters collection meta typed_data vector_math]
- font_awesome_flutter 9.1.0 [flutter]
- frontend_server_client 2.1.0 [async path]
- glob 2.0.1 [async collection file path pedantic string_scanner]
- graphs 2.0.0
- http 0.13.3 [async http_parser meta path pedantic]
- http_multi_server 3.0.1 [async]
- http_parser 4.0.0 [charcode collection source_span string_scanner typed_data]
- io 1.0.0 [meta path string_scanner]
- js 0.6.3
- latlong2 0.8.1 [intl]
- logging 1.0.1
- markdown 4.0.0 [args charcode meta]
- matcher 0.12.10 [stack_trace]
- meta 1.7.0
- mime 1.0.0
- nested 1.0.0 [flutter]
- package_config 2.0.0 [path]
- package_info_plus_linux 1.0.3 [package_info_plus_platform_interface flutter path]
- package_info_plus_macos 1.3.0 [flutter]
- package_info_plus_platform_interface 1.0.2 [flutter meta plugin_platform_interface]
- package_info_plus_web 1.0.4 [flutter flutter_web_plugins http meta package_info_plus_platform_interface]
- package_info_plus_windows 1.0.4 [package_info_plus_platform_interface ffi flutter win32]
- path 1.8.0
- path_provider_linux 2.0.0 [path xdg_directories path_provider_platform_interface flutter]
- path_provider_platform_interface 2.0.1 [flutter meta platform plugin_platform_interface]
- path_provider_windows 2.0.1 [path_provider_platform_interface meta path flutter ffi win32]
- pedantic 1.11.1
- phone_number 0.12.0 [flutter meta]
- platform 3.0.0
- plugin_platform_interface 2.0.0 [meta]
- pool 1.5.0 [async stack_trace]
- process 4.2.1 [file path platform]
- pub_semver 2.0.0 [collection]
- pubspec_parse 1.0.0 [checked_yaml collection json_annotation pub_semver yaml]
- qr 2.1.0 [meta]
- quiver 3.0.1 [matcher]
- shared_preferences 2.0.8 [flutter meta shared_preferences_linux shared_preferences_macos shared_preferences_platform_interface shared_preferences_web shared_preferences_windows]
- shared_preferences_linux 2.0.0 [flutter file meta path path_provider_linux shared_preferences_platform_interface]
- shared_preferences_macos 2.0.0 [shared_preferences_platform_interface flutter]
- shared_preferences_platform_interface 2.0.0 [flutter]
- shared_preferences_web 2.0.0 [shared_preferences_platform_interface flutter flutter_web_plugins meta]
- shared_preferences_windows 2.0.0 [shared_preferences_platform_interface flutter file meta path path_provider_platform_interface path_provider_windows]
- shelf 1.1.4 [async collection http_parser path stack_trace stream_channel]
- shelf_web_socket 1.0.1 [shelf stream_channel web_socket_channel]
- sky_engine 0.0.99
- soundpool_macos 2.1.3 [flutter soundpool_platform_interface]
- soundpool_platform_interface 2.1.0 [flutter meta plugin_platform_interface]
- soundpool_web 2.1.0 [flutter flutter_web_plugins soundpool_platform_interface http]
- source_gen 1.1.1 [analyzer async build dart_style glob meta path source_span yaml]
- source_helper 1.3.0 [analyzer collection source_gen]
- source_span 1.8.1 [collection path term_glyph]
- stack_trace 1.10.0 [path]
- stream_channel 2.1.0 [async]
- stream_transform 2.0.0
- string_scanner 1.1.0 [charcode source_span]
- term_glyph 1.2.0
- test_api 0.4.2 [async boolean_selector collection meta source_span stack_trace stream_channel string_scanner term_glyph matcher]
- timing 1.0.0 [json_annotation]
- typed_data 1.3.0 [collection]
- url_launcher_linux 2.0.0 [flutter]
- url_launcher_macos 2.0.0 [flutter]
- url_launcher_platform_interface 2.0.4 [flutter plugin_platform_interface]
- url_launcher_web 2.0.1 [flutter flutter_web_plugins meta url_launcher_platform_interface]
- url_launcher_windows 2.0.0 [flutter]
- vector_math 2.1.0
- watcher 1.0.0 [async path pedantic]
- web_socket_channel 2.1.0 [async crypto stream_channel]
- win32 2.2.5 [ffi]
- xdg_directories 0.2.0 [meta path process]
- yaml 3.1.0 [collection source_span string_scanner]

Same thing here spent hours on this issue. Everything looks good for APNs yet users get redirected to the recaptcha.
I have tried to create a new provision profile and new APNs key and everything I could but still this issue exists. The only way i don't get the recaptcha is with the trusted device on my developer account.

Hi @sarbogast, Thanks for filing the issue. It looks like the domain entered When registering the reCaptcha is not accessible in the region where the app is running. Try setting localhost as the domain when registering a ReCaptcha.

@maheshmnj I don't get it. I don't register any reCAPTCHA. I simply call verifyPhoneNumber and Firebase deals with the reCAPTCHA on its own. Can you clarify where I could do this configuration?

@sarbogast  Ah sorry that was for the web https://firebase.google.com/docs/app-check/web/recaptcha-provider, please ignore the last comment.

@sarbogast I ran the official firebase_auth sample and I could not reproduce the issue the Captcha loads and completes successfully. Can you please try setting deviceToken to .unknown in AppDelegate.swift
 Auth.auth().setAPNSToken(deviceToken, type: .unknown)

as mentioned in this stackoverflow answer

@sarbogast I ran the official firebase_auth sample and I could not reproduce the issue the Captcha loads and completes successfully. Can you please try setting deviceToken to .unknown in AppDelegate.swift
 Auth.auth().setAPNSToken(deviceToken, type: .unknown)

as mentioned in this stackoverflow answer

still the same issue that's what I have tried:
import FirebaseAuth
override func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
            let firebaseAuth = Auth.auth()
            firebaseAuth.auth().setAPNSToken(deviceToken, type: .unknown)
     }

Thanks for the update keeping this issue open for further investigation from the team.

I fixed this by re-creating the ios folder. I don't know what exactly was the problem but with a fresh ios folder everything works perfect

Regarding reCaptcha from the iOS perspective, it needs a REVERSED_CLIENT_ID to be set to CFBundleURLTypes, its pretty common pitfall. I am looking a sandbox firebase native iOS project of Firebase v8.12.1 and FirebaseAuth of v8.12.0, FirebaseMessaging v.8.12., iOS 15.2 deploy target.
I can see my test push message from FCM console delivers successfully. However no silent push, delivered. Starting from he version 8.8.0 they made fallback on captcha.
Not sure where to dig and who to ask for help.

Having the same issue, unfortunately I can't reproduce it on a physical device myself. Tried both solutions in the Stackoverflow link mentioned above, to no avail. App Store reviewer's phone is set to English and (looking at their time zone) probably in the US, so we can rule out locale being the problem.
I've appended the setAPNSToken code to the AppDelegate as mentioned on SO, not sure if that makes sense?
`override func application(
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
) -> Bool {
GMSServices.provideAPIKey("XXXXXXXXXXXXXXXXXXXXXXX")
GeneratedPluginRegistrant.register(with: self)
return super.application(application, didFinishLaunchingWithOptions: launchOptions)
}
//Auth
override func application(
_ application: UIApplication,
didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data
) {
let firebaseAuth = Auth.auth()
firebaseAuth.setAPNSToken(deviceToken, type: AuthAPNSTokenType.unknown)
}
override func application(
_ application: UIApplication,
didReceiveRemoteNotification userInfo: [AnyHashable : Any],
fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void
) {
let firebaseAuth = Auth.auth()
if (firebaseAuth.canHandleNotification(userInfo)){
print(userInfo)
return
}
}`

Same problem here, APN is configured as described in the docs, but reCaptcha challenge is always shown

Hey @sarbogast, this issue needs to be resolved at the level of firebase-ios-sdk. Here is a similar issue. FlutterFire currently uses version 8.15.0 which up until 2 days ago was the latest version.
I also checked the firebase iOS repo and it looks like Firebase is blocked in China (The characters in the image look like Mandarin to me). So I wouldn't recaptha to work there. Hope this helps!


Dependabot Alert #7 - word-wrap is vulnerable

All versions of the package word-wrap are vulnerable to Regular Expression Denial of Service (ReDoS) due to the usage of an insecure regular expression within the result variable.

Related Trello card: https://trello.com/c/ooWISLTY/29-niaid-monarch-actions-switch-account-dependabot-alert-7-word-wrap-is-vulnerable


Batched/Linear uploads

Replaces the allocate-as-needed logic with bulk linear allocations for both image create, image update, and mesh upload.

Doubles the framerate over master when compared using a modified demo_app.rs with PresentMode::Mailbox and a few spare swapchain images, even using 1% less of my CPU while doing so. It also starts up a sixteenth of a second faster, clearly the largest benefit here :P

Image uploads are now batched per-frame and only synchronize once. Should help with stutter on UIs that load/modify fonts or images frequently (Scrubbing the font size slider on the demo_app's FontBook is a good example).

Could further improve this by not synchronizing the host at all, leaving all sync to the device.

Mesh uploads now only memmap the buffers twice-per-frame instead of twice-per-mesh.

With a dependency on bytemuck this could be further reduced to a single memmap per frame, but it would require a private dependency addition and a public egui feature flag change for a somewhat trivial perf boost, and I'm not sure the policy on that (could also be achieved with some fairly trivial unsafe ops).

It should use substantially less memory during these operations, but I do not have a convenient way to measure. On current master, image creation/deltas involve 4 in-memory copies, reduced here to 2.

I have further optimizations in mind, namely deduplicating command buffer commands, as there are currently ~250 commands for 20 meshes which could be greatly reduced. Always unsure on whether I should bundle the changes into one PR since they're a bit disjoint -- please advise!

Always unsure on whether I should bundle the changes into one PR since they're a bit disjoint -- please advise!

The smaller the PR the easier it is to review and less chance for mistakes. So Separate PRs 👍

This one is also appreciated! Don't see anything blocking the merge other than lints & merge conflicts

Alright, merged and fixed up! Did a few reads over and I'm happy enough with it to open this up. I hope I did alright with the merge, still learning git.

Doubles the framerate over master when compared using a modified demo_app.rs with PresentMode::Mailbox and a few spare swapchain images,

I should not be allowed to benchmark/write PR messages at 2am. The improvements are much more modest at ~25% improvement in frametimes. The other improvements are still true - I just have no idea how i got that number lol.


App is no installing on Samsung

Hi,
I created a app and it is not installing on Samsung J3, Samsung J5 , oppo F3 plus showing The app is not compatible with your device.
On samsung S8, it is extracting, but not installing, please advice.
Best Regards,
Naveen

Hello @naveenjoshi7777 !
Thank you for posting an issue.
Have you tried to install the app on other devices? If yes, then did you manage to?

Hi @janmoppel ,
Thanks for your reply.
Yes, it is working on Redmi or even on some of the Samsung devices.
We are in testing face, can you advice if there is some thing related to signed APK?

We're going to need a bit more details such as a sample APK or some reproduction steps. Or is this reproducible on all apps such as a newly created one from flutter create?
The Samsung J devices does seem problematic potentially in https://github.com/flutter/flutter/issues/24286. Though it sounds like you were never able to run the app in the first place.

Without additional information, we are unfortunately not sure how to resolve this issue.
We are therefore reluctantly going to close this bug for now.
Please don't hesitate to comment on the bug if you have any more information for us; we will reopen it right away!
Thanks for your contribution.
Could everyone who still has this problem please file a new issue with the exact description of what happens, logs, and the output of flutter doctor -v.
All system setups can be slightly different, so it's always better to open new issues and reference related issues.


Implement E2E tests

In what area(s)?
/area test
Dependent Issue
#335 Define E2E Test
Describe the feature
This will create the real e2e test based on test plans generated by #335.
Exit criteria

Cover the existing APIs tests with multiple components described in test plan
Provide the guideline for e2e test

Dupe


Parse Dates Surrounded by Spaces Without Exception

When a date is surrounded by space, the date library fails to parse it
This commit is to trim the date field before parsing date fields.

Thanks for the bugfix! Just tried it out and looks good to me :)


Update stale.yml to be more aggressive

Changing the stalebot to tag issue as stale after 45 days of inactivity. In addition, it will now not ignore issues in Projects, but will ignore issues in milestones.

Closed this in favor of the new stale action in #9278


Failures on Experimentally remove getFunctionTypeForImplicitCall

There are new test failures on Front end: remove getFunctionTypeForImplicitCall (and unnecessary invocations)..
The tests
language/covariant/callable_class_field_getter_test RuntimeError (expected Pass)

are failing on configurations
dart2wasm-linux-chrome
dart2wasm-linux-d8

Note: this test was introduced in the previous CL in the chain (Add language test to reproduce #53089), and it failed there as well, with the same error message ([object WebAssembly.Exception]).
So I believe it's actually a pre-existing bug in the dart2wasm compiler; its only relation to these two CLs is that prior to Add language test to reproduce #53089, the test doesn't exist, and prior to Front end: remove getFunctionTypeForImplicitCall (and unnecessary invocations)., the test isn't expected to pass.


SSAO (Screen Space Ambient Occlusion)

This could be fairly easy to integrate:
https://learnopengl.com/Advanced-Lighting/SSAO
I already create a few shaders + render targets in: https://github.com/JuliaPlots/GLMakie.jl/blob/master/src/glwindow.jl#L52
And we could add the ones required for SSAO!

I started working on this (the learnopengl version). I think the occlusion calculation is now working correctly. Here's what I get:

which should be similar to

I still need to implement the blur and combine this with colors. After that it's a question of integrating it nicely with Makie.
Btw I noticed a couple of issues with the shaders:

The transformation of normals is incorrect for some model matrices. According to learnopengl it should use transpose(inv(model)) * normal, but it's just using model * normal. I guess that's what normalmatrix is in there for, but it's not defined. For SSAO we'd need transpose(inv(view * model)) as well. (In standard.vert)
Some places have if(color.a <= 0.0) discard;. To my understanding discard stops opengl from skipping obstructed geometry, so it's bad for performance. Are these really needed? (For example in fragment_output.frag)
There's a Light struct in util.vert that's never used (or is it?).

Oh wow, amazing :)

The transformation of normals is incorrect for some model matrices. According to learnopengl it should use transpose(inv(model)) * normal, but it's just using model * normal. I guess that's what normalmatrix is in there for, but it's not defined. For SSAO we'd need transpose(inv(view * model)) as well. (In standard.vert)

Good point, I noticed that as well, but never (fully?) fixed it! We should fix that!

Some places have if(color.a <= 0.0) discard;. To my understanding discard stops opengl from skipping obstructed geometry, so it's bad for performance. Are these really needed? (For example in fragment_output.frag)

Yeahh... This is an annoying situation. We have quite a few shaders, that mix opaque & transparent outputs. I decided its the least worse evil, And all the other approaches I tried to implement mixed transparencies didn't really work out as well...

There's a Light struct in util.vert that's never used (or is it?).

Yeah should remove it!

Some places have if(color.a <= 0.0) discard;. To my understanding discard stops opengl from skipping obstructed geometry, so it's bad for performance. Are these really needed? (For example in fragment_output.frag)

Yeahh... This is an annoying situation. We have quite a few shaders, that mix opaque & transparent outputs. I decided its the least worse evil, And all the other approaches I tried to implement mixed transparencies didn't really work out as well...

Is it really about transparent vs opaque? This is checking alpha <= 0, so it would only throw away completely invisible pixels.
Or does this act as an alternative to using opengl blending?

Well, I rather meant cut-out with half transparent (anti aliased) edges...Most prominently, we use that in the scatter/text shader, to cut out the bilboards with the markershape ;)

That's also why we have: https://github.com/jkrumbiegel/MakieLayout.jl/issues/66
The outer cut out get's discarded which works correctly, but the aa edge still writes to the depthbuffer, so it doesn't alpha blend...

Turns out "some places" means fragment_output.frag, fxaa.frag (kinda) and postprocess.frag.
I disabled the one in fragment_output.frag, Doesn't look like anything changes...
mesh + surface + text, no transparency:

mesh + text w/ transparency

transparent text, transparent scatter, opaque line:

I'll close this since SSAO has been merged


Update pacages

Description

Related Issue(s)

#{insert issue number here}

Developer/Reviewer Checklist

[ ] Your code builds clean without any errors or warnings
[ ] No changes to config/appsettings or environment variables created in separate linked PR
[ ] Manual testing done (required)
[ ] Relevant integration test added (required for functional changes)
[ ] Relevant automated test added (required for functional changes)
[ ] All integration tests run green

Documentation

[ ] User documentation is updated with a separate linked PR in altinn-studio-docs. (if applicable)

Ikke lenger relevante pakkeoppdateringer. Main er allerede oppdatert tilsvarende eller nyere


Trying to understand the AudioVideoSample

Describe the issue
I am trying to understand how the audiovideo sample works.
I believe the joincall request ends up here and the control flow looks like this:
JoinCallController.cs > JoinCallAsync:
var call = await Bot.Instance.JoinCallAsync(joinCallBody).ConfigureAwait(false);
Bot.cs:
var statefulCall = await this.Client.Calls().AddAsync(joinParams, scenarioId).ConfigureAwait(false);
CallCollectionExtensions.cs:
return callCollection.AddAsync(call, parameters.MediaSession, parameters.RemoveFromDefaultAudioRoutingGroup, scenarioId, cancellationToken);
ICallCollection.cs:
Task<ICall> AddAsync(Call resource, IMediaSession mediaSession = null, bool? removeFromDefaultRoutingGroup = false, Guid scenarioId = default(Guid), CancellationToken cancellationToken = default(CancellationToken));
I can't find out the source for the class that implements ICallCollection.cs.
Is this closed source? If not, can you please point me in the right direction?

The SDK is closed source.  We do have a request to open source the SDK, but have not yet done so.  At this point I don't have a solid timeline as to when that will happen.
Here are some pointers to understand the sample:

Deploy (or set up locally) and try it out.

All the instructions should be in the LocalMediaSamples folder and in the AudioVideoPlaybackBot folder

Review the logs for a given call at https://your.app.url/logs/{callId}.  The logs will show you:

What http requests are being made by the SDK and what notifications the SDK has processed.  This should match with our API documentation
Your instance specific URIs and the media tcp URIs... useful for troubleshooting whether the right "instance" is getting your requests.

Review the SDK documentation and the documentation for ICallCollection and the ICallCollection extensions

If you have any specific questions, you can also ask here :)

Got it. Thanks


Fix use-after-free issue when closing a connection

async_cb  frees process right after calling uv_close, which is prohibited. The correct method is using close callback.
See more information here

I'm not sure why win10 build failed. But it seems not related to my change, since I didn't touch anything other than 1 file.


Bug 1793331: Remove /etc/passwd UID entrypoint scripts.

This was the recommended way to support arbitrary user IDs in pre-4.2 releases as the container UID was generated dynamically and may not have the corresponding /etc/passwd entry.
In 4.2+ releases, CRI-O automatically updates this /etc/passwd entry with the current container UID so this is now obsolete and insecure.

/cherrypick release-4.3

/cherrypick release-4.2

/lgtm

Forgot the ENTRYPOINT needs to be comma-separated between individual commands.

/lgtm

/lgtm

Let's wait for the fork PRs to merge first
/hold

/retest

/hold cancel

Hmm weird I'm not seeing this locally:
Setting up watches.  Beware: since -r was given, this may take a while!
Watches established.
/tmp/ansible-operator/runner/metering.openshift.io/v1/MeteringConfig/metering-validhdfs-reportstaticinputdata/operator-metering/artifacts/6129484611666145821//stdout
ansible-playbook 2.8.0
  config file = /etc/ansible/ansible.cfg
  configured module search path = [u'/usr/share/ansible/openshift']
  ansible python module location = /usr/lib/python2.7/site-packages/ansible
  executable location = /usr/bin/ansible-playbook
  python version = 2.7.5 (default, Jun 11 2019, 14:33:56) [GCC 4.8.5 20150623 (Red Hat 4.8.5-39)]
Using /etc/ansible/ansible.cfg as config file

PLAYBOOK: 6e3f2420fc28457ab4de7a72924a4f1f *************************************
1 plays in /tmp/ansible-operator/runner/metering.openshift.io/v1/MeteringConfig/metering-validhdfs-reportstaticinputdata/operator-metering/project/6e3f2420fc28457ab4de7a72924a4f1f

PLAY [localhost] ***************************************************************

TASK [Gathering Facts] *********************************************************
Tuesday 11 February 2020  20:31:53 +0000 (0:00:00.153)       0:00:00.153 ******
An exception occurred during task execution. To see the full traceback, use -vvv. The error was: KeyError: 'getpwuid(): uid not found:<PHONE_NUMBER>'
fatal: [localhost]: FAILED! => {"msg": "Unexpected failure during module execution.", "stdout": ""}

PLAY RECAP *********************************************************************
localhost                  : ok=0    changed=0    unreachable=0    failed=1    skipped=0    rescued=0    ignored=0

Closing - this is getting stale and we need to rethink how to approach this.


utm_ tags are considered as unique pages

Hello,
Great job building Umami - I love it. I am using it on my personal blog prasannamestha.com and I noticed that umami considers utm tags and other query params as unique pages. Wouldn't it be better if we not consider query params as unique pages or maybe add a configuration/filter to do the same?
Screenshot:

Thank you

I have the same need - FB can assign many different fbclids to an URL and for my reporting I'd like to treat all the URLs the same regardless of query parameters. This would be the opposite of this feature request: https://github.com/umami-software/umami/discussions/619
One idea would be to add a config parameter to the tracking script to delete query parameters.

I'd like to see the same too. Having various utm_ tags from things like fbclid treated as their own page is quite annoying for the reports leading to inaccurate reporting IMO.
Even Umami's own demo page shows many that IMO should be rolled up to the main root page ('/'):

Same issue here, would be nice if they are grouped with the canonical URL.

This will be fixed next release. #1790 different issue, but same problematic behavior. The default view will be combined URLs, filtering out the query params. The user can still see the query params in the raw view.

Fixed in v2.0.0.


Smoother search-as-you-type updates

ghostHunter currently updates the list of search hits by clearing and restoring the list. Since many Ghost styles do quite a bit of display formatting, there is pretty severe jitter effect when onKeyUp is enabled. It should be possible to update the list using a Levenstein-distance tool, applying just the changes necessary in the current (last-search-result) display to make it reflect the incoming data array. I'll see if I can get this working, and if it works out, post a pull request after #42 has cleared.

closed after merge


Add test verifying WaterfallStep.Parent is the WaterfallDialog.Parent

Fixes # 2734
Description
This PR adds a new test to waterfallDialog.test file to verify that the WaterfallStep parent matches the WaterfallDialog parent.
Specific Changes

Added a new test in waterfallDialog.test.
Apply styling fixes.

Testing
The following image shows the new test passing.

Promoted


Componentize prototype using react or yoyo

:+1:  :-) love the project.
Will there be a wireframe how this IDE will look like and what components it will have?


setCalendarDisplayMode(CalendarMode.WEEKS) wrong week when Date selected

When you "collapse" the Calendar with .setCalendarDisplayMode(CalendarMode.WEEKS), the week displayed is one week to early, when using Monday as first day of the week. (Only working when i select the Sunday)
[BUG]

its not working even if i set to Sunday .. on lollipop and above.
Works on pre-lolliop devices. if first day is Sunday.
problem with setCurrentDate
date set to Saturday or Sunday of the week in Week View.
eg:
In weekview (Today:30/6/16)
CurrentDate: CalendarDay{2016-2-26} selected Date: CalendarDay{2016-2-30}

Same bug on marshmallow, but week switches to the desired week if setCurrentTime set for Sunday

In my case, I has this bug in the Marshmallow version.

Adding dayDiff += (Calendar.DAY_OF_WEEK_IN_MONTH - firstDayOfTheWeek) % 7; between line 69-70 in WeekPagerAdapter#weekNumberDifference(...) seems to fix this.
Expose 'firstDayOfTheWeek' in CalendarPagerAdapter with 'public static' modifier.

@joecizac Thanks for your answer we are going to check that out

This issue has been fixed and is available in the 1.3 snapshot. Stay tuned for the next release.You can try the 1.3 snapshot with the instructions in README. Enjoy and report issues!

the issue still persists in nexus 5 running on 6.0.1...dunno why

yes issue still persists in marshmallow ... i have use a hack to scroll the pager in Week view. its working fine in lolliop and below i think

And the problem aggravates with setMaximumDate

@joecizac @victorileaf Can you provide full details on the MCV configuration you are using to repro this issue?

    mCalendarView = (MaterialCalendarView) parent.findViewById(R.id.cal_week);
    mCalendarView.setShowOtherDates(MaterialCalendarView.SHOW_ALL);
    mCalendarView.setSelectedDate(now.getTime());
    mCalendarView.setCurrentDate(CalendarDay.from(now), false);
    mCalendarView.setMaximumDate(now.getTime());

For 1.3.0 and below, you should call setMaxDate before Current/Selected; min/max does things which rebuild the adapters and is especially sensitive for Week mode.

The issue is with Marshmallow and N preview.

No, it's not platform specific. I can repro this even on a 5.1 device. This snippet will break on 1.4.0 for example:
CalendarDay today = CalendarDay.from(2016, 4, 25);

widget.state().edit()
  .setMaximumDate(today)
  .setCalendarDisplayMode(CalendarMode.WEEKS)
  .commit();

widget.setCurrentDate(today);
widget.setSelectedDate(today);

So this bug should be re-opened right?

It has already been reopened.

still persists in nexus 5 running 6.0.1
running the sample app

There is still something to do with minDate.
If not set, the above issue persists in nexus 5 with 6.0.1.
If minDate is set, the calendar is not drawn in Xiaomi Redmi 2 running 4.4.4, removing minDate solves it though.

I still have this issue on 1.4.0 when using monday as firstDayOfWeek


Subsequent spin ups from AMI limit Parsec's display resolutions

Hey there, This guide is the best of all the others I have come across so far!  It's extremely clear and does not leave out details.  And it works!
I have followed the guide including the optional scripts for snap and delete and spin up of instance by cli script.  I noticed that on the very first time which I manually created and launched the instance via AWS console, everything was fine.  Parsec could display all available resolutions without problems.  However, after I terminated the instance, and spun up a new one with the cli script, Parsec started behaving strangely.  It could only display 2 resolutions: 1368x768 and 1280x1024.  Any other resolution I tried to force Parsec to use (both by config file and choosing from the drop down list) would have no effect, and resolution would persist at either 1368x768 or 1280x1024.
I also noticed that in Parsec's Host settings, the output display changed from ".\.Display1." to "Generic PnP Monitor".  Not sure if this is a symptom of the issue.  Only after I RDP-ed into the new instance, the abovementioned Parsec Host setting reverted back to ".\.Display1.". But still, that did not solve the issue.
Here's some additional info for troubleshooting:
Instance type: g4dn.xlarge

When I used Parsec client on macOS, I could toggle between 1368x768 and 1280x1024.
When I used Parsec client on Windows, the resolution did not go beyond 1280x1024 regardless of any higher resolution I forced Parsec to use.

Hi @josiasteo,
Thanks for your kind words.
Honestly, I may be a bit out of my depth here. I'm more of an AWS guy than a Parsec guy, and this seems more like a Parsec/NVIDIA issue to me. As the new instance is created from an image, it should be identical. The only thing I can think of is some hardware ID changing and hence some driver not working as it should, but I'm not well-versed enough in hardware to say for sure.
I haven't had this issue on my AWS build, but I did have something similar on Paperspace, where my native 16:10 resolution was simply ignored by the Parsec host.

Can you try re-running the GPU updater on the host? Perhaps that would fix the problem.

Are you using Server 2016 or 2019?

Using the NVIDIA control panel, are you able to switch to the desired resolution?

Just trying to figure out whether the problem you have is the same one I had on Paperspace. In my case the problem was on of aspect ratio which I had partially solved by following https://support.parsecgaming.com/hc/en-us/articles/360001331832-Adding-Non-Standard-Aspect-Ratios-To-Your-Cloud-PC
Let me know.

Hi Keith,
I will re-run the GPU Updater and update you on the result.
I’m using Server 2016 Base.
I took a swing at Nvidia Control Panel, and tried to specify a custom resolution on the one and only display I saw (NVIDIA GVFX), but the button to specify a custom resolution was greyed out, and I couldn’t click on it.  I will try to snoop around for any possible Nvidia Control Panel config file and see if I can update that file directly.
Cheers,
Josias Teo

On 5 May 2020, at 9:47 PM, Keith Vassallo<EMAIL_ADDRESS>wrote:
Hi @josiasteo https://github.com/josiasteo,
Thanks for your kind words.
Honestly, I may be a bit out of my depth here. I'm more of an AWS guy than a Parsec guy, and this seems more like a Parsec/NVIDIA issue to me. As the new instance is created from an image, it should be identical. The only thing I can think of is some hardware ID changing and hence some driver not working as it should, but I'm not well-versed enough in hardware to say for sure.
I haven't had this issue on my AWS build, but I did have something similar on Paperspace, where my native 16:10 resolution was simply ignored by the Parsec host.
Can you try re-running the GPU updater on the host? Perhaps that would fix the problem.
Are you using Server 2016 or 2019?
Using the NVIDIA control panel, are you able to switch to the desired resolution?
Just trying to figure out whether the problem you have is the same one I had on Paperspace. In my case the problem was on of aspect ratio which I had partially solved by following https://support.parsecgaming.com/hc/en-us/articles/360001331832-Adding-Non-Standard-Aspect-Ratios-To-Your-Cloud-PC https://support.parsecgaming.com/hc/en-us/articles/360001331832-Adding-Non-Standard-Aspect-Ratios-To-Your-Cloud-PC
Let me know.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/keithvassallomt/parsec-aws-automation/issues/1#issuecomment-624065962, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABJVZAQMRF6QNOVVY5N5LQ3RQAKIXANCNFSM4MZSPCKA.

Hi Keith,
While re-running GPU Updater, I had to fix a couple of bugs in the process. Still, it did not work.
Is there any difference between doing the whole setup on Server 2016 or 2019?  Perhaps I’ll try out the entire setup on 2019 and see if that solves the problem.
Regarding your last comment on the aspect ratio problem for Paperspace, trying to specify a custom resolution on a g4dn isn’t allowed.  I followed the instructions to locate the place on the Nvidia Control Panel to specify custom resolutions, but there wasn’t even a default entry for me to edit and I couldn’t create new resolutions either.
Cheers,
Josias Teo

On 5 May 2020, at 9:55 PM, Josias Teo<EMAIL_ADDRESS>wrote:
Hi Keith,
I will re-run the GPU Updater and update you on the result.
I’m using Server 2016 Base.
I took a swing at Nvidia Control Panel, and tried to specify a custom resolution on the one and only display I saw (NVIDIA GVFX), but the button to specify a custom resolution was greyed out, and I couldn’t click on it.  I will try to snoop around for any possible Nvidia Control Panel config file and see if I can update that file directly.
Cheers,
Josias Teo

On 5 May 2020, at 9:47 PM, Keith Vassallo<EMAIL_ADDRESS><EMAIL_ADDRESS>wrote:
Hi @josiasteo https://github.com/josiasteo,
Thanks for your kind words.
Honestly, I may be a bit out of my depth here. I'm more of an AWS guy than a Parsec guy, and this seems more like a Parsec/NVIDIA issue to me. As the new instance is created from an image, it should be identical. The only thing I can think of is some hardware ID changing and hence some driver not working as it should, but I'm not well-versed enough in hardware to say for sure.
I haven't had this issue on my AWS build, but I did have something similar on Paperspace, where my native 16:10 resolution was simply ignored by the Parsec host.
Can you try re-running the GPU updater on the host? Perhaps that would fix the problem.
Are you using Server 2016 or 2019?
Using the NVIDIA control panel, are you able to switch to the desired resolution?
Just trying to figure out whether the problem you have is the same one I had on Paperspace. In my case the problem was on of aspect ratio which I had partially solved by following https://support.parsecgaming.com/hc/en-us/articles/360001331832-Adding-Non-Standard-Aspect-Ratios-To-Your-Cloud-PC https://support.parsecgaming.com/hc/en-us/articles/360001331832-Adding-Non-Standard-Aspect-Ratios-To-Your-Cloud-PC
Let me know.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/keithvassallomt/parsec-aws-automation/issues/1#issuecomment-624065962, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABJVZAQMRF6QNOVVY5N5LQ3RQAKIXANCNFSM4MZSPCKA.

I actually figured it out after I had the problem myself.
When you launch the instance the first time, make it on-demand, i.e. not spot. Do all the installations as necessary, including GPU updater, the script etc. When creating the launch configuration, DO make it a spot instance. After you're done with the instance and after you confirm that after a restart everything is working, only then should you shutdown the machine.
Subsequent runs will be spot instances, but with working configuration.

Perfect! This worked. Thank you. Also, there is no difference between Server 2016 or 2019. Both worked equally well.
Cheers,
Josias Teo

On 12 May 2020, at 12:12 AM, Keith Vassallo<EMAIL_ADDRESS>wrote:
Closed #1 https://github.com/keithvassallomt/parsec-aws-automation/issues/1.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/keithvassallomt/parsec-aws-automation/issues/1#event-3323706190, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABJVZARHUP2ATXXL2J4VC4LRRAPYFANCNFSM4MZSPCKA.

Hi there,
I came here searching for exactly this issue and I just wanted to point out that there's nothing wrong with your tutorial (which is amazing btw) and this worked for me:
https://github.com/parsec-cloud/Parsec-Cloud-Preparation-Tool/issues/18#issuecomment-631844137
keep gaming,
cheers!
Cap


Variables persists when testing

Laravel Version: 5.3.22
PHP Version: 5.6.15

Description:
Controller
class StudentTheseRequestController
{
	protected $user;

	public function __construct()
	{
        $this->middleware(function ($request, $next) {
            $this->user = auth()->user();

            return $next($request);
        });
	}

	public function store()
	{
		//Store in the database

		return redirect()->route('my-these-request.show');
	}

	public function show()
	{
		$deposit = $this->user->student->theseRequest;
	}
}

When i write a test like this
$this->be($student->user);

$this->visitRoute('these-request.create');

//Fill form and presse submit

$this->seeInDatabase('these_requests', [
    'student_id' => $student->id
    ...
]);

$this->seeRouteIs('these-request.show');

// Some other assertions like: see the subject of his submission ...

When manually from the browser everything works fine.
When i run the test from command line, i keep getting null for the variable $this->user->student->theseRequest but if i change it with $this->user->student->theseRequest()->first() the test pass.
What is happening is that the $user attribute in the controller is the same. But as you can see the test has three requests.
One for showing the form (create method)
One for submitting the form (store method)
One for showing the submitted data (show method)

all models on the same connection?

Yes.
Also i if i do $user->name = 'bar' without saving the user Model in the store() of the controller and then do dd($user->name) in the show() method, i get the value bar
BTW the seeInDatabase() in the test pass.
The problem isn't in the data not being saved in the database, but in the Models not refreshing.

Yes, I can confirm this. I'd expect the controller to be re-built on each request, but it stays the same object. I've build a test case for it:
Let the controller return its object hash:
https://github.com/KarimGeiger/LaravelTestCase16362/blob/master/app/Http/Controllers/Controller.php
And then call it twice and expect the hashes to differ:
https://github.com/KarimGeiger/LaravelTestCase16362/blob/master/tests/ExampleTest.php
The result will be:
$ phpunit
PHPUnit 5.1.0 by Sebastian Bergmann and contributors.

F                                                                   1 / 1 (100%)

Time: 209 ms, Memory: 16.00Mb

There was 1 failure:

1) ExampleTest::testBasicExample
Failed asserting that '0000000035c79906000000002e0bb7c1' is not equal to <string:0000000035c79906000000002e0bb7c1>.

tests/ExampleTest.php:26

FAILURES!
Tests: 1, Assertions: 3, Failures: 1.

Feel free to clone this repository.

I think this is the expected behaviour. Perhaps ask on the forums. There are some subtleties with sending more than one request in the same test method.

@GrahamCampbell How is this expected behavior ?
Do you really think that variables should persist on different requests ?

Yes, why should this be expected behaviour? In my opinion, tests should try to simulate the real world as good as possible. This doesn't even remotely simulate it as in the real world, a controller will always be different across requests.
For everyone having the same issue: A workaround - although ugly - would be, in your TestCase class. makeRequest will be called by the InteractsWithPages trait when calling get, visit, etc.
    use InteractsWithPages {
        makeRequest as traitMakeRequest;
    }

    protected function makeRequest($method, $uri, $parameters = [], $cookies = [], $files = [])
    {
        if ($currentRoute = Route::getCurrentRoute()) {
            // Looks like this is the second request, as a current route was defined.
             Now it has to be recreated.
            $reflection = new ReflectionClass($currentRoute);
            $property = $reflection->getProperty('controller');
            $property->setAccessible(true);
            $property->setValue($currentRoute, null);
        }

        // Pass the original call to the original trait method and run the request.
        return $this->traitMakeRequest($method, $uri, $parameters, $cookies, $files);
    }

@KarimGeiger Your solution is nice when it comes to visiting the same controller twice, but for me as you can see in my examples i don't visit the same route twice, and still i have the problem.
What i think is causing the problem is the Kernel
https://github.com/laravel/framework/blob/0a9e23a2bfb5028c79b6ff26e89fc8b783b33c8a/src/Illuminate/Foundation/Testing/Concerns/MakesHttpRequests.php#L569
The Kernel is bound as a singleton in the container.
What should really happen is that for each request, we get new fresh instance of the Kernel.


npm install doesn't work

Describe the bug
Can't git clone and npm install the project
To Reproduce
Steps to reproduce the behavior:

git clone https://github.com/juanmesa2097/angular-boilerplate.git
npm install

Expected behavior
npm would finish installing without errors
Output
npm ERR! code ERESOLVE
npm ERR! ERESOLVE unable to resolve dependency tree
npm ERR!
npm ERR! While resolving<EMAIL_ADDRESS>npm ERR! Found<EMAIL_ADDRESS>npm ERR! node_modules/rxjs
npm ERR<EMAIL_ADDRESS>from the root project
npm ERR!
npm ERR! Could not resolve dependency:
npm ERR! peer<EMAIL_ADDRESS>from<EMAIL_ADDRESS>npm ERR! node_modules/@angular/core
npm ERR<EMAIL_ADDRESS>from the root project
npm ERR!   peer<EMAIL_ADDRESS>from<EMAIL_ADDRESS>npm ERR!   node_modules/@angular/animations
npm ERR<EMAIL_ADDRESS>from the root project
System info:
Angular CLI: 12.2.7
Node: 14.17.1
Package Manager: npm 7.21.0
OS: win32 x64

Thanks for reporting!


Imprecisely documented.

Experimenting based on experience writing (non-Windows) drivers strongly suggests this property is the amount of time the serial device (driver?) will wait for another byte to arrive before timing out and returning a partial buffer amount. A value of 0ms seems to be "infinite" -- meaning the device will never return a partial buffer because it will wait infinitely for another byte to arrive until the requested LoadAsync() amount is satisfied.
This seems to be confirmed in testing (using 9600,N,8,1). A 0ms setting causes LoadAsync() to only return when the entire requested amount has been loaded even if InputStreamOptions is Partial. A 1ms setting causes LoadAsync() to return with various different counts but never more than the requested amount. Increasing the value of this property starts to increase the tendency toward LoadAsync() returning larger amounts. Pauses between bursts of data being received tend to be reflected in LoadAsync() returning the burst increments without waiting for the full requested amount when this property is large enough to wait for a next byte, but small enough to not wait across the inter-burst time.
All this testing supports this property being the timeout value for how long the driver will wait for a next byte to arrive before giving up and returning a partial LoadAsync() amount, with 0ms indicating infinite wait. I suspect the docs authors can find confirmation of this in the specification for writing Windows serial drivers. There is likely a near 1:1 correspondence between this property and some value being given to serial drivers.
If somebody does look to clean up this docs page, including investigating the driver docs, it would be efficient to clean up the WriteTimeout page at the same time. The function of that value is likely also reflected in the driver docs.
[Later]
This WDK (Windows Driver Kit) page ([https://docs.microsoft.com/en-us/windows-hardware/drivers/ddi/content/ntddser/ns-ntddser-_serial_timeouts]) likely has some relationship to ReadTimeout and WriteTimeout, but that's only an educated guess on my part. Somebody familiar with the .NET SerialDevice class implementation would need to confirm. That page also talks about a couple more properties which interact with timing out which do not seem to be reflected in the SerialDevice properties.

Hi @kburgoyne, sorry for the delay.  Could you please provide the link of the doc page about which you're commenting above?

Woah... past life.  If memory serves, this should pertain (specifically) to:
https://docs.microsoft.com/en-us/uwp/api/windows.devices.serialcommunication.serialdevice.readtimeout
and
https://docs.microsoft.com/en-us/uwp/api/windows.devices.serialcommunication.serialdevice.writetimeout
Since posting this comment/issue, another issue I posted resulted in the addition of the purple(?) "Note" added to the SerialDevice.ReadTimeout property page (the first URL above).  That note referencing the SERIAL_TIMEOUTS struct documentation was about a 70% solution to providing some clarification for the ReadTimeout and WriteTimeout properties.
However if you use the link to SERIAL_TIMEOUTS in the Note block, you'll discover there is a lot more timeout config information that is reflected in just .NET's ReadTimeout and WriteTimeout.  So the developer is then still "left in the dark" about how the .NET properties are being mapped to the SERIAL_TIMEOUTS struct.
If the .NET docs for the ReadTimeout and WriteTimeout properties were to explain what values (for all fields) actually end up getting set in the SERIAL_TIMEOUTS struct, THEN the developer could go to the SERIAL_TIMEOUTS struct page and understand what those values end up meaning.

Hi, @kburgoyne. I've added more info to SerialDevice.ReadTimeout and SerialDevice.WriteTimeout. Does that additional info look sufficient?
Thanks!
Steve

Oh yes. GREAT job, Steve!  I love how you covered ulong.MaxValue for BOTH read and write -- since its value for read could easily lead a person left wondering about write.


Add instruction to enable git color

Ahh, sorry I meant that in the PR you can just actually remove those styles that blocked the Git syntax highlighting. So just delete the lines that I mentioned (and the ones you mentioned).
And then, in the Recommended Styles, you can say to add the following to your custom stylesheet:
// Remove Git highlighting from tree view
.status-modified,
.status-added,
.status-renamed,
.status-removed {
  color: inherit;
  background-color: inherit;

  &.directory > .list-item {
    color: inherit !important;
    background-color: inherit !important;
  }

  &.directory.selected > .list-item {
    color: inherit !important;
    background-color: inherit !important;
  }
}

.tree-view {
  .icon-file-text, .icon {
    color: #c0c0c0;
  }
}

Haha, your way is much more better. I will make another PR in a short time.

Sounds good, and thanks for your time!

PR done and README updated. The issue exists in apex-ui too: https://github.com/apex/apex-ui/issues/26

Awesome work! I like the approach of changing the color of .icon. Thanks very much for the help on this :)


SO_LINGER implementation does no propagate immediately RST to client when l_onoff set to 1 and l_linger set to 0 (IDFGH-8830)

Answers checklist.

[X] I have read the documentation ESP-IDF Programming Guide and the issue is not addressed there.
[X] I have updated my IDF branch (master or release) to the latest version and checked that the issue is present there.
[X] I have searched the issue tracker for a similar issue and not found a similar issue.

General issue report
Expected behavior
Closing the socket with linger enabled and linger timeout set to 0 should abort the connection immediately and send a TCP segment with RST flag set, so the peer is aware the connection is force dropped by the other side.
Any further read by the peer should return 0, or -1 with errno = ECONNRESET
Any further write should return -1 with errno = ECONNRESET or EPIPE
Observed behavior
Closing the socket with linger enabled and linger timeout set to 0 send FIN segment to peer
Peer send back ACK and is aware that a graceful shutdown is started.
Any further read by the peer returns 0 with errno = 0 -> which is fine.
The first write returns success (no of bytes written) and errno = 0 -> which is confusing;
Only after the first write peer receives RST segment and further writes returns -1 with errno = EPIPE
environment

esp-idf: v4.4.3
linux kernel: 5.15.0-53-generic
esp32-wroom-32 dev kit

Steps to reproduce
Take tcp_server example provided in idf (\esp-idf-v4.4.3\examples\protocols\sockets\tcp_server) and modify tcp_server.c starting line 149
//do_retransmit(sock);
struct linger ling;
ling.l_linger = 0;
ling.l_onoff = 1;
shutdown(sock, 0);
err = setsockopt(sock, SOL_SOCKET, SO_LINGER, (const char*)&ling, sizeof(struct linger));
ESP_LOGI(TAG, "linger: %d %d", err, errno);
close(sock);
 ESP_LOGI(TAG, "close socket: %d %d", err, errno);

For the client side i have a small linux application which connects to the server and do some read/write
int main(void)
	{
	int sockfd, rc;
	struct sockaddr_in serv_addr;
	char message[32];
	strcpy(message, "test tcp server");
	bzero((char *) &serv_addr, sizeof(serv_addr));
	serv_addr.sin_family = AF_INET;
	serv_addr.sin_port = htons(3333);
	//<IP_ADDRESS>
	serv_addr.sin_addr.s_addr = htonl(0xc0a80134);
	while(1)
		{
		sockfd = socket(AF_INET, SOCK_STREAM, 0);
		if(sockfd > 0)
			{
			//usleep(10000);
			rc = connect(sockfd,(struct sockaddr *)&serv_addr, sizeof(serv_addr));
			if(!rc)
				{
				rc = recv(sockfd, &message, sizeof(message), 0);
				rc = send(sockfd, &message, sizeof(message), 0);
				rc = recv(sockfd, &message, sizeof(message), 0);
				rc = send(sockfd, &message, sizeof(message), 0);
				}
			close(sockfd);
			sleep(2);
			}
		}
	return 0;
	}

start the server on esp32,
run linux app in debug mode and break the execution on the first recv
wait server app on esp32 to go back to listen mode

I (00:04:58.735) example: Socket listening
I (00:06:14.876) example: Socket accepted ip address: <IP_ADDRESS>
I (00:06:14.877) example: linger: 0 0
I (00:06:14.880) example: close socket: 0 0
I (00:06:14.882) example: Socket listening

step by step on linux app and inspect rc and errno variables

after 1st recv: rc = 0, errno = 0
after 1st send: rc = 32, errno = 0
--> here whireshark shows PSH and RST segments
after 2nd recv: rc = 0, errno = 0
after 2nd send: rc = -1 errno = 32

@ves011 Can you please remove shutdown(sock, 0); code before set SO_LINGER option and try again.

@ESP-YJM thx for looking into.
Tried several combinations with shutdown(soc,k,  0), shutdwon(sock, 2) and wo shutdown.
The behavior is the same.

Hi @ves011 , i check with the LWIP code and find the reason. When you set SO_LINGER and close socket, LWIP does not directly send RST to disconnect, only when the socket has unsent or unacked data. The code logic please refer to https://github.com/espressif/esp-lwip/blob/33912690ea005e8ff05b2c579ebbf0a4189c3b00/src/api/api_msg.c#L1009. So in your test code, it meets the LWIP logic code and send FIN to peer. You can add send(sock, "test", 4, 0); code before close socket. This will send RST to peer. Because now socket has unacked data.

Hi @ESP-YJM
Yes. With send() before closing, RST segment is received on the client side.
However its not clear for me why unsent or unhacked data are needed in order to send RST.
The way i read RFC 1122, it doesnt  say anything about pending data
<IP_ADDRESS>  Closing a Connection: [RFC-793 Section 3.5]

            A TCP connection may terminate in two ways: (1) the normal
            TCP close sequence using a FIN handshake, and (2) an "abort"
            in which one or more RST segments are sent and the
            connection state is immediately discarded.  If a TCP
            connection is closed by the remote site, the local
            application MUST be informed whether it closed normally or
            was aborted.

Compiling and running the tcp_server app, on a linux machine, it sends RST wo the need of pending data.

@ves011 I think unsent or unhacked data are needed in order to send RST，just the way lwip protocol stack implemented. Of course, send RST no need of unsent or unhacked data is also OK. Each protocol stack is implemented differently.

OK, from my point of view, now its understood and will take it as an implementation specific.
Will close this topic as a non issue.
Thanks for your support!


Implement did:key resolver as standard

We could provide this as an optional resolver and support it in defaultResolver. Correct me if I'm wrong but IIRC defaultResolver is a thing we provide.
For most revolvers one might argue that its better to add it to the universal resolver an go through that. The reason did:key is useful without going through the universal resolver is that did:key is very simple, it doesn't require any setup, and does not require io.


Slick track width calculating width to large number

Has anyone run into this issue and know how to resolve it? I am seeing slick-track's width being calculated incorrectly to a very large number on mobile devices (ios chrome and safari, haven't tested android). The width is correct on desktop chrome, firefox, edge, ie11...

In my case, adding following rule to the container of slick slider fixed the problem.
width: 100%

I had the same issue, found that an ancestor was set to flex and was throwing off the calculation somehow

I had the same issue. In my case, I've wrapped the slider with a div named "wrapper" and set a min-with.

                    1

                    2

                    3

I also have this issue from Chrome 80. Tried multiple options like the ones suggested here:
https://github.com/akiran/react-slick/issues/230
But still no luck.

@neomaxzero we used the following attributes in the container:
max-width: 100vw;
width: 100%;
Good luck!!!

I also have the same issue and giving width:100% also not working.
I can't use 100vw as I have side navbar and it's dynamic in different screens.

overflow: hidden worked for me

@HZooly thank you! This worked for me:
.slider-container {
max-width: 100vw;
width: 100%;
overflow: hidden;
}

@HZooly thank you! This worked for me:
.slider-container {
    max-width: 100vw;
    width: 100%;
    overflow: hidden;
}

And what can we do if we don't know vw and width is different in different cases..
My banner could be 80vw or 100vw depending of situation...
Anybody resolved?..

@HZooly thank you! This worked for me:
.slider-container {
    max-width: 100vw;
    width: 100%;
    overflow: hidden;
}

worked for me

@phc5 or anyone, not sure if you still care about this problem but I ran into this problem and lost my shit for 2 hours 😁 and finally made it work by replacing flex with grid.
I know it's not an ideal solution but I figured modifying flex to grid isn't a very big problem.

@HZooly thank you! This worked for me:
.slider-container {
    max-width: 100vw;
    width: 100%;
    overflow: hidden;
}

You put to the  above  or to  itself?

container

where can i find this "container"?

we used the following attributes in the container

container
where can i find this "container"?

.slick-slider{
max-width: 100vw;
width: 100%;
overflow: hidden !important;
}

i am using

@shahrukh263 Same with me. Working fine in desktop and tablet but not in mobile

我有同样的问题，发现一个祖先被设置为 flex 并且以某种方式放弃了计算

Very helpful to solve my problem, thank you

I also found an ancestor which had a display: flex property. Its child had flex: 1, but I needed to add minWidth: {0} and it fixed it.

When I applied flex-basis to the parent element, it caused the parent width to become too large. Therefore, I use width instead of flex-basis.

When I applied flex-basis to the parent element, it caused the parent width to become too large. Therefore, I use width instead of flex-basis.

in my case was width: auto on some parent wrapper

In my case it wasn't a flex container, but a grid one. It was using grid-template-rows without a grid-template-columns actually.
I just had to add the property:
grid-template-columns: 100px

@HZooly thank you! This worked for me:
.slider-container {
    max-width: 100vw;
    width: 100%;
    overflow: hidden;
}

Thanks a ton for the solutions.
After trying so many things, this worked for me..

Thank you for your solution
On Fri, 2 Jun 2023 at 18:42, Dhruvkumar Saliya @.***>
wrote:

@HZooly https://github.com/HZooly thank you! This worked for me:
.slider-container {
max-width: 100vw;
width: 100%;
overflow: hidden;
}
Thanks a ton for the solutions.
After trying so many things, this worked for me..
—
Reply to this email directly, view it on GitHub
https://github.com/akiran/react-slick/issues/1571#issuecomment-1573714056,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/A2ODVUVKKN6YSGETXQCIWBLXJHRDXANCNFSM4HXUOETA
.
You are receiving this because you commented.Message ID:
@.***>

hi please wrap it with container if its full width use container fluid and add utility classes for margin left right 0 and padding left right 0. then your slick slider calculation will be fine

FWIW, I had the issue and the reason was that I missed this part of instructions:

Also install slick-carousel for css and font
npm install slick-carousel
// Import css files
import "slick-carousel/slick/slick.css";
import "slick-carousel/slick/slick-theme.css";

I also found an ancestor which had a display: flex property. Its child had flex: 1, but I needed to add minWidth: {0} to fix it.

It really worked, THANKS a lot!


Please explicitly state install location

I followed the readme to install switch and got this output:
C:\Users\josep>cinst -y switch
Chocolatey v1.1.0
Installing the following packages:
switch
By installing, you accept licenses for the packages.
Progress: Downloading switch 0.1.0... 100%
switch v0.1.0 [Approved]
switch package files install completed. Performing other installation steps.
Progress: 100% - 1/1 completed
The program is scheduled to start on logon, or start manually with
Start-ScheduledTask QuakeRun
ShimGen has successfully created a shim for quakerun.exe
The install of switch was successful.
Software install location not explicitly set, it could be in package or
default install location of installer.
It would be nice to know exactly where it was installed

I think chocolatey is responsible for keeping track of packaged files but there's no option for chocolatey to show it. You could do gcm quakerun to see where it's from though.


Just don't work

after following all the instructions, it doesn't work with a cracked version... too bad

As long as the developer actively supports and updates the game this is intended behavior.


Extend findInitExistential for cases when ApplySite argument is a global_addr

Determine InitExistential for an apply argument that is a global_addr.
Pattern 1:
%3 = global_addr @$P : $*SomeP
%4 = init_existential_addr %3 : $*SomeP, $SomeC
%5 = alloc_ref $SomeC
store %5 to %4 : $*SomeC
%10 = apply %9(%3) : $@convention(thin) (@in_guaranteed SomeP)

Pattern 2:
%3 = global_addr @$P : $*SomeP
%9 = open_existential_addr mutable_access %3 : $*SomeP to $*@opened SomeP
%15 = apply %11(%9) : $@convention(thin) (@in_guaranteed SomeP)

No test cases yet, will be merged as part of the large PR https://github.com/apple/swift/pull/13991/

@gottesmm @slavapestov @atrick Can you review this PR? This Pr refactors the old code for findInitExistentialFromGlobalAddr to  findInitExistentialFromGlobalAddrAndCopyAddr and adds a new interface for finding init_existential for an apply argument who happens to be a global_addr, findInitExistentialFromGlobalAddrAndApply . This function is currently not being used, hence no new tests. I will use this interface when https://github.com/apple/swift/pull/13991/ lands fully.

Thanks @atrick. Should be fixed now.

@atrick Thanks for the suggestion -- added the assumption. The reason it returns SILValue is because for convenience in use in getAddressOfStackInit below that returns a SILValue.

Ok. FYI, any SingleValueInstruction such as this is castable to SILValue.

@swift-ci Please smoke test

@swift-ci Please smoke test

Please update the existing SILCombiner self concrete type peephole to use the new function and add a SIL test.


enhancement: simplify media_player entity name

Rename the media player entity from "media_player.users_yoto_player_media_player" to "media_player.users_yoto_player"

This will be a quick fix.  Thanks for raising it!

I believe this is done.  To test I have to delete and readd. I haven't done that yet.  Names are manually changed once installed I believe.

I just installed the latest version of master via HACS, rebooted, deleted the integration and re-added and the media_player entities still have _media_player appended to their names.

This is still an issue in 1.10.6.